[447935] ModelMorf friendly files
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/AbstractToConcrete.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/AbstractToConcrete.xml
new file mode 100644
index 0000000..9421429
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/AbstractToConcrete.xml
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__-skKVoGEeS2WoXr83SnEA" name="AbstractToConcrete.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/AbstractToConcrete.qvtr">
+  <ownedComment xmi:id="__-skKloGEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+  <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="__-skK1oGEeS2WoXr83SnEA" name="AbstractToConcrete">
+    <superClass href="OCL.xml#__-sirVoGEeS2WoXr83SnEA"/>
+    <modelParameter xmi:id="__-skLFoGEeS2WoXr83SnEA" name="uml1">
+      <usedPackage href="ClassMM_IN.xml#__-seoVoGEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <modelParameter xmi:id="__-skLVoGEeS2WoXr83SnEA" name="uml2">
+      <usedPackage href="ClassMM_IN.xml#__-seoVoGEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="__-skLloGEeS2WoXr83SnEA" name="AbstractClassToConcreteClass" isTopLevel="true">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__-skL1oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="__-skLFoGEeS2WoXr83SnEA"
+          rootVariable="__-skUFoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__-skMFoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skMVoGEeS2WoXr83SnEA" bindsTo="__-skUFoGEeS2WoXr83SnEA">
+            <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+            <part xmi:id="__-skMloGEeS2WoXr83SnEA">
+              <referredProperty href="ClassMM_IN.xml#__-sepVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skM1oGEeS2WoXr83SnEA" bindsTo="__-skUVoGEeS2WoXr83SnEA">
+                <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+                <part xmi:id="__-skNFoGEeS2WoXr83SnEA">
+                  <referredProperty href="ClassMM_IN.xml#__-seo1oGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:BooleanLiteralExp" xmi:id="__-skNVoGEeS2WoXr83SnEA" booleanSymbol="true">
+                    <type href="OCL.xml#__-sgoFoGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="__-skNloGEeS2WoXr83SnEA">
+                  <referredProperty href="ClassMM_IN.xml#__-sepFoGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skN1oGEeS2WoXr83SnEA" bindsTo="__-skUloGEeS2WoXr83SnEA">
+                    <type href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+                    <part xmi:id="__-skOFoGEeS2WoXr83SnEA">
+                      <referredProperty href="ClassMM_IN.xml#__-seqVoGEeS2WoXr83SnEA"/>
+                      <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skOVoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skTloGEeS2WoXr83SnEA">
+                        <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+                      </value>
+                    </part>
+                    <part xmi:id="__-skOloGEeS2WoXr83SnEA">
+                      <referredProperty href="ClassMM_IN.xml#__-seqloGEeS2WoXr83SnEA"/>
+                      <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skO1oGEeS2WoXr83SnEA" bindsTo="__-skU1oGEeS2WoXr83SnEA">
+                        <type href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+                        <part xmi:id="__-skPFoGEeS2WoXr83SnEA">
+                          <referredProperty href="ClassMM_IN.xml#__-serFoGEeS2WoXr83SnEA"/>
+                          <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skPVoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skT1oGEeS2WoXr83SnEA">
+                            <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+                          </value>
+                        </part>
+                        <part xmi:id="__-skPloGEeS2WoXr83SnEA">
+                          <referredProperty href="ClassMM_IN.xml#__-serloGEeS2WoXr83SnEA"/>
+                          <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skP1oGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skTVoGEeS2WoXr83SnEA">
+                            <type href="ClassMM_IN.xml#__-sesFoGEeS2WoXr83SnEA"/>
+                          </value>
+                        </part>
+                        <referredClass href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+                      </value>
+                    </part>
+                    <referredClass href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__-skQFoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__-skLVoGEeS2WoXr83SnEA"
+          rootVariable="__-skVFoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__-skQVoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skQloGEeS2WoXr83SnEA" bindsTo="__-skVFoGEeS2WoXr83SnEA">
+            <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+            <part xmi:id="__-skQ1oGEeS2WoXr83SnEA">
+              <referredProperty href="ClassMM_IN.xml#__-sepFoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skRFoGEeS2WoXr83SnEA" bindsTo="__-skVVoGEeS2WoXr83SnEA">
+                <type href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+                <part xmi:id="__-skRVoGEeS2WoXr83SnEA">
+                  <referredProperty href="ClassMM_IN.xml#__-seqVoGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skRloGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skTloGEeS2WoXr83SnEA">
+                    <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="__-skR1oGEeS2WoXr83SnEA">
+                  <referredProperty href="ClassMM_IN.xml#__-seqloGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skSFoGEeS2WoXr83SnEA" bindsTo="__-skVloGEeS2WoXr83SnEA">
+                    <type href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+                    <part xmi:id="__-skSVoGEeS2WoXr83SnEA">
+                      <referredProperty href="ClassMM_IN.xml#__-serFoGEeS2WoXr83SnEA"/>
+                      <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skSloGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skT1oGEeS2WoXr83SnEA">
+                        <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+                      </value>
+                    </part>
+                    <part xmi:id="__-skS1oGEeS2WoXr83SnEA">
+                      <referredProperty href="ClassMM_IN.xml#__-serloGEeS2WoXr83SnEA"/>
+                      <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skTFoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skTVoGEeS2WoXr83SnEA">
+                        <type href="ClassMM_IN.xml#__-sesFoGEeS2WoXr83SnEA"/>
+                      </value>
+                    </part>
+                    <referredClass href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="__-skTVoGEeS2WoXr83SnEA" name="t" isRequired="false">
+        <type href="ClassMM_IN.xml#__-sesFoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__-skTloGEeS2WoXr83SnEA" name="acon" isRequired="false">
+        <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__-skT1oGEeS2WoXr83SnEA" name="acopn" isRequired="false">
+        <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__-skUFoGEeS2WoXr83SnEA" name="cc" templateExp="__-skMVoGEeS2WoXr83SnEA">
+        <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__-skUVoGEeS2WoXr83SnEA" name="ac" templateExp="__-skM1oGEeS2WoXr83SnEA">
+        <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__-skUloGEeS2WoXr83SnEA" name="aco" templateExp="__-skN1oGEeS2WoXr83SnEA">
+        <type href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__-skU1oGEeS2WoXr83SnEA" name="acop" templateExp="__-skO1oGEeS2WoXr83SnEA">
+        <type href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__-skVFoGEeS2WoXr83SnEA" name="cc" templateExp="__-skQloGEeS2WoXr83SnEA">
+        <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__-skVVoGEeS2WoXr83SnEA" name="cco" templateExp="__-skRFoGEeS2WoXr83SnEA">
+        <type href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__-skVloGEeS2WoXr83SnEA" name="ccop" templateExp="__-skSFoGEeS2WoXr83SnEA">
+        <type href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+      </variable>
+    </rule>
+    <ownedKey xmi:id="__-skV1oGEeS2WoXr83SnEA">
+      <identifies href="ClassMM_IN.xml#__-sesFoGEeS2WoXr83SnEA"/>
+      <part href="ClassMM_IN.xml#__-sesVoGEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="__-skWFoGEeS2WoXr83SnEA">
+      <identifies href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+      <part href="ClassMM_IN.xml#__-seqVoGEeS2WoXr83SnEA"/>
+      <part href="ClassMM_IN.xml#__-seqFoGEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="__-skWVoGEeS2WoXr83SnEA">
+      <identifies href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+      <part href="ClassMM_IN.xml#__-serFoGEeS2WoXr83SnEA"/>
+      <part href="ClassMM_IN.xml#__-serVoGEeS2WoXr83SnEA"/>
+      <part href="ClassMM_IN.xml#__-serloGEeS2WoXr83SnEA"/>
+    </ownedKey>
+  </nestedPackage>
+  <unit xmi:id="__-skWloGEeS2WoXr83SnEA" name="UMLMM">
+    <ownedComment xmi:id="__-skW1oGEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+    <usedPackage xmi:type="flatemofqvt:Package" href="ClassMM_IN.xml#__-seoVoGEeS2WoXr83SnEA"/>
+  </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/ClassMM_IN.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/ClassMM_IN.xml
new file mode 100644
index 0000000..2e1d1ef
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/ClassMM_IN.xml
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__-seoFoGEeS2WoXr83SnEA" name="ClassMM_IN.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/ClassMM_IN.emof">
+  <nestedPackage xmi:id="__-seoVoGEeS2WoXr83SnEA" name="ClassMM" nsURI="ClassMM">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-seoloGEeS2WoXr83SnEA" name="Class" templateParameterSubstitution="__-seuVoGEeS2WoXr83SnEA __-sev1oGEeS2WoXr83SnEA"
+        superClass="__-sesFoGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__-seo1oGEeS2WoXr83SnEA" name="isAbstract">
+        <type href="OCL.xml#__-sgoFoGEeS2WoXr83SnEA"/>
+        <propertyItem href="AbstractToConcrete.xml#__-skNFoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__-sepFoGEeS2WoXr83SnEA" name="operation" type="__-seyVoGEeS2WoXr83SnEA" isComposite="true" opposite="__-seqFoGEeS2WoXr83SnEA">
+        <propertyItem href="AbstractToConcrete.xml#__-skNloGEeS2WoXr83SnEA"/>
+        <propertyItem href="AbstractToConcrete.xml#__-skQ1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__-sepVoGEeS2WoXr83SnEA" name="inheritsFrom" type="__-seoloGEeS2WoXr83SnEA" opposite="__-seploGEeS2WoXr83SnEA">
+        <propertyItem href="AbstractToConcrete.xml#__-skMloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__-seploGEeS2WoXr83SnEA" name="Class" type="__-set1oGEeS2WoXr83SnEA" implicit="true" opposite="__-sepVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__-sepVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__-seqFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skMVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skM1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skQloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skUFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skUVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skVFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-sep1oGEeS2WoXr83SnEA" name="Operation" templateParameterSubstitution="__-sewloGEeS2WoXr83SnEA __-sey1oGEeS2WoXr83SnEA __-se1FoGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__-seqFoGEeS2WoXr83SnEA" name="class" type="__-seoloGEeS2WoXr83SnEA" opposite="__-sepFoGEeS2WoXr83SnEA">
+        <key href="AbstractToConcrete.xml#__-skWFoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__-seqVoGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+        <key href="AbstractToConcrete.xml#__-skWFoGEeS2WoXr83SnEA"/>
+        <propertyItem href="AbstractToConcrete.xml#__-skOFoGEeS2WoXr83SnEA"/>
+        <propertyItem href="AbstractToConcrete.xml#__-skRVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__-seqloGEeS2WoXr83SnEA" name="parameter" type="__-sezFoGEeS2WoXr83SnEA" isComposite="true" opposite="__-serVoGEeS2WoXr83SnEA">
+        <propertyItem href="AbstractToConcrete.xml#__-skOloGEeS2WoXr83SnEA"/>
+        <propertyItem href="AbstractToConcrete.xml#__-skR1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#__-sirVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__-serVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skN1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skRFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skUloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skVVoGEeS2WoXr83SnEA"/>
+      <key href="AbstractToConcrete.xml#__-skWFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-seq1oGEeS2WoXr83SnEA" name="Parameter" templateParameterSubstitution="__-sevFoGEeS2WoXr83SnEA __-sexVoGEeS2WoXr83SnEA __-sezloGEeS2WoXr83SnEA __-se11oGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__-serFoGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+        <key href="AbstractToConcrete.xml#__-skWVoGEeS2WoXr83SnEA"/>
+        <propertyItem href="AbstractToConcrete.xml#__-skPFoGEeS2WoXr83SnEA"/>
+        <propertyItem href="AbstractToConcrete.xml#__-skSVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__-serVoGEeS2WoXr83SnEA" name="operation" type="__-sep1oGEeS2WoXr83SnEA" opposite="__-seqloGEeS2WoXr83SnEA">
+        <key href="AbstractToConcrete.xml#__-skWVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__-serloGEeS2WoXr83SnEA" name="type" type="__-sesFoGEeS2WoXr83SnEA" opposite="__-sesloGEeS2WoXr83SnEA">
+        <key href="AbstractToConcrete.xml#__-skWVoGEeS2WoXr83SnEA"/>
+        <propertyItem href="AbstractToConcrete.xml#__-skPloGEeS2WoXr83SnEA"/>
+        <propertyItem href="AbstractToConcrete.xml#__-skS1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#__-sirVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skO1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skSFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skU1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skVloGEeS2WoXr83SnEA"/>
+      <key href="AbstractToConcrete.xml#__-skWVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-ser1oGEeS2WoXr83SnEA" name="PrimitiveDataType" superClass="__-sesFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-sesFoGEeS2WoXr83SnEA" name="Type" templateParameterSubstitution="__-seyFoGEeS2WoXr83SnEA __-se0VoGEeS2WoXr83SnEA __-se2loGEeS2WoXr83SnEA"
+        isAbstract="true">
+      <ownedAttribute xmi:id="__-sesVoGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+        <key href="AbstractToConcrete.xml#__-skV1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__-sesloGEeS2WoXr83SnEA" name="Parameter" type="__-seuloGEeS2WoXr83SnEA" implicit="true" opposite="__-serloGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__-ses1oGEeS2WoXr83SnEA" name="dummy" isRequired="false" type="__-setFoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__-setVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__-sirVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__-serloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skP1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skTFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skTVoGEeS2WoXr83SnEA"/>
+      <key href="AbstractToConcrete.xml#__-skV1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-setFoGEeS2WoXr83SnEA" name="dummy" typedElement="__-ses1oGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__-setVoGEeS2WoXr83SnEA" name="hasType" type="__-sez1oGEeS2WoXr83SnEA" isComposite="true" opposite="__-ses1oGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__-sirVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="__-setloGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-set1oGEeS2WoXr83SnEA" name="Bag" superClass="__-sevVoGEeS2WoXr83SnEA" typedElement="__-seploGEeS2WoXr83SnEA"
+        elementType="__-seoloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-seuFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-seuVoGEeS2WoXr83SnEA" actual="__-seoloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-shfVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-shfFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__-she1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-seuloGEeS2WoXr83SnEA" name="Bag" superClass="__-sew1oGEeS2WoXr83SnEA" typedElement="__-sesloGEeS2WoXr83SnEA"
+        elementType="__-seq1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-seu1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sevFoGEeS2WoXr83SnEA" actual="__-seq1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-shfVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-shfFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__-she1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sevVoGEeS2WoXr83SnEA" name="Collection" elementType="__-seoloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sevloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sev1oGEeS2WoXr83SnEA" actual="__-seoloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-shv1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-shvloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-shvVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__-sibloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sewFoGEeS2WoXr83SnEA" name="Collection" elementType="__-sep1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sewVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sewloGEeS2WoXr83SnEA" actual="__-sep1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-shv1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-shvloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-shvVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__-sibloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sew1oGEeS2WoXr83SnEA" name="Collection" elementType="__-seq1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sexFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sexVoGEeS2WoXr83SnEA" actual="__-seq1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-shv1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-shvloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-shvVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__-sibloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sexloGEeS2WoXr83SnEA" name="Collection" elementType="__-sesFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sex1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-seyFoGEeS2WoXr83SnEA" actual="__-sesFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-shv1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-shvloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-shvVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__-sibloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-seyVoGEeS2WoXr83SnEA" name="Set" superClass="__-se0loGEeS2WoXr83SnEA" typedElement="__-sepFoGEeS2WoXr83SnEA"
+        elementType="__-sep1oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__-seyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sey1oGEeS2WoXr83SnEA" actual="__-sep1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-sjx1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-sjxloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__-sjxVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sezFoGEeS2WoXr83SnEA" name="Set" superClass="__-se1VoGEeS2WoXr83SnEA" typedElement="__-seqloGEeS2WoXr83SnEA"
+        elementType="__-seq1oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__-sezVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sezloGEeS2WoXr83SnEA" actual="__-seq1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-sjx1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-sjxloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__-sjxVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sez1oGEeS2WoXr83SnEA" name="Set" superClass="__-se2FoGEeS2WoXr83SnEA" typedElement="__-setVoGEeS2WoXr83SnEA"
+        elementType="__-sesFoGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__-se0FoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-se0VoGEeS2WoXr83SnEA" actual="__-sesFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-sjx1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-sjxloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__-sjxVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-se0loGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__-sewFoGEeS2WoXr83SnEA"
+        elementType="__-sep1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-se01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-se1FoGEeS2WoXr83SnEA" actual="__-sep1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-skDVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-skDFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-skC1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-se1VoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__-sew1oGEeS2WoXr83SnEA"
+        elementType="__-seq1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-se1loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-se11oGEeS2WoXr83SnEA" actual="__-seq1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-skDVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-skDFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-skC1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-se2FoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__-sexloGEeS2WoXr83SnEA"
+        elementType="__-sesFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-se2VoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-se2loGEeS2WoXr83SnEA" actual="__-sesFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__-skDVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__-skDFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-skC1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/OCL.xml
new file mode 100644
index 0000000..e2f01f8
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/OCL.xml
@@ -0,0 +1,2760 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__-se21oGEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+  <nestedPackage xmi:id="__-se3FoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se3VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-shsloGEeS2WoXr83SnEA __-shtloGEeS2WoXr83SnEA"
+        contextType="__-shfloGEeS2WoXr83SnEA" resultType="__-sgoFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se3loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-shqFoGEeS2WoXr83SnEA"
+        contextType="__-shfloGEeS2WoXr83SnEA" resultType="__-shp1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se31oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-shrloGEeS2WoXr83SnEA"
+        contextType="__-shfloGEeS2WoXr83SnEA" resultType="__-shrVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se4FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-shuloGEeS2WoXr83SnEA"
+        contextType="__-shfloGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se4VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-shoVoGEeS2WoXr83SnEA"
+        contextType="__-shfloGEeS2WoXr83SnEA" resultType="__-sgU1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se4loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-siI1oGEeS2WoXr83SnEA __-siNFoGEeS2WoXr83SnEA __-siOVoGEeS2WoXr83SnEA __-siPFoGEeS2WoXr83SnEA __-siQVoGEeS2WoXr83SnEA __-siUFoGEeS2WoXr83SnEA __-siVFoGEeS2WoXr83SnEA __-siWFoGEeS2WoXr83SnEA"
+        contextType="__-shwFoGEeS2WoXr83SnEA" resultType="__-sgoFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se41oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-siKloGEeS2WoXr83SnEA"
+        contextType="__-shwFoGEeS2WoXr83SnEA" resultType="__-siKVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se5FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-siMVoGEeS2WoXr83SnEA"
+        contextType="__-shwFoGEeS2WoXr83SnEA" resultType="__-siMFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se5VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-siS1oGEeS2WoXr83SnEA"
+        contextType="__-shwFoGEeS2WoXr83SnEA" resultType="__-siSloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se5loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-siRVoGEeS2WoXr83SnEA __-siXFoGEeS2WoXr83SnEA"
+        contextType="__-shwFoGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se51oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjZ1oGEeS2WoXr83SnEA __-sja1oGEeS2WoXr83SnEA"
+        contextType="__-sjH1oGEeS2WoXr83SnEA" resultType="__-sgoFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se6FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjb1oGEeS2WoXr83SnEA"
+        contextType="__-sjH1oGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se6VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjVloGEeS2WoXr83SnEA"
+        contextType="__-sjH1oGEeS2WoXr83SnEA" resultType="__-sjHFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se6loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjXVoGEeS2WoXr83SnEA"
+        contextType="__-sjH1oGEeS2WoXr83SnEA" resultType="__-sjXFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se61oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjY1oGEeS2WoXr83SnEA"
+        contextType="__-sjH1oGEeS2WoXr83SnEA" resultType="__-sjYloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se7FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sju1oGEeS2WoXr83SnEA __-sjv1oGEeS2WoXr83SnEA"
+        contextType="__-sjdFoGEeS2WoXr83SnEA" resultType="__-sgoFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se7VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjw1oGEeS2WoXr83SnEA"
+        contextType="__-sjdFoGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se7loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjqloGEeS2WoXr83SnEA"
+        contextType="__-sjdFoGEeS2WoXr83SnEA" resultType="__-sgJloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se71oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjsVoGEeS2WoXr83SnEA"
+        contextType="__-sjdFoGEeS2WoXr83SnEA" resultType="__-sjsFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se8FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjt1oGEeS2WoXr83SnEA"
+        contextType="__-sjdFoGEeS2WoXr83SnEA" resultType="__-sjtloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se8VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sj_1oGEeS2WoXr83SnEA __-skA1oGEeS2WoXr83SnEA"
+        contextType="__-sjyFoGEeS2WoXr83SnEA" resultType="__-sgoFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se8loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-skB1oGEeS2WoXr83SnEA"
+        contextType="__-sjyFoGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se81oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sj7loGEeS2WoXr83SnEA"
+        contextType="__-sjyFoGEeS2WoXr83SnEA" resultType="__-sjxVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se9FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sj9VoGEeS2WoXr83SnEA"
+        contextType="__-sjyFoGEeS2WoXr83SnEA" resultType="__-sj9FoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se9VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sj-1oGEeS2WoXr83SnEA"
+        contextType="__-sjyFoGEeS2WoXr83SnEA" resultType="__-sj-loGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se9loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-skHVoGEeS2WoXr83SnEA"
+        contextType="__-skDloGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="__-se91oGEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="__-sfI1oGEeS2WoXr83SnEA __-sgUloGEeS2WoXr83SnEA __-sgbVoGEeS2WoXr83SnEA"
+        superClass="__-si8FoGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__-se-FoGEeS2WoXr83SnEA" name="first" type="__-shwFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__-se-VoGEeS2WoXr83SnEA" name="second" type="__-siDloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-se-loGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+        superClass="__-sfJFoGEeS2WoXr83SnEA" typedElement="__-sho1oGEeS2WoXr83SnEA" elementType="__-shp1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-se-1oGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-se_FoGEeS2WoXr83SnEA" actual="__-shp1oGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-se_VoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+        superClass="__-sfJ1oGEeS2WoXr83SnEA" typedElement="__-shqloGEeS2WoXr83SnEA" elementType="__-shrVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-se_loGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-se_1oGEeS2WoXr83SnEA" actual="__-shrVoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfAFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+        superClass="__-sfKloGEeS2WoXr83SnEA" typedElement="__-shiloGEeS2WoXr83SnEA" elementType="__-shjloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfAVoGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfAloGEeS2WoXr83SnEA" actual="__-shjloGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfA1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+        superClass="__-sfLVoGEeS2WoXr83SnEA" typedElement="__-shlVoGEeS2WoXr83SnEA" elementType="__-shmFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfBFoGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfBVoGEeS2WoXr83SnEA" actual="__-shmFoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfBloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+        superClass="__-sfMFoGEeS2WoXr83SnEA" typedElement="__-shmloGEeS2WoXr83SnEA" elementType="__-shnVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfB1oGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfCFoGEeS2WoXr83SnEA" actual="__-shnVoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfCVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+        superClass="__-sfTloGEeS2WoXr83SnEA" typedElement="__-shzloGEeS2WoXr83SnEA __-sh_FoGEeS2WoXr83SnEA __-siHloGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfCloGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfC1oGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfDFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+        superClass="__-sfUVoGEeS2WoXr83SnEA" typedElement="__-shwVoGEeS2WoXr83SnEA" elementType="__-shvVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfDVoGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfDloGEeS2WoXr83SnEA" actual="__-shvVoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfD1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+        superClass="__-sfV1oGEeS2WoXr83SnEA" typedElement="__-siZloGEeS2WoXr83SnEA" elementType="__-siXloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfEFoGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfEVoGEeS2WoXr83SnEA" actual="__-siXloGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfEloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+        superClass="__-sfWloGEeS2WoXr83SnEA" typedElement="__-sia1oGEeS2WoXr83SnEA" elementType="__-siZ1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfE1oGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfFFoGEeS2WoXr83SnEA" actual="__-siZ1oGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfFVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+        superClass="__-sfjVoGEeS2WoXr83SnEA" typedElement="__-sj8FoGEeS2WoXr83SnEA" elementType="__-sj9FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfFloGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfF1oGEeS2WoXr83SnEA" actual="__-sj9FoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfGFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+        superClass="__-sfkFoGEeS2WoXr83SnEA" typedElement="__-sj91oGEeS2WoXr83SnEA" elementType="__-sj-loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfGVoGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfGloGEeS2WoXr83SnEA" actual="__-sj-loGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfG1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sgvloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfHFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfHVoGEeS2WoXr83SnEA" actual="__-sgvloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfHloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shEloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfH1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfIFoGEeS2WoXr83SnEA" actual="__-shEloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfIVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-se91oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfIloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfI1oGEeS2WoXr83SnEA" actual="__-se91oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfJFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shp1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfJVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfJloGEeS2WoXr83SnEA" actual="__-shp1oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfJ1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shrVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfKFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfKVoGEeS2WoXr83SnEA" actual="__-shrVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfKloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shjloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfK1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfLFoGEeS2WoXr83SnEA" actual="__-shjloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfLVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shmFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfLloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfL1oGEeS2WoXr83SnEA" actual="__-shmFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfMFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shnVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfMVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfMloGEeS2WoXr83SnEA" actual="__-shnVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfM1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-shlFoGEeS2WoXr83SnEA" elementType="__-shfloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfNFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfNVoGEeS2WoXr83SnEA" actual="__-shfloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfNloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-siJVoGEeS2WoXr83SnEA" elementType="__-siKVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfN1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfOFoGEeS2WoXr83SnEA" actual="__-siKVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfOVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-siLFoGEeS2WoXr83SnEA" elementType="__-siMFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfOloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfO1oGEeS2WoXr83SnEA" actual="__-siMFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfPFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sh4VoGEeS2WoXr83SnEA" elementType="__-sh4FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfPVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfPloGEeS2WoXr83SnEA" actual="__-sh4FoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfP1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sh6FoGEeS2WoXr83SnEA" elementType="__-sh7FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfQFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfQVoGEeS2WoXr83SnEA" actual="__-sh7FoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfQloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sh9VoGEeS2WoXr83SnEA" elementType="__-sh9FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfQ1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfRFoGEeS2WoXr83SnEA" actual="__-sh9FoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfRVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-siD1oGEeS2WoXr83SnEA" elementType="__-siDloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfRloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfR1oGEeS2WoXr83SnEA" actual="__-siDloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfSFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-siEFoGEeS2WoXr83SnEA" elementType="__-siE1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfSVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfSloGEeS2WoXr83SnEA" actual="__-siE1oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfS1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-siFVoGEeS2WoXr83SnEA" elementType="__-siGFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfTFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfTVoGEeS2WoXr83SnEA" actual="__-siGFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfTloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfT1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfUFoGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfUVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shvVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfUloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfU1oGEeS2WoXr83SnEA" actual="__-shvVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfVFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-siZFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfVVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfVloGEeS2WoXr83SnEA" actual="__-siZFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfV1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-siXloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfWFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfWVoGEeS2WoXr83SnEA" actual="__-siXloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfWloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-siZ1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfW1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfXFoGEeS2WoXr83SnEA" actual="__-siZ1oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfXVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-shiVoGEeS2WoXr83SnEA __-sh51oGEeS2WoXr83SnEA __-sjMloGEeS2WoXr83SnEA __-sjhVoGEeS2WoXr83SnEA __-sj1loGEeS2WoXr83SnEA"
+        elementType="__-sibloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfXloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfX1oGEeS2WoXr83SnEA" actual="__-sibloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfYFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sirVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfYVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfYloGEeS2WoXr83SnEA" actual="__-sirVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfY1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-si5loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfZFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfZVoGEeS2WoXr83SnEA" actual="__-si5loGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfZloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjEVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfZ1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfaFoGEeS2WoXr83SnEA" actual="__-sjEVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfaVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjXFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfaloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfa1oGEeS2WoXr83SnEA" actual="__-sjXFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfbFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjYloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfbVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfbloGEeS2WoXr83SnEA" actual="__-sjYloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfb1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjNloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfcFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfcVoGEeS2WoXr83SnEA" actual="__-sjNloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfcloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjSVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfc1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfdFoGEeS2WoXr83SnEA" actual="__-sjSVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfdVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjTloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfdloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfd1oGEeS2WoXr83SnEA" actual="__-sjTloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfeFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfeVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfeloGEeS2WoXr83SnEA" actual="__-sjH1oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfe1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjsFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sffFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sffVoGEeS2WoXr83SnEA" actual="__-sjsFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sffloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjtloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sff1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfgFoGEeS2WoXr83SnEA" actual="__-sjtloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfgVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjiloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfgloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfg1oGEeS2WoXr83SnEA" actual="__-sjiloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfhFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjnVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfhVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfhloGEeS2WoXr83SnEA" actual="__-sjnVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfh1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjoloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfiFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfiVoGEeS2WoXr83SnEA" actual="__-sjoloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfiloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjdFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfi1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfjFoGEeS2WoXr83SnEA" actual="__-sjdFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfjVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sj9FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfjloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfj1oGEeS2WoXr83SnEA" actual="__-sj9FoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfkFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sj-loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfkVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfkloGEeS2WoXr83SnEA" actual="__-sj-loGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfk1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sj21oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sflFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sflVoGEeS2WoXr83SnEA" actual="__-sj21oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sflloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sj5VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfl1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfmFoGEeS2WoXr83SnEA" actual="__-sj5VoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfmVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sj6loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfmloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfm1oGEeS2WoXr83SnEA" actual="__-sj6loGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfnFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sj4VoGEeS2WoXr83SnEA" elementType="__-sjyFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfnVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfnloGEeS2WoXr83SnEA" actual="__-sjyFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfn1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-skFFoGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfoFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfoVoGEeS2WoXr83SnEA" actual="__-skDloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfoloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sheloGEeS2WoXr83SnEA" instanceType="__-sheVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfo1oGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfpFoGEeS2WoXr83SnEA" actual="__-sheVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfpVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-shmVoGEeS2WoXr83SnEA" instanceType="__-shmFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfploGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfp1oGEeS2WoXr83SnEA" actual="__-shmFoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfqFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-shnloGEeS2WoXr83SnEA" instanceType="__-shnVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfqVoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfqloGEeS2WoXr83SnEA" actual="__-shnVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfq1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-siFFoGEeS2WoXr83SnEA" instanceType="__-siE1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfrFoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfrVoGEeS2WoXr83SnEA" actual="__-siE1oGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfrloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-siGVoGEeS2WoXr83SnEA" instanceType="__-siGFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfr1oGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfsFoGEeS2WoXr83SnEA" actual="__-siGFoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfsVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sifVoGEeS2WoXr83SnEA" instanceType="__-sifFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfsloGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfs1oGEeS2WoXr83SnEA" actual="__-sifFoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sftFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-siiFoGEeS2WoXr83SnEA" instanceType="__-sih1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sftVoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sftloGEeS2WoXr83SnEA" actual="__-sih1oGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sft1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sikFoGEeS2WoXr83SnEA" instanceType="__-sij1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfuFoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfuVoGEeS2WoXr83SnEA" actual="__-sij1oGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfuloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-siyFoGEeS2WoXr83SnEA" instanceType="__-six1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfu1oGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfvFoGEeS2WoXr83SnEA" actual="__-six1oGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfvVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sizloGEeS2WoXr83SnEA" instanceType="__-sizVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfvloGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfv1oGEeS2WoXr83SnEA" actual="__-sizVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfwFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-si01oGEeS2WoXr83SnEA" instanceType="__-si0loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfwVoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfwloGEeS2WoXr83SnEA" actual="__-si0loGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfw1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" instanceType="__-sitVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfxFoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfxVoGEeS2WoXr83SnEA" actual="__-sitVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfxloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-simFoGEeS2WoXr83SnEA __-si1VoGEeS2WoXr83SnEA" instanceType="__-si5loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfx1oGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfyFoGEeS2WoXr83SnEA" actual="__-si5loGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfyVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" instanceType="__-si-1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfyloGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfy1oGEeS2WoXr83SnEA" actual="__-si-1oGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfzFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sjSloGEeS2WoXr83SnEA" instanceType="__-sjSVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sfzVoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sfzloGEeS2WoXr83SnEA" actual="__-sjSVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfz1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sjT1oGEeS2WoXr83SnEA" instanceType="__-sjTloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf0FoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf0VoGEeS2WoXr83SnEA" actual="__-sjTloGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sf0loGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sjnloGEeS2WoXr83SnEA" instanceType="__-sjnVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf01oGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf1FoGEeS2WoXr83SnEA" actual="__-sjnVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sf1VoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sjo1oGEeS2WoXr83SnEA" instanceType="__-sjoloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf1loGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf11oGEeS2WoXr83SnEA" actual="__-sjoloGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sf2FoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sj5loGEeS2WoXr83SnEA" instanceType="__-sj5VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf2VoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf2loGEeS2WoXr83SnEA" actual="__-sj5VoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sf21oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sj61oGEeS2WoXr83SnEA" instanceType="__-sj6loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf3FoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf3VoGEeS2WoXr83SnEA" actual="__-sj6loGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf3loGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfG1oGEeS2WoXr83SnEA" elementType="__-sgvloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf31oGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf4FoGEeS2WoXr83SnEA" actual="__-sgvloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf4VoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfHloGEeS2WoXr83SnEA" elementType="__-shEloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf4loGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf41oGEeS2WoXr83SnEA" actual="__-shEloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf5FoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfM1oGEeS2WoXr83SnEA" elementType="__-shfloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf5VoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf5loGEeS2WoXr83SnEA" actual="__-shfloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf51oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfTloGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf6FoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf6VoGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf6loGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfVFoGEeS2WoXr83SnEA" elementType="__-siZFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf61oGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf7FoGEeS2WoXr83SnEA" actual="__-siZFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf7VoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfaVoGEeS2WoXr83SnEA" elementType="__-sjXFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf7loGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf71oGEeS2WoXr83SnEA" actual="__-sjXFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf8FoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfbFoGEeS2WoXr83SnEA" elementType="__-sjYloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf8VoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf8loGEeS2WoXr83SnEA" actual="__-sjYloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf81oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfb1oGEeS2WoXr83SnEA" elementType="__-sjNloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf9FoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf9VoGEeS2WoXr83SnEA" actual="__-sjNloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf9loGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfcloGEeS2WoXr83SnEA" elementType="__-sjSVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf91oGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf-FoGEeS2WoXr83SnEA" actual="__-sjSVoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf-VoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfdVoGEeS2WoXr83SnEA" elementType="__-sjTloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf-loGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf-1oGEeS2WoXr83SnEA" actual="__-sjTloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf_FoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfeFoGEeS2WoXr83SnEA" typedElement="__-sjLFoGEeS2WoXr83SnEA __-sjQ1oGEeS2WoXr83SnEA" elementType="__-sjH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sf_VoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sf_loGEeS2WoXr83SnEA" actual="__-sjH1oGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf_1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfe1oGEeS2WoXr83SnEA" elementType="__-sjsFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgAFoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgAVoGEeS2WoXr83SnEA" actual="__-sjsFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgAloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sffloGEeS2WoXr83SnEA" elementType="__-sjtloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgA1oGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgBFoGEeS2WoXr83SnEA" actual="__-sjtloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgBVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfgVoGEeS2WoXr83SnEA" elementType="__-sjiloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgBloGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgB1oGEeS2WoXr83SnEA" actual="__-sjiloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgCFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfhFoGEeS2WoXr83SnEA" elementType="__-sjnVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgCVoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgCloGEeS2WoXr83SnEA" actual="__-sjnVoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgC1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfh1oGEeS2WoXr83SnEA" elementType="__-sjoloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgDFoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgDVoGEeS2WoXr83SnEA" actual="__-sjoloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgDloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfiloGEeS2WoXr83SnEA" typedElement="__-sjf1oGEeS2WoXr83SnEA __-sjl1oGEeS2WoXr83SnEA" elementType="__-sjdFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgD1oGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgEFoGEeS2WoXr83SnEA" actual="__-sjdFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgEVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfnFoGEeS2WoXr83SnEA" elementType="__-sjyFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgEloGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgE1oGEeS2WoXr83SnEA" actual="__-sjyFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgFFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+        superClass="__-sfn1oGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgFVoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgFloGEeS2WoXr83SnEA" actual="__-skDloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgF1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+        superClass="__-sf51oGEeS2WoXr83SnEA __-sgcVoGEeS2WoXr83SnEA" typedElement="__-sh0FoGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgGFoGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgGVoGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgGloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+        superClass="__-sf6loGEeS2WoXr83SnEA __-sgdFoGEeS2WoXr83SnEA" typedElement="__-siYFoGEeS2WoXr83SnEA" elementType="__-siZFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgG1oGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgHFoGEeS2WoXr83SnEA" actual="__-siZFoGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgHVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+        superClass="__-sf81oGEeS2WoXr83SnEA __-sggFoGEeS2WoXr83SnEA" typedElement="__-sjM1oGEeS2WoXr83SnEA" elementType="__-sjNloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgHloGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgH1oGEeS2WoXr83SnEA" actual="__-sjNloGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgIFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+        superClass="__-sf9loGEeS2WoXr83SnEA __-sgg1oGEeS2WoXr83SnEA" typedElement="__-sjRloGEeS2WoXr83SnEA" elementType="__-sjSVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgIVoGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgIloGEeS2WoXr83SnEA" actual="__-sjSVoGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgI1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+        superClass="__-sf-VoGEeS2WoXr83SnEA __-sghloGEeS2WoXr83SnEA" typedElement="__-sjS1oGEeS2WoXr83SnEA" elementType="__-sjTloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgJFoGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgJVoGEeS2WoXr83SnEA" actual="__-sjTloGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgJloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+        superClass="__-sgDloGEeS2WoXr83SnEA __-sgjFoGEeS2WoXr83SnEA" typedElement="__-sjqFoGEeS2WoXr83SnEA" elementType="__-sjdFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgJ1oGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgKFoGEeS2WoXr83SnEA" actual="__-sjdFoGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgKVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+        superClass="__-sgEVoGEeS2WoXr83SnEA __-sgmFoGEeS2WoXr83SnEA" typedElement="__-skBVoGEeS2WoXr83SnEA" elementType="__-sjyFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgKloGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgK1oGEeS2WoXr83SnEA" actual="__-sjyFoGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgLFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+        superClass="__-sgFFoGEeS2WoXr83SnEA __-sgm1oGEeS2WoXr83SnEA" typedElement="__-skG1oGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgLVoGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgLloGEeS2WoXr83SnEA" actual="__-skDloGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgL1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+        superClass="__-sf3loGEeS2WoXr83SnEA" elementType="__-sgvloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgMFoGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgMVoGEeS2WoXr83SnEA" actual="__-sgvloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgMloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+        superClass="__-sf4VoGEeS2WoXr83SnEA" typedElement="__-shKVoGEeS2WoXr83SnEA __-shaVoGEeS2WoXr83SnEA __-sha1oGEeS2WoXr83SnEA __-shbloGEeS2WoXr83SnEA"
+        elementType="__-shEloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgM1oGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgNFoGEeS2WoXr83SnEA" actual="__-shEloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgNVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+        superClass="__-sf5FoGEeS2WoXr83SnEA" typedElement="__-shuFoGEeS2WoXr83SnEA" elementType="__-shfloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgNloGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgN1oGEeS2WoXr83SnEA" actual="__-shfloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgOFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+        superClass="__-sf51oGEeS2WoXr83SnEA" typedElement="__-sh0loGEeS2WoXr83SnEA __-siWloGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgOVoGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgOloGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgO1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+        superClass="__-sf7VoGEeS2WoXr83SnEA" typedElement="__-sjWFoGEeS2WoXr83SnEA" elementType="__-sjXFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgPFoGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgPVoGEeS2WoXr83SnEA" actual="__-sjXFoGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgPloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+        superClass="__-sf8FoGEeS2WoXr83SnEA" typedElement="__-sjX1oGEeS2WoXr83SnEA" elementType="__-sjYloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgP1oGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgQFoGEeS2WoXr83SnEA" actual="__-sjYloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgQVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+        superClass="__-sf_1oGEeS2WoXr83SnEA" typedElement="__-sjrFoGEeS2WoXr83SnEA" elementType="__-sjsFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgQloGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgQ1oGEeS2WoXr83SnEA" actual="__-sjsFoGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgRFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+        superClass="__-sgAloGEeS2WoXr83SnEA" typedElement="__-sjs1oGEeS2WoXr83SnEA" elementType="__-sjtloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgRVoGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgRloGEeS2WoXr83SnEA" actual="__-sjtloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgR1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+        superClass="__-sgBVoGEeS2WoXr83SnEA" typedElement="__-sjhloGEeS2WoXr83SnEA" elementType="__-sjiloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgSFoGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgSVoGEeS2WoXr83SnEA" actual="__-sjiloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgSloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+        superClass="__-sgCFoGEeS2WoXr83SnEA" typedElement="__-sjmloGEeS2WoXr83SnEA" elementType="__-sjnVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgS1oGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgTFoGEeS2WoXr83SnEA" actual="__-sjnVoGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgTVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+        superClass="__-sgC1oGEeS2WoXr83SnEA" typedElement="__-sjn1oGEeS2WoXr83SnEA" elementType="__-sjoloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgTloGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgT1oGEeS2WoXr83SnEA" actual="__-sjoloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgUFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+        superClass="__-sga1oGEeS2WoXr83SnEA" typedElement="__-siCloGEeS2WoXr83SnEA" elementType="__-se91oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgUVoGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgUloGEeS2WoXr83SnEA" actual="__-se91oGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgU1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+        superClass="__-sgbloGEeS2WoXr83SnEA" typedElement="__-shn1oGEeS2WoXr83SnEA" elementType="__-shfloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgVFoGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgVVoGEeS2WoXr83SnEA" actual="__-shfloGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgVloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+        superClass="__-sgcVoGEeS2WoXr83SnEA" typedElement="__-sh1FoGEeS2WoXr83SnEA __-sh_1oGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgV1oGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgWFoGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgWVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+        superClass="__-sgeloGEeS2WoXr83SnEA" typedElement="__-sis1oGEeS2WoXr83SnEA" elementType="__-sirVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgWloGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgW1oGEeS2WoXr83SnEA" actual="__-sirVoGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgXFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+        superClass="__-sgfVoGEeS2WoXr83SnEA" typedElement="__-sgp1oGEeS2WoXr83SnEA __-siYloGEeS2WoXr83SnEA __-sidloGEeS2WoXr83SnEA __-sir1oGEeS2WoXr83SnEA __-sivVoGEeS2WoXr83SnEA __-siw1oGEeS2WoXr83SnEA __-sjAloGEeS2WoXr83SnEA"
+        elementType="__-si5loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgXVoGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgXloGEeS2WoXr83SnEA" actual="__-si5loGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgX1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+        superClass="__-sgj1oGEeS2WoXr83SnEA" typedElement="__-sj11oGEeS2WoXr83SnEA" elementType="__-sj21oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgYFoGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgYVoGEeS2WoXr83SnEA" actual="__-sj21oGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgYloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+        superClass="__-sgkloGEeS2WoXr83SnEA" typedElement="__-sj4loGEeS2WoXr83SnEA" elementType="__-sj5VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgY1oGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgZFoGEeS2WoXr83SnEA" actual="__-sj5VoGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgZVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+        superClass="__-sglVoGEeS2WoXr83SnEA" typedElement="__-sj51oGEeS2WoXr83SnEA" elementType="__-sj6loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgZloGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgZ1oGEeS2WoXr83SnEA" actual="__-sj6loGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgaFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+        superClass="__-sgm1oGEeS2WoXr83SnEA" typedElement="__-skEloGEeS2WoXr83SnEA __-skFVoGEeS2WoXr83SnEA __-skGFoGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgaVoGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgaloGEeS2WoXr83SnEA" actual="__-skDloGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sga1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfIVoGEeS2WoXr83SnEA" elementType="__-se91oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgbFoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgbVoGEeS2WoXr83SnEA" actual="__-se91oGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgbloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfM1oGEeS2WoXr83SnEA" elementType="__-shfloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgb1oGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgcFoGEeS2WoXr83SnEA" actual="__-shfloGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgcVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfTloGEeS2WoXr83SnEA" typedElement="__-siAVoGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgcloGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgc1oGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgdFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfVFoGEeS2WoXr83SnEA" elementType="__-siZFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgdVoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgdloGEeS2WoXr83SnEA" actual="__-siZFoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgd1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfXVoGEeS2WoXr83SnEA" typedElement="__-sjIloGEeS2WoXr83SnEA __-sjy1oGEeS2WoXr83SnEA __-skEVoGEeS2WoXr83SnEA __-skF1oGEeS2WoXr83SnEA"
+        elementType="__-sibloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgeFoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgeVoGEeS2WoXr83SnEA" actual="__-sibloGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgeloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfYFoGEeS2WoXr83SnEA" elementType="__-sirVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sge1oGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgfFoGEeS2WoXr83SnEA" actual="__-sirVoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgfVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfY1oGEeS2WoXr83SnEA" elementType="__-si5loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgfloGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgf1oGEeS2WoXr83SnEA" actual="__-si5loGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sggFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfb1oGEeS2WoXr83SnEA" elementType="__-sjNloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sggVoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sggloGEeS2WoXr83SnEA" actual="__-sjNloGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgg1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfcloGEeS2WoXr83SnEA" elementType="__-sjSVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sghFoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sghVoGEeS2WoXr83SnEA" actual="__-sjSVoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sghloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfdVoGEeS2WoXr83SnEA" elementType="__-sjTloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgh1oGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgiFoGEeS2WoXr83SnEA" actual="__-sjTloGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgiVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfeFoGEeS2WoXr83SnEA" elementType="__-sjH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgiloGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgi1oGEeS2WoXr83SnEA" actual="__-sjH1oGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgjFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfiloGEeS2WoXr83SnEA" elementType="__-sjdFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgjVoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgjloGEeS2WoXr83SnEA" actual="__-sjdFoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgj1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfk1oGEeS2WoXr83SnEA" elementType="__-sj21oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgkFoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgkVoGEeS2WoXr83SnEA" actual="__-sj21oGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgkloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sflloGEeS2WoXr83SnEA" elementType="__-sj5VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgk1oGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sglFoGEeS2WoXr83SnEA" actual="__-sj5VoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sglVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfmVoGEeS2WoXr83SnEA" elementType="__-sj6loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sglloGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgl1oGEeS2WoXr83SnEA" actual="__-sj6loGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgmFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfnFoGEeS2WoXr83SnEA" elementType="__-sjyFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgmVoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgmloGEeS2WoXr83SnEA" actual="__-sjyFoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgm1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+        superClass="__-sfn1oGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__-sgnFoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__-sgnVoGEeS2WoXr83SnEA" actual="__-skDloGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="__-sgnloGEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+    <ownedComment xmi:id="__-sgn1oGEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.&#xA;This sub clause contains all standard types defined within OCL, including all the operations defined on those types.&#xA;For each operation the signature and a description of the semantics is given.&#xA;Within the description, the reserved word &#x2018;result&#x2019; is used to refer to the value that results from evaluating the operation.&#xA;In several places, post conditions are used to describe properties of the result.&#xA;When there is more than one postcondition, all postconditions must be true.&#xA;A similar thing is true for multiple preconditions.&#xA;If these are used, the operation is only defined if all preconditions evaluate to oclText[true].&#xA;&#xA;heading:1[Introduction]&#xA;&#xA;The structure, syntax, and semantics of the OCL is defined in Clauses 8 (&#x201c;Abstract Syntax&#x201d;), 9 (&#x201c;Concrete Syntax&#x201d;),&#xA;and 10 (&#x201c;Semantics Described using UML&#x201d;).&#xA;This sub clause adds another part to the OCL definition: a library of predefined types and operations.&#xA;Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,&#xA;where the language definition and the standard libraries are both mandatory parts of the complete language definition.&#xA;&#xA;The OCL standard library defines a number of types.&#xA;It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.&#xA;These are familiar from many other languages. The second part of the standard library consists of the collection types.&#xA;They are Bag, Set, Sequence, and Collection where Collection is an abstract type.&#xA;Note that all types defined in the OCL standard library are instances of an abstract syntax class.&#xA;The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.&#xA;&#xA;Next to definitions of types the OCL standard library defines a number of template expressions.&#xA;Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.&#xA;For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.&#xA;&#xA;The Standard Library may be extended with new types, new operations and new iterators.&#xA;In particular new operations can be defined for collections.&#xA;&#xA;Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted&#xA;in an appropriate fashion.&#xA;A locale is defined as a concatenation of up to three character sequences separated by underscores,&#xA;with the first sequence identifying the language and the second sequence identifying the country.&#xA;The third sequence is empty but may encode an implementation-specific variant.&#xA;Trailing empty strings and separators may be omitted.&#xA;&#xA;The character sequences for languages are defined by ISO 639.&#xA;&#xA;The character sequences for countries are defined by ISO 3166.&#xA;&#xA;&#x2018;fr_CA&#x2019; therefore identifies the locale for the French language in the Canada country.&#xA;&#xA;Comparison of strings and consequently the collation order of Collection::sortedBy()&#xA;conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.&#xA;&#xA;The locale is &#x2018;en_us&#x2019; by default but may be configured by a property constraint on OclAny::oclLocale.&#xA;&#xA;The prevailing locale is defined by the prevailing value of oclLocale within the current environment;&#xA;it may therefore be changed temporarily by using a Let expression.&#xA;let oclLocale : String = &#x2018;fr_CA&#x2019; in aString.toUpperCase()&#xA;&#xA;heading:1[Iterators]&#xA;&#xA;This sub clause defines the standard OCL iterator expressions.&#xA;In the abstract syntax these are all instances of IteratorExp.&#xA;These iterator expressions always have a collection expression as their source,&#xA;as is defined in the well-formedness rules in Clause 8 (&#x201c;Abstract Syntax&#x201d;).&#xA;The defined iterator expressions are shown per source collection type.&#xA;The semantics of each iterator expression is defined through a mapping from the iterator to the &#x2018;iterate&#x2019; construct.&#xA;This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.&#xA;&#xA;In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,&#xA;and the righthand side of the equals sign is the equivalent as an IterateExp.&#xA;The names source, body, and iterator refer to the role names in the abstract syntax:&#xA;&#xA;source&#x9;The source expression of the IteratorExp.&#xA;&#xA;body&#x9;The body expression of the IteratorExp.&#xA;&#xA;iterator&#x9;The iterator variable of the IteratorExp.&#xA;&#xA;result&#x9;The result variable of the IterateExp.&#xA;&#xA;heading:2[Extending the Standard Library with Iterator Expressions]&#xA;&#xA;It is possible to add new iterator expressions in the standard library.&#xA;If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,&#xA;in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__-sgoFoGEeS2WoXr83SnEA" name="Boolean" superClass="__-sibloGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__-sgoVoGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgoloGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__-sgo1oGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgpFoGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgpVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__-sgploGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgp1oGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+        <ownedComment xmi:id="__-sgqFoGEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgqVoGEeS2WoXr83SnEA" name="and" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isInvalidating="true" isValidating="true" precedence="__-skJVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgqloGEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[true]."/>
+        <bodyExpression xmi:id="__-sgq1oGEeS2WoXr83SnEA" type="__-sgoFoGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = false then false
+		        else self
+		        endif endif
+		      else if self = false then false
+		      else if b.oclIsInvalid() then b
+		      else if b = false then false
+		      else if self = null then null
+		      else if b = null then null
+		      else true
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__-sgrFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgrVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isInvalidating="true" isValidating="true" precedence="__-skKFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgrloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="__-sgr1oGEeS2WoXr83SnEA" type="__-sgoFoGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = true then true
+		        else self
+		        endif endif
+		      else if self = false then true
+		      else if b.oclIsInvalid() then b
+		      else if b = true then true
+		      else if self = null then null
+		      else if b = null then b
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__-sgsFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgsVoGEeS2WoXr83SnEA" name="not" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+          precedence="__-skIFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgsloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].&#xA;oclText[false] if oclText[self] is oclText[true].&#xA;oclText[null] if oclText[self] is oclText[null].&#xA;Otherwise oclText[invalid]."/>
+        <bodyExpression xmi:id="__-sgs1oGEeS2WoXr83SnEA" type="__-sgoFoGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if self = null then null
+		      else self = false
+		      endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgtFoGEeS2WoXr83SnEA" name="or" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+          isInvalidating="true" isValidating="true" precedence="__-skJloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgtVoGEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="__-sgtloGEeS2WoXr83SnEA" type="__-sgoFoGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+			    else if b = true then true
+		        else self
+		        endif endif
+		      else if self = true then true
+			  else if b.oclIsInvalid() then b
+			  else if b = true then true
+			  else if self = null then null
+			  else if b = null then null
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__-sgt1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sguFoGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__-sguVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sguloGEeS2WoXr83SnEA" name="xor" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+          precedence="__-skJ1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgu1oGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].&#xA;oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null]."/>
+        <bodyExpression xmi:id="__-sgvFoGEeS2WoXr83SnEA" type="__-sgoFoGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if b.oclIsInvalid() then b
+		      else if self = null then null
+		      else if b = null then null
+		      else self &lt;> b
+		      endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__-sgvVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgoVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgpFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgqVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__-sgq1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sgrFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgrVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__-sgr1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sgsFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgsVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__-sgs1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgtFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__-sgtloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sgt1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sguloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__-sgvFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sgvVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg71oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg8loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg9VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg-FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg-1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg_loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shFloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shGVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shHFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shHloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shIFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shI1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shMVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shNFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shPVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shSloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shWVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shcVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shf1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shgVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shyFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shy1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sh2VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sh3FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sh7VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sh8FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-siAloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-siCFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siM1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siN1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siO1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siP1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siQ1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siTloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sicFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sic1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sifloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sigVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sig1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-siiVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sii1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sikVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sinloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sioVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sipFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sip1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sit1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-siuloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-siv1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-siwFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-siwVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-siwloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-siyVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-siyloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-siz1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-si1FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-si1loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-si11oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-si3loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-si4FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-si4loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-si8loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-si9FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-si-FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-si_VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-si_1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjBFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sjBVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjBloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sjB1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjCFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjCVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjCloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sjC1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjI1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjJVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjdVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjd1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjzFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjzloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="ClassMM_IN.xml#__-seo1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:BooleanLiteralExp" href="AbstractToConcrete.xml#__-skNVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__-sgvloGEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="__-sfHVoGEeS2WoXr83SnEA __-sf4FoGEeS2WoXr83SnEA __-sgMVoGEeS2WoXr83SnEA"
+        superClass="__-sg4FoGEeS2WoXr83SnEA" typedElement="__-sgv1oGEeS2WoXr83SnEA __-sgwloGEeS2WoXr83SnEA __-sgxVoGEeS2WoXr83SnEA __-sgx1oGEeS2WoXr83SnEA __-sgzVoGEeS2WoXr83SnEA __-sgz1oGEeS2WoXr83SnEA __-sg0loGEeS2WoXr83SnEA __-sg1FoGEeS2WoXr83SnEA __-sg1VoGEeS2WoXr83SnEA __-sg2FoGEeS2WoXr83SnEA __-sg21oGEeS2WoXr83SnEA __-sg3VoGEeS2WoXr83SnEA __-shA1oGEeS2WoXr83SnEA __-shBloGEeS2WoXr83SnEA __-shDloGEeS2WoXr83SnEA __-shKFoGEeS2WoXr83SnEA __-shK1oGEeS2WoXr83SnEA __-shN1oGEeS2WoXr83SnEA __-shOloGEeS2WoXr83SnEA __-shSFoGEeS2WoXr83SnEA __-shV1oGEeS2WoXr83SnEA __-shWFoGEeS2WoXr83SnEA __-shW1oGEeS2WoXr83SnEA __-shxFoGEeS2WoXr83SnEA __-shxloGEeS2WoXr83SnEA __-sh1loGEeS2WoXr83SnEA __-siGloGEeS2WoXr83SnEA __-siqloGEeS2WoXr83SnEA __-sjFFoGEeS2WoXr83SnEA __-sjF1oGEeS2WoXr83SnEA __-sjPFoGEeS2WoXr83SnEA __-sjUloGEeS2WoXr83SnEA __-sjU1oGEeS2WoXr83SnEA __-sjkFoGEeS2WoXr83SnEA __-sjploGEeS2WoXr83SnEA __-sjp1oGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__-sgv1oGEeS2WoXr83SnEA" name="*" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="__-skIVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgwFoGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+        <ownedParameter xmi:id="__-sgwVoGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgwloGEeS2WoXr83SnEA" name="+" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="__-skIloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgw1oGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+        <ownedParameter xmi:id="__-sgxFoGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgxVoGEeS2WoXr83SnEA" name="-" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="__-skIFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgxloGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgx1oGEeS2WoXr83SnEA" name="-" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="__-skIloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgyFoGEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+        <ownedParameter xmi:id="__-sgyVoGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgyloGEeS2WoXr83SnEA" name="/" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="__-skIVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sgy1oGEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.&#xA;Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="__-sgzFoGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgzVoGEeS2WoXr83SnEA" name="abs" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="__-sgzloGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sgz1oGEeS2WoXr83SnEA" name="compareTo" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="__-sg0FoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="__-sg0VoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg0loGEeS2WoXr83SnEA" name="div" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+        <ownedComment xmi:id="__-sg01oGEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+        <ownedParameter xmi:id="__-sg1FoGEeS2WoXr83SnEA" name="i" type="__-sgvloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg1VoGEeS2WoXr83SnEA" name="max" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="__-sg1loGEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+        <ownedParameter xmi:id="__-sg11oGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg2FoGEeS2WoXr83SnEA" name="min" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="__-sg2VoGEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+        <ownedParameter xmi:id="__-sg2loGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg21oGEeS2WoXr83SnEA" name="mod" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+        <ownedComment xmi:id="__-sg3FoGEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+        <ownedParameter xmi:id="__-sg3VoGEeS2WoXr83SnEA" name="i" type="__-sgvloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg3loGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__-sg31oGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__-sg4FoGEeS2WoXr83SnEA" name="Real" superClass="__-sinFoGEeS2WoXr83SnEA __-si6VoGEeS2WoXr83SnEA"
+        typedElement="__-sgyloGEeS2WoXr83SnEA __-sg4VoGEeS2WoXr83SnEA __-sg5FoGEeS2WoXr83SnEA __-sg51oGEeS2WoXr83SnEA __-sg6VoGEeS2WoXr83SnEA __-sg7FoGEeS2WoXr83SnEA __-shAVoGEeS2WoXr83SnEA __-shCFoGEeS2WoXr83SnEA __-shC1oGEeS2WoXr83SnEA __-shYVoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__-sg4VoGEeS2WoXr83SnEA" name="*" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="__-skIVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sg4loGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+        <ownedParameter xmi:id="__-sg41oGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg5FoGEeS2WoXr83SnEA" name="+" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="__-skIloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sg5VoGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+        <ownedParameter xmi:id="__-sg5loGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg51oGEeS2WoXr83SnEA" name="-" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="__-skIFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sg6FoGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg6VoGEeS2WoXr83SnEA" name="-" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="__-skIloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sg6loGEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+        <ownedParameter xmi:id="__-sg61oGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg7FoGEeS2WoXr83SnEA" name="/" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="__-skIVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sg7VoGEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="__-sg7loGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg71oGEeS2WoXr83SnEA" name="&lt;" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sg8FoGEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+        <ownedParameter xmi:id="__-sg8VoGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg8loGEeS2WoXr83SnEA" name="&lt;=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sg81oGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+        <ownedParameter xmi:id="__-sg9FoGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg9VoGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sg9loGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__-sg91oGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg-FoGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sg-VoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__-sg-loGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg-1oGEeS2WoXr83SnEA" name=">" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sg_FoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+        <ownedParameter xmi:id="__-sg_VoGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sg_loGEeS2WoXr83SnEA" name=">=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sg_1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+        <ownedParameter xmi:id="__-shAFoGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shAVoGEeS2WoXr83SnEA" name="abs" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="__-shAloGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shA1oGEeS2WoXr83SnEA" name="compareTo" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="__-shBFoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="__-shBVoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shBloGEeS2WoXr83SnEA" name="floor" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+        <ownedComment xmi:id="__-shB1oGEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shCFoGEeS2WoXr83SnEA" name="max" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="__-shCVoGEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+        <ownedParameter xmi:id="__-shCloGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shC1oGEeS2WoXr83SnEA" name="min" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="__-shDFoGEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+        <ownedParameter xmi:id="__-shDVoGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shDloGEeS2WoXr83SnEA" name="round" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+        <ownedComment xmi:id="__-shD1oGEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shEFoGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__-shEVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__-shEloGEeS2WoXr83SnEA" name="String" templateParameterSubstitution="__-sfIFoGEeS2WoXr83SnEA __-sf41oGEeS2WoXr83SnEA __-sgNFoGEeS2WoXr83SnEA"
+        superClass="__-sinFoGEeS2WoXr83SnEA __-si6VoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__-shE1oGEeS2WoXr83SnEA" name="+" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+          precedence="__-skIloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-shFFoGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="__-shFVoGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shFloGEeS2WoXr83SnEA" name="&lt;" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-shF1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__-shGFoGEeS2WoXr83SnEA" name="s" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shGVoGEeS2WoXr83SnEA" name="&lt;=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-shGloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__-shG1oGEeS2WoXr83SnEA" name="s" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shHFoGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-shHVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shHloGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-shH1oGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shIFoGEeS2WoXr83SnEA" name=">" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-shIVoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__-shIloGEeS2WoXr83SnEA" name="s" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shI1oGEeS2WoXr83SnEA" name=">=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-shJFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__-shJVoGEeS2WoXr83SnEA" name="s" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shJloGEeS2WoXr83SnEA" name="at" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-shJ1oGEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+        <ownedParameter xmi:id="__-shKFoGEeS2WoXr83SnEA" name="i" type="__-sgvloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shKVoGEeS2WoXr83SnEA" name="characters" type="__-sgMloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+        <ownedComment xmi:id="__-shKloGEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shK1oGEeS2WoXr83SnEA" name="compareTo" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+        <ownedComment xmi:id="__-shLFoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="__-shLVoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shLloGEeS2WoXr83SnEA" name="concat" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+        <ownedComment xmi:id="__-shL1oGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="__-shMFoGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shMVoGEeS2WoXr83SnEA" name="endsWith" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+        <ownedComment xmi:id="__-shMloGEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.&#xA;Every string ends with the empty string."/>
+        <ownedParameter xmi:id="__-shM1oGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shNFoGEeS2WoXr83SnEA" name="equalsIgnoreCase" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+        <ownedComment xmi:id="__-shNVoGEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+        <ownedParameter xmi:id="__-shNloGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shN1oGEeS2WoXr83SnEA" name="indexOf" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+        <ownedComment xmi:id="__-shOFoGEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="__-shOVoGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shOloGEeS2WoXr83SnEA" name="lastIndexOf" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+        <ownedComment xmi:id="__-shO1oGEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="__-shPFoGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shPVoGEeS2WoXr83SnEA" name="matches" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+        <ownedComment xmi:id="__-shPloGEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+        <ownedParameter xmi:id="__-shP1oGEeS2WoXr83SnEA" name="regex" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shQFoGEeS2WoXr83SnEA" name="replaceAll" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-shQVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+        <ownedParameter xmi:id="__-shQloGEeS2WoXr83SnEA" name="regex" type="__-shEloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__-shQ1oGEeS2WoXr83SnEA" name="replacement" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shRFoGEeS2WoXr83SnEA" name="replaceFirst" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-shRVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+        <ownedParameter xmi:id="__-shRloGEeS2WoXr83SnEA" name="regex" type="__-shEloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__-shR1oGEeS2WoXr83SnEA" name="replacement" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shSFoGEeS2WoXr83SnEA" name="size" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+        <ownedComment xmi:id="__-shSVoGEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shSloGEeS2WoXr83SnEA" name="startsWith" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+        <ownedComment xmi:id="__-shS1oGEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.&#xA;Every string starts with the empty string."/>
+        <ownedParameter xmi:id="__-shTFoGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shTVoGEeS2WoXr83SnEA" name="substituteAll" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+        <ownedComment xmi:id="__-shTloGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+        <ownedParameter xmi:id="__-shT1oGEeS2WoXr83SnEA" name="oldSubstring" type="__-shEloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__-shUFoGEeS2WoXr83SnEA" name="newSubstring" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shUVoGEeS2WoXr83SnEA" name="substituteFirst" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+        <ownedComment xmi:id="__-shUloGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.&#xA;Returns invalid if there is no first occurrence."/>
+        <ownedParameter xmi:id="__-shU1oGEeS2WoXr83SnEA" name="oldSubstring" type="__-shEloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__-shVFoGEeS2WoXr83SnEA" name="newSubstring" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shVVoGEeS2WoXr83SnEA" name="substring" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-shVloGEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+        <ownedParameter xmi:id="__-shV1oGEeS2WoXr83SnEA" name="lower" type="__-sgvloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__-shWFoGEeS2WoXr83SnEA" name="upper" type="__-sgvloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shWVoGEeS2WoXr83SnEA" name="toBoolean" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-shWloGEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shW1oGEeS2WoXr83SnEA" name="toInteger" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-shXFoGEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shXVoGEeS2WoXr83SnEA" name="toLower" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="__-shXloGEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shX1oGEeS2WoXr83SnEA" name="toLowerCase" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="__-shYFoGEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shYVoGEeS2WoXr83SnEA" name="toReal" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-shYloGEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shY1oGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__-shZFoGEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shZVoGEeS2WoXr83SnEA" name="toUpper" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="__-shZloGEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shZ1oGEeS2WoXr83SnEA" name="toUpperCase" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="__-shaFoGEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shaVoGEeS2WoXr83SnEA" name="tokenize" type="__-sgMloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="__-shaloGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.&#xA;The delimiters are omitted from the return."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sha1oGEeS2WoXr83SnEA" name="tokenize" type="__-sgMloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="__-shbFoGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+        <ownedParameter xmi:id="__-shbVoGEeS2WoXr83SnEA" name="delimiters" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shbloGEeS2WoXr83SnEA" name="tokenize" type="__-sgMloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="__-shb1oGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is&#xA;true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+        <ownedParameter xmi:id="__-shcFoGEeS2WoXr83SnEA" name="delimiters" type="__-shEloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__-shcVoGEeS2WoXr83SnEA" name="returnDelimiters" type="__-sgoFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shcloGEeS2WoXr83SnEA" name="trim" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+        <ownedComment xmi:id="__-shc1oGEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sguFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg3loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shEFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shE1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shFVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shJloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shLloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shMFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shM1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shNloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shOVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shPFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shP1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shQFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shQloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shQ1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shRFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shRloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shR1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shTFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shTVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shT1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shUFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shUVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shU1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shVFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shVVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shXVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shX1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shY1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shZVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shZ1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shbVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shcFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-shcloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sil1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-simloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-si2FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjDFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="ClassMM_IN.xml#__-seqVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="ClassMM_IN.xml#__-serFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="ClassMM_IN.xml#__-sesVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skOVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skPVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skRloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skSloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skTloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skT1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__-shdFoGEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="__-sgvloGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__-shdVoGEeS2WoXr83SnEA" name="oclAsType" type="__-sheVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+        <ownedComment xmi:id="__-shdloGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to&#xA;Real or Integer, but the e[unlimited] value may not.&#xA;Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+        <ownedTemplateSignature xmi:id="__-shd1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sheFoGEeS2WoXr83SnEA" parameteredElement="__-sheVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sheVoGEeS2WoXr83SnEA" name="TT" templateParameter="__-sheFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfpFoGEeS2WoXr83SnEA" typedElement="__-shdVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sheloGEeS2WoXr83SnEA" name="type" type="__-sfoloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-she1oGEeS2WoXr83SnEA" name="Bag" superClass="__-sfM1oGEeS2WoXr83SnEA" typedElement="__-shhFoGEeS2WoXr83SnEA __-shh1oGEeS2WoXr83SnEA __-shj1oGEeS2WoXr83SnEA __-shkloGEeS2WoXr83SnEA __-shsFoGEeS2WoXr83SnEA __-shtFoGEeS2WoXr83SnEA"
+        elementType="__-shfloGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__-shfFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shfVoGEeS2WoXr83SnEA" parameteredElement="__-shfloGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shfloGEeS2WoXr83SnEA" name="T" templateParameter="__-shfVoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__-sfNVoGEeS2WoXr83SnEA __-sf5loGEeS2WoXr83SnEA __-sgN1oGEeS2WoXr83SnEA __-sgVVoGEeS2WoXr83SnEA __-sgcFoGEeS2WoXr83SnEA"
+              typedElement="__-shkVoGEeS2WoXr83SnEA __-sholoGEeS2WoXr83SnEA __-shqVoGEeS2WoXr83SnEA __-shr1oGEeS2WoXr83SnEA __-shs1oGEeS2WoXr83SnEA __-sht1oGEeS2WoXr83SnEA __-shu1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-se_FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-se_1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfAloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfBVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfCFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfC1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfDloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfEVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfFFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfF1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfGloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-seuVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-sevFoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="#__-se-1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-se_loGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfAVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfBFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfB1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfCloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfDVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfEFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfE1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfFloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfGVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-seuFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-seu1oGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__-shf1oGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-shgFoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shgVoGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-shgloGEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+        <ownedParameter xmi:id="__-shg1oGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shhFoGEeS2WoXr83SnEA" name="excluding" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__-shhVoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+        <ownedParameter xmi:id="__-shhloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shh1oGEeS2WoXr83SnEA" name="excludingAll" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__-shiFoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__-shiVoGEeS2WoXr83SnEA" name="objects" type="__-sfXVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shiloGEeS2WoXr83SnEA" name="flatten" type="__-sfAFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__-shi1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].&#xA;If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="__-shjFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shjVoGEeS2WoXr83SnEA" parameteredElement="__-shjloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shjloGEeS2WoXr83SnEA" name="T2" templateParameter="__-shjVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfAloGEeS2WoXr83SnEA __-sfLFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shj1oGEeS2WoXr83SnEA" name="including" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__-shkFoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="__-shkVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shkloGEeS2WoXr83SnEA" name="includingAll" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="__-shk1oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="__-shlFoGEeS2WoXr83SnEA" name="objects" type="__-sfM1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shlVoGEeS2WoXr83SnEA" name="selectByKind" type="__-sfA1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__-shlloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shl1oGEeS2WoXr83SnEA" parameteredElement="__-shmFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shmFoGEeS2WoXr83SnEA" name="TT" templateParameter="__-shl1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfBVoGEeS2WoXr83SnEA __-sfL1oGEeS2WoXr83SnEA __-sfp1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-shmVoGEeS2WoXr83SnEA" name="type" type="__-sfpVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shmloGEeS2WoXr83SnEA" name="selectByType" type="__-sfBloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__-shm1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shnFoGEeS2WoXr83SnEA" parameteredElement="__-shnVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shnVoGEeS2WoXr83SnEA" name="TT" templateParameter="__-shnFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfCFoGEeS2WoXr83SnEA __-sfMloGEeS2WoXr83SnEA __-sfqloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-shnloGEeS2WoXr83SnEA" name="type" type="__-sfqFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-shn1oGEeS2WoXr83SnEA" name="closure" type="__-sgU1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__-shoFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__-shoVoGEeS2WoXr83SnEA" name="lambda" type="__-se4VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sholoGEeS2WoXr83SnEA" name="i" type="__-shfloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sho1oGEeS2WoXr83SnEA" name="collectNested" type="__-se-loGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__-shpFoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="__-shpVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shploGEeS2WoXr83SnEA" parameteredElement="__-shp1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shp1oGEeS2WoXr83SnEA" name="V" templateParameter="__-shploGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-se_FoGEeS2WoXr83SnEA __-sfJloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-shqFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se3loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-shqVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-shqloGEeS2WoXr83SnEA" name="collect" type="__-se_VoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__-shq1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shrFoGEeS2WoXr83SnEA" parameteredElement="__-shrVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shrVoGEeS2WoXr83SnEA" name="V" templateParameter="__-shrFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-se_1oGEeS2WoXr83SnEA __-sfKVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-shrloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se31oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-shr1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-shsFoGEeS2WoXr83SnEA" name="reject" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__-shsVoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].&#xA;&#xA;oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+        <ownedParameter xmi:id="__-shsloGEeS2WoXr83SnEA" name="lambda" type="__-se3VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-shs1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-shtFoGEeS2WoXr83SnEA" name="select" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__-shtVoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].&#xA;&#xA;oclCode[self->select(iterator | body) =&#xA;self->iterate(iterator; result : Bag(T) = Bag{} |&#xA;if body then result->including(iterator)&#xA;else result&#xA;endif)]"/>
+        <ownedParameter xmi:id="__-shtloGEeS2WoXr83SnEA" name="lambda" type="__-se3VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sht1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-shuFoGEeS2WoXr83SnEA" name="sortedBy" type="__-sgNVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__-shuVoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="__-shuloGEeS2WoXr83SnEA" name="lambda" type="__-se4FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-shu1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-shvFoGEeS2WoXr83SnEA" name="Class" superClass="__-sibloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-shvVoGEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="__-sfDloGEeS2WoXr83SnEA __-sfU1oGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sh4loGEeS2WoXr83SnEA __-sh5VoGEeS2WoXr83SnEA __-sh9loGEeS2WoXr83SnEA __-sh-VoGEeS2WoXr83SnEA __-sh-1oGEeS2WoXr83SnEA __-sh_loGEeS2WoXr83SnEA __-siIFoGEeS2WoXr83SnEA __-siUloGEeS2WoXr83SnEA __-siVloGEeS2WoXr83SnEA"
+        elementType="__-shwFoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__-shvloGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shv1oGEeS2WoXr83SnEA" parameteredElement="__-shwFoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shwFoGEeS2WoXr83SnEA" name="T" templateParameter="__-shv1oGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__-sfC1oGEeS2WoXr83SnEA __-sfUFoGEeS2WoXr83SnEA __-sf6VoGEeS2WoXr83SnEA __-sgGVoGEeS2WoXr83SnEA __-sgOloGEeS2WoXr83SnEA __-sgWFoGEeS2WoXr83SnEA __-sgc1oGEeS2WoXr83SnEA"
+              typedElement="__-se-FoGEeS2WoXr83SnEA __-shwloGEeS2WoXr83SnEA __-sh-FoGEeS2WoXr83SnEA __-siBFoGEeS2WoXr83SnEA __-siBloGEeS2WoXr83SnEA __-siHFoGEeS2WoXr83SnEA __-siIVoGEeS2WoXr83SnEA __-siJFoGEeS2WoXr83SnEA __-siK1oGEeS2WoXr83SnEA __-siMloGEeS2WoXr83SnEA __-siNVoGEeS2WoXr83SnEA __-siNloGEeS2WoXr83SnEA __-siOloGEeS2WoXr83SnEA __-siPVoGEeS2WoXr83SnEA __-siPloGEeS2WoXr83SnEA __-siQloGEeS2WoXr83SnEA __-siRloGEeS2WoXr83SnEA __-siTVoGEeS2WoXr83SnEA __-siUVoGEeS2WoXr83SnEA __-siVVoGEeS2WoXr83SnEA __-siWVoGEeS2WoXr83SnEA __-siXVoGEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="__-shwVoGEeS2WoXr83SnEA" name="Collection" type="__-sfDFoGEeS2WoXr83SnEA" implicit="true" opposite="__-shwloGEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+          <templateParameterSubstitution href="#__-sfHVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfIFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfI1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfJloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfKVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfLFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfL1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfMloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfNVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfOFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfO1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfPloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfQVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfRFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfR1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfSloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfTVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfUFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfU1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfVloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfWVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfXFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfX1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfYloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfZVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfaFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfa1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfbloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfcVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfdFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfd1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfeloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sffVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfgFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfg1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfhloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfiVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfjFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfj1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfkloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sflVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfmFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfm1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfnloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sfoVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-sev1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-sewloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-sexVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-seyFoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="#__-sfHFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfH1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfIloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfJVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfKFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfK1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfLloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfMVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfNFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfN1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfOloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfPVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfQFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfQ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfRloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfSVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfTFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfT1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfUloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfVVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfWFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfW1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfXloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfYVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfZFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfZ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfaloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfbVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfcFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfc1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfdloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfeVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sffFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sff1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfgloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfhVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfiFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfi1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfjloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfkVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sflFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfl1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfmloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfnVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sfoFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-sevloGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-sewVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-sexFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-sex1oGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="__-shwloGEeS2WoXr83SnEA" isStatic="true" name="elementType" type="__-shwFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+          opposite="__-shwVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-shw1oGEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__-shxFoGEeS2WoXr83SnEA" isStatic="true" name="lower" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+        <ownedComment xmi:id="__-shxVoGEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__-shxloGEeS2WoXr83SnEA" isStatic="true" name="upper" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+        <ownedComment xmi:id="__-shx1oGEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="__-shyFoGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-shyVoGEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+        <ownedParameter xmi:id="__-shyloGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shy1oGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-shzFoGEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,&#xA;in the case of an ordered collection type."/>
+        <ownedParameter xmi:id="__-shzVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-shzloGEeS2WoXr83SnEA" name="asBag" type="__-sfCVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+        <ownedComment xmi:id="__-shz1oGEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh0FoGEeS2WoXr83SnEA" name="asOrderedSet" type="__-sgF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+        <ownedComment xmi:id="__-sh0VoGEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,&#xA;in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh0loGEeS2WoXr83SnEA" name="asSequence" type="__-sgOFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+        <ownedComment xmi:id="__-sh01oGEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh1FoGEeS2WoXr83SnEA" name="asSet" type="__-sgVloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+        <ownedComment xmi:id="__-sh1VoGEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh1loGEeS2WoXr83SnEA" name="count" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+        <ownedComment xmi:id="__-sh11oGEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+        <ownedParameter xmi:id="__-sh2FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh2VoGEeS2WoXr83SnEA" name="excludes" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+        <ownedComment xmi:id="__-sh2loGEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__-sh21oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh3FoGEeS2WoXr83SnEA" name="excludesAll" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+        <ownedComment xmi:id="__-sh3VoGEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="__-sh3loGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sh31oGEeS2WoXr83SnEA" parameteredElement="__-sh4FoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sh4FoGEeS2WoXr83SnEA" name="T2" templateParameter="__-sh31oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfPloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sh4VoGEeS2WoXr83SnEA" name="c2" type="__-sfPFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh4loGEeS2WoXr83SnEA" name="excluding" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__-sh41oGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+        <ownedParameter xmi:id="__-sh5FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh5VoGEeS2WoXr83SnEA" name="excludingAll" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__-sh5loGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__-sh51oGEeS2WoXr83SnEA" name="objects" type="__-sfXVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh6FoGEeS2WoXr83SnEA" name="flatten" type="__-sfP1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__-sh6VoGEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].&#xA;If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="__-sh6loGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sh61oGEeS2WoXr83SnEA" parameteredElement="__-sh7FoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sh7FoGEeS2WoXr83SnEA" name="T2" templateParameter="__-sh61oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfQVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh7VoGEeS2WoXr83SnEA" name="includes" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+        <ownedComment xmi:id="__-sh7loGEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__-sh71oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh8FoGEeS2WoXr83SnEA" name="includesAll" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+        <ownedComment xmi:id="__-sh8VoGEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="__-sh8loGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sh81oGEeS2WoXr83SnEA" parameteredElement="__-sh9FoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sh9FoGEeS2WoXr83SnEA" name="T2" templateParameter="__-sh81oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfRFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sh9VoGEeS2WoXr83SnEA" name="c2" type="__-sfQloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh9loGEeS2WoXr83SnEA" name="including" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__-sh91oGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="__-sh-FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh-VoGEeS2WoXr83SnEA" name="includingAll" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="__-sh-loGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="__-sh-1oGEeS2WoXr83SnEA" name="objects" type="__-shvVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh_FoGEeS2WoXr83SnEA" name="intersection" type="__-sfCVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="__-sh_VoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+        <ownedParameter xmi:id="__-sh_loGEeS2WoXr83SnEA" name="c" type="__-shvVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sh_1oGEeS2WoXr83SnEA" name="intersection" type="__-sgVloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="__-siAFoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+        <ownedParameter xmi:id="__-siAVoGEeS2WoXr83SnEA" name="u" type="__-sgcVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siAloGEeS2WoXr83SnEA" name="isEmpty" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+        <ownedComment xmi:id="__-siA1oGEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?&#xA;&#xA;Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siBFoGEeS2WoXr83SnEA" name="max" type="__-shwFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+        <ownedComment xmi:id="__-siBVoGEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the max operation.&#xA;The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siBloGEeS2WoXr83SnEA" name="min" type="__-shwFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+        <ownedComment xmi:id="__-siB1oGEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the min operation.&#xA;The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siCFoGEeS2WoXr83SnEA" name="notEmpty" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+        <ownedComment xmi:id="__-siCVoGEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?&#xA;&#xA;oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siCloGEeS2WoXr83SnEA" name="product" type="__-sgUFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+        <ownedComment xmi:id="__-siC1oGEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+        <ownedTemplateSignature xmi:id="__-siDFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siDVoGEeS2WoXr83SnEA" parameteredElement="__-siDloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siDloGEeS2WoXr83SnEA" name="T2" templateParameter="__-siDVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfR1oGEeS2WoXr83SnEA" typedElement="__-se-VoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-siD1oGEeS2WoXr83SnEA" name="c2" type="__-sfRVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siEFoGEeS2WoXr83SnEA" name="selectByKind" type="__-sfSFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__-siEVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siEloGEeS2WoXr83SnEA" parameteredElement="__-siE1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siE1oGEeS2WoXr83SnEA" name="TT" templateParameter="__-siEloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfSloGEeS2WoXr83SnEA __-sfrVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-siFFoGEeS2WoXr83SnEA" name="type" type="__-sfq1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siFVoGEeS2WoXr83SnEA" name="selectByType" type="__-sfS1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__-siFloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siF1oGEeS2WoXr83SnEA" parameteredElement="__-siGFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siGFoGEeS2WoXr83SnEA" name="TT" templateParameter="__-siF1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfTVoGEeS2WoXr83SnEA __-sfsFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-siGVoGEeS2WoXr83SnEA" name="type" type="__-sfrloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siGloGEeS2WoXr83SnEA" name="size" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+        <ownedComment xmi:id="__-siG1oGEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siHFoGEeS2WoXr83SnEA" name="sum" type="__-shwFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+        <ownedComment xmi:id="__-siHVoGEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].&#xA;Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.&#xA;The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).&#xA;UnlimitedNatural, Integer and Real fulfill this condition.&#xA;&#xA;If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,&#xA;which may result in unpredictable results during evaluation.&#xA;If an implementation is able to detect a lack of associativity or commutativity,&#xA;the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siHloGEeS2WoXr83SnEA" name="union" type="__-sfCVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="__-siH1oGEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+        <ownedParameter xmi:id="__-siIFoGEeS2WoXr83SnEA" name="c" type="__-shvVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siIVoGEeS2WoXr83SnEA" name="any" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+        <ownedComment xmi:id="__-siIloGEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].&#xA;If there is more than one element for which body is oclText[true], one of them is returned.&#xA;There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+        <ownedParameter xmi:id="__-siI1oGEeS2WoXr83SnEA" name="lambda" type="__-se4loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siJFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siJVoGEeS2WoXr83SnEA" name="collectNested" type="__-sfNloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__-siJloGEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+        <ownedTemplateSignature xmi:id="__-siJ1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siKFoGEeS2WoXr83SnEA" parameteredElement="__-siKVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siKVoGEeS2WoXr83SnEA" name="V" templateParameter="__-siKFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfOFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-siKloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se41oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siK1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siLFoGEeS2WoXr83SnEA" name="collect" type="__-sfOVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedComment xmi:id="__-siLVoGEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.&#xA;The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.&#xA;collectNested is defined individually for each subclass of CollectionType."/>
+        <ownedTemplateSignature xmi:id="__-siLloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siL1oGEeS2WoXr83SnEA" parameteredElement="__-siMFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siMFoGEeS2WoXr83SnEA" name="V" templateParameter="__-siL1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfO1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-siMVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se5FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siMloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siM1oGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedParameter xmi:id="__-siNFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se4loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siNVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siNloGEeS2WoXr83SnEA" name="j" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siN1oGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedComment xmi:id="__-siOFoGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+        <ownedParameter xmi:id="__-siOVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se4loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siOloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siO1oGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedParameter xmi:id="__-siPFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se4loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siPVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siPloGEeS2WoXr83SnEA" name="j" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siP1oGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedComment xmi:id="__-siQFoGEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="__-siQVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se4loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siQloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siQ1oGEeS2WoXr83SnEA" name="isUnique" type="__-sgoFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+        <ownedComment xmi:id="__-siRFoGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="__-siRVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se5loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siRloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siR1oGEeS2WoXr83SnEA" name="iterate" isRequired="false" type="__-siSloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+        <ownedTemplateSignature xmi:id="__-siSFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siSVoGEeS2WoXr83SnEA" parameteredElement="__-siSloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siSloGEeS2WoXr83SnEA" name="Tacc" templateParameter="__-siSVoGEeS2WoXr83SnEA"
+                typedElement="__-siR1oGEeS2WoXr83SnEA __-siTFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-siS1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se5VoGEeS2WoXr83SnEA"/>
+        <ownedAccumulator xmi:id="__-siTFoGEeS2WoXr83SnEA" name="acc" isRequired="false" type="__-siSloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siTVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siTloGEeS2WoXr83SnEA" name="one" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+        <ownedComment xmi:id="__-siT1oGEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="__-siUFoGEeS2WoXr83SnEA" name="lambda" type="__-se4loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siUVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siUloGEeS2WoXr83SnEA" name="reject" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__-siU1oGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__-siVFoGEeS2WoXr83SnEA" name="lambda" type="__-se4loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siVVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siVloGEeS2WoXr83SnEA" name="select" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__-siV1oGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="__-siWFoGEeS2WoXr83SnEA" name="lambda" type="__-se4loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siWVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siWloGEeS2WoXr83SnEA" name="sortedBy" type="__-sgOFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__-siW1oGEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="__-siXFoGEeS2WoXr83SnEA" name="lambda" type="__-se5loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-siXVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-siXloGEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="__-sfEVoGEeS2WoXr83SnEA __-sfWVoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-siX1oGEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+      <ownedAttribute xmi:id="__-siYFoGEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="__-sgGloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+          opposite="__-siZloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-siYVoGEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="__-siYloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+        <ownedComment xmi:id="__-siY1oGEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-siZFoGEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="__-sfVloGEeS2WoXr83SnEA __-sf7FoGEeS2WoXr83SnEA __-sgHFoGEeS2WoXr83SnEA __-sgdloGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-siZVoGEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+      <ownedAttribute xmi:id="__-siZloGEeS2WoXr83SnEA" name="Enumeration" type="__-sfD1oGEeS2WoXr83SnEA" implicit="true" opposite="__-siYFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-siZ1oGEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="__-sfFFoGEeS2WoXr83SnEA __-sfXFoGEeS2WoXr83SnEA"
+        superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" instanceType="__-sialoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__-siaFoGEeS2WoXr83SnEA" templateBinding="__-sfo1oGEeS2WoXr83SnEA __-sfploGEeS2WoXr83SnEA __-sfqVoGEeS2WoXr83SnEA __-sfrFoGEeS2WoXr83SnEA __-sfr1oGEeS2WoXr83SnEA __-sfsloGEeS2WoXr83SnEA __-sftVoGEeS2WoXr83SnEA __-sfuFoGEeS2WoXr83SnEA __-sfu1oGEeS2WoXr83SnEA __-sfvloGEeS2WoXr83SnEA __-sfwVoGEeS2WoXr83SnEA __-sfxFoGEeS2WoXr83SnEA __-sfx1oGEeS2WoXr83SnEA __-sfyloGEeS2WoXr83SnEA __-sfzVoGEeS2WoXr83SnEA __-sf0FoGEeS2WoXr83SnEA __-sf01oGEeS2WoXr83SnEA __-sf1loGEeS2WoXr83SnEA __-sf2VoGEeS2WoXr83SnEA __-sf3FoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siaVoGEeS2WoXr83SnEA" parameteredElement="__-sialoGEeS2WoXr83SnEA"
+            templateParameterSubstitution="__-sfpFoGEeS2WoXr83SnEA __-sfp1oGEeS2WoXr83SnEA __-sfqloGEeS2WoXr83SnEA __-sfrVoGEeS2WoXr83SnEA __-sfsFoGEeS2WoXr83SnEA __-sfs1oGEeS2WoXr83SnEA __-sftloGEeS2WoXr83SnEA __-sfuVoGEeS2WoXr83SnEA __-sfvFoGEeS2WoXr83SnEA __-sfv1oGEeS2WoXr83SnEA __-sfwloGEeS2WoXr83SnEA __-sfxVoGEeS2WoXr83SnEA __-sfyFoGEeS2WoXr83SnEA __-sfy1oGEeS2WoXr83SnEA __-sfzloGEeS2WoXr83SnEA __-sf0VoGEeS2WoXr83SnEA __-sf1FoGEeS2WoXr83SnEA __-sf11oGEeS2WoXr83SnEA __-sf2loGEeS2WoXr83SnEA __-sf3VoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sialoGEeS2WoXr83SnEA" name="T" templateParameter="__-siaVoGEeS2WoXr83SnEA"
+              typedElement="__-sibFoGEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="__-sia1oGEeS2WoXr83SnEA" name="Metaclass" type="__-sfEloGEeS2WoXr83SnEA" implicit="true" opposite="__-sibFoGEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="__-sibFoGEeS2WoXr83SnEA" name="instanceType" type="__-sialoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+          opposite="__-sia1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sibVoGEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+      </ownedAttribute>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="__-sibloGEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="__-sfX1oGEeS2WoXr83SnEA __-sgeVoGEeS2WoXr83SnEA"
+        typedElement="__-shhloGEeS2WoXr83SnEA __-sh2FoGEeS2WoXr83SnEA __-sh21oGEeS2WoXr83SnEA __-sh5FoGEeS2WoXr83SnEA __-sh71oGEeS2WoXr83SnEA __-si5FoGEeS2WoXr83SnEA __-sjGVoGEeS2WoXr83SnEA __-sjL1oGEeS2WoXr83SnEA __-sjgloGEeS2WoXr83SnEA __-sj01oGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-sib1oGEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.&#xA;Conceptually, OclAny behaves as a supertype for all the types.&#xA;Features of OclAny are available on each object in all OCL expressions.&#xA;OclAny is itself an instance of the metatype AnyType.&#xA;&#xA;All classes in a UML model inherit all operations defined on OclAny.&#xA;To avoid name conflicts between properties in the model and the properties inherited from OclAny,&#xA;all names on the properties of OclAny start with &#x2018;ocl.&#x2019;&#xA;Although theoretically there may still be name conflicts, they can be avoided.&#xA;One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.&#xA;&#xA;Operations of OclAny, where the instance of OclAny is called object."/>
+      <ownedOperation xmi:id="__-sicFoGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sicVoGEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+        <ownedParameter xmi:id="__-sicloGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sic1oGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sidFoGEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+        <ownedParameter xmi:id="__-sidVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sidloGEeS2WoXr83SnEA" name="oclAsSet" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+        <ownedComment xmi:id="__-sid1oGEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sieFoGEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="__-sifFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedComment xmi:id="__-sieVoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;In the case of feature redefinition, casting an object to a supertype of its actual type&#xA;does not access the supertype&#x2019;s definition of the feature;&#xA;according to the semantics of redefinition, the redefined feature simply does not exist for the object.&#xA;However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+        <ownedTemplateSignature xmi:id="__-sieloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sie1oGEeS2WoXr83SnEA" parameteredElement="__-sifFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sifFoGEeS2WoXr83SnEA" name="TT" templateParameter="__-sie1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfs1oGEeS2WoXr83SnEA" typedElement="__-sieFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sifVoGEeS2WoXr83SnEA" name="type" type="__-sfsVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sifloGEeS2WoXr83SnEA" name="oclIsInState" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+        <ownedComment xmi:id="__-sif1oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+        <ownedParameter xmi:id="__-sigFoGEeS2WoXr83SnEA" name="statespec" type="__-si6FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sigVoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true">
+        <ownedComment xmi:id="__-sigloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sig1oGEeS2WoXr83SnEA" name="oclIsKindOf" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedComment xmi:id="__-sihFoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.&#xA;That is, oclText[self] is of type t or a subtype of t."/>
+        <ownedTemplateSignature xmi:id="__-sihVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sihloGEeS2WoXr83SnEA" parameteredElement="__-sih1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sih1oGEeS2WoXr83SnEA" name="T" templateParameter="__-sihloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sftloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-siiFoGEeS2WoXr83SnEA" name="type" type="__-sftFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siiVoGEeS2WoXr83SnEA" name="oclIsNew" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__-siiloGEeS2WoXr83SnEA" body="Can only be used in a postcondition.&#xA;Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn&#x2019;t exist at precondition time)."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sii1oGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedComment xmi:id="__-sijFoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+        <ownedTemplateSignature xmi:id="__-sijVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sijloGEeS2WoXr83SnEA" parameteredElement="__-sij1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sij1oGEeS2WoXr83SnEA" name="T" templateParameter="__-sijloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfuVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sikFoGEeS2WoXr83SnEA" name="type" type="__-sft1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sikVoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true">
+        <ownedComment xmi:id="__-sikloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sik1oGEeS2WoXr83SnEA" name="oclLog" type="__-si5loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="__-silFoGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-silVoGEeS2WoXr83SnEA" name="oclLog" type="__-si5loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="__-silloGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+        <ownedParameter xmi:id="__-sil1oGEeS2WoXr83SnEA" name="message" type="__-shEloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-simFoGEeS2WoXr83SnEA" name="oclType" type="__-sfxloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+        <ownedComment xmi:id="__-simVoGEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-simloGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__-sim1oGEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-sinFoGEeS2WoXr83SnEA" name="OclComparable" superClass="__-sibloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-sinVoGEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived&#xA;compareTo implementation may be sorted."/>
+      <ownedOperation xmi:id="__-sinloGEeS2WoXr83SnEA" name="&lt;" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sin1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+        <ownedParameter xmi:id="__-sioFoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sioVoGEeS2WoXr83SnEA" name="&lt;=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sioloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="__-sio1oGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sipFoGEeS2WoXr83SnEA" name=">" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sipVoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+        <ownedParameter xmi:id="__-siploGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sip1oGEeS2WoXr83SnEA" name=">=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+          precedence="__-skI1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-siqFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="__-siqVoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siqloGEeS2WoXr83SnEA" name="compareTo" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+        <ownedComment xmi:id="__-siq1oGEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.&#xA;&#xA;The compareTo operation should be commutative."/>
+        <ownedParameter xmi:id="__-sirFoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-sirVoGEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="__-sfYloGEeS2WoXr83SnEA __-sgW1oGEeS2WoXr83SnEA __-sgfFoGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sisVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-sirloGEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined&#xA;for OclElement are therefore applicable to all user-defined types."/>
+      <ownedOperation xmi:id="__-sir1oGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+        <ownedComment xmi:id="__-sisFoGEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sisVoGEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="__-sirVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+        <ownedComment xmi:id="__-sisloGEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sis1oGEeS2WoXr83SnEA" name="oclContents" type="__-sgWVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+        <ownedComment xmi:id="__-sitFoGEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="__-sitVoGEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="__-sfxVoGEeS2WoXr83SnEA"
+        superClass="__-si-1oGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-sitloGEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.&#xA;It has one single instance, identified as  oclText[invalid].&#xA;Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().&#xA;OclInvalid is itself an instance of the metatype InvalidType."/>
+      <ownedOperation xmi:id="__-sit1oGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-siuFoGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="__-siuVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siuloGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-siu1oGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="__-sivFoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sivVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+        <ownedComment xmi:id="__-sivloGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siv1oGEeS2WoXr83SnEA" name="and" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="__-skJVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-siwFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siwVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isValidating="true" precedence="__-skKFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-siwloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siw1oGEeS2WoXr83SnEA" name="oclAsSet" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+      <ownedOperation xmi:id="__-sixFoGEeS2WoXr83SnEA" name="oclAsType" type="__-six1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedTemplateSignature xmi:id="__-sixVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sixloGEeS2WoXr83SnEA" parameteredElement="__-six1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-six1oGEeS2WoXr83SnEA" name="TT" templateParameter="__-sixloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfvFoGEeS2WoXr83SnEA" typedElement="__-sixFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-siyFoGEeS2WoXr83SnEA" name="type" type="__-sfuloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siyVoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__-siyloGEeS2WoXr83SnEA" name="oclIsKindOf" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedTemplateSignature xmi:id="__-siy1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sizFoGEeS2WoXr83SnEA" parameteredElement="__-sizVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sizVoGEeS2WoXr83SnEA" name="T" templateParameter="__-sizFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfv1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sizloGEeS2WoXr83SnEA" name="type" type="__-sfvVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-siz1oGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedTemplateSignature xmi:id="__-si0FoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-si0VoGEeS2WoXr83SnEA" parameteredElement="__-si0loGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-si0loGEeS2WoXr83SnEA" name="T" templateParameter="__-si0VoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfwloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-si01oGEeS2WoXr83SnEA" name="type" type="__-sfwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-si1FoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__-si1VoGEeS2WoXr83SnEA" name="oclType" type="__-sfxloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+      <ownedOperation xmi:id="__-si1loGEeS2WoXr83SnEA" name="or" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="__-skJloGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-si11oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-si2FoGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__-si2VoGEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si2loGEeS2WoXr83SnEA" name="OclLambda" superClass="__-sibloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-si21oGEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda&#xA;therefore apply to all lambda expressions."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si3FoGEeS2WoXr83SnEA" name="OclMessage" superClass="__-sibloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-si3VoGEeS2WoXr83SnEA" body="OclMessage&#xA;This sub clause contains the definition of the standard type OclMessage.&#xA;As defined in this sub clause, each ocl message type is actually a template type with one parameter.&#xA;&#x2018;T&#x2019; denotes the parameter.&#xA;A concrete ocl message type is created by substituting an operation or signal for the T.&#xA;&#xA;The predefined type OclMessage is an instance of MessageType.&#xA;Every OclMessage is fully determined by either the operation, or signal given as parameter.&#xA;Note that there is conceptually an undefined (infinite) number of these types,&#xA;as each is determined by a different operation or signal.&#xA;These types are unnamed. Every type has as attributes the name of the operation or signal,&#xA;and either all formal parameters of the operation, or all attributes of the signal.&#xA;OclMessage is itself an instance of the metatype MessageType.&#xA;&#xA;OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+      <ownedOperation xmi:id="__-si3loGEeS2WoXr83SnEA" name="hasReturned" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__-si31oGEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.&#xA;This implies the fact that the message has been sent. False in all other cases."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-si4FoGEeS2WoXr83SnEA" name="isOperationCall" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__-si4VoGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-si4loGEeS2WoXr83SnEA" name="isSignalSent" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__-si41oGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-si5FoGEeS2WoXr83SnEA" name="result" type="__-sibloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__-si5VoGEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,&#xA;and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="__-si5loGEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="__-sfZVoGEeS2WoXr83SnEA __-sfyFoGEeS2WoXr83SnEA __-sgXloGEeS2WoXr83SnEA __-sgf1oGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sgo1oGEeS2WoXr83SnEA __-sgploGEeS2WoXr83SnEA __-sgwVoGEeS2WoXr83SnEA __-sgxFoGEeS2WoXr83SnEA __-sgyVoGEeS2WoXr83SnEA __-sgzFoGEeS2WoXr83SnEA __-sg0VoGEeS2WoXr83SnEA __-sg11oGEeS2WoXr83SnEA __-sg2loGEeS2WoXr83SnEA __-sg41oGEeS2WoXr83SnEA __-sg5loGEeS2WoXr83SnEA __-sg61oGEeS2WoXr83SnEA __-sg7loGEeS2WoXr83SnEA __-sg8VoGEeS2WoXr83SnEA __-sg9FoGEeS2WoXr83SnEA __-sg91oGEeS2WoXr83SnEA __-sg-loGEeS2WoXr83SnEA __-sg_VoGEeS2WoXr83SnEA __-shAFoGEeS2WoXr83SnEA __-shBVoGEeS2WoXr83SnEA __-shCloGEeS2WoXr83SnEA __-shDVoGEeS2WoXr83SnEA __-shGFoGEeS2WoXr83SnEA __-shG1oGEeS2WoXr83SnEA __-shHVoGEeS2WoXr83SnEA __-shH1oGEeS2WoXr83SnEA __-shIloGEeS2WoXr83SnEA __-shJVoGEeS2WoXr83SnEA __-shLVoGEeS2WoXr83SnEA __-shgFoGEeS2WoXr83SnEA __-shg1oGEeS2WoXr83SnEA __-shyloGEeS2WoXr83SnEA __-shzVoGEeS2WoXr83SnEA __-sicloGEeS2WoXr83SnEA __-sidVoGEeS2WoXr83SnEA __-sik1oGEeS2WoXr83SnEA __-silVoGEeS2WoXr83SnEA __-sioFoGEeS2WoXr83SnEA __-sio1oGEeS2WoXr83SnEA __-siploGEeS2WoXr83SnEA __-siqVoGEeS2WoXr83SnEA __-sirFoGEeS2WoXr83SnEA __-siuVoGEeS2WoXr83SnEA __-sivFoGEeS2WoXr83SnEA __-si61oGEeS2WoXr83SnEA __-si7VoGEeS2WoXr83SnEA __-si7loGEeS2WoXr83SnEA __-si81oGEeS2WoXr83SnEA __-si9VoGEeS2WoXr83SnEA __-si_loGEeS2WoXr83SnEA __-sjAVoGEeS2WoXr83SnEA __-sjJFoGEeS2WoXr83SnEA __-sjJloGEeS2WoXr83SnEA __-sjdloGEeS2WoXr83SnEA __-sjeVoGEeS2WoXr83SnEA __-sjzVoGEeS2WoXr83SnEA __-sj0FoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-si51oGEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation&#xA;and Iteration signatures. Instances of OclSelf are never created."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si6FoGEeS2WoXr83SnEA" name="OclState" superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sigFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si6VoGEeS2WoXr83SnEA" name="OclSummable" superClass="__-sibloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-si6loGEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived&#xA;sum and zero implementations may be summed."/>
+      <ownedOperation xmi:id="__-si61oGEeS2WoXr83SnEA" name="sum" type="__-si5loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-si7FoGEeS2WoXr83SnEA" body="Return the sum of self and that.&#xA;&#xA;The sum operation should be associative."/>
+        <ownedParameter xmi:id="__-si7VoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-si7loGEeS2WoXr83SnEA" name="zero" type="__-si5loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-si71oGEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.&#xA;&#xA;zero().sum(self) = self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si8FoGEeS2WoXr83SnEA" name="OclTuple" superClass="__-sibloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-si8VoGEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple&#xA;therefore apply to all tuples."/>
+      <ownedOperation xmi:id="__-si8loGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-si81oGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-si9FoGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-si9VoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si9loGEeS2WoXr83SnEA" name="OclType" superClass="__-sirVoGEeS2WoXr83SnEA" typedElement="__-si-loGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-si91oGEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined&#xA;for OclType are therefore applicable to all UML types."/>
+      <ownedOperation xmi:id="__-si-FoGEeS2WoXr83SnEA" name="conformsTo" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+        <ownedComment xmi:id="__-si-VoGEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+        <ownedParameter xmi:id="__-si-loGEeS2WoXr83SnEA" name="type2" type="__-si9loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="__-si-1oGEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="__-sfy1oGEeS2WoXr83SnEA"
+        superClass="__-sibloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__-si_FoGEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.&#xA;It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.&#xA;Any property call applied on oclText[null] results in oclText[invalid], except for the&#xA;oclIsUndefined(), oclIsInvalid(), =(OclAny) and &lt;>(OclAny) operations.&#xA;However, by virtue of the implicit conversion to a collection literal,&#xA;an expression evaluating to oclText[null] can be used as source of collection operations (such as &#x2018;isEmpty&#x2019;).&#xA;If the source is the oclText[null] literal, it is implicitly converted to Bag{}.&#xA;&#xA;OclVoid is itself an instance of the metatype VoidType."/>
+      <ownedOperation xmi:id="__-si_VoGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-si_loGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-si_1oGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sjAFoGEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]&#xA;if object is oclText[invalid], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__-sjAVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjAloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+        <ownedComment xmi:id="__-sjA1oGEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjBFoGEeS2WoXr83SnEA" name="and" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+          precedence="__-skJVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-sjBVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjBloGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+          precedence="__-skKFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-sjB1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjCFoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__-sjCVoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__-sjCloGEeS2WoXr83SnEA" name="or" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+          precedence="__-skJloGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-sjC1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjDFoGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__-sjDVoGEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sjDloGEeS2WoXr83SnEA" name="OrderedCollection" superClass="__-sfZloGEeS2WoXr83SnEA"
+        elementType="__-sjEVoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__-sjD1oGEeS2WoXr83SnEA" templateBinding="__-sf31oGEeS2WoXr83SnEA __-sf4loGEeS2WoXr83SnEA __-sf5VoGEeS2WoXr83SnEA __-sf6FoGEeS2WoXr83SnEA __-sf61oGEeS2WoXr83SnEA __-sf7loGEeS2WoXr83SnEA __-sf8VoGEeS2WoXr83SnEA __-sf9FoGEeS2WoXr83SnEA __-sf91oGEeS2WoXr83SnEA __-sf-loGEeS2WoXr83SnEA __-sf_VoGEeS2WoXr83SnEA __-sgAFoGEeS2WoXr83SnEA __-sgA1oGEeS2WoXr83SnEA __-sgBloGEeS2WoXr83SnEA __-sgCVoGEeS2WoXr83SnEA __-sgDFoGEeS2WoXr83SnEA __-sgD1oGEeS2WoXr83SnEA __-sgEloGEeS2WoXr83SnEA __-sgFVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjEFoGEeS2WoXr83SnEA" parameteredElement="__-sjEVoGEeS2WoXr83SnEA"
+            templateParameterSubstitution="__-sf4FoGEeS2WoXr83SnEA __-sf41oGEeS2WoXr83SnEA __-sf5loGEeS2WoXr83SnEA __-sf6VoGEeS2WoXr83SnEA __-sf7FoGEeS2WoXr83SnEA __-sf71oGEeS2WoXr83SnEA __-sf8loGEeS2WoXr83SnEA __-sf9VoGEeS2WoXr83SnEA __-sf-FoGEeS2WoXr83SnEA __-sf-1oGEeS2WoXr83SnEA __-sf_loGEeS2WoXr83SnEA __-sgAVoGEeS2WoXr83SnEA __-sgBFoGEeS2WoXr83SnEA __-sgB1oGEeS2WoXr83SnEA __-sgCloGEeS2WoXr83SnEA __-sgDVoGEeS2WoXr83SnEA __-sgEFoGEeS2WoXr83SnEA __-sgE1oGEeS2WoXr83SnEA __-sgFloGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjEVoGEeS2WoXr83SnEA" name="T" templateParameter="__-sjEFoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__-sfaFoGEeS2WoXr83SnEA" typedElement="__-sjEloGEeS2WoXr83SnEA __-sjFVoGEeS2WoXr83SnEA __-sjGloGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__-sjEloGEeS2WoXr83SnEA" name="at" isRequired="false" type="__-sjEVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-sjE1oGEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+        <ownedParameter xmi:id="__-sjFFoGEeS2WoXr83SnEA" name="index" type="__-sgvloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjFVoGEeS2WoXr83SnEA" name="first" isRequired="false" type="__-sjEVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-sjFloGEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjF1oGEeS2WoXr83SnEA" name="indexOf" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+        <ownedComment xmi:id="__-sjGFoGEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+        <ownedParameter xmi:id="__-sjGVoGEeS2WoXr83SnEA" name="obj" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjGloGEeS2WoXr83SnEA" name="last" isRequired="false" type="__-sjEVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-sjG1oGEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sjHFoGEeS2WoXr83SnEA" name="OrderedSet" superClass="__-sf_FoGEeS2WoXr83SnEA __-sgiVoGEeS2WoXr83SnEA"
+        typedElement="__-sjIFoGEeS2WoXr83SnEA __-sjJ1oGEeS2WoXr83SnEA __-sjKloGEeS2WoXr83SnEA __-sjLVoGEeS2WoXr83SnEA __-sjMFoGEeS2WoXr83SnEA __-sjN1oGEeS2WoXr83SnEA __-sjOloGEeS2WoXr83SnEA __-sjPloGEeS2WoXr83SnEA __-sjQVoGEeS2WoXr83SnEA __-sjRFoGEeS2WoXr83SnEA __-sjUFoGEeS2WoXr83SnEA __-sjVFoGEeS2WoXr83SnEA __-sjZVoGEeS2WoXr83SnEA __-sjaVoGEeS2WoXr83SnEA __-sjbVoGEeS2WoXr83SnEA"
+        elementType="__-sjH1oGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__-sjHVoGEeS2WoXr83SnEA" templateBinding="__-sgGFoGEeS2WoXr83SnEA __-sgG1oGEeS2WoXr83SnEA __-sgHloGEeS2WoXr83SnEA __-sgIVoGEeS2WoXr83SnEA __-sgJFoGEeS2WoXr83SnEA __-sgJ1oGEeS2WoXr83SnEA __-sgKloGEeS2WoXr83SnEA __-sgLVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjHloGEeS2WoXr83SnEA" parameteredElement="__-sjH1oGEeS2WoXr83SnEA"
+            templateParameterSubstitution="__-sgGVoGEeS2WoXr83SnEA __-sgHFoGEeS2WoXr83SnEA __-sgH1oGEeS2WoXr83SnEA __-sgIloGEeS2WoXr83SnEA __-sgJVoGEeS2WoXr83SnEA __-sgKFoGEeS2WoXr83SnEA __-sgK1oGEeS2WoXr83SnEA __-sgLloGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjH1oGEeS2WoXr83SnEA" name="T" templateParameter="__-sjHloGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__-sfeloGEeS2WoXr83SnEA __-sf_loGEeS2WoXr83SnEA __-sgi1oGEeS2WoXr83SnEA" typedElement="__-sjKVoGEeS2WoXr83SnEA __-sjOVoGEeS2WoXr83SnEA __-sjPVoGEeS2WoXr83SnEA __-sjQFoGEeS2WoXr83SnEA __-sjV1oGEeS2WoXr83SnEA __-sjXloGEeS2WoXr83SnEA __-sjZFoGEeS2WoXr83SnEA __-sjaFoGEeS2WoXr83SnEA __-sjbFoGEeS2WoXr83SnEA __-sjcFoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__-sjIFoGEeS2WoXr83SnEA" name="-" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="__-skIloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sjIVoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="__-sjIloGEeS2WoXr83SnEA" name="s" type="__-sgd1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjI1oGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-sjJFoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjJVoGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-sjJloGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjJ1oGEeS2WoXr83SnEA" name="append" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="__-sjKFoGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="__-sjKVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjKloGEeS2WoXr83SnEA" name="appendAll" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="__-sjK1oGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="__-sjLFoGEeS2WoXr83SnEA" name="objects" type="__-sf_FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjLVoGEeS2WoXr83SnEA" name="excluding" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__-sjLloGEeS2WoXr83SnEA" body="The ordered set  containing all elements of oclText[self] apart from object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="__-sjL1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjMFoGEeS2WoXr83SnEA" name="excludingAll" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__-sjMVoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__-sjMloGEeS2WoXr83SnEA" name="objects" type="__-sfXVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjM1oGEeS2WoXr83SnEA" name="flatten" type="__-sgHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedTemplateSignature xmi:id="__-sjNFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjNVoGEeS2WoXr83SnEA" parameteredElement="__-sjNloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjNloGEeS2WoXr83SnEA" name="T2" templateParameter="__-sjNVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfcVoGEeS2WoXr83SnEA __-sf9VoGEeS2WoXr83SnEA __-sgH1oGEeS2WoXr83SnEA __-sggloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjN1oGEeS2WoXr83SnEA" name="including" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__-sjOFoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+        <ownedParameter xmi:id="__-sjOVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjOloGEeS2WoXr83SnEA" name="insertAt" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-sjO1oGEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+        <ownedParameter xmi:id="__-sjPFoGEeS2WoXr83SnEA" name="index" type="__-sgvloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__-sjPVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjPloGEeS2WoXr83SnEA" name="prepend" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="__-sjP1oGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__-sjQFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjQVoGEeS2WoXr83SnEA" name="prependAll" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="__-sjQloGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__-sjQ1oGEeS2WoXr83SnEA" name="objects" type="__-sf_FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjRFoGEeS2WoXr83SnEA" name="reverse" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="__-sjRVoGEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjRloGEeS2WoXr83SnEA" name="selectByKind" type="__-sgIFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__-sjR1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjSFoGEeS2WoXr83SnEA" parameteredElement="__-sjSVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjSVoGEeS2WoXr83SnEA" name="TT" templateParameter="__-sjSFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfdFoGEeS2WoXr83SnEA __-sfzloGEeS2WoXr83SnEA __-sf-FoGEeS2WoXr83SnEA __-sgIloGEeS2WoXr83SnEA __-sghVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sjSloGEeS2WoXr83SnEA" name="type" type="__-sfzFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjS1oGEeS2WoXr83SnEA" name="selectByType" type="__-sgI1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__-sjTFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjTVoGEeS2WoXr83SnEA" parameteredElement="__-sjTloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjTloGEeS2WoXr83SnEA" name="TT" templateParameter="__-sjTVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfd1oGEeS2WoXr83SnEA __-sf0VoGEeS2WoXr83SnEA __-sf-1oGEeS2WoXr83SnEA __-sgJVoGEeS2WoXr83SnEA __-sgiFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sjT1oGEeS2WoXr83SnEA" name="type" type="__-sfz1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjUFoGEeS2WoXr83SnEA" name="subOrderedSet" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-sjUVoGEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="__-sjUloGEeS2WoXr83SnEA" name="lower" type="__-sgvloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__-sjU1oGEeS2WoXr83SnEA" name="upper" type="__-sgvloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjVFoGEeS2WoXr83SnEA" name="closure" type="__-sjHFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__-sjVVoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__-sjVloGEeS2WoXr83SnEA" name="lambda" type="__-se6VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjV1oGEeS2WoXr83SnEA" name="i" type="__-sjH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjWFoGEeS2WoXr83SnEA" name="collectNested" type="__-sgO1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__-sjWVoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="__-sjWloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjW1oGEeS2WoXr83SnEA" parameteredElement="__-sjXFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjXFoGEeS2WoXr83SnEA" name="V" templateParameter="__-sjW1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfa1oGEeS2WoXr83SnEA __-sf71oGEeS2WoXr83SnEA __-sgPVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sjXVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se6loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjXloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjX1oGEeS2WoXr83SnEA" name="collect" type="__-sgPloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__-sjYFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjYVoGEeS2WoXr83SnEA" parameteredElement="__-sjYloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjYloGEeS2WoXr83SnEA" name="V" templateParameter="__-sjYVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfbloGEeS2WoXr83SnEA __-sf8loGEeS2WoXr83SnEA __-sgQFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sjY1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se61oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjZFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjZVoGEeS2WoXr83SnEA" name="reject" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__-sjZloGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__-sjZ1oGEeS2WoXr83SnEA" name="lambda" type="__-se51oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjaFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjaVoGEeS2WoXr83SnEA" name="select" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__-sjaloGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+        <ownedParameter xmi:id="__-sja1oGEeS2WoXr83SnEA" name="lambda" type="__-se51oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjbFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjbVoGEeS2WoXr83SnEA" name="sortedBy" type="__-sjHFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__-sjbloGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="__-sjb1oGEeS2WoXr83SnEA" name="lambda" type="__-se6FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjcFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sjcVoGEeS2WoXr83SnEA" name="Sequence" superClass="__-sgDloGEeS2WoXr83SnEA"
+        typedElement="__-sjeloGEeS2WoXr83SnEA __-sjfVoGEeS2WoXr83SnEA __-sjgFoGEeS2WoXr83SnEA __-sjg1oGEeS2WoXr83SnEA __-sji1oGEeS2WoXr83SnEA __-sjjloGEeS2WoXr83SnEA __-sjkloGEeS2WoXr83SnEA __-sjlVoGEeS2WoXr83SnEA __-sjmFoGEeS2WoXr83SnEA __-sjpFoGEeS2WoXr83SnEA __-sjuVoGEeS2WoXr83SnEA __-sjvVoGEeS2WoXr83SnEA __-sjwVoGEeS2WoXr83SnEA"
+        elementType="__-sjdFoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__-sjcloGEeS2WoXr83SnEA" templateBinding="__-sgMFoGEeS2WoXr83SnEA __-sgM1oGEeS2WoXr83SnEA __-sgNloGEeS2WoXr83SnEA __-sgOVoGEeS2WoXr83SnEA __-sgPFoGEeS2WoXr83SnEA __-sgP1oGEeS2WoXr83SnEA __-sgQloGEeS2WoXr83SnEA __-sgRVoGEeS2WoXr83SnEA __-sgSFoGEeS2WoXr83SnEA __-sgS1oGEeS2WoXr83SnEA __-sgTloGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjc1oGEeS2WoXr83SnEA" parameteredElement="__-sjdFoGEeS2WoXr83SnEA"
+            templateParameterSubstitution="__-sgMVoGEeS2WoXr83SnEA __-sgNFoGEeS2WoXr83SnEA __-sgN1oGEeS2WoXr83SnEA __-sgOloGEeS2WoXr83SnEA __-sgPVoGEeS2WoXr83SnEA __-sgQFoGEeS2WoXr83SnEA __-sgQ1oGEeS2WoXr83SnEA __-sgRloGEeS2WoXr83SnEA __-sgSVoGEeS2WoXr83SnEA __-sgTFoGEeS2WoXr83SnEA __-sgT1oGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjdFoGEeS2WoXr83SnEA" name="T" templateParameter="__-sjc1oGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__-sfjFoGEeS2WoXr83SnEA __-sgEFoGEeS2WoXr83SnEA __-sgKFoGEeS2WoXr83SnEA __-sgjloGEeS2WoXr83SnEA"
+              typedElement="__-sjfFoGEeS2WoXr83SnEA __-sjjVoGEeS2WoXr83SnEA __-sjkVoGEeS2WoXr83SnEA __-sjlFoGEeS2WoXr83SnEA __-sjq1oGEeS2WoXr83SnEA __-sjsloGEeS2WoXr83SnEA __-sjuFoGEeS2WoXr83SnEA __-sjvFoGEeS2WoXr83SnEA __-sjwFoGEeS2WoXr83SnEA __-sjxFoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__-sjdVoGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-sjdloGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjd1oGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sjeFoGEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+        <ownedParameter xmi:id="__-sjeVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjeloGEeS2WoXr83SnEA" name="append" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="__-sje1oGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="__-sjfFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjfVoGEeS2WoXr83SnEA" name="appendAll" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="__-sjfloGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="__-sjf1oGEeS2WoXr83SnEA" name="objects" type="__-sgDloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjgFoGEeS2WoXr83SnEA" name="excluding" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__-sjgVoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="__-sjgloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjg1oGEeS2WoXr83SnEA" name="excludingAll" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__-sjhFoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__-sjhVoGEeS2WoXr83SnEA" name="objects" type="__-sfXVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjhloGEeS2WoXr83SnEA" name="flatten" type="__-sgR1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__-sjh1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].&#xA;If the element type is a collection type, the result is the sequence containing all the elements&#xA;of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+        <ownedTemplateSignature xmi:id="__-sjiFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjiVoGEeS2WoXr83SnEA" parameteredElement="__-sjiloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjiloGEeS2WoXr83SnEA" name="T2" templateParameter="__-sjiVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfg1oGEeS2WoXr83SnEA __-sgB1oGEeS2WoXr83SnEA __-sgSVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sji1oGEeS2WoXr83SnEA" name="including" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__-sjjFoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+        <ownedParameter xmi:id="__-sjjVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjjloGEeS2WoXr83SnEA" name="insertAt" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-sjj1oGEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+        <ownedParameter xmi:id="__-sjkFoGEeS2WoXr83SnEA" name="index" type="__-sgvloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__-sjkVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjkloGEeS2WoXr83SnEA" name="prepend" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="__-sjk1oGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__-sjlFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjlVoGEeS2WoXr83SnEA" name="prependAll" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="__-sjlloGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__-sjl1oGEeS2WoXr83SnEA" name="objects" type="__-sgDloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjmFoGEeS2WoXr83SnEA" name="reverse" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="__-sjmVoGEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjmloGEeS2WoXr83SnEA" name="selectByKind" type="__-sgSloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__-sjm1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjnFoGEeS2WoXr83SnEA" parameteredElement="__-sjnVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjnVoGEeS2WoXr83SnEA" name="TT" templateParameter="__-sjnFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfhloGEeS2WoXr83SnEA __-sf1FoGEeS2WoXr83SnEA __-sgCloGEeS2WoXr83SnEA __-sgTFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sjnloGEeS2WoXr83SnEA" name="type" type="__-sf0loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjn1oGEeS2WoXr83SnEA" name="selectByType" type="__-sgTVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__-sjoFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjoVoGEeS2WoXr83SnEA" parameteredElement="__-sjoloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjoloGEeS2WoXr83SnEA" name="TT" templateParameter="__-sjoVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfiVoGEeS2WoXr83SnEA __-sf11oGEeS2WoXr83SnEA __-sgDVoGEeS2WoXr83SnEA __-sgT1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sjo1oGEeS2WoXr83SnEA" name="type" type="__-sf1VoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjpFoGEeS2WoXr83SnEA" name="subSequence" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__-sjpVoGEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="__-sjploGEeS2WoXr83SnEA" name="lower" type="__-sgvloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__-sjp1oGEeS2WoXr83SnEA" name="upper" type="__-sgvloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjqFoGEeS2WoXr83SnEA" name="closure" type="__-sgJloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__-sjqVoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__-sjqloGEeS2WoXr83SnEA" name="lambda" type="__-se7loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjq1oGEeS2WoXr83SnEA" name="i" type="__-sjdFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjrFoGEeS2WoXr83SnEA" name="collectNested" type="__-sgQVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__-sjrVoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="__-sjrloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjr1oGEeS2WoXr83SnEA" parameteredElement="__-sjsFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjsFoGEeS2WoXr83SnEA" name="V" templateParameter="__-sjr1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sffVoGEeS2WoXr83SnEA __-sgAVoGEeS2WoXr83SnEA __-sgQ1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sjsVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se71oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjsloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjs1oGEeS2WoXr83SnEA" name="collect" type="__-sgRFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__-sjtFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjtVoGEeS2WoXr83SnEA" parameteredElement="__-sjtloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjtloGEeS2WoXr83SnEA" name="V" templateParameter="__-sjtVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfgFoGEeS2WoXr83SnEA __-sgBFoGEeS2WoXr83SnEA __-sgRloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sjt1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se8FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjuFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjuVoGEeS2WoXr83SnEA" name="reject" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__-sjuloGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__-sju1oGEeS2WoXr83SnEA" name="lambda" type="__-se7FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjvFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjvVoGEeS2WoXr83SnEA" name="select" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__-sjvloGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+        <ownedParameter xmi:id="__-sjv1oGEeS2WoXr83SnEA" name="lambda" type="__-se7FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjwFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjwVoGEeS2WoXr83SnEA" name="sortedBy" type="__-sjcVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__-sjwloGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="__-sjw1oGEeS2WoXr83SnEA" name="lambda" type="__-se7VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sjxFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sjxVoGEeS2WoXr83SnEA" name="Set" superClass="__-sgmFoGEeS2WoXr83SnEA" typedElement="__-sjyVoGEeS2WoXr83SnEA __-sj0VoGEeS2WoXr83SnEA __-sj1FoGEeS2WoXr83SnEA __-sj3FoGEeS2WoXr83SnEA __-sj31oGEeS2WoXr83SnEA __-sj7FoGEeS2WoXr83SnEA __-sj_VoGEeS2WoXr83SnEA __-skAVoGEeS2WoXr83SnEA"
+        elementType="__-sjyFoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__-sjxloGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjx1oGEeS2WoXr83SnEA" parameteredElement="__-sjyFoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjyFoGEeS2WoXr83SnEA" name="T" templateParameter="__-sjx1oGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__-sfnloGEeS2WoXr83SnEA __-sgE1oGEeS2WoXr83SnEA __-sgK1oGEeS2WoXr83SnEA __-sgmloGEeS2WoXr83SnEA"
+              typedElement="__-sj3loGEeS2WoXr83SnEA __-sj71oGEeS2WoXr83SnEA __-sj9loGEeS2WoXr83SnEA __-sj_FoGEeS2WoXr83SnEA __-skAFoGEeS2WoXr83SnEA __-skBFoGEeS2WoXr83SnEA __-skCFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgUloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgVVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgWFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgW1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgXloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgYVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgZFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgZ1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgaloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-sey1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-sezloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-se0VoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="#__-sgUVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgVFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgV1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgWloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgXVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgYFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgY1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgZloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgaVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-seyloGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-sezVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-se0FoGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__-sjyVoGEeS2WoXr83SnEA" name="-" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="__-skIloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sjyloGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="__-sjy1oGEeS2WoXr83SnEA" name="s" type="__-sgd1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjzFoGEeS2WoXr83SnEA" name="&lt;>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__-sjzVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sjzloGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__-skJFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-sjz1oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+        <ownedParameter xmi:id="__-sj0FoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sj0VoGEeS2WoXr83SnEA" name="excluding" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__-sj0loGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+        <ownedParameter xmi:id="__-sj01oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sj1FoGEeS2WoXr83SnEA" name="excludingAll" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__-sj1VoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__-sj1loGEeS2WoXr83SnEA" name="objects" type="__-sfXVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sj11oGEeS2WoXr83SnEA" name="flatten" type="__-sgX1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__-sj2FoGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].&#xA;If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="__-sj2VoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sj2loGEeS2WoXr83SnEA" parameteredElement="__-sj21oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sj21oGEeS2WoXr83SnEA" name="T2" templateParameter="__-sj2loGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sflVoGEeS2WoXr83SnEA __-sgYVoGEeS2WoXr83SnEA __-sgkVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sj3FoGEeS2WoXr83SnEA" name="including" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__-sj3VoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="__-sj3loGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sj31oGEeS2WoXr83SnEA" name="includingAll" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="__-sj4FoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="__-sj4VoGEeS2WoXr83SnEA" name="objects" type="__-sfnFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sj4loGEeS2WoXr83SnEA" name="selectByKind" type="__-sgYloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__-sj41oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sj5FoGEeS2WoXr83SnEA" parameteredElement="__-sj5VoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sj5VoGEeS2WoXr83SnEA" name="TT" templateParameter="__-sj5FoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfmFoGEeS2WoXr83SnEA __-sf2loGEeS2WoXr83SnEA __-sgZFoGEeS2WoXr83SnEA __-sglFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sj5loGEeS2WoXr83SnEA" name="type" type="__-sf2FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-sj51oGEeS2WoXr83SnEA" name="selectByType" type="__-sgZVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__-sj6FoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sj6VoGEeS2WoXr83SnEA" parameteredElement="__-sj6loGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sj6loGEeS2WoXr83SnEA" name="TT" templateParameter="__-sj6VoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfm1oGEeS2WoXr83SnEA __-sf3VoGEeS2WoXr83SnEA __-sgZ1oGEeS2WoXr83SnEA __-sgl1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sj61oGEeS2WoXr83SnEA" name="type" type="__-sf21oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sj7FoGEeS2WoXr83SnEA" name="closure" type="__-sjxVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__-sj7VoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__-sj7loGEeS2WoXr83SnEA" name="lambda" type="__-se81oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sj71oGEeS2WoXr83SnEA" name="i" type="__-sjyFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sj8FoGEeS2WoXr83SnEA" name="collectNested" type="__-sfFVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__-sj8VoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="__-sj8loGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sj81oGEeS2WoXr83SnEA" parameteredElement="__-sj9FoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sj9FoGEeS2WoXr83SnEA" name="V" templateParameter="__-sj81oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfF1oGEeS2WoXr83SnEA __-sfj1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sj9VoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se9FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sj9loGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sj91oGEeS2WoXr83SnEA" name="collect" type="__-sfGFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__-sj-FoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sj-VoGEeS2WoXr83SnEA" parameteredElement="__-sj-loGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sj-loGEeS2WoXr83SnEA" name="V" templateParameter="__-sj-VoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__-sfGloGEeS2WoXr83SnEA __-sfkloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__-sj-1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se9VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-sj_FoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sj_VoGEeS2WoXr83SnEA" name="reject" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__-sj_loGEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__-sj_1oGEeS2WoXr83SnEA" name="lambda" type="__-se8VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-skAFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-skAVoGEeS2WoXr83SnEA" name="select" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__-skAloGEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+        <ownedParameter xmi:id="__-skA1oGEeS2WoXr83SnEA" name="lambda" type="__-se8VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-skBFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-skBVoGEeS2WoXr83SnEA" name="sortedBy" type="__-sgKVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__-skBloGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="__-skB1oGEeS2WoXr83SnEA" name="lambda" type="__-se8loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-skCFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-skCVoGEeS2WoXr83SnEA" name="State" superClass="__-si6FoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-skCloGEeS2WoXr83SnEA" name="Type" superClass="__-si9loGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-skC1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__-sfn1oGEeS2WoXr83SnEA"
+        typedElement="__-skD1oGEeS2WoXr83SnEA __-skGloGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__-skDFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-skDVoGEeS2WoXr83SnEA" parameteredElement="__-skDloGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-skDloGEeS2WoXr83SnEA" name="T" templateParameter="__-skDVoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__-sfoVoGEeS2WoXr83SnEA __-sgFloGEeS2WoXr83SnEA __-sgLloGEeS2WoXr83SnEA __-sgaloGEeS2WoXr83SnEA __-sgnVoGEeS2WoXr83SnEA"
+              typedElement="__-skHloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgbVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgcFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgc1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgdloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgeVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgfFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgf1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sggloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sghVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgiFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgi1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgjloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgkVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sglFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgl1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgmloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__-sgnVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-se1FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-se11oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="ClassMM_IN.xml#__-se2loGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="#__-sgbFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgb1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgcloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgdVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgeFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sge1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgfloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sggVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sghFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgh1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgiloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgjVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgkFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgk1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sglloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgmVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__-sgnFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-se01oGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-se1loGEeS2WoXr83SnEA"/>
+        <templateBinding href="ClassMM_IN.xml#__-se2VoGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__-skD1oGEeS2WoXr83SnEA" name="-" type="__-skC1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="__-skIloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__-skEFoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="__-skEVoGEeS2WoXr83SnEA" name="s" type="__-sgd1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-skEloGEeS2WoXr83SnEA" name="intersection" type="__-sgaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="__-skE1oGEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+        <ownedParameter xmi:id="__-skFFoGEeS2WoXr83SnEA" name="c" type="__-sfn1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-skFVoGEeS2WoXr83SnEA" name="symmetricDifference" type="__-sgaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+        <ownedComment xmi:id="__-skFloGEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+        <ownedParameter xmi:id="__-skF1oGEeS2WoXr83SnEA" name="s" type="__-sgd1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__-skGFoGEeS2WoXr83SnEA" name="union" type="__-sgaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="__-skGVoGEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+        <ownedParameter xmi:id="__-skGloGEeS2WoXr83SnEA" name="s" type="__-skC1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-skG1oGEeS2WoXr83SnEA" name="sortedBy" type="__-sgLFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__-skHFoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="__-skHVoGEeS2WoXr83SnEA" name="lambda" type="__-se9loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__-skHloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-skDloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedPrecedence xmi:id="__-skH1oGEeS2WoXr83SnEA" name="NAVIGATION"/>
+    <ownedPrecedence xmi:id="__-skIFoGEeS2WoXr83SnEA" name="UNARY" order="1"/>
+    <ownedPrecedence xmi:id="__-skIVoGEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+    <ownedPrecedence xmi:id="__-skIloGEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+    <ownedPrecedence xmi:id="__-skI1oGEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+    <ownedPrecedence xmi:id="__-skJFoGEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+    <ownedPrecedence xmi:id="__-skJVoGEeS2WoXr83SnEA" name="AND" order="6"/>
+    <ownedPrecedence xmi:id="__-skJloGEeS2WoXr83SnEA" name="OR" order="7"/>
+    <ownedPrecedence xmi:id="__-skJ1oGEeS2WoXr83SnEA" name="XOR" order="8"/>
+    <ownedPrecedence xmi:id="__-skKFoGEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/OCL.xml
new file mode 100644
index 0000000..7a22e5b
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/OCL.xml
@@ -0,0 +1,2763 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_AT22UFoHEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+  <nestedPackage xmi:id="_AT22UVoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22UloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25J1oHEeS2WoXr83SnEA _AT25K1oHEeS2WoXr83SnEA"
+        contextType="_AT2481oHEeS2WoXr83SnEA" resultType="_AT24FVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22U1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25HVoHEeS2WoXr83SnEA"
+        contextType="_AT2481oHEeS2WoXr83SnEA" resultType="_AT25HFoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22VFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25I1oHEeS2WoXr83SnEA"
+        contextType="_AT2481oHEeS2WoXr83SnEA" resultType="_AT25IloHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22VVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25L1oHEeS2WoXr83SnEA"
+        contextType="_AT2481oHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22VloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25FloHEeS2WoXr83SnEA"
+        contextType="_AT2481oHEeS2WoXr83SnEA" resultType="_AT23yFoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22V1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25mFoHEeS2WoXr83SnEA _AT25qVoHEeS2WoXr83SnEA _AT25rloHEeS2WoXr83SnEA _AT25sVoHEeS2WoXr83SnEA _AT25tloHEeS2WoXr83SnEA _AT25xVoHEeS2WoXr83SnEA _AT25yVoHEeS2WoXr83SnEA _AT25zVoHEeS2WoXr83SnEA"
+        contextType="_AT25NVoHEeS2WoXr83SnEA" resultType="_AT24FVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22WFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25n1oHEeS2WoXr83SnEA"
+        contextType="_AT25NVoHEeS2WoXr83SnEA" resultType="_AT25nloHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22WVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25ploHEeS2WoXr83SnEA"
+        contextType="_AT25NVoHEeS2WoXr83SnEA" resultType="_AT25pVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22WloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25wFoHEeS2WoXr83SnEA"
+        contextType="_AT25NVoHEeS2WoXr83SnEA" resultType="_AT25v1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22W1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25uloHEeS2WoXr83SnEA _AT250VoHEeS2WoXr83SnEA"
+        contextType="_AT25NVoHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22XFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT263FoHEeS2WoXr83SnEA _AT264FoHEeS2WoXr83SnEA"
+        contextType="_AT26lFoHEeS2WoXr83SnEA" resultType="_AT24FVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22XVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT265FoHEeS2WoXr83SnEA"
+        contextType="_AT26lFoHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22XloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT26y1oHEeS2WoXr83SnEA"
+        contextType="_AT26lFoHEeS2WoXr83SnEA" resultType="_AT26kVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22X1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT260loHEeS2WoXr83SnEA"
+        contextType="_AT26lFoHEeS2WoXr83SnEA" resultType="_AT260VoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22YFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT262FoHEeS2WoXr83SnEA"
+        contextType="_AT26lFoHEeS2WoXr83SnEA" resultType="_AT2611oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22YVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27MFoHEeS2WoXr83SnEA _AT27NFoHEeS2WoXr83SnEA"
+        contextType="_AT266VoHEeS2WoXr83SnEA" resultType="_AT24FVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22YloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27OFoHEeS2WoXr83SnEA"
+        contextType="_AT266VoHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22Y1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27H1oHEeS2WoXr83SnEA"
+        contextType="_AT266VoHEeS2WoXr83SnEA" resultType="_AT23m1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22ZFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27JloHEeS2WoXr83SnEA"
+        contextType="_AT266VoHEeS2WoXr83SnEA" resultType="_AT27JVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22ZVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27LFoHEeS2WoXr83SnEA"
+        contextType="_AT266VoHEeS2WoXr83SnEA" resultType="_AT27K1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22ZloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27dFoHEeS2WoXr83SnEA _AT27eFoHEeS2WoXr83SnEA"
+        contextType="_AT27PVoHEeS2WoXr83SnEA" resultType="_AT24FVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22Z1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27fFoHEeS2WoXr83SnEA"
+        contextType="_AT27PVoHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22aFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27Y1oHEeS2WoXr83SnEA"
+        contextType="_AT27PVoHEeS2WoXr83SnEA" resultType="_AT27OloHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22aVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27aloHEeS2WoXr83SnEA"
+        contextType="_AT27PVoHEeS2WoXr83SnEA" resultType="_AT27aVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22aloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27cFoHEeS2WoXr83SnEA"
+        contextType="_AT27PVoHEeS2WoXr83SnEA" resultType="_AT27b1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22a1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27kloHEeS2WoXr83SnEA"
+        contextType="_AT27g1oHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="_AT22bFoHEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="_AT22mFoHEeS2WoXr83SnEA _AT23x1oHEeS2WoXr83SnEA _AT234loHEeS2WoXr83SnEA"
+        superClass="_AT26ZVoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_AT22bVoHEeS2WoXr83SnEA" name="first" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_AT22bloHEeS2WoXr83SnEA" name="second" type="_AT25g1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22b1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+        superClass="_AT22mVoHEeS2WoXr83SnEA" typedElement="_AT25GFoHEeS2WoXr83SnEA" elementType="_AT25HFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22cFoHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22cVoHEeS2WoXr83SnEA" actual="_AT25HFoHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22cloHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+        superClass="_AT22nFoHEeS2WoXr83SnEA" typedElement="_AT25H1oHEeS2WoXr83SnEA" elementType="_AT25IloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22c1oHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22dFoHEeS2WoXr83SnEA" actual="_AT25IloHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22dVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+        superClass="_AT22n1oHEeS2WoXr83SnEA" typedElement="_AT24_1oHEeS2WoXr83SnEA" elementType="_AT25A1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22dloHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22d1oHEeS2WoXr83SnEA" actual="_AT25A1oHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22eFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+        superClass="_AT22oloHEeS2WoXr83SnEA" typedElement="_AT25CloHEeS2WoXr83SnEA" elementType="_AT25DVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22eVoHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22eloHEeS2WoXr83SnEA" actual="_AT25DVoHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22e1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+        superClass="_AT22pVoHEeS2WoXr83SnEA" typedElement="_AT25D1oHEeS2WoXr83SnEA" elementType="_AT25EloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22fFoHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22fVoHEeS2WoXr83SnEA" actual="_AT25EloHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22floHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+        superClass="_AT22w1oHEeS2WoXr83SnEA" typedElement="_AT25Q1oHEeS2WoXr83SnEA _AT25cVoHEeS2WoXr83SnEA _AT25k1oHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22f1oHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22gFoHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22gVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+        superClass="_AT22xloHEeS2WoXr83SnEA" typedElement="_AT25NloHEeS2WoXr83SnEA" elementType="_AT25MloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22gloHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22g1oHEeS2WoXr83SnEA" actual="_AT25MloHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22hFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+        superClass="_AT22zFoHEeS2WoXr83SnEA" typedElement="_AT2521oHEeS2WoXr83SnEA" elementType="_AT2501oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22hVoHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22hloHEeS2WoXr83SnEA" actual="_AT2501oHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22h1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+        superClass="_AT22z1oHEeS2WoXr83SnEA" typedElement="_AT254FoHEeS2WoXr83SnEA" elementType="_AT253FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22iFoHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22iVoHEeS2WoXr83SnEA" actual="_AT253FoHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22iloHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+        superClass="_AT23AloHEeS2WoXr83SnEA" typedElement="_AT27ZVoHEeS2WoXr83SnEA" elementType="_AT27aVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22i1oHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22jFoHEeS2WoXr83SnEA" actual="_AT27aVoHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22jVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+        superClass="_AT23BVoHEeS2WoXr83SnEA" typedElement="_AT27bFoHEeS2WoXr83SnEA" elementType="_AT27b1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22jloHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22j1oHEeS2WoXr83SnEA" actual="_AT27b1oHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22kFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT24M1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22kVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22kloHEeS2WoXr83SnEA" actual="_AT24M1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22k1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT24h1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22lFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22lVoHEeS2WoXr83SnEA" actual="_AT24h1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22lloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT22bFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22l1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22mFoHEeS2WoXr83SnEA" actual="_AT22bFoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22mVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25HFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22mloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22m1oHEeS2WoXr83SnEA" actual="_AT25HFoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22nFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25IloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22nVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22nloHEeS2WoXr83SnEA" actual="_AT25IloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22n1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25A1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22oFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22oVoHEeS2WoXr83SnEA" actual="_AT25A1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22oloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25DVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22o1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22pFoHEeS2WoXr83SnEA" actual="_AT25DVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22pVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25EloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22ploHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22p1oHEeS2WoXr83SnEA" actual="_AT25EloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22qFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25CVoHEeS2WoXr83SnEA" elementType="_AT2481oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22qVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22qloHEeS2WoXr83SnEA" actual="_AT2481oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22q1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25mloHEeS2WoXr83SnEA" elementType="_AT25nloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22rFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22rVoHEeS2WoXr83SnEA" actual="_AT25nloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22rloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25oVoHEeS2WoXr83SnEA" elementType="_AT25pVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22r1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22sFoHEeS2WoXr83SnEA" actual="_AT25pVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22sVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25VloHEeS2WoXr83SnEA" elementType="_AT25VVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22sloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22s1oHEeS2WoXr83SnEA" actual="_AT25VVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22tFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25XVoHEeS2WoXr83SnEA" elementType="_AT25YVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22tVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22tloHEeS2WoXr83SnEA" actual="_AT25YVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22t1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25aloHEeS2WoXr83SnEA" elementType="_AT25aVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22uFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22uVoHEeS2WoXr83SnEA" actual="_AT25aVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22uloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25hFoHEeS2WoXr83SnEA" elementType="_AT25g1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22u1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22vFoHEeS2WoXr83SnEA" actual="_AT25g1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22vVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25hVoHEeS2WoXr83SnEA" elementType="_AT25iFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22vloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22v1oHEeS2WoXr83SnEA" actual="_AT25iFoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22wFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25iloHEeS2WoXr83SnEA" elementType="_AT25jVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22wVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22wloHEeS2WoXr83SnEA" actual="_AT25jVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22w1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22xFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22xVoHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22xloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25MloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22x1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22yFoHEeS2WoXr83SnEA" actual="_AT25MloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22yVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT252VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22yloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22y1oHEeS2WoXr83SnEA" actual="_AT252VoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22zFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT2501oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22zVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22zloHEeS2WoXr83SnEA" actual="_AT2501oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22z1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT253FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT220FoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT220VoHEeS2WoXr83SnEA" actual="_AT253FoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT220loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT24_loHEeS2WoXr83SnEA _AT25XFoHEeS2WoXr83SnEA _AT26p1oHEeS2WoXr83SnEA _AT26-loHEeS2WoXr83SnEA _AT27S1oHEeS2WoXr83SnEA"
+        elementType="_AT2541oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT2201oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT221FoHEeS2WoXr83SnEA" actual="_AT2541oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT221VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26IloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT221loHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT2211oHEeS2WoXr83SnEA" actual="_AT26IloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT222FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26W1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT222VoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT222loHEeS2WoXr83SnEA" actual="_AT26W1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT2221oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26hloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT223FoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT223VoHEeS2WoXr83SnEA" actual="_AT26hloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT223loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT260VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT2231oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT224FoHEeS2WoXr83SnEA" actual="_AT260VoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT224VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT2611oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT224loHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT2241oHEeS2WoXr83SnEA" actual="_AT2611oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT225FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26q1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT225VoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT225loHEeS2WoXr83SnEA" actual="_AT26q1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT2251oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26vloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT226FoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT226VoHEeS2WoXr83SnEA" actual="_AT26vloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT226loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26w1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT2261oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT227FoHEeS2WoXr83SnEA" actual="_AT26w1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT227VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26lFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT227loHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT2271oHEeS2WoXr83SnEA" actual="_AT26lFoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT228FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27JVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT228VoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT228loHEeS2WoXr83SnEA" actual="_AT27JVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT2281oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27K1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT229FoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT229VoHEeS2WoXr83SnEA" actual="_AT27K1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT229loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26_1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT2291oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22-FoHEeS2WoXr83SnEA" actual="_AT26_1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22-VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27EloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22-loHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22-1oHEeS2WoXr83SnEA" actual="_AT27EloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22_FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27F1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT22_VoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT22_loHEeS2WoXr83SnEA" actual="_AT27F1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22_1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT266VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23AFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23AVoHEeS2WoXr83SnEA" actual="_AT266VoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23AloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27aVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23A1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23BFoHEeS2WoXr83SnEA" actual="_AT27aVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23BVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27b1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23BloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23B1oHEeS2WoXr83SnEA" actual="_AT27b1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23CFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27UFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23CVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23CloHEeS2WoXr83SnEA" actual="_AT27UFoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23C1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27WloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23DFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23DVoHEeS2WoXr83SnEA" actual="_AT27WloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23DloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27X1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23D1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23EFoHEeS2WoXr83SnEA" actual="_AT27X1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23EVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT27VloHEeS2WoXr83SnEA" elementType="_AT27PVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23EloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23E1oHEeS2WoXr83SnEA" actual="_AT27PVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23FFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT27iVoHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23FVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23FloHEeS2WoXr83SnEA" actual="_AT27g1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23F1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT2471oHEeS2WoXr83SnEA" instanceType="_AT247loHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23GFoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23GVoHEeS2WoXr83SnEA" actual="_AT247loHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23GloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT25DloHEeS2WoXr83SnEA" instanceType="_AT25DVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23G1oHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23HFoHEeS2WoXr83SnEA" actual="_AT25DVoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23HVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT25E1oHEeS2WoXr83SnEA" instanceType="_AT25EloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23HloHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23H1oHEeS2WoXr83SnEA" actual="_AT25EloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23IFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT25iVoHEeS2WoXr83SnEA" instanceType="_AT25iFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23IVoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23IloHEeS2WoXr83SnEA" actual="_AT25iFoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23I1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT25jloHEeS2WoXr83SnEA" instanceType="_AT25jVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23JFoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23JVoHEeS2WoXr83SnEA" actual="_AT25jVoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23JloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT258loHEeS2WoXr83SnEA" instanceType="_AT258VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23J1oHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23KFoHEeS2WoXr83SnEA" actual="_AT258VoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23KVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT25_VoHEeS2WoXr83SnEA" instanceType="_AT25_FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23KloHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23K1oHEeS2WoXr83SnEA" actual="_AT25_FoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23LFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26BVoHEeS2WoXr83SnEA" instanceType="_AT26BFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23LVoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23LloHEeS2WoXr83SnEA" actual="_AT26BFoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23L1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26PVoHEeS2WoXr83SnEA" instanceType="_AT26PFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23MFoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23MVoHEeS2WoXr83SnEA" actual="_AT26PFoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23MloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26Q1oHEeS2WoXr83SnEA" instanceType="_AT26QloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23M1oHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23NFoHEeS2WoXr83SnEA" actual="_AT26QloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23NVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26SFoHEeS2WoXr83SnEA" instanceType="_AT26R1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23NloHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23N1oHEeS2WoXr83SnEA" actual="_AT26R1oHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23OFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" instanceType="_AT26KloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23OVoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23OloHEeS2WoXr83SnEA" actual="_AT26KloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23O1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26DVoHEeS2WoXr83SnEA _AT26SloHEeS2WoXr83SnEA" instanceType="_AT26W1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23PFoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23PVoHEeS2WoXr83SnEA" actual="_AT26W1oHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23PloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" instanceType="_AT26cFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23P1oHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23QFoHEeS2WoXr83SnEA" actual="_AT26cFoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23QVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26v1oHEeS2WoXr83SnEA" instanceType="_AT26vloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23QloHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23Q1oHEeS2WoXr83SnEA" actual="_AT26vloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23RFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26xFoHEeS2WoXr83SnEA" instanceType="_AT26w1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23RVoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23RloHEeS2WoXr83SnEA" actual="_AT26w1oHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23R1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT27E1oHEeS2WoXr83SnEA" instanceType="_AT27EloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23SFoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23SVoHEeS2WoXr83SnEA" actual="_AT27EloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23SloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT27GFoHEeS2WoXr83SnEA" instanceType="_AT27F1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23S1oHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23TFoHEeS2WoXr83SnEA" actual="_AT27F1oHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23TVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT27W1oHEeS2WoXr83SnEA" instanceType="_AT27WloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23TloHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23T1oHEeS2WoXr83SnEA" actual="_AT27WloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23UFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT27YFoHEeS2WoXr83SnEA" instanceType="_AT27X1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23UVoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23UloHEeS2WoXr83SnEA" actual="_AT27X1oHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23U1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT22kFoHEeS2WoXr83SnEA" elementType="_AT24M1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23VFoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23VVoHEeS2WoXr83SnEA" actual="_AT24M1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23VloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT22k1oHEeS2WoXr83SnEA" elementType="_AT24h1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23V1oHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23WFoHEeS2WoXr83SnEA" actual="_AT24h1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23WVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT22qFoHEeS2WoXr83SnEA" elementType="_AT2481oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23WloHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23W1oHEeS2WoXr83SnEA" actual="_AT2481oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23XFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT22w1oHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23XVoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23XloHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23X1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT22yVoHEeS2WoXr83SnEA" elementType="_AT252VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23YFoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23YVoHEeS2WoXr83SnEA" actual="_AT252VoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23YloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT223loHEeS2WoXr83SnEA" elementType="_AT260VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23Y1oHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23ZFoHEeS2WoXr83SnEA" actual="_AT260VoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23ZVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT224VoHEeS2WoXr83SnEA" elementType="_AT2611oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23ZloHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23Z1oHEeS2WoXr83SnEA" actual="_AT2611oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23aFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT225FoHEeS2WoXr83SnEA" elementType="_AT26q1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23aVoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23aloHEeS2WoXr83SnEA" actual="_AT26q1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23a1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT2251oHEeS2WoXr83SnEA" elementType="_AT26vloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23bFoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23bVoHEeS2WoXr83SnEA" actual="_AT26vloHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23bloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT226loHEeS2WoXr83SnEA" elementType="_AT26w1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23b1oHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23cFoHEeS2WoXr83SnEA" actual="_AT26w1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23cVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT227VoHEeS2WoXr83SnEA" typedElement="_AT26oVoHEeS2WoXr83SnEA _AT26uFoHEeS2WoXr83SnEA" elementType="_AT26lFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23cloHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23c1oHEeS2WoXr83SnEA" actual="_AT26lFoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23dFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT228FoHEeS2WoXr83SnEA" elementType="_AT27JVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23dVoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23dloHEeS2WoXr83SnEA" actual="_AT27JVoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23d1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT2281oHEeS2WoXr83SnEA" elementType="_AT27K1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23eFoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23eVoHEeS2WoXr83SnEA" actual="_AT27K1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23eloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT229loHEeS2WoXr83SnEA" elementType="_AT26_1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23e1oHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23fFoHEeS2WoXr83SnEA" actual="_AT26_1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23fVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT22-VoHEeS2WoXr83SnEA" elementType="_AT27EloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23floHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23f1oHEeS2WoXr83SnEA" actual="_AT27EloHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23gFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT22_FoHEeS2WoXr83SnEA" elementType="_AT27F1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23gVoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23gloHEeS2WoXr83SnEA" actual="_AT27F1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23g1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT22_1oHEeS2WoXr83SnEA" typedElement="_AT269FoHEeS2WoXr83SnEA _AT27DFoHEeS2WoXr83SnEA" elementType="_AT266VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23hFoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23hVoHEeS2WoXr83SnEA" actual="_AT266VoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23hloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT23EVoHEeS2WoXr83SnEA" elementType="_AT27PVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23h1oHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23iFoHEeS2WoXr83SnEA" actual="_AT27PVoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23iVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+        superClass="_AT23FFoHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23iloHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23i1oHEeS2WoXr83SnEA" actual="_AT27g1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23jFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+        superClass="_AT23XFoHEeS2WoXr83SnEA _AT235loHEeS2WoXr83SnEA" typedElement="_AT25RVoHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23jVoHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23jloHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23j1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+        superClass="_AT23X1oHEeS2WoXr83SnEA _AT236VoHEeS2WoXr83SnEA" typedElement="_AT251VoHEeS2WoXr83SnEA" elementType="_AT252VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23kFoHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23kVoHEeS2WoXr83SnEA" actual="_AT252VoHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23kloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+        superClass="_AT23aFoHEeS2WoXr83SnEA _AT239VoHEeS2WoXr83SnEA" typedElement="_AT26qFoHEeS2WoXr83SnEA" elementType="_AT26q1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23k1oHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23lFoHEeS2WoXr83SnEA" actual="_AT26q1oHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23lVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+        superClass="_AT23a1oHEeS2WoXr83SnEA _AT23-FoHEeS2WoXr83SnEA" typedElement="_AT26u1oHEeS2WoXr83SnEA" elementType="_AT26vloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23lloHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23l1oHEeS2WoXr83SnEA" actual="_AT26vloHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23mFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+        superClass="_AT23bloHEeS2WoXr83SnEA _AT23-1oHEeS2WoXr83SnEA" typedElement="_AT26wFoHEeS2WoXr83SnEA" elementType="_AT26w1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23mVoHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23mloHEeS2WoXr83SnEA" actual="_AT26w1oHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23m1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+        superClass="_AT23g1oHEeS2WoXr83SnEA _AT24AVoHEeS2WoXr83SnEA" typedElement="_AT27HVoHEeS2WoXr83SnEA" elementType="_AT266VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23nFoHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23nVoHEeS2WoXr83SnEA" actual="_AT266VoHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23nloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+        superClass="_AT23hloHEeS2WoXr83SnEA _AT24DVoHEeS2WoXr83SnEA" typedElement="_AT27eloHEeS2WoXr83SnEA" elementType="_AT27PVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23n1oHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23oFoHEeS2WoXr83SnEA" actual="_AT27PVoHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23oVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+        superClass="_AT23iVoHEeS2WoXr83SnEA _AT24EFoHEeS2WoXr83SnEA" typedElement="_AT27kFoHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23oloHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23o1oHEeS2WoXr83SnEA" actual="_AT27g1oHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23pFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+        superClass="_AT23U1oHEeS2WoXr83SnEA" elementType="_AT24M1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23pVoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23ploHEeS2WoXr83SnEA" actual="_AT24M1oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23p1oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+        superClass="_AT23VloHEeS2WoXr83SnEA" typedElement="_AT24nloHEeS2WoXr83SnEA _AT243loHEeS2WoXr83SnEA _AT244FoHEeS2WoXr83SnEA _AT2441oHEeS2WoXr83SnEA"
+        elementType="_AT24h1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23qFoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23qVoHEeS2WoXr83SnEA" actual="_AT24h1oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23qloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+        superClass="_AT23WVoHEeS2WoXr83SnEA" typedElement="_AT25LVoHEeS2WoXr83SnEA" elementType="_AT2481oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23q1oHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23rFoHEeS2WoXr83SnEA" actual="_AT2481oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23rVoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+        superClass="_AT23XFoHEeS2WoXr83SnEA" typedElement="_AT25R1oHEeS2WoXr83SnEA _AT25z1oHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23rloHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23r1oHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23sFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+        superClass="_AT23YloHEeS2WoXr83SnEA" typedElement="_AT26zVoHEeS2WoXr83SnEA" elementType="_AT260VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23sVoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23sloHEeS2WoXr83SnEA" actual="_AT260VoHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23s1oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+        superClass="_AT23ZVoHEeS2WoXr83SnEA" typedElement="_AT261FoHEeS2WoXr83SnEA" elementType="_AT2611oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23tFoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23tVoHEeS2WoXr83SnEA" actual="_AT2611oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23tloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+        superClass="_AT23dFoHEeS2WoXr83SnEA" typedElement="_AT27IVoHEeS2WoXr83SnEA" elementType="_AT27JVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23t1oHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23uFoHEeS2WoXr83SnEA" actual="_AT27JVoHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23uVoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+        superClass="_AT23d1oHEeS2WoXr83SnEA" typedElement="_AT27KFoHEeS2WoXr83SnEA" elementType="_AT27K1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23uloHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23u1oHEeS2WoXr83SnEA" actual="_AT27K1oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23vFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+        superClass="_AT23eloHEeS2WoXr83SnEA" typedElement="_AT26-1oHEeS2WoXr83SnEA" elementType="_AT26_1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23vVoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23vloHEeS2WoXr83SnEA" actual="_AT26_1oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23v1oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+        superClass="_AT23fVoHEeS2WoXr83SnEA" typedElement="_AT27D1oHEeS2WoXr83SnEA" elementType="_AT27EloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23wFoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23wVoHEeS2WoXr83SnEA" actual="_AT27EloHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23wloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+        superClass="_AT23gFoHEeS2WoXr83SnEA" typedElement="_AT27FFoHEeS2WoXr83SnEA" elementType="_AT27F1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23w1oHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23xFoHEeS2WoXr83SnEA" actual="_AT27F1oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT23xVoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+        superClass="_AT234FoHEeS2WoXr83SnEA" typedElement="_AT25f1oHEeS2WoXr83SnEA" elementType="_AT22bFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23xloHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23x1oHEeS2WoXr83SnEA" actual="_AT22bFoHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT23yFoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+        superClass="_AT2341oHEeS2WoXr83SnEA" typedElement="_AT25FFoHEeS2WoXr83SnEA" elementType="_AT2481oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23yVoHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23yloHEeS2WoXr83SnEA" actual="_AT2481oHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT23y1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+        superClass="_AT235loHEeS2WoXr83SnEA" typedElement="_AT25SVoHEeS2WoXr83SnEA _AT25dFoHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23zFoHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23zVoHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT23zloHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+        superClass="_AT2371oHEeS2WoXr83SnEA" typedElement="_AT26KFoHEeS2WoXr83SnEA" elementType="_AT26IloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23z1oHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT230FoHEeS2WoXr83SnEA" actual="_AT26IloHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT230VoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+        superClass="_AT238loHEeS2WoXr83SnEA" typedElement="_AT24HFoHEeS2WoXr83SnEA _AT2511oHEeS2WoXr83SnEA _AT2561oHEeS2WoXr83SnEA _AT26JFoHEeS2WoXr83SnEA _AT26MloHEeS2WoXr83SnEA _AT26OFoHEeS2WoXr83SnEA _AT26d1oHEeS2WoXr83SnEA"
+        elementType="_AT26W1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT230loHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT2301oHEeS2WoXr83SnEA" actual="_AT26W1oHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT231FoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+        superClass="_AT24BFoHEeS2WoXr83SnEA" typedElement="_AT27TFoHEeS2WoXr83SnEA" elementType="_AT27UFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT231VoHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT231loHEeS2WoXr83SnEA" actual="_AT27UFoHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT2311oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+        superClass="_AT24B1oHEeS2WoXr83SnEA" typedElement="_AT27V1oHEeS2WoXr83SnEA" elementType="_AT27WloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT232FoHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT232VoHEeS2WoXr83SnEA" actual="_AT27WloHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT232loHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+        superClass="_AT24CloHEeS2WoXr83SnEA" typedElement="_AT27XFoHEeS2WoXr83SnEA" elementType="_AT27X1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT2321oHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT233FoHEeS2WoXr83SnEA" actual="_AT27X1oHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT233VoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+        superClass="_AT24EFoHEeS2WoXr83SnEA" typedElement="_AT27h1oHEeS2WoXr83SnEA _AT27iloHEeS2WoXr83SnEA _AT27jVoHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT233loHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT2331oHEeS2WoXr83SnEA" actual="_AT27g1oHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT234FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT22lloHEeS2WoXr83SnEA" elementType="_AT22bFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT234VoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT234loHEeS2WoXr83SnEA" actual="_AT22bFoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT2341oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT22qFoHEeS2WoXr83SnEA" elementType="_AT2481oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT235FoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT235VoHEeS2WoXr83SnEA" actual="_AT2481oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT235loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT22w1oHEeS2WoXr83SnEA" typedElement="_AT25dloHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT2351oHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT236FoHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT236VoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT22yVoHEeS2WoXr83SnEA" elementType="_AT252VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT236loHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT2361oHEeS2WoXr83SnEA" actual="_AT252VoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT237FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT220loHEeS2WoXr83SnEA" typedElement="_AT26l1oHEeS2WoXr83SnEA _AT27QFoHEeS2WoXr83SnEA _AT27hloHEeS2WoXr83SnEA _AT27jFoHEeS2WoXr83SnEA"
+        elementType="_AT2541oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT237VoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT237loHEeS2WoXr83SnEA" actual="_AT2541oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT2371oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT221VoHEeS2WoXr83SnEA" elementType="_AT26IloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT238FoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT238VoHEeS2WoXr83SnEA" actual="_AT26IloHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT238loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT222FoHEeS2WoXr83SnEA" elementType="_AT26W1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT2381oHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT239FoHEeS2WoXr83SnEA" actual="_AT26W1oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT239VoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT225FoHEeS2WoXr83SnEA" elementType="_AT26q1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT239loHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT2391oHEeS2WoXr83SnEA" actual="_AT26q1oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23-FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT2251oHEeS2WoXr83SnEA" elementType="_AT26vloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23-VoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23-loHEeS2WoXr83SnEA" actual="_AT26vloHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23-1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT226loHEeS2WoXr83SnEA" elementType="_AT26w1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23_FoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT23_VoHEeS2WoXr83SnEA" actual="_AT26w1oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23_loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT227VoHEeS2WoXr83SnEA" elementType="_AT26lFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT23_1oHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT24AFoHEeS2WoXr83SnEA" actual="_AT26lFoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24AVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT22_1oHEeS2WoXr83SnEA" elementType="_AT266VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT24AloHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT24A1oHEeS2WoXr83SnEA" actual="_AT266VoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24BFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT23CFoHEeS2WoXr83SnEA" elementType="_AT27UFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT24BVoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT24BloHEeS2WoXr83SnEA" actual="_AT27UFoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24B1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT23C1oHEeS2WoXr83SnEA" elementType="_AT27WloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT24CFoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT24CVoHEeS2WoXr83SnEA" actual="_AT27WloHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24CloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT23DloHEeS2WoXr83SnEA" elementType="_AT27X1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT24C1oHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT24DFoHEeS2WoXr83SnEA" actual="_AT27X1oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24DVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT23EVoHEeS2WoXr83SnEA" elementType="_AT27PVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT24DloHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT24D1oHEeS2WoXr83SnEA" actual="_AT27PVoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24EFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+        superClass="_AT23FFoHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT24EVoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT24EloHEeS2WoXr83SnEA" actual="_AT27g1oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="_AT24E1oHEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+    <ownedComment xmi:id="_AT24FFoHEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.&#xA;This sub clause contains all standard types defined within OCL, including all the operations defined on those types.&#xA;For each operation the signature and a description of the semantics is given.&#xA;Within the description, the reserved word &#x2018;result&#x2019; is used to refer to the value that results from evaluating the operation.&#xA;In several places, post conditions are used to describe properties of the result.&#xA;When there is more than one postcondition, all postconditions must be true.&#xA;A similar thing is true for multiple preconditions.&#xA;If these are used, the operation is only defined if all preconditions evaluate to oclText[true].&#xA;&#xA;heading:1[Introduction]&#xA;&#xA;The structure, syntax, and semantics of the OCL is defined in Clauses 8 (&#x201c;Abstract Syntax&#x201d;), 9 (&#x201c;Concrete Syntax&#x201d;),&#xA;and 10 (&#x201c;Semantics Described using UML&#x201d;).&#xA;This sub clause adds another part to the OCL definition: a library of predefined types and operations.&#xA;Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,&#xA;where the language definition and the standard libraries are both mandatory parts of the complete language definition.&#xA;&#xA;The OCL standard library defines a number of types.&#xA;It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.&#xA;These are familiar from many other languages. The second part of the standard library consists of the collection types.&#xA;They are Bag, Set, Sequence, and Collection where Collection is an abstract type.&#xA;Note that all types defined in the OCL standard library are instances of an abstract syntax class.&#xA;The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.&#xA;&#xA;Next to definitions of types the OCL standard library defines a number of template expressions.&#xA;Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.&#xA;For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.&#xA;&#xA;The Standard Library may be extended with new types, new operations and new iterators.&#xA;In particular new operations can be defined for collections.&#xA;&#xA;Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted&#xA;in an appropriate fashion.&#xA;A locale is defined as a concatenation of up to three character sequences separated by underscores,&#xA;with the first sequence identifying the language and the second sequence identifying the country.&#xA;The third sequence is empty but may encode an implementation-specific variant.&#xA;Trailing empty strings and separators may be omitted.&#xA;&#xA;The character sequences for languages are defined by ISO 639.&#xA;&#xA;The character sequences for countries are defined by ISO 3166.&#xA;&#xA;&#x2018;fr_CA&#x2019; therefore identifies the locale for the French language in the Canada country.&#xA;&#xA;Comparison of strings and consequently the collation order of Collection::sortedBy()&#xA;conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.&#xA;&#xA;The locale is &#x2018;en_us&#x2019; by default but may be configured by a property constraint on OclAny::oclLocale.&#xA;&#xA;The prevailing locale is defined by the prevailing value of oclLocale within the current environment;&#xA;it may therefore be changed temporarily by using a Let expression.&#xA;let oclLocale : String = &#x2018;fr_CA&#x2019; in aString.toUpperCase()&#xA;&#xA;heading:1[Iterators]&#xA;&#xA;This sub clause defines the standard OCL iterator expressions.&#xA;In the abstract syntax these are all instances of IteratorExp.&#xA;These iterator expressions always have a collection expression as their source,&#xA;as is defined in the well-formedness rules in Clause 8 (&#x201c;Abstract Syntax&#x201d;).&#xA;The defined iterator expressions are shown per source collection type.&#xA;The semantics of each iterator expression is defined through a mapping from the iterator to the &#x2018;iterate&#x2019; construct.&#xA;This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.&#xA;&#xA;In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,&#xA;and the righthand side of the equals sign is the equivalent as an IterateExp.&#xA;The names source, body, and iterator refer to the role names in the abstract syntax:&#xA;&#xA;source&#x9;The source expression of the IteratorExp.&#xA;&#xA;body&#x9;The body expression of the IteratorExp.&#xA;&#xA;iterator&#x9;The iterator variable of the IteratorExp.&#xA;&#xA;result&#x9;The result variable of the IterateExp.&#xA;&#xA;heading:2[Extending the Standard Library with Iterator Expressions]&#xA;&#xA;It is possible to add new iterator expressions in the standard library.&#xA;If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,&#xA;in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_AT24FVoHEeS2WoXr83SnEA" name="Boolean" superClass="_AT2541oHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_AT24FloHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24F1oHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_AT24GFoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24GVoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24GloHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_AT24G1oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24HFoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+        <ownedComment xmi:id="_AT24HVoHEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24HloHEeS2WoXr83SnEA" name="and" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isInvalidating="true" isValidating="true" precedence="_AT27mloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24H1oHEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[true]."/>
+        <bodyExpression xmi:id="_AT24IFoHEeS2WoXr83SnEA" type="_AT24FVoHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = false then false
+		        else self
+		        endif endif
+		      else if self = false then false
+		      else if b.oclIsInvalid() then b
+		      else if b = false then false
+		      else if self = null then null
+		      else if b = null then null
+		      else true
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_AT24IVoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24IloHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isInvalidating="true" isValidating="true" precedence="_AT27nVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24I1oHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="_AT24JFoHEeS2WoXr83SnEA" type="_AT24FVoHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = true then true
+		        else self
+		        endif endif
+		      else if self = false then true
+		      else if b.oclIsInvalid() then b
+		      else if b = true then true
+		      else if self = null then null
+		      else if b = null then b
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_AT24JVoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24JloHEeS2WoXr83SnEA" name="not" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+          precedence="_AT27lVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24J1oHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].&#xA;oclText[false] if oclText[self] is oclText[true].&#xA;oclText[null] if oclText[self] is oclText[null].&#xA;Otherwise oclText[invalid]."/>
+        <bodyExpression xmi:id="_AT24KFoHEeS2WoXr83SnEA" type="_AT24FVoHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if self = null then null
+		      else self = false
+		      endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24KVoHEeS2WoXr83SnEA" name="or" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+          isInvalidating="true" isValidating="true" precedence="_AT27m1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24KloHEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="_AT24K1oHEeS2WoXr83SnEA" type="_AT24FVoHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+			    else if b = true then true
+		        else self
+		        endif endif
+		      else if self = true then true
+			  else if b.oclIsInvalid() then b
+			  else if b = true then true
+			  else if self = null then null
+			  else if b = null then null
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_AT24LFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24LVoHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_AT24LloHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24L1oHEeS2WoXr83SnEA" name="xor" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+          precedence="_AT27nFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24MFoHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].&#xA;oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null]."/>
+        <bodyExpression xmi:id="_AT24MVoHEeS2WoXr83SnEA" type="_AT24FVoHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if b.oclIsInvalid() then b
+		      else if self = null then null
+		      else if b = null then null
+		      else self &lt;> b
+		      endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_AT24MloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24FloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24GVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24HloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_AT24IFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24IVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24IloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_AT24JFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24JVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24JloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_AT24KFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24KVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_AT24K1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24LFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24L1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_AT24MVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24MloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24ZFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24Z1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24aloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24bVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24cFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24c1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24i1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24jloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24kVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24k1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24lVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24mFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24ploHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24qVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24sloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24v1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24zloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT245loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT249FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT249loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25PVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25QFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25TloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25UVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25YloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25ZVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25d1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25fVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25qFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25rFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25sFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25tFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25uFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25w1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT255VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT256FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT2581oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT259loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25-FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25_loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26AFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26BloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26E1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26FloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26GVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26HFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26LFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26L1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26NFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26NVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26NloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26N1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26PloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26P1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26RFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26SVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26S1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26TFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26U1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26VVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26V1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26Z1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26aVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26bVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26cloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26dFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26eVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26eloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26e1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26fFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26fVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26floHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26f1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26gFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26mFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26mloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT266loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT267FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT27QVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT27Q1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Function" href="hstmtostm.xml#_AT27oVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:IfExp" href="hstmtostm.xml#_AT27pFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT27pVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:IfExp" href="hstmtostm.xml#_AT27qVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT27qloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT27rloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:BooleanLiteralExp" href="hstmtostm.xml#_AT27sloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:BooleanLiteralExp" href="hstmtostm.xml#_AT27s1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT27uloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="hstmtostm.xml#_AT275VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT276VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT276loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT277VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="hstmtostm.xml#_AT278VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT279VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT279loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT27-VoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_AT24M1oHEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="_AT22kloHEeS2WoXr83SnEA _AT23VVoHEeS2WoXr83SnEA _AT23ploHEeS2WoXr83SnEA"
+        superClass="_AT24VVoHEeS2WoXr83SnEA" typedElement="_AT24NFoHEeS2WoXr83SnEA _AT24N1oHEeS2WoXr83SnEA _AT24OloHEeS2WoXr83SnEA _AT24PFoHEeS2WoXr83SnEA _AT24QloHEeS2WoXr83SnEA _AT24RFoHEeS2WoXr83SnEA _AT24R1oHEeS2WoXr83SnEA _AT24SVoHEeS2WoXr83SnEA _AT24SloHEeS2WoXr83SnEA _AT24TVoHEeS2WoXr83SnEA _AT24UFoHEeS2WoXr83SnEA _AT24UloHEeS2WoXr83SnEA _AT24eFoHEeS2WoXr83SnEA _AT24e1oHEeS2WoXr83SnEA _AT24g1oHEeS2WoXr83SnEA _AT24nVoHEeS2WoXr83SnEA _AT24oFoHEeS2WoXr83SnEA _AT24rFoHEeS2WoXr83SnEA _AT24r1oHEeS2WoXr83SnEA _AT24vVoHEeS2WoXr83SnEA _AT24zFoHEeS2WoXr83SnEA _AT24zVoHEeS2WoXr83SnEA _AT240FoHEeS2WoXr83SnEA _AT25OVoHEeS2WoXr83SnEA _AT25O1oHEeS2WoXr83SnEA _AT25S1oHEeS2WoXr83SnEA _AT25j1oHEeS2WoXr83SnEA _AT26H1oHEeS2WoXr83SnEA _AT26iVoHEeS2WoXr83SnEA _AT26jFoHEeS2WoXr83SnEA _AT26sVoHEeS2WoXr83SnEA _AT26x1oHEeS2WoXr83SnEA _AT26yFoHEeS2WoXr83SnEA _AT27BVoHEeS2WoXr83SnEA _AT27G1oHEeS2WoXr83SnEA _AT27HFoHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_AT24NFoHEeS2WoXr83SnEA" name="*" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="_AT27lloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24NVoHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+        <ownedParameter xmi:id="_AT24NloHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24N1oHEeS2WoXr83SnEA" name="+" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="_AT27l1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24OFoHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+        <ownedParameter xmi:id="_AT24OVoHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24OloHEeS2WoXr83SnEA" name="-" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="_AT27lVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24O1oHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24PFoHEeS2WoXr83SnEA" name="-" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="_AT27l1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24PVoHEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+        <ownedParameter xmi:id="_AT24PloHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24P1oHEeS2WoXr83SnEA" name="/" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="_AT27lloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24QFoHEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.&#xA;Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="_AT24QVoHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24QloHEeS2WoXr83SnEA" name="abs" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="_AT24Q1oHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24RFoHEeS2WoXr83SnEA" name="compareTo" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="_AT24RVoHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_AT24RloHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24R1oHEeS2WoXr83SnEA" name="div" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+        <ownedComment xmi:id="_AT24SFoHEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+        <ownedParameter xmi:id="_AT24SVoHEeS2WoXr83SnEA" name="i" type="_AT24M1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24SloHEeS2WoXr83SnEA" name="max" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="_AT24S1oHEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+        <ownedParameter xmi:id="_AT24TFoHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24TVoHEeS2WoXr83SnEA" name="min" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="_AT24TloHEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+        <ownedParameter xmi:id="_AT24T1oHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24UFoHEeS2WoXr83SnEA" name="mod" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+        <ownedComment xmi:id="_AT24UVoHEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+        <ownedParameter xmi:id="_AT24UloHEeS2WoXr83SnEA" name="i" type="_AT24M1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24U1oHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_AT24VFoHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_AT24VVoHEeS2WoXr83SnEA" name="Real" superClass="_AT26EVoHEeS2WoXr83SnEA _AT26XloHEeS2WoXr83SnEA"
+        typedElement="_AT24P1oHEeS2WoXr83SnEA _AT24VloHEeS2WoXr83SnEA _AT24WVoHEeS2WoXr83SnEA _AT24XFoHEeS2WoXr83SnEA _AT24XloHEeS2WoXr83SnEA _AT24YVoHEeS2WoXr83SnEA _AT24dloHEeS2WoXr83SnEA _AT24fVoHEeS2WoXr83SnEA _AT24gFoHEeS2WoXr83SnEA _AT241loHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_AT24VloHEeS2WoXr83SnEA" name="*" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="_AT27lloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24V1oHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+        <ownedParameter xmi:id="_AT24WFoHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24WVoHEeS2WoXr83SnEA" name="+" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="_AT27l1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24WloHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+        <ownedParameter xmi:id="_AT24W1oHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24XFoHEeS2WoXr83SnEA" name="-" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="_AT27lVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24XVoHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24XloHEeS2WoXr83SnEA" name="-" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="_AT27l1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24X1oHEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+        <ownedParameter xmi:id="_AT24YFoHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24YVoHEeS2WoXr83SnEA" name="/" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="_AT27lloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24YloHEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="_AT24Y1oHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24ZFoHEeS2WoXr83SnEA" name="&lt;" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24ZVoHEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+        <ownedParameter xmi:id="_AT24ZloHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24Z1oHEeS2WoXr83SnEA" name="&lt;=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24aFoHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+        <ownedParameter xmi:id="_AT24aVoHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24aloHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24a1oHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_AT24bFoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24bVoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24bloHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_AT24b1oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24cFoHEeS2WoXr83SnEA" name=">" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24cVoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+        <ownedParameter xmi:id="_AT24cloHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24c1oHEeS2WoXr83SnEA" name=">=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24dFoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+        <ownedParameter xmi:id="_AT24dVoHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24dloHEeS2WoXr83SnEA" name="abs" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="_AT24d1oHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24eFoHEeS2WoXr83SnEA" name="compareTo" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="_AT24eVoHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_AT24eloHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24e1oHEeS2WoXr83SnEA" name="floor" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+        <ownedComment xmi:id="_AT24fFoHEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24fVoHEeS2WoXr83SnEA" name="max" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="_AT24floHEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+        <ownedParameter xmi:id="_AT24f1oHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24gFoHEeS2WoXr83SnEA" name="min" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="_AT24gVoHEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+        <ownedParameter xmi:id="_AT24gloHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24g1oHEeS2WoXr83SnEA" name="round" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+        <ownedComment xmi:id="_AT24hFoHEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24hVoHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_AT24hloHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_AT24h1oHEeS2WoXr83SnEA" name="String" templateParameterSubstitution="_AT22lVoHEeS2WoXr83SnEA _AT23WFoHEeS2WoXr83SnEA _AT23qVoHEeS2WoXr83SnEA"
+        superClass="_AT26EVoHEeS2WoXr83SnEA _AT26XloHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_AT24iFoHEeS2WoXr83SnEA" name="+" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+          precedence="_AT27l1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24iVoHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="_AT24iloHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24i1oHEeS2WoXr83SnEA" name="&lt;" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24jFoHEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_AT24jVoHEeS2WoXr83SnEA" name="s" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24jloHEeS2WoXr83SnEA" name="&lt;=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24j1oHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_AT24kFoHEeS2WoXr83SnEA" name="s" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24kVoHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT24kloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24k1oHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT24lFoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24lVoHEeS2WoXr83SnEA" name=">" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24lloHEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_AT24l1oHEeS2WoXr83SnEA" name="s" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24mFoHEeS2WoXr83SnEA" name=">=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT24mVoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_AT24mloHEeS2WoXr83SnEA" name="s" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24m1oHEeS2WoXr83SnEA" name="at" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT24nFoHEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+        <ownedParameter xmi:id="_AT24nVoHEeS2WoXr83SnEA" name="i" type="_AT24M1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24nloHEeS2WoXr83SnEA" name="characters" type="_AT23p1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+        <ownedComment xmi:id="_AT24n1oHEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24oFoHEeS2WoXr83SnEA" name="compareTo" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+        <ownedComment xmi:id="_AT24oVoHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_AT24oloHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24o1oHEeS2WoXr83SnEA" name="concat" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+        <ownedComment xmi:id="_AT24pFoHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="_AT24pVoHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24ploHEeS2WoXr83SnEA" name="endsWith" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+        <ownedComment xmi:id="_AT24p1oHEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.&#xA;Every string ends with the empty string."/>
+        <ownedParameter xmi:id="_AT24qFoHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24qVoHEeS2WoXr83SnEA" name="equalsIgnoreCase" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+        <ownedComment xmi:id="_AT24qloHEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+        <ownedParameter xmi:id="_AT24q1oHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24rFoHEeS2WoXr83SnEA" name="indexOf" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+        <ownedComment xmi:id="_AT24rVoHEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="_AT24rloHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24r1oHEeS2WoXr83SnEA" name="lastIndexOf" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+        <ownedComment xmi:id="_AT24sFoHEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="_AT24sVoHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24sloHEeS2WoXr83SnEA" name="matches" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+        <ownedComment xmi:id="_AT24s1oHEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+        <ownedParameter xmi:id="_AT24tFoHEeS2WoXr83SnEA" name="regex" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24tVoHEeS2WoXr83SnEA" name="replaceAll" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT24tloHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+        <ownedParameter xmi:id="_AT24t1oHEeS2WoXr83SnEA" name="regex" type="_AT24h1oHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_AT24uFoHEeS2WoXr83SnEA" name="replacement" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24uVoHEeS2WoXr83SnEA" name="replaceFirst" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT24uloHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+        <ownedParameter xmi:id="_AT24u1oHEeS2WoXr83SnEA" name="regex" type="_AT24h1oHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_AT24vFoHEeS2WoXr83SnEA" name="replacement" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24vVoHEeS2WoXr83SnEA" name="size" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+        <ownedComment xmi:id="_AT24vloHEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24v1oHEeS2WoXr83SnEA" name="startsWith" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+        <ownedComment xmi:id="_AT24wFoHEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.&#xA;Every string starts with the empty string."/>
+        <ownedParameter xmi:id="_AT24wVoHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24wloHEeS2WoXr83SnEA" name="substituteAll" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+        <ownedComment xmi:id="_AT24w1oHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+        <ownedParameter xmi:id="_AT24xFoHEeS2WoXr83SnEA" name="oldSubstring" type="_AT24h1oHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_AT24xVoHEeS2WoXr83SnEA" name="newSubstring" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24xloHEeS2WoXr83SnEA" name="substituteFirst" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+        <ownedComment xmi:id="_AT24x1oHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.&#xA;Returns invalid if there is no first occurrence."/>
+        <ownedParameter xmi:id="_AT24yFoHEeS2WoXr83SnEA" name="oldSubstring" type="_AT24h1oHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_AT24yVoHEeS2WoXr83SnEA" name="newSubstring" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24yloHEeS2WoXr83SnEA" name="substring" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT24y1oHEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+        <ownedParameter xmi:id="_AT24zFoHEeS2WoXr83SnEA" name="lower" type="_AT24M1oHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_AT24zVoHEeS2WoXr83SnEA" name="upper" type="_AT24M1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24zloHEeS2WoXr83SnEA" name="toBoolean" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT24z1oHEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT240FoHEeS2WoXr83SnEA" name="toInteger" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT240VoHEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT240loHEeS2WoXr83SnEA" name="toLower" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="_AT2401oHEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT241FoHEeS2WoXr83SnEA" name="toLowerCase" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="_AT241VoHEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT241loHEeS2WoXr83SnEA" name="toReal" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT2411oHEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT242FoHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_AT242VoHEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT242loHEeS2WoXr83SnEA" name="toUpper" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="_AT2421oHEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT243FoHEeS2WoXr83SnEA" name="toUpperCase" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="_AT243VoHEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT243loHEeS2WoXr83SnEA" name="tokenize" type="_AT23p1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_AT2431oHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.&#xA;The delimiters are omitted from the return."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT244FoHEeS2WoXr83SnEA" name="tokenize" type="_AT23p1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_AT244VoHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+        <ownedParameter xmi:id="_AT244loHEeS2WoXr83SnEA" name="delimiters" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT2441oHEeS2WoXr83SnEA" name="tokenize" type="_AT23p1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_AT245FoHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is&#xA;true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+        <ownedParameter xmi:id="_AT245VoHEeS2WoXr83SnEA" name="delimiters" type="_AT24h1oHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_AT245loHEeS2WoXr83SnEA" name="returnDelimiters" type="_AT24FVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT2451oHEeS2WoXr83SnEA" name="trim" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+        <ownedComment xmi:id="_AT246FoHEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24LVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24U1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24hVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24iFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24iloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24m1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24o1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24pVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24qFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24q1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24rloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24sVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24tFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24tVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24t1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24uFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24uVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24u1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24vFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24wVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24wloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24xFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24xVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24xloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24yFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24yVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24yloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT240loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT241FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT242FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT242loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT243FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT244loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT245VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT2451oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26DFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26D1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26TVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26gVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27vloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27w1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT27xFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27zloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2711oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT272loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="hstmMM.xml#_AT28E1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="hstmMM.xml#_AT28GFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="hstmMM.xml#_AT28HloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="stmMM.xml#_AT28NloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="stmMM.xml#_AT28O1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="stmMM.xml#_AT28QVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_AT246VoHEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="_AT24M1oHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_AT246loHEeS2WoXr83SnEA" name="oclAsType" type="_AT247loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+        <ownedComment xmi:id="_AT2461oHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to&#xA;Real or Integer, but the e[unlimited] value may not.&#xA;Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+        <ownedTemplateSignature xmi:id="_AT247FoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT247VoHEeS2WoXr83SnEA" parameteredElement="_AT247loHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT247loHEeS2WoXr83SnEA" name="TT" templateParameter="_AT247VoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT23GVoHEeS2WoXr83SnEA" typedElement="_AT246loHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT2471oHEeS2WoXr83SnEA" name="type" type="_AT23F1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT248FoHEeS2WoXr83SnEA" name="Bag" superClass="_AT22qFoHEeS2WoXr83SnEA" typedElement="_AT24-VoHEeS2WoXr83SnEA _AT24_FoHEeS2WoXr83SnEA _AT25BFoHEeS2WoXr83SnEA _AT25B1oHEeS2WoXr83SnEA _AT25JVoHEeS2WoXr83SnEA _AT25KVoHEeS2WoXr83SnEA"
+        elementType="_AT2481oHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_AT248VoHEeS2WoXr83SnEA" templateBinding="_AT22cFoHEeS2WoXr83SnEA _AT22c1oHEeS2WoXr83SnEA _AT22dloHEeS2WoXr83SnEA _AT22eVoHEeS2WoXr83SnEA _AT22fFoHEeS2WoXr83SnEA _AT22f1oHEeS2WoXr83SnEA _AT22gloHEeS2WoXr83SnEA _AT22hVoHEeS2WoXr83SnEA _AT22iFoHEeS2WoXr83SnEA _AT22i1oHEeS2WoXr83SnEA _AT22jloHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT248loHEeS2WoXr83SnEA" parameteredElement="_AT2481oHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_AT22cVoHEeS2WoXr83SnEA _AT22dFoHEeS2WoXr83SnEA _AT22d1oHEeS2WoXr83SnEA _AT22eloHEeS2WoXr83SnEA _AT22fVoHEeS2WoXr83SnEA _AT22gFoHEeS2WoXr83SnEA _AT22g1oHEeS2WoXr83SnEA _AT22hloHEeS2WoXr83SnEA _AT22iVoHEeS2WoXr83SnEA _AT22jFoHEeS2WoXr83SnEA _AT22j1oHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT2481oHEeS2WoXr83SnEA" name="T" templateParameter="_AT248loHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_AT22qloHEeS2WoXr83SnEA _AT23W1oHEeS2WoXr83SnEA _AT23rFoHEeS2WoXr83SnEA _AT23yloHEeS2WoXr83SnEA _AT235VoHEeS2WoXr83SnEA"
+              typedElement="_AT25BloHEeS2WoXr83SnEA _AT25F1oHEeS2WoXr83SnEA _AT25HloHEeS2WoXr83SnEA _AT25JFoHEeS2WoXr83SnEA _AT25KFoHEeS2WoXr83SnEA _AT25LFoHEeS2WoXr83SnEA _AT25MFoHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_AT249FoHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT249VoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT249loHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT2491oHEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+        <ownedParameter xmi:id="_AT24-FoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24-VoHEeS2WoXr83SnEA" name="excluding" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_AT24-loHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+        <ownedParameter xmi:id="_AT24-1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24_FoHEeS2WoXr83SnEA" name="excludingAll" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_AT24_VoHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_AT24_loHEeS2WoXr83SnEA" name="objects" type="_AT220loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT24_1oHEeS2WoXr83SnEA" name="flatten" type="_AT22dVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_AT25AFoHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].&#xA;If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_AT25AVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25AloHEeS2WoXr83SnEA" parameteredElement="_AT25A1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25A1oHEeS2WoXr83SnEA" name="T2" templateParameter="_AT25AloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22d1oHEeS2WoXr83SnEA _AT22oVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25BFoHEeS2WoXr83SnEA" name="including" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_AT25BVoHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_AT25BloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25B1oHEeS2WoXr83SnEA" name="includingAll" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_AT25CFoHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_AT25CVoHEeS2WoXr83SnEA" name="objects" type="_AT22qFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25CloHEeS2WoXr83SnEA" name="selectByKind" type="_AT22eFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_AT25C1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25DFoHEeS2WoXr83SnEA" parameteredElement="_AT25DVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25DVoHEeS2WoXr83SnEA" name="TT" templateParameter="_AT25DFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22eloHEeS2WoXr83SnEA _AT22pFoHEeS2WoXr83SnEA _AT23HFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25DloHEeS2WoXr83SnEA" name="type" type="_AT23GloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25D1oHEeS2WoXr83SnEA" name="selectByType" type="_AT22e1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_AT25EFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25EVoHEeS2WoXr83SnEA" parameteredElement="_AT25EloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25EloHEeS2WoXr83SnEA" name="TT" templateParameter="_AT25EVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22fVoHEeS2WoXr83SnEA _AT22p1oHEeS2WoXr83SnEA _AT23H1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25E1oHEeS2WoXr83SnEA" name="type" type="_AT23HVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25FFoHEeS2WoXr83SnEA" name="closure" type="_AT23yFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_AT25FVoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_AT25FloHEeS2WoXr83SnEA" name="lambda" type="_AT22VloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25F1oHEeS2WoXr83SnEA" name="i" type="_AT2481oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25GFoHEeS2WoXr83SnEA" name="collectNested" type="_AT22b1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_AT25GVoHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="_AT25GloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25G1oHEeS2WoXr83SnEA" parameteredElement="_AT25HFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25HFoHEeS2WoXr83SnEA" name="V" templateParameter="_AT25G1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22cVoHEeS2WoXr83SnEA _AT22m1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25HVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22U1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25HloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25H1oHEeS2WoXr83SnEA" name="collect" type="_AT22cloHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_AT25IFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25IVoHEeS2WoXr83SnEA" parameteredElement="_AT25IloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25IloHEeS2WoXr83SnEA" name="V" templateParameter="_AT25IVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22dFoHEeS2WoXr83SnEA _AT22nloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25I1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22VFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25JFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25JVoHEeS2WoXr83SnEA" name="reject" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_AT25JloHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].&#xA;&#xA;oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+        <ownedParameter xmi:id="_AT25J1oHEeS2WoXr83SnEA" name="lambda" type="_AT22UloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25KFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25KVoHEeS2WoXr83SnEA" name="select" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_AT25KloHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].&#xA;&#xA;oclCode[self->select(iterator | body) =&#xA;self->iterate(iterator; result : Bag(T) = Bag{} |&#xA;if body then result->including(iterator)&#xA;else result&#xA;endif)]"/>
+        <ownedParameter xmi:id="_AT25K1oHEeS2WoXr83SnEA" name="lambda" type="_AT22UloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25LFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25LVoHEeS2WoXr83SnEA" name="sortedBy" type="_AT23qloHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_AT25LloHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_AT25L1oHEeS2WoXr83SnEA" name="lambda" type="_AT22VVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25MFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT25MVoHEeS2WoXr83SnEA" name="Class" superClass="_AT2541oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT25MloHEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="_AT22g1oHEeS2WoXr83SnEA _AT22yFoHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25V1oHEeS2WoXr83SnEA _AT25WloHEeS2WoXr83SnEA _AT25a1oHEeS2WoXr83SnEA _AT25bloHEeS2WoXr83SnEA _AT25cFoHEeS2WoXr83SnEA _AT25c1oHEeS2WoXr83SnEA _AT25lVoHEeS2WoXr83SnEA _AT25x1oHEeS2WoXr83SnEA _AT25y1oHEeS2WoXr83SnEA"
+        elementType="_AT25NVoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_AT25M1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25NFoHEeS2WoXr83SnEA" parameteredElement="_AT25NVoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25NVoHEeS2WoXr83SnEA" name="T" templateParameter="_AT25NFoHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_AT22gFoHEeS2WoXr83SnEA _AT22xVoHEeS2WoXr83SnEA _AT23XloHEeS2WoXr83SnEA _AT23jloHEeS2WoXr83SnEA _AT23r1oHEeS2WoXr83SnEA _AT23zVoHEeS2WoXr83SnEA _AT236FoHEeS2WoXr83SnEA"
+              typedElement="_AT22bVoHEeS2WoXr83SnEA _AT25N1oHEeS2WoXr83SnEA _AT25bVoHEeS2WoXr83SnEA _AT25eVoHEeS2WoXr83SnEA _AT25e1oHEeS2WoXr83SnEA _AT25kVoHEeS2WoXr83SnEA _AT25lloHEeS2WoXr83SnEA _AT25mVoHEeS2WoXr83SnEA _AT25oFoHEeS2WoXr83SnEA _AT25p1oHEeS2WoXr83SnEA _AT25qloHEeS2WoXr83SnEA _AT25q1oHEeS2WoXr83SnEA _AT25r1oHEeS2WoXr83SnEA _AT25sloHEeS2WoXr83SnEA _AT25s1oHEeS2WoXr83SnEA _AT25t1oHEeS2WoXr83SnEA _AT25u1oHEeS2WoXr83SnEA _AT25wloHEeS2WoXr83SnEA _AT25xloHEeS2WoXr83SnEA _AT25yloHEeS2WoXr83SnEA _AT25zloHEeS2WoXr83SnEA _AT250loHEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="_AT25NloHEeS2WoXr83SnEA" name="Collection" type="_AT22gVoHEeS2WoXr83SnEA" implicit="true" opposite="_AT25N1oHEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+          <templateParameterSubstitution href="#_AT22kloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22lVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22mFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22m1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22nloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22oVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22pFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22p1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22qloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22rVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22sFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22s1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22tloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22uVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22vFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22v1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22wloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22xVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22yFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22y1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22zloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT220VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT221FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT2211oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT222loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT223VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT224FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT2241oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT225loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT226VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT227FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT2271oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT228loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT229VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22-FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22-1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT22_loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23AVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23BFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23B1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23CloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23DVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23EFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23E1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23FloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="hstmtostm.xml#_AT28A1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="hstmMM.xml#_AT28IloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="hstmMM.xml#_AT28JVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="stmMM.xml#_AT28RVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="stmMM.xml#_AT28SFoHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="#_AT22kVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22lFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22l1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22mloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22nVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22oFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22o1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22ploHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22qVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22rFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22r1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22sloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22tVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22uFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22u1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22vloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22wVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22xFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22x1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22yloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22zVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT220FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT2201oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT221loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT222VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT223FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT2231oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT224loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT225VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT226FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT2261oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT227loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT228VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT229FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT2291oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22-loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT22_VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23AFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23A1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23BloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23CVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23DFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23D1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23EloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23FVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="hstmtostm.xml#_AT28AloHEeS2WoXr83SnEA"/>
+        <templateBinding href="hstmMM.xml#_AT28IVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="hstmMM.xml#_AT28JFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="stmMM.xml#_AT28RFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="stmMM.xml#_AT28R1oHEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="_AT25N1oHEeS2WoXr83SnEA" isStatic="true" name="elementType" type="_AT25NVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+          opposite="_AT25NloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT25OFoHEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT25OVoHEeS2WoXr83SnEA" isStatic="true" name="lower" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+        <ownedComment xmi:id="_AT25OloHEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT25O1oHEeS2WoXr83SnEA" isStatic="true" name="upper" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+        <ownedComment xmi:id="_AT25PFoHEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="_AT25PVoHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT25PloHEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+        <ownedParameter xmi:id="_AT25P1oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25QFoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT25QVoHEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,&#xA;in the case of an ordered collection type."/>
+        <ownedParameter xmi:id="_AT25QloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25Q1oHEeS2WoXr83SnEA" name="asBag" type="_AT22floHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+        <ownedComment xmi:id="_AT25RFoHEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25RVoHEeS2WoXr83SnEA" name="asOrderedSet" type="_AT23jFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+        <ownedComment xmi:id="_AT25RloHEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,&#xA;in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25R1oHEeS2WoXr83SnEA" name="asSequence" type="_AT23rVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+        <ownedComment xmi:id="_AT25SFoHEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25SVoHEeS2WoXr83SnEA" name="asSet" type="_AT23y1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+        <ownedComment xmi:id="_AT25SloHEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25S1oHEeS2WoXr83SnEA" name="count" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+        <ownedComment xmi:id="_AT25TFoHEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+        <ownedParameter xmi:id="_AT25TVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25TloHEeS2WoXr83SnEA" name="excludes" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+        <ownedComment xmi:id="_AT25T1oHEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_AT25UFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25UVoHEeS2WoXr83SnEA" name="excludesAll" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+        <ownedComment xmi:id="_AT25UloHEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="_AT25U1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25VFoHEeS2WoXr83SnEA" parameteredElement="_AT25VVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25VVoHEeS2WoXr83SnEA" name="T2" templateParameter="_AT25VFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22s1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25VloHEeS2WoXr83SnEA" name="c2" type="_AT22sVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25V1oHEeS2WoXr83SnEA" name="excluding" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_AT25WFoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+        <ownedParameter xmi:id="_AT25WVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25WloHEeS2WoXr83SnEA" name="excludingAll" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_AT25W1oHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_AT25XFoHEeS2WoXr83SnEA" name="objects" type="_AT220loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25XVoHEeS2WoXr83SnEA" name="flatten" type="_AT22tFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_AT25XloHEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].&#xA;If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_AT25X1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25YFoHEeS2WoXr83SnEA" parameteredElement="_AT25YVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25YVoHEeS2WoXr83SnEA" name="T2" templateParameter="_AT25YFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22tloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25YloHEeS2WoXr83SnEA" name="includes" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+        <ownedComment xmi:id="_AT25Y1oHEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_AT25ZFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25ZVoHEeS2WoXr83SnEA" name="includesAll" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+        <ownedComment xmi:id="_AT25ZloHEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="_AT25Z1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25aFoHEeS2WoXr83SnEA" parameteredElement="_AT25aVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25aVoHEeS2WoXr83SnEA" name="T2" templateParameter="_AT25aFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22uVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25aloHEeS2WoXr83SnEA" name="c2" type="_AT22t1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25a1oHEeS2WoXr83SnEA" name="including" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_AT25bFoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_AT25bVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25bloHEeS2WoXr83SnEA" name="includingAll" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_AT25b1oHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_AT25cFoHEeS2WoXr83SnEA" name="objects" type="_AT25MloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25cVoHEeS2WoXr83SnEA" name="intersection" type="_AT22floHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_AT25cloHEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+        <ownedParameter xmi:id="_AT25c1oHEeS2WoXr83SnEA" name="c" type="_AT25MloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25dFoHEeS2WoXr83SnEA" name="intersection" type="_AT23y1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_AT25dVoHEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+        <ownedParameter xmi:id="_AT25dloHEeS2WoXr83SnEA" name="u" type="_AT235loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25d1oHEeS2WoXr83SnEA" name="isEmpty" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+        <ownedComment xmi:id="_AT25eFoHEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?&#xA;&#xA;Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25eVoHEeS2WoXr83SnEA" name="max" type="_AT25NVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+        <ownedComment xmi:id="_AT25eloHEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the max operation.&#xA;The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25e1oHEeS2WoXr83SnEA" name="min" type="_AT25NVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+        <ownedComment xmi:id="_AT25fFoHEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the min operation.&#xA;The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25fVoHEeS2WoXr83SnEA" name="notEmpty" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+        <ownedComment xmi:id="_AT25floHEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?&#xA;&#xA;oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25f1oHEeS2WoXr83SnEA" name="product" type="_AT23xVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+        <ownedComment xmi:id="_AT25gFoHEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+        <ownedTemplateSignature xmi:id="_AT25gVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25gloHEeS2WoXr83SnEA" parameteredElement="_AT25g1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25g1oHEeS2WoXr83SnEA" name="T2" templateParameter="_AT25gloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22vFoHEeS2WoXr83SnEA" typedElement="_AT22bloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25hFoHEeS2WoXr83SnEA" name="c2" type="_AT22uloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25hVoHEeS2WoXr83SnEA" name="selectByKind" type="_AT22vVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_AT25hloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25h1oHEeS2WoXr83SnEA" parameteredElement="_AT25iFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25iFoHEeS2WoXr83SnEA" name="TT" templateParameter="_AT25h1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22v1oHEeS2WoXr83SnEA _AT23IloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25iVoHEeS2WoXr83SnEA" name="type" type="_AT23IFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25iloHEeS2WoXr83SnEA" name="selectByType" type="_AT22wFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_AT25i1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25jFoHEeS2WoXr83SnEA" parameteredElement="_AT25jVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25jVoHEeS2WoXr83SnEA" name="TT" templateParameter="_AT25jFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22wloHEeS2WoXr83SnEA _AT23JVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25jloHEeS2WoXr83SnEA" name="type" type="_AT23I1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25j1oHEeS2WoXr83SnEA" name="size" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+        <ownedComment xmi:id="_AT25kFoHEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25kVoHEeS2WoXr83SnEA" name="sum" type="_AT25NVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+        <ownedComment xmi:id="_AT25kloHEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].&#xA;Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.&#xA;The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).&#xA;UnlimitedNatural, Integer and Real fulfill this condition.&#xA;&#xA;If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,&#xA;which may result in unpredictable results during evaluation.&#xA;If an implementation is able to detect a lack of associativity or commutativity,&#xA;the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25k1oHEeS2WoXr83SnEA" name="union" type="_AT22floHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="_AT25lFoHEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+        <ownedParameter xmi:id="_AT25lVoHEeS2WoXr83SnEA" name="c" type="_AT25MloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25lloHEeS2WoXr83SnEA" name="any" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+        <ownedComment xmi:id="_AT25l1oHEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].&#xA;If there is more than one element for which body is oclText[true], one of them is returned.&#xA;There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+        <ownedParameter xmi:id="_AT25mFoHEeS2WoXr83SnEA" name="lambda" type="_AT22V1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25mVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25mloHEeS2WoXr83SnEA" name="collectNested" type="_AT22q1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_AT25m1oHEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+        <ownedTemplateSignature xmi:id="_AT25nFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25nVoHEeS2WoXr83SnEA" parameteredElement="_AT25nloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25nloHEeS2WoXr83SnEA" name="V" templateParameter="_AT25nVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22rVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25n1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22WFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25oFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25oVoHEeS2WoXr83SnEA" name="collect" type="_AT22rloHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedComment xmi:id="_AT25oloHEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.&#xA;The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.&#xA;collectNested is defined individually for each subclass of CollectionType."/>
+        <ownedTemplateSignature xmi:id="_AT25o1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25pFoHEeS2WoXr83SnEA" parameteredElement="_AT25pVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25pVoHEeS2WoXr83SnEA" name="V" templateParameter="_AT25pFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22sFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25ploHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22WVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25p1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25qFoHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedParameter xmi:id="_AT25qVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22V1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25qloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25q1oHEeS2WoXr83SnEA" name="j" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25rFoHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedComment xmi:id="_AT25rVoHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+        <ownedParameter xmi:id="_AT25rloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22V1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25r1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25sFoHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedParameter xmi:id="_AT25sVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22V1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25sloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25s1oHEeS2WoXr83SnEA" name="j" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25tFoHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedComment xmi:id="_AT25tVoHEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="_AT25tloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22V1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25t1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25uFoHEeS2WoXr83SnEA" name="isUnique" type="_AT24FVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+        <ownedComment xmi:id="_AT25uVoHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="_AT25uloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22W1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25u1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25vFoHEeS2WoXr83SnEA" name="iterate" isRequired="false" type="_AT25v1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+        <ownedTemplateSignature xmi:id="_AT25vVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25vloHEeS2WoXr83SnEA" parameteredElement="_AT25v1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25v1oHEeS2WoXr83SnEA" name="Tacc" templateParameter="_AT25vloHEeS2WoXr83SnEA"
+                typedElement="_AT25vFoHEeS2WoXr83SnEA _AT25wVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25wFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22WloHEeS2WoXr83SnEA"/>
+        <ownedAccumulator xmi:id="_AT25wVoHEeS2WoXr83SnEA" name="acc" isRequired="false" type="_AT25v1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25wloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25w1oHEeS2WoXr83SnEA" name="one" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+        <ownedComment xmi:id="_AT25xFoHEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_AT25xVoHEeS2WoXr83SnEA" name="lambda" type="_AT22V1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25xloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25x1oHEeS2WoXr83SnEA" name="reject" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_AT25yFoHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_AT25yVoHEeS2WoXr83SnEA" name="lambda" type="_AT22V1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25yloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25y1oHEeS2WoXr83SnEA" name="select" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_AT25zFoHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_AT25zVoHEeS2WoXr83SnEA" name="lambda" type="_AT22V1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT25zloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25z1oHEeS2WoXr83SnEA" name="sortedBy" type="_AT23rVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_AT250FoHEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_AT250VoHEeS2WoXr83SnEA" name="lambda" type="_AT22W1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT250loHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT2501oHEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="_AT22hloHEeS2WoXr83SnEA _AT22zloHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT251FoHEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+      <ownedAttribute xmi:id="_AT251VoHEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="_AT23j1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+          opposite="_AT2521oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT251loHEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="_AT2511oHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+        <ownedComment xmi:id="_AT252FoHEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT252VoHEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="_AT22y1oHEeS2WoXr83SnEA _AT23YVoHEeS2WoXr83SnEA _AT23kVoHEeS2WoXr83SnEA _AT2361oHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT252loHEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+      <ownedAttribute xmi:id="_AT2521oHEeS2WoXr83SnEA" name="Enumeration" type="_AT22hFoHEeS2WoXr83SnEA" implicit="true" opposite="_AT251VoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT253FoHEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="_AT22iVoHEeS2WoXr83SnEA _AT220VoHEeS2WoXr83SnEA"
+        superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" instanceType="_AT2531oHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_AT253VoHEeS2WoXr83SnEA" templateBinding="_AT23GFoHEeS2WoXr83SnEA _AT23G1oHEeS2WoXr83SnEA _AT23HloHEeS2WoXr83SnEA _AT23IVoHEeS2WoXr83SnEA _AT23JFoHEeS2WoXr83SnEA _AT23J1oHEeS2WoXr83SnEA _AT23KloHEeS2WoXr83SnEA _AT23LVoHEeS2WoXr83SnEA _AT23MFoHEeS2WoXr83SnEA _AT23M1oHEeS2WoXr83SnEA _AT23NloHEeS2WoXr83SnEA _AT23OVoHEeS2WoXr83SnEA _AT23PFoHEeS2WoXr83SnEA _AT23P1oHEeS2WoXr83SnEA _AT23QloHEeS2WoXr83SnEA _AT23RVoHEeS2WoXr83SnEA _AT23SFoHEeS2WoXr83SnEA _AT23S1oHEeS2WoXr83SnEA _AT23TloHEeS2WoXr83SnEA _AT23UVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT253loHEeS2WoXr83SnEA" parameteredElement="_AT2531oHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_AT23GVoHEeS2WoXr83SnEA _AT23HFoHEeS2WoXr83SnEA _AT23H1oHEeS2WoXr83SnEA _AT23IloHEeS2WoXr83SnEA _AT23JVoHEeS2WoXr83SnEA _AT23KFoHEeS2WoXr83SnEA _AT23K1oHEeS2WoXr83SnEA _AT23LloHEeS2WoXr83SnEA _AT23MVoHEeS2WoXr83SnEA _AT23NFoHEeS2WoXr83SnEA _AT23N1oHEeS2WoXr83SnEA _AT23OloHEeS2WoXr83SnEA _AT23PVoHEeS2WoXr83SnEA _AT23QFoHEeS2WoXr83SnEA _AT23Q1oHEeS2WoXr83SnEA _AT23RloHEeS2WoXr83SnEA _AT23SVoHEeS2WoXr83SnEA _AT23TFoHEeS2WoXr83SnEA _AT23T1oHEeS2WoXr83SnEA _AT23UloHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT2531oHEeS2WoXr83SnEA" name="T" templateParameter="_AT253loHEeS2WoXr83SnEA"
+              typedElement="_AT254VoHEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="_AT254FoHEeS2WoXr83SnEA" name="Metaclass" type="_AT22h1oHEeS2WoXr83SnEA" implicit="true" opposite="_AT254VoHEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="_AT254VoHEeS2WoXr83SnEA" name="instanceType" type="_AT2531oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+          opposite="_AT254FoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT254loHEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+      </ownedAttribute>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="_AT2541oHEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="_AT221FoHEeS2WoXr83SnEA _AT237loHEeS2WoXr83SnEA"
+        typedElement="_AT24-1oHEeS2WoXr83SnEA _AT25TVoHEeS2WoXr83SnEA _AT25UFoHEeS2WoXr83SnEA _AT25WVoHEeS2WoXr83SnEA _AT25ZFoHEeS2WoXr83SnEA _AT26WVoHEeS2WoXr83SnEA _AT26jloHEeS2WoXr83SnEA _AT26pFoHEeS2WoXr83SnEA _AT2691oHEeS2WoXr83SnEA _AT27SFoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT255FoHEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.&#xA;Conceptually, OclAny behaves as a supertype for all the types.&#xA;Features of OclAny are available on each object in all OCL expressions.&#xA;OclAny is itself an instance of the metatype AnyType.&#xA;&#xA;All classes in a UML model inherit all operations defined on OclAny.&#xA;To avoid name conflicts between properties in the model and the properties inherited from OclAny,&#xA;all names on the properties of OclAny start with &#x2018;ocl.&#x2019;&#xA;Although theoretically there may still be name conflicts, they can be avoided.&#xA;One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.&#xA;&#xA;Operations of OclAny, where the instance of OclAny is called object."/>
+      <ownedOperation xmi:id="_AT255VoHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT255loHEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+        <ownedParameter xmi:id="_AT2551oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT256FoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT256VoHEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+        <ownedParameter xmi:id="_AT256loHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT2561oHEeS2WoXr83SnEA" name="oclAsSet" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+        <ownedComment xmi:id="_AT257FoHEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT257VoHEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="_AT258VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedComment xmi:id="_AT257loHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;In the case of feature redefinition, casting an object to a supertype of its actual type&#xA;does not access the supertype&#x2019;s definition of the feature;&#xA;according to the semantics of redefinition, the redefined feature simply does not exist for the object.&#xA;However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+        <ownedTemplateSignature xmi:id="_AT2571oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT258FoHEeS2WoXr83SnEA" parameteredElement="_AT258VoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT258VoHEeS2WoXr83SnEA" name="TT" templateParameter="_AT258FoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT23KFoHEeS2WoXr83SnEA" typedElement="_AT257VoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT258loHEeS2WoXr83SnEA" name="type" type="_AT23JloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT2581oHEeS2WoXr83SnEA" name="oclIsInState" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+        <ownedComment xmi:id="_AT259FoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+        <ownedParameter xmi:id="_AT259VoHEeS2WoXr83SnEA" name="statespec" type="_AT26XVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT259loHEeS2WoXr83SnEA" name="oclIsInvalid" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true">
+        <ownedComment xmi:id="_AT2591oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25-FoHEeS2WoXr83SnEA" name="oclIsKindOf" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedComment xmi:id="_AT25-VoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.&#xA;That is, oclText[self] is of type t or a subtype of t."/>
+        <ownedTemplateSignature xmi:id="_AT25-loHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25-1oHEeS2WoXr83SnEA" parameteredElement="_AT25_FoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25_FoHEeS2WoXr83SnEA" name="T" templateParameter="_AT25-1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT23K1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT25_VoHEeS2WoXr83SnEA" name="type" type="_AT23KVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT25_loHEeS2WoXr83SnEA" name="oclIsNew" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_AT25_1oHEeS2WoXr83SnEA" body="Can only be used in a postcondition.&#xA;Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn&#x2019;t exist at precondition time)."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26AFoHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedComment xmi:id="_AT26AVoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+        <ownedTemplateSignature xmi:id="_AT26AloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26A1oHEeS2WoXr83SnEA" parameteredElement="_AT26BFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26BFoHEeS2WoXr83SnEA" name="T" templateParameter="_AT26A1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT23LloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT26BVoHEeS2WoXr83SnEA" name="type" type="_AT23LFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26BloHEeS2WoXr83SnEA" name="oclIsUndefined" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true">
+        <ownedComment xmi:id="_AT26B1oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26CFoHEeS2WoXr83SnEA" name="oclLog" type="_AT26W1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="_AT26CVoHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26CloHEeS2WoXr83SnEA" name="oclLog" type="_AT26W1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="_AT26C1oHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+        <ownedParameter xmi:id="_AT26DFoHEeS2WoXr83SnEA" name="message" type="_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26DVoHEeS2WoXr83SnEA" name="oclType" type="_AT23O1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+        <ownedComment xmi:id="_AT26DloHEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26D1oHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_AT26EFoHEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26EVoHEeS2WoXr83SnEA" name="OclComparable" superClass="_AT2541oHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT26EloHEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived&#xA;compareTo implementation may be sorted."/>
+      <ownedOperation xmi:id="_AT26E1oHEeS2WoXr83SnEA" name="&lt;" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT26FFoHEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+        <ownedParameter xmi:id="_AT26FVoHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26FloHEeS2WoXr83SnEA" name="&lt;=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT26F1oHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="_AT26GFoHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26GVoHEeS2WoXr83SnEA" name=">" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT26GloHEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+        <ownedParameter xmi:id="_AT26G1oHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26HFoHEeS2WoXr83SnEA" name=">=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+          precedence="_AT27mFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT26HVoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="_AT26HloHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26H1oHEeS2WoXr83SnEA" name="compareTo" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+        <ownedComment xmi:id="_AT26IFoHEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.&#xA;&#xA;The compareTo operation should be commutative."/>
+        <ownedParameter xmi:id="_AT26IVoHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26IloHEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="_AT2211oHEeS2WoXr83SnEA _AT230FoHEeS2WoXr83SnEA _AT238VoHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT26JloHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT26I1oHEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined&#xA;for OclElement are therefore applicable to all user-defined types."/>
+      <ownedOperation xmi:id="_AT26JFoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+        <ownedComment xmi:id="_AT26JVoHEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26JloHEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="_AT26IloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+        <ownedComment xmi:id="_AT26J1oHEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26KFoHEeS2WoXr83SnEA" name="oclContents" type="_AT23zloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+        <ownedComment xmi:id="_AT26KVoHEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="_AT26KloHEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="_AT23OloHEeS2WoXr83SnEA"
+        superClass="_AT26cFoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT26K1oHEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.&#xA;It has one single instance, identified as  oclText[invalid].&#xA;Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().&#xA;OclInvalid is itself an instance of the metatype InvalidType."/>
+      <ownedOperation xmi:id="_AT26LFoHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT26LVoHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="_AT26LloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26L1oHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT26MFoHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="_AT26MVoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26MloHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+        <ownedComment xmi:id="_AT26M1oHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26NFoHEeS2WoXr83SnEA" name="and" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="_AT27mloHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT26NVoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26NloHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isValidating="true" precedence="_AT27nVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT26N1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26OFoHEeS2WoXr83SnEA" name="oclAsSet" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+      <ownedOperation xmi:id="_AT26OVoHEeS2WoXr83SnEA" name="oclAsType" type="_AT26PFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedTemplateSignature xmi:id="_AT26OloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26O1oHEeS2WoXr83SnEA" parameteredElement="_AT26PFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26PFoHEeS2WoXr83SnEA" name="TT" templateParameter="_AT26O1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT23MVoHEeS2WoXr83SnEA" typedElement="_AT26OVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT26PVoHEeS2WoXr83SnEA" name="type" type="_AT23L1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26PloHEeS2WoXr83SnEA" name="oclIsInvalid" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_AT26P1oHEeS2WoXr83SnEA" name="oclIsKindOf" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedTemplateSignature xmi:id="_AT26QFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26QVoHEeS2WoXr83SnEA" parameteredElement="_AT26QloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26QloHEeS2WoXr83SnEA" name="T" templateParameter="_AT26QVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT23NFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT26Q1oHEeS2WoXr83SnEA" name="type" type="_AT23MloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26RFoHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedTemplateSignature xmi:id="_AT26RVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26RloHEeS2WoXr83SnEA" parameteredElement="_AT26R1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26R1oHEeS2WoXr83SnEA" name="T" templateParameter="_AT26RloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT23N1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT26SFoHEeS2WoXr83SnEA" name="type" type="_AT23NVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26SVoHEeS2WoXr83SnEA" name="oclIsUndefined" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_AT26SloHEeS2WoXr83SnEA" name="oclType" type="_AT23O1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+      <ownedOperation xmi:id="_AT26S1oHEeS2WoXr83SnEA" name="or" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="_AT27m1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT26TFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26TVoHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_AT26TloHEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26T1oHEeS2WoXr83SnEA" name="OclLambda" superClass="_AT2541oHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT26UFoHEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda&#xA;therefore apply to all lambda expressions."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26UVoHEeS2WoXr83SnEA" name="OclMessage" superClass="_AT2541oHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT26UloHEeS2WoXr83SnEA" body="OclMessage&#xA;This sub clause contains the definition of the standard type OclMessage.&#xA;As defined in this sub clause, each ocl message type is actually a template type with one parameter.&#xA;&#x2018;T&#x2019; denotes the parameter.&#xA;A concrete ocl message type is created by substituting an operation or signal for the T.&#xA;&#xA;The predefined type OclMessage is an instance of MessageType.&#xA;Every OclMessage is fully determined by either the operation, or signal given as parameter.&#xA;Note that there is conceptually an undefined (infinite) number of these types,&#xA;as each is determined by a different operation or signal.&#xA;These types are unnamed. Every type has as attributes the name of the operation or signal,&#xA;and either all formal parameters of the operation, or all attributes of the signal.&#xA;OclMessage is itself an instance of the metatype MessageType.&#xA;&#xA;OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+      <ownedOperation xmi:id="_AT26U1oHEeS2WoXr83SnEA" name="hasReturned" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_AT26VFoHEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.&#xA;This implies the fact that the message has been sent. False in all other cases."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26VVoHEeS2WoXr83SnEA" name="isOperationCall" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_AT26VloHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26V1oHEeS2WoXr83SnEA" name="isSignalSent" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_AT26WFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26WVoHEeS2WoXr83SnEA" name="result" type="_AT2541oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_AT26WloHEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,&#xA;and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="_AT26W1oHEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="_AT222loHEeS2WoXr83SnEA _AT23PVoHEeS2WoXr83SnEA _AT2301oHEeS2WoXr83SnEA _AT239FoHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT24GFoHEeS2WoXr83SnEA _AT24G1oHEeS2WoXr83SnEA _AT24NloHEeS2WoXr83SnEA _AT24OVoHEeS2WoXr83SnEA _AT24PloHEeS2WoXr83SnEA _AT24QVoHEeS2WoXr83SnEA _AT24RloHEeS2WoXr83SnEA _AT24TFoHEeS2WoXr83SnEA _AT24T1oHEeS2WoXr83SnEA _AT24WFoHEeS2WoXr83SnEA _AT24W1oHEeS2WoXr83SnEA _AT24YFoHEeS2WoXr83SnEA _AT24Y1oHEeS2WoXr83SnEA _AT24ZloHEeS2WoXr83SnEA _AT24aVoHEeS2WoXr83SnEA _AT24bFoHEeS2WoXr83SnEA _AT24b1oHEeS2WoXr83SnEA _AT24cloHEeS2WoXr83SnEA _AT24dVoHEeS2WoXr83SnEA _AT24eloHEeS2WoXr83SnEA _AT24f1oHEeS2WoXr83SnEA _AT24gloHEeS2WoXr83SnEA _AT24jVoHEeS2WoXr83SnEA _AT24kFoHEeS2WoXr83SnEA _AT24kloHEeS2WoXr83SnEA _AT24lFoHEeS2WoXr83SnEA _AT24l1oHEeS2WoXr83SnEA _AT24mloHEeS2WoXr83SnEA _AT24oloHEeS2WoXr83SnEA _AT249VoHEeS2WoXr83SnEA _AT24-FoHEeS2WoXr83SnEA _AT25P1oHEeS2WoXr83SnEA _AT25QloHEeS2WoXr83SnEA _AT2551oHEeS2WoXr83SnEA _AT256loHEeS2WoXr83SnEA _AT26CFoHEeS2WoXr83SnEA _AT26CloHEeS2WoXr83SnEA _AT26FVoHEeS2WoXr83SnEA _AT26GFoHEeS2WoXr83SnEA _AT26G1oHEeS2WoXr83SnEA _AT26HloHEeS2WoXr83SnEA _AT26IVoHEeS2WoXr83SnEA _AT26LloHEeS2WoXr83SnEA _AT26MVoHEeS2WoXr83SnEA _AT26YFoHEeS2WoXr83SnEA _AT26YloHEeS2WoXr83SnEA _AT26Y1oHEeS2WoXr83SnEA _AT26aFoHEeS2WoXr83SnEA _AT26aloHEeS2WoXr83SnEA _AT26c1oHEeS2WoXr83SnEA _AT26dloHEeS2WoXr83SnEA _AT26mVoHEeS2WoXr83SnEA _AT26m1oHEeS2WoXr83SnEA _AT2661oHEeS2WoXr83SnEA _AT267loHEeS2WoXr83SnEA _AT27QloHEeS2WoXr83SnEA _AT27RVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT26XFoHEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation&#xA;and Iteration signatures. Instances of OclSelf are never created."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26XVoHEeS2WoXr83SnEA" name="OclState" superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT259VoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26XloHEeS2WoXr83SnEA" name="OclSummable" superClass="_AT2541oHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT26X1oHEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived&#xA;sum and zero implementations may be summed."/>
+      <ownedOperation xmi:id="_AT26YFoHEeS2WoXr83SnEA" name="sum" type="_AT26W1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT26YVoHEeS2WoXr83SnEA" body="Return the sum of self and that.&#xA;&#xA;The sum operation should be associative."/>
+        <ownedParameter xmi:id="_AT26YloHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26Y1oHEeS2WoXr83SnEA" name="zero" type="_AT26W1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT26ZFoHEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.&#xA;&#xA;zero().sum(self) = self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26ZVoHEeS2WoXr83SnEA" name="OclTuple" superClass="_AT2541oHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT26ZloHEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple&#xA;therefore apply to all tuples."/>
+      <ownedOperation xmi:id="_AT26Z1oHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT26aFoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26aVoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT26aloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26a1oHEeS2WoXr83SnEA" name="OclType" superClass="_AT26IloHEeS2WoXr83SnEA" typedElement="_AT26b1oHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT26bFoHEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined&#xA;for OclType are therefore applicable to all UML types."/>
+      <ownedOperation xmi:id="_AT26bVoHEeS2WoXr83SnEA" name="conformsTo" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+        <ownedComment xmi:id="_AT26bloHEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+        <ownedParameter xmi:id="_AT26b1oHEeS2WoXr83SnEA" name="type2" type="_AT26a1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="_AT26cFoHEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="_AT23QFoHEeS2WoXr83SnEA"
+        superClass="_AT2541oHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_AT26cVoHEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.&#xA;It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.&#xA;Any property call applied on oclText[null] results in oclText[invalid], except for the&#xA;oclIsUndefined(), oclIsInvalid(), =(OclAny) and &lt;>(OclAny) operations.&#xA;However, by virtue of the implicit conversion to a collection literal,&#xA;an expression evaluating to oclText[null] can be used as source of collection operations (such as &#x2018;isEmpty&#x2019;).&#xA;If the source is the oclText[null] literal, it is implicitly converted to Bag{}.&#xA;&#xA;OclVoid is itself an instance of the metatype VoidType."/>
+      <ownedOperation xmi:id="_AT26cloHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT26c1oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26dFoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT26dVoHEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]&#xA;if object is oclText[invalid], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_AT26dloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26d1oHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+        <ownedComment xmi:id="_AT26eFoHEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26eVoHEeS2WoXr83SnEA" name="and" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+          precedence="_AT27mloHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT26eloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26e1oHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+          precedence="_AT27nVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT26fFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26fVoHEeS2WoXr83SnEA" name="oclIsInvalid" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_AT26floHEeS2WoXr83SnEA" name="oclIsUndefined" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_AT26f1oHEeS2WoXr83SnEA" name="or" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+          precedence="_AT27m1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT26gFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26gVoHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_AT26gloHEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT26g1oHEeS2WoXr83SnEA" name="OrderedCollection" superClass="_AT2221oHEeS2WoXr83SnEA"
+        elementType="_AT26hloHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_AT26hFoHEeS2WoXr83SnEA" templateBinding="_AT23VFoHEeS2WoXr83SnEA _AT23V1oHEeS2WoXr83SnEA _AT23WloHEeS2WoXr83SnEA _AT23XVoHEeS2WoXr83SnEA _AT23YFoHEeS2WoXr83SnEA _AT23Y1oHEeS2WoXr83SnEA _AT23ZloHEeS2WoXr83SnEA _AT23aVoHEeS2WoXr83SnEA _AT23bFoHEeS2WoXr83SnEA _AT23b1oHEeS2WoXr83SnEA _AT23cloHEeS2WoXr83SnEA _AT23dVoHEeS2WoXr83SnEA _AT23eFoHEeS2WoXr83SnEA _AT23e1oHEeS2WoXr83SnEA _AT23floHEeS2WoXr83SnEA _AT23gVoHEeS2WoXr83SnEA _AT23hFoHEeS2WoXr83SnEA _AT23h1oHEeS2WoXr83SnEA _AT23iloHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26hVoHEeS2WoXr83SnEA" parameteredElement="_AT26hloHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_AT23VVoHEeS2WoXr83SnEA _AT23WFoHEeS2WoXr83SnEA _AT23W1oHEeS2WoXr83SnEA _AT23XloHEeS2WoXr83SnEA _AT23YVoHEeS2WoXr83SnEA _AT23ZFoHEeS2WoXr83SnEA _AT23Z1oHEeS2WoXr83SnEA _AT23aloHEeS2WoXr83SnEA _AT23bVoHEeS2WoXr83SnEA _AT23cFoHEeS2WoXr83SnEA _AT23c1oHEeS2WoXr83SnEA _AT23dloHEeS2WoXr83SnEA _AT23eVoHEeS2WoXr83SnEA _AT23fFoHEeS2WoXr83SnEA _AT23f1oHEeS2WoXr83SnEA _AT23gloHEeS2WoXr83SnEA _AT23hVoHEeS2WoXr83SnEA _AT23iFoHEeS2WoXr83SnEA _AT23i1oHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26hloHEeS2WoXr83SnEA" name="T" templateParameter="_AT26hVoHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_AT223VoHEeS2WoXr83SnEA" typedElement="_AT26h1oHEeS2WoXr83SnEA _AT26iloHEeS2WoXr83SnEA _AT26j1oHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_AT26h1oHEeS2WoXr83SnEA" name="at" isRequired="false" type="_AT26hloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT26iFoHEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+        <ownedParameter xmi:id="_AT26iVoHEeS2WoXr83SnEA" name="index" type="_AT24M1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26iloHEeS2WoXr83SnEA" name="first" isRequired="false" type="_AT26hloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT26i1oHEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26jFoHEeS2WoXr83SnEA" name="indexOf" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+        <ownedComment xmi:id="_AT26jVoHEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+        <ownedParameter xmi:id="_AT26jloHEeS2WoXr83SnEA" name="obj" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26j1oHEeS2WoXr83SnEA" name="last" isRequired="false" type="_AT26hloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT26kFoHEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT26kVoHEeS2WoXr83SnEA" name="OrderedSet" superClass="_AT23cVoHEeS2WoXr83SnEA _AT23_loHEeS2WoXr83SnEA"
+        typedElement="_AT26lVoHEeS2WoXr83SnEA _AT26nFoHEeS2WoXr83SnEA _AT26n1oHEeS2WoXr83SnEA _AT26oloHEeS2WoXr83SnEA _AT26pVoHEeS2WoXr83SnEA _AT26rFoHEeS2WoXr83SnEA _AT26r1oHEeS2WoXr83SnEA _AT26s1oHEeS2WoXr83SnEA _AT26tloHEeS2WoXr83SnEA _AT26uVoHEeS2WoXr83SnEA _AT26xVoHEeS2WoXr83SnEA _AT26yVoHEeS2WoXr83SnEA _AT262loHEeS2WoXr83SnEA _AT263loHEeS2WoXr83SnEA _AT264loHEeS2WoXr83SnEA"
+        elementType="_AT26lFoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_AT26kloHEeS2WoXr83SnEA" templateBinding="_AT23jVoHEeS2WoXr83SnEA _AT23kFoHEeS2WoXr83SnEA _AT23k1oHEeS2WoXr83SnEA _AT23lloHEeS2WoXr83SnEA _AT23mVoHEeS2WoXr83SnEA _AT23nFoHEeS2WoXr83SnEA _AT23n1oHEeS2WoXr83SnEA _AT23oloHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26k1oHEeS2WoXr83SnEA" parameteredElement="_AT26lFoHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_AT23jloHEeS2WoXr83SnEA _AT23kVoHEeS2WoXr83SnEA _AT23lFoHEeS2WoXr83SnEA _AT23l1oHEeS2WoXr83SnEA _AT23mloHEeS2WoXr83SnEA _AT23nVoHEeS2WoXr83SnEA _AT23oFoHEeS2WoXr83SnEA _AT23o1oHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26lFoHEeS2WoXr83SnEA" name="T" templateParameter="_AT26k1oHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_AT2271oHEeS2WoXr83SnEA _AT23c1oHEeS2WoXr83SnEA _AT24AFoHEeS2WoXr83SnEA" typedElement="_AT26nloHEeS2WoXr83SnEA _AT26rloHEeS2WoXr83SnEA _AT26sloHEeS2WoXr83SnEA _AT26tVoHEeS2WoXr83SnEA _AT26zFoHEeS2WoXr83SnEA _AT2601oHEeS2WoXr83SnEA _AT262VoHEeS2WoXr83SnEA _AT263VoHEeS2WoXr83SnEA _AT264VoHEeS2WoXr83SnEA _AT265VoHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_AT26lVoHEeS2WoXr83SnEA" name="-" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_AT27l1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT26lloHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_AT26l1oHEeS2WoXr83SnEA" name="s" type="_AT237FoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26mFoHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT26mVoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26mloHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT26m1oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26nFoHEeS2WoXr83SnEA" name="append" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="_AT26nVoHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="_AT26nloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26n1oHEeS2WoXr83SnEA" name="appendAll" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="_AT26oFoHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="_AT26oVoHEeS2WoXr83SnEA" name="objects" type="_AT23cVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26oloHEeS2WoXr83SnEA" name="excluding" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_AT26o1oHEeS2WoXr83SnEA" body="The ordered set  containing all elements of oclText[self] apart from object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="_AT26pFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26pVoHEeS2WoXr83SnEA" name="excludingAll" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_AT26ploHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_AT26p1oHEeS2WoXr83SnEA" name="objects" type="_AT220loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26qFoHEeS2WoXr83SnEA" name="flatten" type="_AT23kloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedTemplateSignature xmi:id="_AT26qVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26qloHEeS2WoXr83SnEA" parameteredElement="_AT26q1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26q1oHEeS2WoXr83SnEA" name="T2" templateParameter="_AT26qloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT225loHEeS2WoXr83SnEA _AT23aloHEeS2WoXr83SnEA _AT23lFoHEeS2WoXr83SnEA _AT2391oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26rFoHEeS2WoXr83SnEA" name="including" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_AT26rVoHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+        <ownedParameter xmi:id="_AT26rloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26r1oHEeS2WoXr83SnEA" name="insertAt" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT26sFoHEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+        <ownedParameter xmi:id="_AT26sVoHEeS2WoXr83SnEA" name="index" type="_AT24M1oHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_AT26sloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26s1oHEeS2WoXr83SnEA" name="prepend" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="_AT26tFoHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_AT26tVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26tloHEeS2WoXr83SnEA" name="prependAll" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="_AT26t1oHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_AT26uFoHEeS2WoXr83SnEA" name="objects" type="_AT23cVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26uVoHEeS2WoXr83SnEA" name="reverse" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="_AT26uloHEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26u1oHEeS2WoXr83SnEA" name="selectByKind" type="_AT23lVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_AT26vFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26vVoHEeS2WoXr83SnEA" parameteredElement="_AT26vloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26vloHEeS2WoXr83SnEA" name="TT" templateParameter="_AT26vVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT226VoHEeS2WoXr83SnEA _AT23Q1oHEeS2WoXr83SnEA _AT23bVoHEeS2WoXr83SnEA _AT23l1oHEeS2WoXr83SnEA _AT23-loHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT26v1oHEeS2WoXr83SnEA" name="type" type="_AT23QVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26wFoHEeS2WoXr83SnEA" name="selectByType" type="_AT23mFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_AT26wVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26wloHEeS2WoXr83SnEA" parameteredElement="_AT26w1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26w1oHEeS2WoXr83SnEA" name="TT" templateParameter="_AT26wloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT227FoHEeS2WoXr83SnEA _AT23RloHEeS2WoXr83SnEA _AT23cFoHEeS2WoXr83SnEA _AT23mloHEeS2WoXr83SnEA _AT23_VoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT26xFoHEeS2WoXr83SnEA" name="type" type="_AT23RFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26xVoHEeS2WoXr83SnEA" name="subOrderedSet" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT26xloHEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="_AT26x1oHEeS2WoXr83SnEA" name="lower" type="_AT24M1oHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_AT26yFoHEeS2WoXr83SnEA" name="upper" type="_AT24M1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT26yVoHEeS2WoXr83SnEA" name="closure" type="_AT26kVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_AT26yloHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_AT26y1oHEeS2WoXr83SnEA" name="lambda" type="_AT22XloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT26zFoHEeS2WoXr83SnEA" name="i" type="_AT26lFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT26zVoHEeS2WoXr83SnEA" name="collectNested" type="_AT23sFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_AT26zloHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="_AT26z1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT260FoHEeS2WoXr83SnEA" parameteredElement="_AT260VoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT260VoHEeS2WoXr83SnEA" name="V" templateParameter="_AT260FoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT224FoHEeS2WoXr83SnEA _AT23ZFoHEeS2WoXr83SnEA _AT23sloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT260loHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22X1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT2601oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT261FoHEeS2WoXr83SnEA" name="collect" type="_AT23s1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_AT261VoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT261loHEeS2WoXr83SnEA" parameteredElement="_AT2611oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT2611oHEeS2WoXr83SnEA" name="V" templateParameter="_AT261loHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT2241oHEeS2WoXr83SnEA _AT23Z1oHEeS2WoXr83SnEA _AT23tVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT262FoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22YFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT262VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT262loHEeS2WoXr83SnEA" name="reject" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_AT2621oHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_AT263FoHEeS2WoXr83SnEA" name="lambda" type="_AT22XFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT263VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT263loHEeS2WoXr83SnEA" name="select" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_AT2631oHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+        <ownedParameter xmi:id="_AT264FoHEeS2WoXr83SnEA" name="lambda" type="_AT22XFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT264VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT264loHEeS2WoXr83SnEA" name="sortedBy" type="_AT26kVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_AT2641oHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_AT265FoHEeS2WoXr83SnEA" name="lambda" type="_AT22XVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT265VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT265loHEeS2WoXr83SnEA" name="Sequence" superClass="_AT23g1oHEeS2WoXr83SnEA"
+        typedElement="_AT2671oHEeS2WoXr83SnEA _AT268loHEeS2WoXr83SnEA _AT269VoHEeS2WoXr83SnEA _AT26-FoHEeS2WoXr83SnEA _AT27AFoHEeS2WoXr83SnEA _AT27A1oHEeS2WoXr83SnEA _AT27B1oHEeS2WoXr83SnEA _AT27CloHEeS2WoXr83SnEA _AT27DVoHEeS2WoXr83SnEA _AT27GVoHEeS2WoXr83SnEA _AT27LloHEeS2WoXr83SnEA _AT27MloHEeS2WoXr83SnEA _AT27NloHEeS2WoXr83SnEA"
+        elementType="_AT266VoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_AT2651oHEeS2WoXr83SnEA" templateBinding="_AT23pVoHEeS2WoXr83SnEA _AT23qFoHEeS2WoXr83SnEA _AT23q1oHEeS2WoXr83SnEA _AT23rloHEeS2WoXr83SnEA _AT23sVoHEeS2WoXr83SnEA _AT23tFoHEeS2WoXr83SnEA _AT23t1oHEeS2WoXr83SnEA _AT23uloHEeS2WoXr83SnEA _AT23vVoHEeS2WoXr83SnEA _AT23wFoHEeS2WoXr83SnEA _AT23w1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT266FoHEeS2WoXr83SnEA" parameteredElement="_AT266VoHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_AT23ploHEeS2WoXr83SnEA _AT23qVoHEeS2WoXr83SnEA _AT23rFoHEeS2WoXr83SnEA _AT23r1oHEeS2WoXr83SnEA _AT23sloHEeS2WoXr83SnEA _AT23tVoHEeS2WoXr83SnEA _AT23uFoHEeS2WoXr83SnEA _AT23u1oHEeS2WoXr83SnEA _AT23vloHEeS2WoXr83SnEA _AT23wVoHEeS2WoXr83SnEA _AT23xFoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT266VoHEeS2WoXr83SnEA" name="T" templateParameter="_AT266FoHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_AT23AVoHEeS2WoXr83SnEA _AT23hVoHEeS2WoXr83SnEA _AT23nVoHEeS2WoXr83SnEA _AT24A1oHEeS2WoXr83SnEA"
+              typedElement="_AT268VoHEeS2WoXr83SnEA _AT27AloHEeS2WoXr83SnEA _AT27BloHEeS2WoXr83SnEA _AT27CVoHEeS2WoXr83SnEA _AT27IFoHEeS2WoXr83SnEA _AT27J1oHEeS2WoXr83SnEA _AT27LVoHEeS2WoXr83SnEA _AT27MVoHEeS2WoXr83SnEA _AT27NVoHEeS2WoXr83SnEA _AT27OVoHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_AT266loHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT2661oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT267FoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT267VoHEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+        <ownedParameter xmi:id="_AT267loHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT2671oHEeS2WoXr83SnEA" name="append" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="_AT268FoHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="_AT268VoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT268loHEeS2WoXr83SnEA" name="appendAll" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="_AT2681oHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="_AT269FoHEeS2WoXr83SnEA" name="objects" type="_AT23g1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT269VoHEeS2WoXr83SnEA" name="excluding" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_AT269loHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="_AT2691oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26-FoHEeS2WoXr83SnEA" name="excludingAll" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_AT26-VoHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_AT26-loHEeS2WoXr83SnEA" name="objects" type="_AT220loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT26-1oHEeS2WoXr83SnEA" name="flatten" type="_AT23vFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_AT26_FoHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].&#xA;If the element type is a collection type, the result is the sequence containing all the elements&#xA;of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+        <ownedTemplateSignature xmi:id="_AT26_VoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26_loHEeS2WoXr83SnEA" parameteredElement="_AT26_1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26_1oHEeS2WoXr83SnEA" name="T2" templateParameter="_AT26_loHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22-FoHEeS2WoXr83SnEA _AT23fFoHEeS2WoXr83SnEA _AT23vloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27AFoHEeS2WoXr83SnEA" name="including" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_AT27AVoHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+        <ownedParameter xmi:id="_AT27AloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27A1oHEeS2WoXr83SnEA" name="insertAt" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT27BFoHEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+        <ownedParameter xmi:id="_AT27BVoHEeS2WoXr83SnEA" name="index" type="_AT24M1oHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_AT27BloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27B1oHEeS2WoXr83SnEA" name="prepend" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="_AT27CFoHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_AT27CVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27CloHEeS2WoXr83SnEA" name="prependAll" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="_AT27C1oHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_AT27DFoHEeS2WoXr83SnEA" name="objects" type="_AT23g1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27DVoHEeS2WoXr83SnEA" name="reverse" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="_AT27DloHEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27D1oHEeS2WoXr83SnEA" name="selectByKind" type="_AT23v1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_AT27EFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27EVoHEeS2WoXr83SnEA" parameteredElement="_AT27EloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27EloHEeS2WoXr83SnEA" name="TT" templateParameter="_AT27EVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22-1oHEeS2WoXr83SnEA _AT23SVoHEeS2WoXr83SnEA _AT23f1oHEeS2WoXr83SnEA _AT23wVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT27E1oHEeS2WoXr83SnEA" name="type" type="_AT23R1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27FFoHEeS2WoXr83SnEA" name="selectByType" type="_AT23wloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_AT27FVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27FloHEeS2WoXr83SnEA" parameteredElement="_AT27F1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27F1oHEeS2WoXr83SnEA" name="TT" templateParameter="_AT27FloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22_loHEeS2WoXr83SnEA _AT23TFoHEeS2WoXr83SnEA _AT23gloHEeS2WoXr83SnEA _AT23xFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT27GFoHEeS2WoXr83SnEA" name="type" type="_AT23SloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27GVoHEeS2WoXr83SnEA" name="subSequence" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_AT27GloHEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="_AT27G1oHEeS2WoXr83SnEA" name="lower" type="_AT24M1oHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_AT27HFoHEeS2WoXr83SnEA" name="upper" type="_AT24M1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27HVoHEeS2WoXr83SnEA" name="closure" type="_AT23m1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_AT27HloHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_AT27H1oHEeS2WoXr83SnEA" name="lambda" type="_AT22Y1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27IFoHEeS2WoXr83SnEA" name="i" type="_AT266VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27IVoHEeS2WoXr83SnEA" name="collectNested" type="_AT23tloHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_AT27IloHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="_AT27I1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27JFoHEeS2WoXr83SnEA" parameteredElement="_AT27JVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27JVoHEeS2WoXr83SnEA" name="V" templateParameter="_AT27JFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT228loHEeS2WoXr83SnEA _AT23dloHEeS2WoXr83SnEA _AT23uFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT27JloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22ZFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27J1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27KFoHEeS2WoXr83SnEA" name="collect" type="_AT23uVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_AT27KVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27KloHEeS2WoXr83SnEA" parameteredElement="_AT27K1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27K1oHEeS2WoXr83SnEA" name="V" templateParameter="_AT27KloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT229VoHEeS2WoXr83SnEA _AT23eVoHEeS2WoXr83SnEA _AT23u1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT27LFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22ZVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27LVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27LloHEeS2WoXr83SnEA" name="reject" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_AT27L1oHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_AT27MFoHEeS2WoXr83SnEA" name="lambda" type="_AT22YVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27MVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27MloHEeS2WoXr83SnEA" name="select" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_AT27M1oHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_AT27NFoHEeS2WoXr83SnEA" name="lambda" type="_AT22YVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27NVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27NloHEeS2WoXr83SnEA" name="sortedBy" type="_AT265loHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_AT27N1oHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_AT27OFoHEeS2WoXr83SnEA" name="lambda" type="_AT22YloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27OVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT27OloHEeS2WoXr83SnEA" name="Set" superClass="_AT24DVoHEeS2WoXr83SnEA" typedElement="_AT27PloHEeS2WoXr83SnEA _AT27RloHEeS2WoXr83SnEA _AT27SVoHEeS2WoXr83SnEA _AT27UVoHEeS2WoXr83SnEA _AT27VFoHEeS2WoXr83SnEA _AT27YVoHEeS2WoXr83SnEA _AT27cloHEeS2WoXr83SnEA _AT27dloHEeS2WoXr83SnEA"
+        elementType="_AT27PVoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_AT27O1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27PFoHEeS2WoXr83SnEA" parameteredElement="_AT27PVoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27PVoHEeS2WoXr83SnEA" name="T" templateParameter="_AT27PFoHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_AT23E1oHEeS2WoXr83SnEA _AT23iFoHEeS2WoXr83SnEA _AT23oFoHEeS2WoXr83SnEA _AT24D1oHEeS2WoXr83SnEA"
+              typedElement="_AT27U1oHEeS2WoXr83SnEA _AT27ZFoHEeS2WoXr83SnEA _AT27a1oHEeS2WoXr83SnEA _AT27cVoHEeS2WoXr83SnEA _AT27dVoHEeS2WoXr83SnEA _AT27eVoHEeS2WoXr83SnEA _AT27fVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23x1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23yloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23zVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT230FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT2301oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT231loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT232VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT233FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT2331oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="hstmtostm.xml#_AT28BloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="hstmMM.xml#_AT28KFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="hstmMM.xml#_AT28K1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="stmMM.xml#_AT28S1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="stmMM.xml#_AT28TloHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="#_AT23xloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23yVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23zFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23z1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT230loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT231VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT232FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT2321oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT233loHEeS2WoXr83SnEA"/>
+        <templateBinding href="hstmtostm.xml#_AT28BVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="hstmMM.xml#_AT28J1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="hstmMM.xml#_AT28KloHEeS2WoXr83SnEA"/>
+        <templateBinding href="stmMM.xml#_AT28SloHEeS2WoXr83SnEA"/>
+        <templateBinding href="stmMM.xml#_AT28TVoHEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_AT27PloHEeS2WoXr83SnEA" name="-" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_AT27l1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT27P1oHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_AT27QFoHEeS2WoXr83SnEA" name="s" type="_AT237FoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27QVoHEeS2WoXr83SnEA" name="&lt;>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_AT27QloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27Q1oHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_AT27mVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT27RFoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+        <ownedParameter xmi:id="_AT27RVoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27RloHEeS2WoXr83SnEA" name="excluding" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_AT27R1oHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+        <ownedParameter xmi:id="_AT27SFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27SVoHEeS2WoXr83SnEA" name="excludingAll" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_AT27SloHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_AT27S1oHEeS2WoXr83SnEA" name="objects" type="_AT220loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27TFoHEeS2WoXr83SnEA" name="flatten" type="_AT231FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_AT27TVoHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].&#xA;If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_AT27TloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27T1oHEeS2WoXr83SnEA" parameteredElement="_AT27UFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27UFoHEeS2WoXr83SnEA" name="T2" templateParameter="_AT27T1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT23CloHEeS2WoXr83SnEA _AT231loHEeS2WoXr83SnEA _AT24BloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27UVoHEeS2WoXr83SnEA" name="including" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_AT27UloHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_AT27U1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27VFoHEeS2WoXr83SnEA" name="includingAll" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_AT27VVoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_AT27VloHEeS2WoXr83SnEA" name="objects" type="_AT23EVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27V1oHEeS2WoXr83SnEA" name="selectByKind" type="_AT2311oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_AT27WFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27WVoHEeS2WoXr83SnEA" parameteredElement="_AT27WloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27WloHEeS2WoXr83SnEA" name="TT" templateParameter="_AT27WVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT23DVoHEeS2WoXr83SnEA _AT23T1oHEeS2WoXr83SnEA _AT232VoHEeS2WoXr83SnEA _AT24CVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT27W1oHEeS2WoXr83SnEA" name="type" type="_AT23TVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27XFoHEeS2WoXr83SnEA" name="selectByType" type="_AT232loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_AT27XVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27XloHEeS2WoXr83SnEA" parameteredElement="_AT27X1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27X1oHEeS2WoXr83SnEA" name="TT" templateParameter="_AT27XloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT23EFoHEeS2WoXr83SnEA _AT23UloHEeS2WoXr83SnEA _AT233FoHEeS2WoXr83SnEA _AT24DFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT27YFoHEeS2WoXr83SnEA" name="type" type="_AT23UFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27YVoHEeS2WoXr83SnEA" name="closure" type="_AT27OloHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_AT27YloHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_AT27Y1oHEeS2WoXr83SnEA" name="lambda" type="_AT22aFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27ZFoHEeS2WoXr83SnEA" name="i" type="_AT27PVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27ZVoHEeS2WoXr83SnEA" name="collectNested" type="_AT22iloHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_AT27ZloHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="_AT27Z1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27aFoHEeS2WoXr83SnEA" parameteredElement="_AT27aVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27aVoHEeS2WoXr83SnEA" name="V" templateParameter="_AT27aFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22jFoHEeS2WoXr83SnEA _AT23BFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT27aloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22aVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27a1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27bFoHEeS2WoXr83SnEA" name="collect" type="_AT22jVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_AT27bVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27bloHEeS2WoXr83SnEA" parameteredElement="_AT27b1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27b1oHEeS2WoXr83SnEA" name="V" templateParameter="_AT27bloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_AT22j1oHEeS2WoXr83SnEA _AT23B1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_AT27cFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22aloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27cVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27cloHEeS2WoXr83SnEA" name="reject" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_AT27c1oHEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_AT27dFoHEeS2WoXr83SnEA" name="lambda" type="_AT22ZloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27dVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27dloHEeS2WoXr83SnEA" name="select" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_AT27d1oHEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+        <ownedParameter xmi:id="_AT27eFoHEeS2WoXr83SnEA" name="lambda" type="_AT22ZloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27eVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27eloHEeS2WoXr83SnEA" name="sortedBy" type="_AT23nloHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_AT27e1oHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_AT27fFoHEeS2WoXr83SnEA" name="lambda" type="_AT22Z1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27fVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT27floHEeS2WoXr83SnEA" name="State" superClass="_AT26XVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT27f1oHEeS2WoXr83SnEA" name="Type" superClass="_AT26a1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT27gFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT23FFoHEeS2WoXr83SnEA"
+        typedElement="_AT27hFoHEeS2WoXr83SnEA _AT27j1oHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_AT27gVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27gloHEeS2WoXr83SnEA" parameteredElement="_AT27g1oHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27g1oHEeS2WoXr83SnEA" name="T" templateParameter="_AT27gloHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_AT23FloHEeS2WoXr83SnEA _AT23i1oHEeS2WoXr83SnEA _AT23o1oHEeS2WoXr83SnEA _AT2331oHEeS2WoXr83SnEA _AT24EloHEeS2WoXr83SnEA"
+              typedElement="_AT27k1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT234loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT235VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT236FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT2361oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT237loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT238VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT239FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT2391oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23-loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT23_VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT24AFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT24A1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT24BloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT24CVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT24DFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT24D1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_AT24EloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="hstmtostm.xml#_AT28CVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="hstmMM.xml#_AT28LloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="hstmMM.xml#_AT28MVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="stmMM.xml#_AT28UVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="stmMM.xml#_AT28VFoHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="#_AT234VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT235FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT2351oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT236loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT237VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT238FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT2381oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT239loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23-VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23_FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT23_1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT24AloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT24BVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT24CFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT24C1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT24DloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_AT24EVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="hstmtostm.xml#_AT28CFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="hstmMM.xml#_AT28LVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="hstmMM.xml#_AT28MFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="stmMM.xml#_AT28UFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="stmMM.xml#_AT28U1oHEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_AT27hFoHEeS2WoXr83SnEA" name="-" type="_AT27gFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_AT27l1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_AT27hVoHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_AT27hloHEeS2WoXr83SnEA" name="s" type="_AT237FoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27h1oHEeS2WoXr83SnEA" name="intersection" type="_AT233VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_AT27iFoHEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+        <ownedParameter xmi:id="_AT27iVoHEeS2WoXr83SnEA" name="c" type="_AT23FFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27iloHEeS2WoXr83SnEA" name="symmetricDifference" type="_AT233VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+        <ownedComment xmi:id="_AT27i1oHEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+        <ownedParameter xmi:id="_AT27jFoHEeS2WoXr83SnEA" name="s" type="_AT237FoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_AT27jVoHEeS2WoXr83SnEA" name="union" type="_AT233VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="_AT27jloHEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+        <ownedParameter xmi:id="_AT27j1oHEeS2WoXr83SnEA" name="s" type="_AT27gFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27kFoHEeS2WoXr83SnEA" name="sortedBy" type="_AT23oVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_AT27kVoHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_AT27kloHEeS2WoXr83SnEA" name="lambda" type="_AT22a1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_AT27k1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27g1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedPrecedence xmi:id="_AT27lFoHEeS2WoXr83SnEA" name="NAVIGATION"/>
+    <ownedPrecedence xmi:id="_AT27lVoHEeS2WoXr83SnEA" name="UNARY" order="1"/>
+    <ownedPrecedence xmi:id="_AT27lloHEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+    <ownedPrecedence xmi:id="_AT27l1oHEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+    <ownedPrecedence xmi:id="_AT27mFoHEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+    <ownedPrecedence xmi:id="_AT27mVoHEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+    <ownedPrecedence xmi:id="_AT27mloHEeS2WoXr83SnEA" name="AND" order="6"/>
+    <ownedPrecedence xmi:id="_AT27m1oHEeS2WoXr83SnEA" name="OR" order="7"/>
+    <ownedPrecedence xmi:id="_AT27nFoHEeS2WoXr83SnEA" name="XOR" order="8"/>
+    <ownedPrecedence xmi:id="_AT27nVoHEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmMM.xml
new file mode 100644
index 0000000..ef3b745
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmMM.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_AT28DVoHEeS2WoXr83SnEA" name="hstmMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmMM.emof">
+  <nestedPackage xmi:id="_AT28DloHEeS2WoXr83SnEA" name="hstmMM_p" nsURI="hstmMM_p">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28D1oHEeS2WoXr83SnEA" name="State">
+      <templateParameterSubstitution href="hstmtostm.xml#_AT28A1oHEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="hstmtostm.xml#_AT28BloHEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="hstmtostm.xml#_AT28CVoHEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#_AT28IloHEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#_AT28KFoHEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#_AT28LloHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_AT28EFoHEeS2WoXr83SnEA" name="containedInState" type="_AT28D1oHEeS2WoXr83SnEA" opposite="_AT28EVoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_AT28EVoHEeS2WoXr83SnEA" name="containsState" type="_AT28JloHEeS2WoXr83SnEA" opposite="_AT28EFoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_AT28EloHEeS2WoXr83SnEA" name="inTrans" type="_AT28KVoHEeS2WoXr83SnEA" opposite="_AT28GVoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_AT28E1oHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+        <key href="hstmtostm.xml#_AT27_FoHEeS2WoXr83SnEA"/>
+        <propertyItem href="hstmtostm.xml#_AT27vVoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT28FFoHEeS2WoXr83SnEA" name="outTrans" type="_AT28KVoHEeS2WoXr83SnEA" opposite="_AT28F1oHEeS2WoXr83SnEA">
+        <propertyItem href="hstmtostm.xml#_AT27y1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT28FVoHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_AT28G1oHEeS2WoXr83SnEA" implicit="true"
+          opposite="_AT28HVoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="hstmtostm.xml#_AT27oloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="hstmtostm.xml#_AT27o1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:PropertyCallExp" href="hstmtostm.xml#_AT27p1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27qFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:PropertyCallExp" href="hstmtostm.xml#_AT27q1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27rFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27rVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27r1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:PropertyCallExp" href="hstmtostm.xml#_AT27sFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27sVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT27uVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27vFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT27xVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT27yloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT270FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT2721oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT273FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT273VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT2731oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT275loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2761oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT277FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT277loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2771oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT278loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2791oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27-FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27-loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27-1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_AT28EFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_AT28F1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_AT28GVoHEeS2WoXr83SnEA"/>
+      <key href="hstmtostm.xml#_AT27_FoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28FloHEeS2WoXr83SnEA" name="Trans" templateParameterSubstitution="_AT28JVoHEeS2WoXr83SnEA _AT28K1oHEeS2WoXr83SnEA _AT28MVoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_AT28F1oHEeS2WoXr83SnEA" name="fromState" type="_AT28D1oHEeS2WoXr83SnEA" opposite="_AT28FFoHEeS2WoXr83SnEA">
+        <key href="hstmtostm.xml#_AT27_VoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT28GFoHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+        <key href="hstmtostm.xml#_AT27_VoHEeS2WoXr83SnEA"/>
+        <propertyItem href="hstmtostm.xml#_AT27zVoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT28GVoHEeS2WoXr83SnEA" name="toState" type="_AT28D1oHEeS2WoXr83SnEA" opposite="_AT28EloHEeS2WoXr83SnEA">
+        <key href="hstmtostm.xml#_AT27_VoHEeS2WoXr83SnEA"/>
+        <propertyItem href="hstmtostm.xml#_AT27z1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT28GloHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_AT28G1oHEeS2WoXr83SnEA" implicit="true"
+          opposite="_AT28HFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT27zFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT274FoHEeS2WoXr83SnEA"/>
+      <key href="hstmtostm.xml#_AT27_VoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28G1oHEeS2WoXr83SnEA" name="dummy" typedElement="_AT28FVoHEeS2WoXr83SnEA _AT28GloHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_AT28HFoHEeS2WoXr83SnEA" name="conatains_trans" type="_AT28KVoHEeS2WoXr83SnEA" isComposite="true" opposite="_AT28GloHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_AT28HVoHEeS2WoXr83SnEA" name="contains_state" type="_AT28JloHEeS2WoXr83SnEA" isComposite="true" opposite="_AT28FVoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_AT28HloHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="_AT28H1oHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28IFoHEeS2WoXr83SnEA" name="Collection" elementType="_AT28D1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT28IVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28IloHEeS2WoXr83SnEA" actual="_AT28D1oHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT25NFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT25M1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT25MloHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_AT2541oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28I1oHEeS2WoXr83SnEA" name="Collection" elementType="_AT28FloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT28JFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28JVoHEeS2WoXr83SnEA" actual="_AT28FloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT25NFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT25M1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT25MloHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_AT2541oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT28JloHEeS2WoXr83SnEA" name="Set" superClass="_AT28LFoHEeS2WoXr83SnEA" typedElement="_AT28EVoHEeS2WoXr83SnEA _AT28HVoHEeS2WoXr83SnEA"
+        elementType="_AT28D1oHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_AT28J1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28KFoHEeS2WoXr83SnEA" actual="_AT28D1oHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT27PFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT27O1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_AT27OloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT28KVoHEeS2WoXr83SnEA" name="Set" superClass="_AT28L1oHEeS2WoXr83SnEA" typedElement="_AT28EloHEeS2WoXr83SnEA _AT28FFoHEeS2WoXr83SnEA _AT28HFoHEeS2WoXr83SnEA"
+        elementType="_AT28FloHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_AT28KloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28K1oHEeS2WoXr83SnEA" actual="_AT28FloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT27PFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT27O1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_AT27OloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28LFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT28IFoHEeS2WoXr83SnEA"
+        elementType="_AT28D1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT28LVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28LloHEeS2WoXr83SnEA" actual="_AT28D1oHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT27gloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT27gVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT27gFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28L1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT28I1oHEeS2WoXr83SnEA"
+        elementType="_AT28FloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT28MFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28MVoHEeS2WoXr83SnEA" actual="_AT28FloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT27gloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT27gVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT27gFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmtostm.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmtostm.xml
new file mode 100644
index 0000000..958f80d
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmtostm.xml
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_AT27nloHEeS2WoXr83SnEA" name="hstmtostm.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmtostm.qvtr">
+  <ownedComment xmi:id="_AT27n1oHEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+  <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="_AT27oFoHEeS2WoXr83SnEA" name="HstmToStm">
+    <ownedOperation xmi:type="flatemofqvt:Function" xmi:id="_AT27oVoHEeS2WoXr83SnEA" name="StateContainsState">
+      <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+      <ownedParameter xmi:id="_AT27oloHEeS2WoXr83SnEA" name="cState">
+        <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+      </ownedParameter>
+      <ownedParameter xmi:id="_AT27o1oHEeS2WoXr83SnEA" name="mState">
+        <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+      </ownedParameter>
+      <queryExpression xmi:type="flatemofqvt:IfExp" xmi:id="_AT27pFoHEeS2WoXr83SnEA">
+        <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+        <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27pVoHEeS2WoXr83SnEA">
+          <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+          <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27ploHEeS2WoXr83SnEA" name="oclAsSet" type="_AT28BFoHEeS2WoXr83SnEA"
+              implicit="true">
+            <source xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_AT27p1oHEeS2WoXr83SnEA">
+              <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27qFoHEeS2WoXr83SnEA" referredVariable="_AT27o1oHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              </source>
+              <referredProperty href="hstmMM.xml#_AT28EFoHEeS2WoXr83SnEA"/>
+            </source>
+            <referredOperation href="OCL.xml#_AT2561oHEeS2WoXr83SnEA"/>
+          </source>
+          <referredOperation href="OCL.xml#_AT25d1oHEeS2WoXr83SnEA"/>
+        </condition>
+        <elseExpression xmi:type="flatemofqvt:IfExp" xmi:id="_AT27qVoHEeS2WoXr83SnEA">
+          <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+          <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27qloHEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_AT27q1oHEeS2WoXr83SnEA">
+              <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27rFoHEeS2WoXr83SnEA" referredVariable="_AT27o1oHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              </source>
+              <referredProperty href="hstmMM.xml#_AT28EFoHEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27rVoHEeS2WoXr83SnEA" referredVariable="_AT27oloHEeS2WoXr83SnEA">
+              <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+            </argument>
+            <referredOperation href="OCL.xml#_AT256FoHEeS2WoXr83SnEA"/>
+          </condition>
+          <elseExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27rloHEeS2WoXr83SnEA" referredOperation="_AT27oVoHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27r1oHEeS2WoXr83SnEA" referredVariable="_AT27oloHEeS2WoXr83SnEA">
+              <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_AT27sFoHEeS2WoXr83SnEA">
+              <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27sVoHEeS2WoXr83SnEA" referredVariable="_AT27o1oHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              </source>
+              <referredProperty href="hstmMM.xml#_AT28EFoHEeS2WoXr83SnEA"/>
+            </argument>
+          </elseExpression>
+          <thenExpression xmi:type="flatemofqvt:BooleanLiteralExp" xmi:id="_AT27sloHEeS2WoXr83SnEA" booleanSymbol="true">
+            <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+          </thenExpression>
+        </elseExpression>
+        <thenExpression xmi:type="flatemofqvt:BooleanLiteralExp" xmi:id="_AT27s1oHEeS2WoXr83SnEA" booleanSymbol="false">
+          <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+        </thenExpression>
+      </queryExpression>
+    </ownedOperation>
+    <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+    <modelParameter xmi:id="_AT27tFoHEeS2WoXr83SnEA" name="hstm">
+      <usedPackage href="hstmMM.xml#_AT28DloHEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <modelParameter xmi:id="_AT27tVoHEeS2WoXr83SnEA" name="stm">
+      <usedPackage href="stmMM.xml#_AT28M1oHEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_AT27tloHEeS2WoXr83SnEA" name="LStateToState" isTopLevel="true" relationCallExp="_AT275VoHEeS2WoXr83SnEA _AT278VoHEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_AT27t1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_AT27tFoHEeS2WoXr83SnEA"
+          rootVariable="_AT27xVoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_AT27uFoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT27uVoHEeS2WoXr83SnEA" bindsTo="_AT27xVoHEeS2WoXr83SnEA">
+            <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+            <where xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27uloHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+              <source xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_AT27u1oHEeS2WoXr83SnEA" type="_AT28BFoHEeS2WoXr83SnEA">
+                <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27vFoHEeS2WoXr83SnEA" referredVariable="_AT27xVoHEeS2WoXr83SnEA">
+                  <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+                </source>
+                <referredProperty href="hstmMM.xml#_AT28EVoHEeS2WoXr83SnEA"/>
+              </source>
+              <referredOperation href="OCL.xml#_AT25d1oHEeS2WoXr83SnEA"/>
+            </where>
+            <part xmi:id="_AT27vVoHEeS2WoXr83SnEA">
+              <referredProperty href="hstmMM.xml#_AT28E1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27vloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT27xFoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_AT27v1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_AT27tVoHEeS2WoXr83SnEA"
+          rootVariable="_AT27xloHEeS2WoXr83SnEA">
+        <pattern xmi:id="_AT27wFoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT27wVoHEeS2WoXr83SnEA" bindsTo="_AT27xloHEeS2WoXr83SnEA">
+            <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+            <part xmi:id="_AT27wloHEeS2WoXr83SnEA">
+              <referredProperty href="stmMM.xml#_AT28NloHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27w1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT27xFoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_AT27xFoHEeS2WoXr83SnEA" name="n" isRequired="false">
+        <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_AT27xVoHEeS2WoXr83SnEA" name="s1" templateExp="_AT27uVoHEeS2WoXr83SnEA">
+        <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_AT27xloHEeS2WoXr83SnEA" name="s2" templateExp="_AT27wVoHEeS2WoXr83SnEA">
+        <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+      </variable>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_AT27x1oHEeS2WoXr83SnEA" name="CStateToState" isTopLevel="true">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_AT27yFoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_AT27tFoHEeS2WoXr83SnEA"
+          rootVariable="_AT2731oHEeS2WoXr83SnEA">
+        <pattern xmi:id="_AT27yVoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT27yloHEeS2WoXr83SnEA" bindsTo="_AT2731oHEeS2WoXr83SnEA">
+            <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+            <part xmi:id="_AT27y1oHEeS2WoXr83SnEA">
+              <referredProperty href="hstmMM.xml#_AT28FFoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT27zFoHEeS2WoXr83SnEA" bindsTo="_AT274FoHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28FloHEeS2WoXr83SnEA"/>
+                <part xmi:id="_AT27zVoHEeS2WoXr83SnEA">
+                  <referredProperty href="hstmMM.xml#_AT28GFoHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27zloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT272loHEeS2WoXr83SnEA">
+                    <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="_AT27z1oHEeS2WoXr83SnEA">
+                  <referredProperty href="hstmMM.xml#_AT28GVoHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT270FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273VoHEeS2WoXr83SnEA">
+                    <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="hstmMM.xml#_AT28FloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_AT270VoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_AT27tVoHEeS2WoXr83SnEA"
+          rootVariable="_AT274VoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_AT270loHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT2701oHEeS2WoXr83SnEA" bindsTo="_AT274VoHEeS2WoXr83SnEA">
+            <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+            <part xmi:id="_AT271FoHEeS2WoXr83SnEA">
+              <referredProperty href="stmMM.xml#_AT28N1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT271VoHEeS2WoXr83SnEA" bindsTo="_AT274loHEeS2WoXr83SnEA">
+                <type href="stmMM.xml#_AT28OVoHEeS2WoXr83SnEA"/>
+                <part xmi:id="_AT271loHEeS2WoXr83SnEA">
+                  <referredProperty href="stmMM.xml#_AT28O1oHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2711oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT272loHEeS2WoXr83SnEA">
+                    <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="_AT272FoHEeS2WoXr83SnEA">
+                  <referredProperty href="stmMM.xml#_AT28PFoHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT272VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273loHEeS2WoXr83SnEA">
+                    <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="stmMM.xml#_AT28OVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_AT272loHEeS2WoXr83SnEA" name="tn" isRequired="false">
+        <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_AT2721oHEeS2WoXr83SnEA" name="ms1" isRequired="false">
+        <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_AT273FoHEeS2WoXr83SnEA" name="ms2" isRequired="false">
+        <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_AT273VoHEeS2WoXr83SnEA" name="ts1" isRequired="false">
+        <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_AT273loHEeS2WoXr83SnEA" name="ts2" isRequired="false">
+        <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_AT2731oHEeS2WoXr83SnEA" name="fs1" templateExp="_AT27yloHEeS2WoXr83SnEA">
+        <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_AT274FoHEeS2WoXr83SnEA" name="t1" templateExp="_AT27zFoHEeS2WoXr83SnEA">
+        <type href="hstmMM.xml#_AT28FloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_AT274VoHEeS2WoXr83SnEA" name="fs2" templateExp="_AT2701oHEeS2WoXr83SnEA">
+        <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_AT274loHEeS2WoXr83SnEA" name="t2" templateExp="_AT271VoHEeS2WoXr83SnEA">
+        <type href="stmMM.xml#_AT28OVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <when xmi:id="_AT2741oHEeS2WoXr83SnEA">
+        <predicate xmi:id="_AT275FoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_AT275VoHEeS2WoXr83SnEA" referredRelation="_AT27tloHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT275loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT2721oHEeS2WoXr83SnEA">
+              <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2751oHEeS2WoXr83SnEA" referredVariable="_AT274VoHEeS2WoXr83SnEA">
+              <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_AT276FoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT276VoHEeS2WoXr83SnEA" name="or" isRequired="false">
+            <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT276loHEeS2WoXr83SnEA" name="=">
+              <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+              <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2761oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT2721oHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              </source>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT277FoHEeS2WoXr83SnEA" referredVariable="_AT2731oHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              </argument>
+              <referredOperation href="OCL.xml#_AT256FoHEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT277VoHEeS2WoXr83SnEA" referredOperation="_AT27oVoHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT277loHEeS2WoXr83SnEA" referredVariable="_AT2731oHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              </argument>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2771oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT2721oHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              </argument>
+            </argument>
+            <referredOperation href="OCL.xml#_AT24KVoHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_AT278FoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_AT278VoHEeS2WoXr83SnEA" referredRelation="_AT27tloHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT278loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273FoHEeS2WoXr83SnEA">
+              <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2781oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273loHEeS2WoXr83SnEA">
+              <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_AT279FoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT279VoHEeS2WoXr83SnEA" name="or" isRequired="false">
+            <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT279loHEeS2WoXr83SnEA" name="=">
+              <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+              <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2791oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273FoHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              </source>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27-FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273VoHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              </argument>
+              <referredOperation href="OCL.xml#_AT256FoHEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27-VoHEeS2WoXr83SnEA" referredOperation="_AT27oVoHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27-loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273VoHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              </argument>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27-1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273FoHEeS2WoXr83SnEA">
+                <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+              </argument>
+            </argument>
+            <referredOperation href="OCL.xml#_AT24KVoHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+      </when>
+    </rule>
+    <ownedKey xmi:id="_AT27_FoHEeS2WoXr83SnEA">
+      <identifies href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+      <part href="hstmMM.xml#_AT28E1oHEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="_AT27_VoHEeS2WoXr83SnEA">
+      <identifies href="hstmMM.xml#_AT28FloHEeS2WoXr83SnEA"/>
+      <part href="hstmMM.xml#_AT28GFoHEeS2WoXr83SnEA"/>
+      <part href="hstmMM.xml#_AT28F1oHEeS2WoXr83SnEA"/>
+      <part href="hstmMM.xml#_AT28GVoHEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="_AT27_loHEeS2WoXr83SnEA">
+      <identifies href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+      <part href="stmMM.xml#_AT28NloHEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="_AT27_1oHEeS2WoXr83SnEA">
+      <identifies href="stmMM.xml#_AT28OVoHEeS2WoXr83SnEA"/>
+      <part href="stmMM.xml#_AT28O1oHEeS2WoXr83SnEA"/>
+      <part href="stmMM.xml#_AT28OloHEeS2WoXr83SnEA"/>
+      <part href="stmMM.xml#_AT28PFoHEeS2WoXr83SnEA"/>
+    </ownedKey>
+  </nestedPackage>
+  <nestedPackage xmi:id="_AT28AFoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28AVoHEeS2WoXr83SnEA" name="Collection">
+      <templateBinding xmi:id="_AT28AloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28A1oHEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#_AT25NFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT25M1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT25MloHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_AT2541oHEeS2WoXr83SnEA"/>
+      <elementType href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT28BFoHEeS2WoXr83SnEA" name="Set" superClass="_AT28B1oHEeS2WoXr83SnEA" typedElement="_AT27ploHEeS2WoXr83SnEA _AT27u1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT28BVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28BloHEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#_AT27PFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT27O1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_AT27OloHEeS2WoXr83SnEA"/>
+      <elementType href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28B1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT28AVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT28CFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28CVoHEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#_AT27gloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT27gVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT27gFoHEeS2WoXr83SnEA"/>
+      <elementType href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <unit xmi:id="_AT28CloHEeS2WoXr83SnEA" name="hstmMM_p">
+    <ownedComment xmi:id="_AT28C1oHEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+    <usedPackage xmi:type="flatemofqvt:Package" href="hstmMM.xml#_AT28DloHEeS2WoXr83SnEA"/>
+  </unit>
+  <unit xmi:id="_AT28DFoHEeS2WoXr83SnEA" name="stmMM_p">
+    <usedPackage xmi:type="flatemofqvt:Package" href="stmMM.xml#_AT28M1oHEeS2WoXr83SnEA"/>
+  </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/stmMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/stmMM.xml
new file mode 100644
index 0000000..aac7cf8
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/stmMM.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_AT28MloHEeS2WoXr83SnEA" name="stmMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/stmMM.emof">
+  <nestedPackage xmi:id="_AT28M1oHEeS2WoXr83SnEA" name="stmMM_p" nsURI="stmMM_p">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28NFoHEeS2WoXr83SnEA" name="State" templateParameterSubstitution="_AT28RVoHEeS2WoXr83SnEA _AT28S1oHEeS2WoXr83SnEA _AT28UVoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_AT28NVoHEeS2WoXr83SnEA" name="inTrans" type="_AT28TFoHEeS2WoXr83SnEA" opposite="_AT28PFoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_AT28NloHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+        <key href="hstmtostm.xml#_AT27_loHEeS2WoXr83SnEA"/>
+        <propertyItem href="hstmtostm.xml#_AT27wloHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT28N1oHEeS2WoXr83SnEA" name="outTrans" type="_AT28TFoHEeS2WoXr83SnEA" opposite="_AT28OloHEeS2WoXr83SnEA">
+        <propertyItem href="hstmtostm.xml#_AT271FoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT28OFoHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_AT28PloHEeS2WoXr83SnEA" implicit="true"
+          opposite="_AT28P1oHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT27wVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT27xloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT2701oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT272VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT273loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT274VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2751oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2781oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_AT28OloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_AT28PFoHEeS2WoXr83SnEA"/>
+      <key href="hstmtostm.xml#_AT27_loHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28OVoHEeS2WoXr83SnEA" name="Trans" templateParameterSubstitution="_AT28SFoHEeS2WoXr83SnEA _AT28TloHEeS2WoXr83SnEA _AT28VFoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_AT28OloHEeS2WoXr83SnEA" name="fromState" type="_AT28NFoHEeS2WoXr83SnEA" opposite="_AT28N1oHEeS2WoXr83SnEA">
+        <key href="hstmtostm.xml#_AT27_1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT28O1oHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+        <key href="hstmtostm.xml#_AT27_1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="hstmtostm.xml#_AT271loHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT28PFoHEeS2WoXr83SnEA" name="toState" type="_AT28NFoHEeS2WoXr83SnEA" opposite="_AT28NVoHEeS2WoXr83SnEA">
+        <key href="hstmtostm.xml#_AT27_1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="hstmtostm.xml#_AT272FoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_AT28PVoHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_AT28PloHEeS2WoXr83SnEA" implicit="true"
+          opposite="_AT28QFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT271VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT274loHEeS2WoXr83SnEA"/>
+      <key href="hstmtostm.xml#_AT27_1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28PloHEeS2WoXr83SnEA" name="dummy" typedElement="_AT28OFoHEeS2WoXr83SnEA _AT28PVoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_AT28P1oHEeS2WoXr83SnEA" name="container_state" type="_AT28SVoHEeS2WoXr83SnEA" isComposite="true" opposite="_AT28OFoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_AT28QFoHEeS2WoXr83SnEA" name="container_trans" type="_AT28TFoHEeS2WoXr83SnEA" isComposite="true" opposite="_AT28PVoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_AT28QVoHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="_AT28QloHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28Q1oHEeS2WoXr83SnEA" name="Collection" elementType="_AT28NFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT28RFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28RVoHEeS2WoXr83SnEA" actual="_AT28NFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT25NFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT25M1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT25MloHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_AT2541oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28RloHEeS2WoXr83SnEA" name="Collection" elementType="_AT28OVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT28R1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28SFoHEeS2WoXr83SnEA" actual="_AT28OVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT25NFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT25M1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT25MloHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_AT2541oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT28SVoHEeS2WoXr83SnEA" name="Set" superClass="_AT28T1oHEeS2WoXr83SnEA" typedElement="_AT28P1oHEeS2WoXr83SnEA"
+        elementType="_AT28NFoHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_AT28SloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28S1oHEeS2WoXr83SnEA" actual="_AT28NFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT27PFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT27O1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_AT27OloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT28TFoHEeS2WoXr83SnEA" name="Set" superClass="_AT28UloHEeS2WoXr83SnEA" typedElement="_AT28NVoHEeS2WoXr83SnEA _AT28N1oHEeS2WoXr83SnEA _AT28QFoHEeS2WoXr83SnEA"
+        elementType="_AT28OVoHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_AT28TVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28TloHEeS2WoXr83SnEA" actual="_AT28OVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT27PFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT27O1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_AT27OloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28T1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT28Q1oHEeS2WoXr83SnEA"
+        elementType="_AT28NFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT28UFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28UVoHEeS2WoXr83SnEA" actual="_AT28NFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT27gloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT27gVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT27gFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28UloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT28RloHEeS2WoXr83SnEA"
+        elementType="_AT28OVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_AT28U1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_AT28VFoHEeS2WoXr83SnEA" actual="_AT28OVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_AT27gloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_AT27gVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT27gFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/OCL.xml
new file mode 100644
index 0000000..a93daf8
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/OCL.xml
@@ -0,0 +1,2762 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_ArQDNloHEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+  <nestedPackage xmi:id="_ArQDN1oHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDOFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGDVoHEeS2WoXr83SnEA _ArQGEVoHEeS2WoXr83SnEA"
+        contextType="_ArQF2VoHEeS2WoXr83SnEA" resultType="_ArQE-1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDOVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGA1oHEeS2WoXr83SnEA"
+        contextType="_ArQF2VoHEeS2WoXr83SnEA" resultType="_ArQGAloHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDOloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGCVoHEeS2WoXr83SnEA"
+        contextType="_ArQF2VoHEeS2WoXr83SnEA" resultType="_ArQGCFoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDO1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGFVoHEeS2WoXr83SnEA"
+        contextType="_ArQF2VoHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDPFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQF_FoHEeS2WoXr83SnEA"
+        contextType="_ArQF2VoHEeS2WoXr83SnEA" resultType="_ArQErloHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDPVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGfloHEeS2WoXr83SnEA _ArQGj1oHEeS2WoXr83SnEA _ArQGlFoHEeS2WoXr83SnEA _ArQGl1oHEeS2WoXr83SnEA _ArQGnFoHEeS2WoXr83SnEA _ArQGq1oHEeS2WoXr83SnEA _ArQGr1oHEeS2WoXr83SnEA _ArQGs1oHEeS2WoXr83SnEA"
+        contextType="_ArQGG1oHEeS2WoXr83SnEA" resultType="_ArQE-1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDPloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGhVoHEeS2WoXr83SnEA"
+        contextType="_ArQGG1oHEeS2WoXr83SnEA" resultType="_ArQGhFoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDP1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGjFoHEeS2WoXr83SnEA"
+        contextType="_ArQGG1oHEeS2WoXr83SnEA" resultType="_ArQGi1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDQFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGploHEeS2WoXr83SnEA"
+        contextType="_ArQGG1oHEeS2WoXr83SnEA" resultType="_ArQGpVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDQVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGoFoHEeS2WoXr83SnEA _ArQGt1oHEeS2WoXr83SnEA"
+        contextType="_ArQGG1oHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDQloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQHwloHEeS2WoXr83SnEA _ArQHxloHEeS2WoXr83SnEA"
+        contextType="_ArQHeloHEeS2WoXr83SnEA" resultType="_ArQE-1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDQ1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQHyloHEeS2WoXr83SnEA"
+        contextType="_ArQHeloHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDRFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQHsVoHEeS2WoXr83SnEA"
+        contextType="_ArQHeloHEeS2WoXr83SnEA" resultType="_ArQHd1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDRVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQHuFoHEeS2WoXr83SnEA"
+        contextType="_ArQHeloHEeS2WoXr83SnEA" resultType="_ArQHt1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDRloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQHvloHEeS2WoXr83SnEA"
+        contextType="_ArQHeloHEeS2WoXr83SnEA" resultType="_ArQHvVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDR1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIFloHEeS2WoXr83SnEA _ArQIGloHEeS2WoXr83SnEA"
+        contextType="_ArQHz1oHEeS2WoXr83SnEA" resultType="_ArQE-1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDSFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIHloHEeS2WoXr83SnEA"
+        contextType="_ArQHz1oHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDSVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIBVoHEeS2WoXr83SnEA"
+        contextType="_ArQHz1oHEeS2WoXr83SnEA" resultType="_ArQEgVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDSloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIDFoHEeS2WoXr83SnEA"
+        contextType="_ArQHz1oHEeS2WoXr83SnEA" resultType="_ArQIC1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDS1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIEloHEeS2WoXr83SnEA"
+        contextType="_ArQHz1oHEeS2WoXr83SnEA" resultType="_ArQIEVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDTFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIWloHEeS2WoXr83SnEA _ArQIXloHEeS2WoXr83SnEA"
+        contextType="_ArQII1oHEeS2WoXr83SnEA" resultType="_ArQE-1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDTVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIYloHEeS2WoXr83SnEA"
+        contextType="_ArQII1oHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDTloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQISVoHEeS2WoXr83SnEA"
+        contextType="_ArQII1oHEeS2WoXr83SnEA" resultType="_ArQIIFoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDT1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIUFoHEeS2WoXr83SnEA"
+        contextType="_ArQII1oHEeS2WoXr83SnEA" resultType="_ArQIT1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDUFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIVloHEeS2WoXr83SnEA"
+        contextType="_ArQII1oHEeS2WoXr83SnEA" resultType="_ArQIVVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDUVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIeFoHEeS2WoXr83SnEA"
+        contextType="_ArQIaVoHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="_ArQDUloHEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="_ArQDfloHEeS2WoXr83SnEA _ArQErVoHEeS2WoXr83SnEA _ArQEyFoHEeS2WoXr83SnEA"
+        superClass="_ArQHS1oHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_ArQDU1oHEeS2WoXr83SnEA" name="first" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_ArQDVFoHEeS2WoXr83SnEA" name="second" type="_ArQGaVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDVVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+        superClass="_ArQDf1oHEeS2WoXr83SnEA" typedElement="_ArQF_loHEeS2WoXr83SnEA" elementType="_ArQGAloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDVloHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDV1oHEeS2WoXr83SnEA" actual="_ArQGAloHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDWFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+        superClass="_ArQDgloHEeS2WoXr83SnEA" typedElement="_ArQGBVoHEeS2WoXr83SnEA" elementType="_ArQGCFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDWVoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDWloHEeS2WoXr83SnEA" actual="_ArQGCFoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDW1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+        superClass="_ArQDhVoHEeS2WoXr83SnEA" typedElement="_ArQF5VoHEeS2WoXr83SnEA" elementType="_ArQF6VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDXFoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDXVoHEeS2WoXr83SnEA" actual="_ArQF6VoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDXloHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+        superClass="_ArQDiFoHEeS2WoXr83SnEA" typedElement="_ArQF8FoHEeS2WoXr83SnEA" elementType="_ArQF81oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDX1oHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDYFoHEeS2WoXr83SnEA" actual="_ArQF81oHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDYVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+        superClass="_ArQDi1oHEeS2WoXr83SnEA" typedElement="_ArQF9VoHEeS2WoXr83SnEA" elementType="_ArQF-FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDYloHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDY1oHEeS2WoXr83SnEA" actual="_ArQF-FoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDZFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+        superClass="_ArQDqVoHEeS2WoXr83SnEA" typedElement="_ArQGKVoHEeS2WoXr83SnEA _ArQGV1oHEeS2WoXr83SnEA _ArQGeVoHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDZVoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDZloHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDZ1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+        superClass="_ArQDrFoHEeS2WoXr83SnEA" typedElement="_ArQGHFoHEeS2WoXr83SnEA" elementType="_ArQGGFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDaFoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDaVoHEeS2WoXr83SnEA" actual="_ArQGGFoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDaloHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+        superClass="_ArQDsloHEeS2WoXr83SnEA" typedElement="_ArQGwVoHEeS2WoXr83SnEA" elementType="_ArQGuVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDa1oHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDbFoHEeS2WoXr83SnEA" actual="_ArQGuVoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDbVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+        superClass="_ArQDtVoHEeS2WoXr83SnEA" typedElement="_ArQGxloHEeS2WoXr83SnEA" elementType="_ArQGwloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDbloHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDb1oHEeS2WoXr83SnEA" actual="_ArQGwloHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDcFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+        superClass="_ArQD6FoHEeS2WoXr83SnEA" typedElement="_ArQIS1oHEeS2WoXr83SnEA" elementType="_ArQIT1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDcVoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDcloHEeS2WoXr83SnEA" actual="_ArQIT1oHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDc1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+        superClass="_ArQD61oHEeS2WoXr83SnEA" typedElement="_ArQIUloHEeS2WoXr83SnEA" elementType="_ArQIVVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDdFoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDdVoHEeS2WoXr83SnEA" actual="_ArQIVVoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDdloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQFGVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDd1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDeFoHEeS2WoXr83SnEA" actual="_ArQFGVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDeVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQFbVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDeloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDe1oHEeS2WoXr83SnEA" actual="_ArQFbVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDfFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQDUloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDfVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDfloHEeS2WoXr83SnEA" actual="_ArQDUloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDf1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGAloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDgFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDgVoHEeS2WoXr83SnEA" actual="_ArQGAloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDgloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGCFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDg1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDhFoHEeS2WoXr83SnEA" actual="_ArQGCFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDhVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQF6VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDhloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDh1oHEeS2WoXr83SnEA" actual="_ArQF6VoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDiFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQF81oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDiVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDiloHEeS2WoXr83SnEA" actual="_ArQF81oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDi1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQF-FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDjFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDjVoHEeS2WoXr83SnEA" actual="_ArQF-FoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDjloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQF71oHEeS2WoXr83SnEA" elementType="_ArQF2VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDj1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDkFoHEeS2WoXr83SnEA" actual="_ArQF2VoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDkVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGgFoHEeS2WoXr83SnEA" elementType="_ArQGhFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDkloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDk1oHEeS2WoXr83SnEA" actual="_ArQGhFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDlFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGh1oHEeS2WoXr83SnEA" elementType="_ArQGi1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDlVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDlloHEeS2WoXr83SnEA" actual="_ArQGi1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDl1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGPFoHEeS2WoXr83SnEA" elementType="_ArQGO1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDmFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDmVoHEeS2WoXr83SnEA" actual="_ArQGO1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDmloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGQ1oHEeS2WoXr83SnEA" elementType="_ArQGR1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDm1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDnFoHEeS2WoXr83SnEA" actual="_ArQGR1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDnVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGUFoHEeS2WoXr83SnEA" elementType="_ArQGT1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDnloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDn1oHEeS2WoXr83SnEA" actual="_ArQGT1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDoFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGaloHEeS2WoXr83SnEA" elementType="_ArQGaVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDoVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDoloHEeS2WoXr83SnEA" actual="_ArQGaVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDo1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGa1oHEeS2WoXr83SnEA" elementType="_ArQGbloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDpFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDpVoHEeS2WoXr83SnEA" actual="_ArQGbloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDploHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGcFoHEeS2WoXr83SnEA" elementType="_ArQGc1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDp1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDqFoHEeS2WoXr83SnEA" actual="_ArQGc1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDqVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDqloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDq1oHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDrFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGGFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDrVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDrloHEeS2WoXr83SnEA" actual="_ArQGGFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDr1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGv1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDsFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDsVoHEeS2WoXr83SnEA" actual="_ArQGv1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDsloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGuVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDs1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDtFoHEeS2WoXr83SnEA" actual="_ArQGuVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDtVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGwloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDtloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDt1oHEeS2WoXr83SnEA" actual="_ArQGwloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDuFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQF5FoHEeS2WoXr83SnEA _ArQGQloHEeS2WoXr83SnEA _ArQHjVoHEeS2WoXr83SnEA _ArQH4FoHEeS2WoXr83SnEA _ArQIMVoHEeS2WoXr83SnEA"
+        elementType="_ArQGyVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDuVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDuloHEeS2WoXr83SnEA" actual="_ArQGyVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDu1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHCFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDvFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDvVoHEeS2WoXr83SnEA" actual="_ArQHCFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDvloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHQVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDv1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDwFoHEeS2WoXr83SnEA" actual="_ArQHQVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDwVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHbFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDwloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDw1oHEeS2WoXr83SnEA" actual="_ArQHbFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDxFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHt1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDxVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDxloHEeS2WoXr83SnEA" actual="_ArQHt1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDx1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHvVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDyFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDyVoHEeS2WoXr83SnEA" actual="_ArQHvVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDyloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHkVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDy1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDzFoHEeS2WoXr83SnEA" actual="_ArQHkVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDzVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHpFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDzloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDz1oHEeS2WoXr83SnEA" actual="_ArQHpFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD0FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHqVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD0VoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD0loHEeS2WoXr83SnEA" actual="_ArQHqVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD01oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHeloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD1FoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD1VoHEeS2WoXr83SnEA" actual="_ArQHeloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD1loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIC1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD11oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD2FoHEeS2WoXr83SnEA" actual="_ArQIC1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD2VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIEVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD2loHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD21oHEeS2WoXr83SnEA" actual="_ArQIEVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD3FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQH5VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD3VoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD3loHEeS2WoXr83SnEA" actual="_ArQH5VoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD31oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQH-FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD4FoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD4VoHEeS2WoXr83SnEA" actual="_ArQH-FoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD4loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQH_VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD41oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD5FoHEeS2WoXr83SnEA" actual="_ArQH_VoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD5VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHz1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD5loHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD51oHEeS2WoXr83SnEA" actual="_ArQHz1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD6FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIT1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD6VoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD6loHEeS2WoXr83SnEA" actual="_ArQIT1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD61oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIVVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD7FoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD7VoHEeS2WoXr83SnEA" actual="_ArQIVVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD7loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQINloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD71oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD8FoHEeS2WoXr83SnEA" actual="_ArQINloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD8VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIQFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD8loHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD81oHEeS2WoXr83SnEA" actual="_ArQIQFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD9FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIRVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD9VoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD9loHEeS2WoXr83SnEA" actual="_ArQIRVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD91oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQIPFoHEeS2WoXr83SnEA" elementType="_ArQII1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD-FoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD-VoHEeS2WoXr83SnEA" actual="_ArQII1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD-loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQIb1oHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD-1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD_FoHEeS2WoXr83SnEA" actual="_ArQIaVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQD_VoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQF1VoHEeS2WoXr83SnEA" instanceType="_ArQF1FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQD_loHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQD_1oHEeS2WoXr83SnEA" actual="_ArQF1FoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEAFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQF9FoHEeS2WoXr83SnEA" instanceType="_ArQF81oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEAVoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEAloHEeS2WoXr83SnEA" actual="_ArQF81oHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEA1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQF-VoHEeS2WoXr83SnEA" instanceType="_ArQF-FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEBFoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEBVoHEeS2WoXr83SnEA" actual="_ArQF-FoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEBloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQGb1oHEeS2WoXr83SnEA" instanceType="_ArQGbloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEB1oHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQECFoHEeS2WoXr83SnEA" actual="_ArQGbloHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQECVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQGdFoHEeS2WoXr83SnEA" instanceType="_ArQGc1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQECloHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEC1oHEeS2WoXr83SnEA" actual="_ArQGc1oHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEDFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQG2FoHEeS2WoXr83SnEA" instanceType="_ArQG11oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEDVoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEDloHEeS2WoXr83SnEA" actual="_ArQG11oHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQED1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQG41oHEeS2WoXr83SnEA" instanceType="_ArQG4loHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEEFoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEEVoHEeS2WoXr83SnEA" actual="_ArQG4loHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEEloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQG61oHEeS2WoXr83SnEA" instanceType="_ArQG6loHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEE1oHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEFFoHEeS2WoXr83SnEA" actual="_ArQG6loHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEFVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQHI1oHEeS2WoXr83SnEA" instanceType="_ArQHIloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEFloHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEF1oHEeS2WoXr83SnEA" actual="_ArQHIloHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEGFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQHKVoHEeS2WoXr83SnEA" instanceType="_ArQHKFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEGVoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEGloHEeS2WoXr83SnEA" actual="_ArQHKFoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEG1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQHLloHEeS2WoXr83SnEA" instanceType="_ArQHLVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEHFoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEHVoHEeS2WoXr83SnEA" actual="_ArQHLVoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEHloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" instanceType="_ArQHEFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEH1oHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEIFoHEeS2WoXr83SnEA" actual="_ArQHEFoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEIVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQG81oHEeS2WoXr83SnEA _ArQHMFoHEeS2WoXr83SnEA" instanceType="_ArQHQVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEIloHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEI1oHEeS2WoXr83SnEA" actual="_ArQHQVoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEJFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" instanceType="_ArQHVloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEJVoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEJloHEeS2WoXr83SnEA" actual="_ArQHVloHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEJ1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQHpVoHEeS2WoXr83SnEA" instanceType="_ArQHpFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEKFoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEKVoHEeS2WoXr83SnEA" actual="_ArQHpFoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEKloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQHqloHEeS2WoXr83SnEA" instanceType="_ArQHqVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEK1oHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQELFoHEeS2WoXr83SnEA" actual="_ArQHqVoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQELVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQH-VoHEeS2WoXr83SnEA" instanceType="_ArQH-FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQELloHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEL1oHEeS2WoXr83SnEA" actual="_ArQH-FoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEMFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQH_loHEeS2WoXr83SnEA" instanceType="_ArQH_VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEMVoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEMloHEeS2WoXr83SnEA" actual="_ArQH_VoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEM1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQIQVoHEeS2WoXr83SnEA" instanceType="_ArQIQFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQENFoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQENVoHEeS2WoXr83SnEA" actual="_ArQIQFoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQENloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQIRloHEeS2WoXr83SnEA" instanceType="_ArQIRVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEN1oHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEOFoHEeS2WoXr83SnEA" actual="_ArQIRVoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEOVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQDdloHEeS2WoXr83SnEA" elementType="_ArQFGVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEOloHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEO1oHEeS2WoXr83SnEA" actual="_ArQFGVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEPFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQDeVoHEeS2WoXr83SnEA" elementType="_ArQFbVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEPVoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEPloHEeS2WoXr83SnEA" actual="_ArQFbVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEP1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQDjloHEeS2WoXr83SnEA" elementType="_ArQF2VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEQFoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEQVoHEeS2WoXr83SnEA" actual="_ArQF2VoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEQloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQDqVoHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEQ1oHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQERFoHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQERVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQDr1oHEeS2WoXr83SnEA" elementType="_ArQGv1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQERloHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQER1oHEeS2WoXr83SnEA" actual="_ArQGv1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQESFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQDxFoHEeS2WoXr83SnEA" elementType="_ArQHt1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQESVoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQESloHEeS2WoXr83SnEA" actual="_ArQHt1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQES1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQDx1oHEeS2WoXr83SnEA" elementType="_ArQHvVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQETFoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQETVoHEeS2WoXr83SnEA" actual="_ArQHvVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQETloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQDyloHEeS2WoXr83SnEA" elementType="_ArQHkVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQET1oHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEUFoHEeS2WoXr83SnEA" actual="_ArQHkVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEUVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQDzVoHEeS2WoXr83SnEA" elementType="_ArQHpFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEUloHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEU1oHEeS2WoXr83SnEA" actual="_ArQHpFoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEVFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQD0FoHEeS2WoXr83SnEA" elementType="_ArQHqVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEVVoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEVloHEeS2WoXr83SnEA" actual="_ArQHqVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEV1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQD01oHEeS2WoXr83SnEA" typedElement="_ArQHh1oHEeS2WoXr83SnEA _ArQHnloHEeS2WoXr83SnEA" elementType="_ArQHeloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEWFoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEWVoHEeS2WoXr83SnEA" actual="_ArQHeloHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEWloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQD1loHEeS2WoXr83SnEA" elementType="_ArQIC1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEW1oHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEXFoHEeS2WoXr83SnEA" actual="_ArQIC1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEXVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQD2VoHEeS2WoXr83SnEA" elementType="_ArQIEVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEXloHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEX1oHEeS2WoXr83SnEA" actual="_ArQIEVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEYFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQD3FoHEeS2WoXr83SnEA" elementType="_ArQH5VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEYVoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEYloHEeS2WoXr83SnEA" actual="_ArQH5VoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEY1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQD31oHEeS2WoXr83SnEA" elementType="_ArQH-FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEZFoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEZVoHEeS2WoXr83SnEA" actual="_ArQH-FoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEZloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQD4loHEeS2WoXr83SnEA" elementType="_ArQH_VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEZ1oHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEaFoHEeS2WoXr83SnEA" actual="_ArQH_VoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEaVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQD5VoHEeS2WoXr83SnEA" typedElement="_ArQH2loHEeS2WoXr83SnEA _ArQH8loHEeS2WoXr83SnEA" elementType="_ArQHz1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEaloHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEa1oHEeS2WoXr83SnEA" actual="_ArQHz1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEbFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQD91oHEeS2WoXr83SnEA" elementType="_ArQII1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEbVoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEbloHEeS2WoXr83SnEA" actual="_ArQII1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEb1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+        superClass="_ArQD-loHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEcFoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEcVoHEeS2WoXr83SnEA" actual="_ArQIaVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEcloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+        superClass="_ArQEQloHEeS2WoXr83SnEA _ArQEzFoHEeS2WoXr83SnEA" typedElement="_ArQGK1oHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEc1oHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEdFoHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEdVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+        superClass="_ArQERVoHEeS2WoXr83SnEA _ArQEz1oHEeS2WoXr83SnEA" typedElement="_ArQGu1oHEeS2WoXr83SnEA" elementType="_ArQGv1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEdloHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEd1oHEeS2WoXr83SnEA" actual="_ArQGv1oHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEeFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+        superClass="_ArQETloHEeS2WoXr83SnEA _ArQE21oHEeS2WoXr83SnEA" typedElement="_ArQHjloHEeS2WoXr83SnEA" elementType="_ArQHkVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEeVoHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEeloHEeS2WoXr83SnEA" actual="_ArQHkVoHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEe1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+        superClass="_ArQEUVoHEeS2WoXr83SnEA _ArQE3loHEeS2WoXr83SnEA" typedElement="_ArQHoVoHEeS2WoXr83SnEA" elementType="_ArQHpFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEfFoHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEfVoHEeS2WoXr83SnEA" actual="_ArQHpFoHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEfloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+        superClass="_ArQEVFoHEeS2WoXr83SnEA _ArQE4VoHEeS2WoXr83SnEA" typedElement="_ArQHploHEeS2WoXr83SnEA" elementType="_ArQHqVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEf1oHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEgFoHEeS2WoXr83SnEA" actual="_ArQHqVoHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEgVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+        superClass="_ArQEaVoHEeS2WoXr83SnEA _ArQE51oHEeS2WoXr83SnEA" typedElement="_ArQIA1oHEeS2WoXr83SnEA" elementType="_ArQHz1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEgloHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEg1oHEeS2WoXr83SnEA" actual="_ArQHz1oHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEhFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+        superClass="_ArQEbFoHEeS2WoXr83SnEA _ArQE81oHEeS2WoXr83SnEA" typedElement="_ArQIYFoHEeS2WoXr83SnEA" elementType="_ArQII1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEhVoHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEhloHEeS2WoXr83SnEA" actual="_ArQII1oHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEh1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+        superClass="_ArQEb1oHEeS2WoXr83SnEA _ArQE9loHEeS2WoXr83SnEA" typedElement="_ArQIdloHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEiFoHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEiVoHEeS2WoXr83SnEA" actual="_ArQIaVoHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEiloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+        superClass="_ArQEOVoHEeS2WoXr83SnEA" elementType="_ArQFGVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEi1oHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEjFoHEeS2WoXr83SnEA" actual="_ArQFGVoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEjVoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+        superClass="_ArQEPFoHEeS2WoXr83SnEA" typedElement="_ArQFhFoHEeS2WoXr83SnEA _ArQFxFoHEeS2WoXr83SnEA _ArQFxloHEeS2WoXr83SnEA _ArQFyVoHEeS2WoXr83SnEA"
+        elementType="_ArQFbVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEjloHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEj1oHEeS2WoXr83SnEA" actual="_ArQFbVoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEkFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+        superClass="_ArQEP1oHEeS2WoXr83SnEA" typedElement="_ArQGE1oHEeS2WoXr83SnEA" elementType="_ArQF2VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEkVoHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEkloHEeS2WoXr83SnEA" actual="_ArQF2VoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEk1oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+        superClass="_ArQEQloHEeS2WoXr83SnEA" typedElement="_ArQGLVoHEeS2WoXr83SnEA _ArQGtVoHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQElFoHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQElVoHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQElloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+        superClass="_ArQESFoHEeS2WoXr83SnEA" typedElement="_ArQHs1oHEeS2WoXr83SnEA" elementType="_ArQHt1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEl1oHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEmFoHEeS2WoXr83SnEA" actual="_ArQHt1oHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEmVoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+        superClass="_ArQES1oHEeS2WoXr83SnEA" typedElement="_ArQHuloHEeS2WoXr83SnEA" elementType="_ArQHvVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEmloHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEm1oHEeS2WoXr83SnEA" actual="_ArQHvVoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEnFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+        superClass="_ArQEWloHEeS2WoXr83SnEA" typedElement="_ArQIB1oHEeS2WoXr83SnEA" elementType="_ArQIC1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEnVoHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEnloHEeS2WoXr83SnEA" actual="_ArQIC1oHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEn1oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+        superClass="_ArQEXVoHEeS2WoXr83SnEA" typedElement="_ArQIDloHEeS2WoXr83SnEA" elementType="_ArQIEVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEoFoHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEoVoHEeS2WoXr83SnEA" actual="_ArQIEVoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEoloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+        superClass="_ArQEYFoHEeS2WoXr83SnEA" typedElement="_ArQH4VoHEeS2WoXr83SnEA" elementType="_ArQH5VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEo1oHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEpFoHEeS2WoXr83SnEA" actual="_ArQH5VoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEpVoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+        superClass="_ArQEY1oHEeS2WoXr83SnEA" typedElement="_ArQH9VoHEeS2WoXr83SnEA" elementType="_ArQH-FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEploHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEp1oHEeS2WoXr83SnEA" actual="_ArQH-FoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEqFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+        superClass="_ArQEZloHEeS2WoXr83SnEA" typedElement="_ArQH-loHEeS2WoXr83SnEA" elementType="_ArQH_VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEqVoHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEqloHEeS2WoXr83SnEA" actual="_ArQH_VoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEq1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+        superClass="_ArQExloHEeS2WoXr83SnEA" typedElement="_ArQGZVoHEeS2WoXr83SnEA" elementType="_ArQDUloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQErFoHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQErVoHEeS2WoXr83SnEA" actual="_ArQDUloHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQErloHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+        superClass="_ArQEyVoHEeS2WoXr83SnEA" typedElement="_ArQF-loHEeS2WoXr83SnEA" elementType="_ArQF2VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEr1oHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEsFoHEeS2WoXr83SnEA" actual="_ArQF2VoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEsVoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+        superClass="_ArQEzFoHEeS2WoXr83SnEA" typedElement="_ArQGL1oHEeS2WoXr83SnEA _ArQGWloHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEsloHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEs1oHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEtFoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+        superClass="_ArQE1VoHEeS2WoXr83SnEA" typedElement="_ArQHDloHEeS2WoXr83SnEA" elementType="_ArQHCFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEtVoHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEtloHEeS2WoXr83SnEA" actual="_ArQHCFoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEt1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+        superClass="_ArQE2FoHEeS2WoXr83SnEA" typedElement="_ArQFAloHEeS2WoXr83SnEA _ArQGvVoHEeS2WoXr83SnEA _ArQG0VoHEeS2WoXr83SnEA _ArQHCloHEeS2WoXr83SnEA _ArQHGFoHEeS2WoXr83SnEA _ArQHHloHEeS2WoXr83SnEA _ArQHXVoHEeS2WoXr83SnEA"
+        elementType="_ArQHQVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEuFoHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEuVoHEeS2WoXr83SnEA" actual="_ArQHQVoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEuloHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+        superClass="_ArQE6loHEeS2WoXr83SnEA" typedElement="_ArQIMloHEeS2WoXr83SnEA" elementType="_ArQINloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEu1oHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEvFoHEeS2WoXr83SnEA" actual="_ArQINloHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEvVoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+        superClass="_ArQE7VoHEeS2WoXr83SnEA" typedElement="_ArQIPVoHEeS2WoXr83SnEA" elementType="_ArQIQFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEvloHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEv1oHEeS2WoXr83SnEA" actual="_ArQIQFoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEwFoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+        superClass="_ArQE8FoHEeS2WoXr83SnEA" typedElement="_ArQIQloHEeS2WoXr83SnEA" elementType="_ArQIRVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEwVoHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEwloHEeS2WoXr83SnEA" actual="_ArQIRVoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEw1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+        superClass="_ArQE9loHEeS2WoXr83SnEA" typedElement="_ArQIbVoHEeS2WoXr83SnEA _ArQIcFoHEeS2WoXr83SnEA _ArQIc1oHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQExFoHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQExVoHEeS2WoXr83SnEA" actual="_ArQIaVoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQExloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQDfFoHEeS2WoXr83SnEA" elementType="_ArQDUloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEx1oHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEyFoHEeS2WoXr83SnEA" actual="_ArQDUloHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEyVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQDjloHEeS2WoXr83SnEA" elementType="_ArQF2VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEyloHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEy1oHEeS2WoXr83SnEA" actual="_ArQF2VoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEzFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQDqVoHEeS2WoXr83SnEA" typedElement="_ArQGXFoHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQEzVoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQEzloHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEz1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQDr1oHEeS2WoXr83SnEA" elementType="_ArQGv1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE0FoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE0VoHEeS2WoXr83SnEA" actual="_ArQGv1oHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE0loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQDuFoHEeS2WoXr83SnEA" typedElement="_ArQHfVoHEeS2WoXr83SnEA _ArQIJloHEeS2WoXr83SnEA _ArQIbFoHEeS2WoXr83SnEA _ArQIcloHEeS2WoXr83SnEA"
+        elementType="_ArQGyVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE01oHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE1FoHEeS2WoXr83SnEA" actual="_ArQGyVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE1VoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQDu1oHEeS2WoXr83SnEA" elementType="_ArQHCFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE1loHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE11oHEeS2WoXr83SnEA" actual="_ArQHCFoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE2FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQDvloHEeS2WoXr83SnEA" elementType="_ArQHQVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE2VoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE2loHEeS2WoXr83SnEA" actual="_ArQHQVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE21oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQDyloHEeS2WoXr83SnEA" elementType="_ArQHkVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE3FoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE3VoHEeS2WoXr83SnEA" actual="_ArQHkVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE3loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQDzVoHEeS2WoXr83SnEA" elementType="_ArQHpFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE31oHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE4FoHEeS2WoXr83SnEA" actual="_ArQHpFoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE4VoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQD0FoHEeS2WoXr83SnEA" elementType="_ArQHqVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE4loHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE41oHEeS2WoXr83SnEA" actual="_ArQHqVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE5FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQD01oHEeS2WoXr83SnEA" elementType="_ArQHeloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE5VoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE5loHEeS2WoXr83SnEA" actual="_ArQHeloHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE51oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQD5VoHEeS2WoXr83SnEA" elementType="_ArQHz1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE6FoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE6VoHEeS2WoXr83SnEA" actual="_ArQHz1oHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE6loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQD7loHEeS2WoXr83SnEA" elementType="_ArQINloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE61oHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE7FoHEeS2WoXr83SnEA" actual="_ArQINloHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE7VoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQD8VoHEeS2WoXr83SnEA" elementType="_ArQIQFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE7loHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE71oHEeS2WoXr83SnEA" actual="_ArQIQFoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE8FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQD9FoHEeS2WoXr83SnEA" elementType="_ArQIRVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE8VoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE8loHEeS2WoXr83SnEA" actual="_ArQIRVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE81oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQD91oHEeS2WoXr83SnEA" elementType="_ArQII1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE9FoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE9VoHEeS2WoXr83SnEA" actual="_ArQII1oHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE9loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+        superClass="_ArQD-loHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQE91oHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQE-FoHEeS2WoXr83SnEA" actual="_ArQIaVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="_ArQE-VoHEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+    <ownedComment xmi:id="_ArQE-loHEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.&#xA;This sub clause contains all standard types defined within OCL, including all the operations defined on those types.&#xA;For each operation the signature and a description of the semantics is given.&#xA;Within the description, the reserved word &#x2018;result&#x2019; is used to refer to the value that results from evaluating the operation.&#xA;In several places, post conditions are used to describe properties of the result.&#xA;When there is more than one postcondition, all postconditions must be true.&#xA;A similar thing is true for multiple preconditions.&#xA;If these are used, the operation is only defined if all preconditions evaluate to oclText[true].&#xA;&#xA;heading:1[Introduction]&#xA;&#xA;The structure, syntax, and semantics of the OCL is defined in Clauses 8 (&#x201c;Abstract Syntax&#x201d;), 9 (&#x201c;Concrete Syntax&#x201d;),&#xA;and 10 (&#x201c;Semantics Described using UML&#x201d;).&#xA;This sub clause adds another part to the OCL definition: a library of predefined types and operations.&#xA;Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,&#xA;where the language definition and the standard libraries are both mandatory parts of the complete language definition.&#xA;&#xA;The OCL standard library defines a number of types.&#xA;It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.&#xA;These are familiar from many other languages. The second part of the standard library consists of the collection types.&#xA;They are Bag, Set, Sequence, and Collection where Collection is an abstract type.&#xA;Note that all types defined in the OCL standard library are instances of an abstract syntax class.&#xA;The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.&#xA;&#xA;Next to definitions of types the OCL standard library defines a number of template expressions.&#xA;Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.&#xA;For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.&#xA;&#xA;The Standard Library may be extended with new types, new operations and new iterators.&#xA;In particular new operations can be defined for collections.&#xA;&#xA;Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted&#xA;in an appropriate fashion.&#xA;A locale is defined as a concatenation of up to three character sequences separated by underscores,&#xA;with the first sequence identifying the language and the second sequence identifying the country.&#xA;The third sequence is empty but may encode an implementation-specific variant.&#xA;Trailing empty strings and separators may be omitted.&#xA;&#xA;The character sequences for languages are defined by ISO 639.&#xA;&#xA;The character sequences for countries are defined by ISO 3166.&#xA;&#xA;&#x2018;fr_CA&#x2019; therefore identifies the locale for the French language in the Canada country.&#xA;&#xA;Comparison of strings and consequently the collation order of Collection::sortedBy()&#xA;conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.&#xA;&#xA;The locale is &#x2018;en_us&#x2019; by default but may be configured by a property constraint on OclAny::oclLocale.&#xA;&#xA;The prevailing locale is defined by the prevailing value of oclLocale within the current environment;&#xA;it may therefore be changed temporarily by using a Let expression.&#xA;let oclLocale : String = &#x2018;fr_CA&#x2019; in aString.toUpperCase()&#xA;&#xA;heading:1[Iterators]&#xA;&#xA;This sub clause defines the standard OCL iterator expressions.&#xA;In the abstract syntax these are all instances of IteratorExp.&#xA;These iterator expressions always have a collection expression as their source,&#xA;as is defined in the well-formedness rules in Clause 8 (&#x201c;Abstract Syntax&#x201d;).&#xA;The defined iterator expressions are shown per source collection type.&#xA;The semantics of each iterator expression is defined through a mapping from the iterator to the &#x2018;iterate&#x2019; construct.&#xA;This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.&#xA;&#xA;In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,&#xA;and the righthand side of the equals sign is the equivalent as an IterateExp.&#xA;The names source, body, and iterator refer to the role names in the abstract syntax:&#xA;&#xA;source&#x9;The source expression of the IteratorExp.&#xA;&#xA;body&#x9;The body expression of the IteratorExp.&#xA;&#xA;iterator&#x9;The iterator variable of the IteratorExp.&#xA;&#xA;result&#x9;The result variable of the IterateExp.&#xA;&#xA;heading:2[Extending the Standard Library with Iterator Expressions]&#xA;&#xA;It is possible to add new iterator expressions in the standard library.&#xA;If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,&#xA;in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_ArQE-1oHEeS2WoXr83SnEA" name="Boolean" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_ArQE_FoHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQE_VoHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_ArQE_loHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQE_1oHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFAFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_ArQFAVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFAloHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+        <ownedComment xmi:id="_ArQFA1oHEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFBFoHEeS2WoXr83SnEA" name="and" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isInvalidating="true" isValidating="true" precedence="_ArQIgFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFBVoHEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[true]."/>
+        <bodyExpression xmi:id="_ArQFBloHEeS2WoXr83SnEA" type="_ArQE-1oHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = false then false
+		        else self
+		        endif endif
+		      else if self = false then false
+		      else if b.oclIsInvalid() then b
+		      else if b = false then false
+		      else if self = null then null
+		      else if b = null then null
+		      else true
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_ArQFB1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFCFoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isInvalidating="true" isValidating="true" precedence="_ArQIg1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFCVoHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="_ArQFCloHEeS2WoXr83SnEA" type="_ArQE-1oHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = true then true
+		        else self
+		        endif endif
+		      else if self = false then true
+		      else if b.oclIsInvalid() then b
+		      else if b = true then true
+		      else if self = null then null
+		      else if b = null then b
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_ArQFC1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFDFoHEeS2WoXr83SnEA" name="not" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+          precedence="_ArQIe1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFDVoHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].&#xA;oclText[false] if oclText[self] is oclText[true].&#xA;oclText[null] if oclText[self] is oclText[null].&#xA;Otherwise oclText[invalid]."/>
+        <bodyExpression xmi:id="_ArQFDloHEeS2WoXr83SnEA" type="_ArQE-1oHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if self = null then null
+		      else self = false
+		      endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFD1oHEeS2WoXr83SnEA" name="or" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+          isInvalidating="true" isValidating="true" precedence="_ArQIgVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFEFoHEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="_ArQFEVoHEeS2WoXr83SnEA" type="_ArQE-1oHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+			    else if b = true then true
+		        else self
+		        endif endif
+		      else if self = true then true
+			  else if b.oclIsInvalid() then b
+			  else if b = true then true
+			  else if self = null then null
+			  else if b = null then null
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_ArQFEloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFE1oHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_ArQFFFoHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFFVoHEeS2WoXr83SnEA" name="xor" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+          precedence="_ArQIgloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFFloHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].&#xA;oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null]."/>
+        <bodyExpression xmi:id="_ArQFF1oHEeS2WoXr83SnEA" type="_ArQE-1oHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if b.oclIsInvalid() then b
+		      else if self = null then null
+		      else if b = null then null
+		      else self &lt;> b
+		      endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_ArQFGFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQE_FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQE_1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFBFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_ArQFBloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFB1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFCFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_ArQFCloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFC1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFDFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_ArQFDloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFD1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_ArQFEVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFEloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFFVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_ArQFF1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFGFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFSloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFTVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFUFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFU1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFVloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFWVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFcVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFdFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFd1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFeVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFe1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFfloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFjFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFj1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFmFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFpVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFtFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFzFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQF2loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQF3FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGI1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGJloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGNFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGN1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGSFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGS1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGXVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGY1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGjloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGkloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGlloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGmloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGnloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGqVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGy1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGzloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG2VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG3FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG3loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG5FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG5loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG7FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG-VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG_FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG_1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHAloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHEloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHFVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHGloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHG1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHHFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHHVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHJFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHJVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHKloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHL1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHMVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHMloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHOVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHO1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHPVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHTVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHT1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHU1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHWFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHWloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHX1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHYFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHYVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHYloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHY1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHZFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHZVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHZloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHfloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHgFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQH0FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQH0loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQIJ1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQIKVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQCy1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQCzFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQCz1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQC1loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQC11oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQC2loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQDAloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQDA1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQDBloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQDCloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQDC1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQDH1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQDI1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_ArQFGVoHEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="_ArQDeFoHEeS2WoXr83SnEA _ArQEO1oHEeS2WoXr83SnEA _ArQEjFoHEeS2WoXr83SnEA"
+        superClass="_ArQFO1oHEeS2WoXr83SnEA" typedElement="_ArQFGloHEeS2WoXr83SnEA _ArQFHVoHEeS2WoXr83SnEA _ArQFIFoHEeS2WoXr83SnEA _ArQFIloHEeS2WoXr83SnEA _ArQFKFoHEeS2WoXr83SnEA _ArQFKloHEeS2WoXr83SnEA _ArQFLVoHEeS2WoXr83SnEA _ArQFL1oHEeS2WoXr83SnEA _ArQFMFoHEeS2WoXr83SnEA _ArQFM1oHEeS2WoXr83SnEA _ArQFNloHEeS2WoXr83SnEA _ArQFOFoHEeS2WoXr83SnEA _ArQFXloHEeS2WoXr83SnEA _ArQFYVoHEeS2WoXr83SnEA _ArQFaVoHEeS2WoXr83SnEA _ArQFg1oHEeS2WoXr83SnEA _ArQFhloHEeS2WoXr83SnEA _ArQFkloHEeS2WoXr83SnEA _ArQFlVoHEeS2WoXr83SnEA _ArQFo1oHEeS2WoXr83SnEA _ArQFsloHEeS2WoXr83SnEA _ArQFs1oHEeS2WoXr83SnEA _ArQFtloHEeS2WoXr83SnEA _ArQGH1oHEeS2WoXr83SnEA _ArQGIVoHEeS2WoXr83SnEA _ArQGMVoHEeS2WoXr83SnEA _ArQGdVoHEeS2WoXr83SnEA _ArQHBVoHEeS2WoXr83SnEA _ArQHb1oHEeS2WoXr83SnEA _ArQHcloHEeS2WoXr83SnEA _ArQHl1oHEeS2WoXr83SnEA _ArQHrVoHEeS2WoXr83SnEA _ArQHrloHEeS2WoXr83SnEA _ArQH61oHEeS2WoXr83SnEA _ArQIAVoHEeS2WoXr83SnEA _ArQIAloHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_ArQFGloHEeS2WoXr83SnEA" name="*" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="_ArQIfFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFG1oHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+        <ownedParameter xmi:id="_ArQFHFoHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFHVoHEeS2WoXr83SnEA" name="+" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="_ArQIfVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFHloHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+        <ownedParameter xmi:id="_ArQFH1oHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFIFoHEeS2WoXr83SnEA" name="-" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="_ArQIe1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFIVoHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFIloHEeS2WoXr83SnEA" name="-" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="_ArQIfVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFI1oHEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+        <ownedParameter xmi:id="_ArQFJFoHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFJVoHEeS2WoXr83SnEA" name="/" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="_ArQIfFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFJloHEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.&#xA;Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="_ArQFJ1oHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFKFoHEeS2WoXr83SnEA" name="abs" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="_ArQFKVoHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFKloHEeS2WoXr83SnEA" name="compareTo" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="_ArQFK1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_ArQFLFoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFLVoHEeS2WoXr83SnEA" name="div" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+        <ownedComment xmi:id="_ArQFLloHEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+        <ownedParameter xmi:id="_ArQFL1oHEeS2WoXr83SnEA" name="i" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFMFoHEeS2WoXr83SnEA" name="max" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="_ArQFMVoHEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+        <ownedParameter xmi:id="_ArQFMloHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFM1oHEeS2WoXr83SnEA" name="min" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="_ArQFNFoHEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+        <ownedParameter xmi:id="_ArQFNVoHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFNloHEeS2WoXr83SnEA" name="mod" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+        <ownedComment xmi:id="_ArQFN1oHEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+        <ownedParameter xmi:id="_ArQFOFoHEeS2WoXr83SnEA" name="i" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFOVoHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_ArQFOloHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_ArQFO1oHEeS2WoXr83SnEA" name="Real" superClass="_ArQG91oHEeS2WoXr83SnEA _ArQHRFoHEeS2WoXr83SnEA"
+        typedElement="_ArQFJVoHEeS2WoXr83SnEA _ArQFPFoHEeS2WoXr83SnEA _ArQFP1oHEeS2WoXr83SnEA _ArQFQloHEeS2WoXr83SnEA _ArQFRFoHEeS2WoXr83SnEA _ArQFR1oHEeS2WoXr83SnEA _ArQFXFoHEeS2WoXr83SnEA _ArQFY1oHEeS2WoXr83SnEA _ArQFZloHEeS2WoXr83SnEA _ArQFvFoHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_ArQFPFoHEeS2WoXr83SnEA" name="*" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="_ArQIfFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFPVoHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+        <ownedParameter xmi:id="_ArQFPloHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFP1oHEeS2WoXr83SnEA" name="+" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="_ArQIfVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFQFoHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+        <ownedParameter xmi:id="_ArQFQVoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFQloHEeS2WoXr83SnEA" name="-" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="_ArQIe1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFQ1oHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFRFoHEeS2WoXr83SnEA" name="-" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="_ArQIfVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFRVoHEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+        <ownedParameter xmi:id="_ArQFRloHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFR1oHEeS2WoXr83SnEA" name="/" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="_ArQIfFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFSFoHEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="_ArQFSVoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFSloHEeS2WoXr83SnEA" name="&lt;" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFS1oHEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+        <ownedParameter xmi:id="_ArQFTFoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFTVoHEeS2WoXr83SnEA" name="&lt;=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFTloHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+        <ownedParameter xmi:id="_ArQFT1oHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFUFoHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFUVoHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_ArQFUloHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFU1oHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFVFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_ArQFVVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFVloHEeS2WoXr83SnEA" name=">" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFV1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+        <ownedParameter xmi:id="_ArQFWFoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFWVoHEeS2WoXr83SnEA" name=">=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFWloHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+        <ownedParameter xmi:id="_ArQFW1oHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFXFoHEeS2WoXr83SnEA" name="abs" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="_ArQFXVoHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFXloHEeS2WoXr83SnEA" name="compareTo" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="_ArQFX1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_ArQFYFoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFYVoHEeS2WoXr83SnEA" name="floor" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+        <ownedComment xmi:id="_ArQFYloHEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFY1oHEeS2WoXr83SnEA" name="max" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="_ArQFZFoHEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+        <ownedParameter xmi:id="_ArQFZVoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFZloHEeS2WoXr83SnEA" name="min" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="_ArQFZ1oHEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+        <ownedParameter xmi:id="_ArQFaFoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFaVoHEeS2WoXr83SnEA" name="round" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+        <ownedComment xmi:id="_ArQFaloHEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFa1oHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_ArQFbFoHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_ArQFbVoHEeS2WoXr83SnEA" name="String" templateParameterSubstitution="_ArQDe1oHEeS2WoXr83SnEA _ArQEPloHEeS2WoXr83SnEA _ArQEj1oHEeS2WoXr83SnEA"
+        superClass="_ArQG91oHEeS2WoXr83SnEA _ArQHRFoHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_ArQFbloHEeS2WoXr83SnEA" name="+" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+          precedence="_ArQIfVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFb1oHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="_ArQFcFoHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFcVoHEeS2WoXr83SnEA" name="&lt;" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFcloHEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_ArQFc1oHEeS2WoXr83SnEA" name="s" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFdFoHEeS2WoXr83SnEA" name="&lt;=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFdVoHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_ArQFdloHEeS2WoXr83SnEA" name="s" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFd1oHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQFeFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFeVoHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQFeloHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFe1oHEeS2WoXr83SnEA" name=">" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFfFoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_ArQFfVoHEeS2WoXr83SnEA" name="s" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFfloHEeS2WoXr83SnEA" name=">=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQFf1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_ArQFgFoHEeS2WoXr83SnEA" name="s" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFgVoHEeS2WoXr83SnEA" name="at" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQFgloHEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+        <ownedParameter xmi:id="_ArQFg1oHEeS2WoXr83SnEA" name="i" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFhFoHEeS2WoXr83SnEA" name="characters" type="_ArQEjVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+        <ownedComment xmi:id="_ArQFhVoHEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFhloHEeS2WoXr83SnEA" name="compareTo" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+        <ownedComment xmi:id="_ArQFh1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_ArQFiFoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFiVoHEeS2WoXr83SnEA" name="concat" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+        <ownedComment xmi:id="_ArQFiloHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="_ArQFi1oHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFjFoHEeS2WoXr83SnEA" name="endsWith" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+        <ownedComment xmi:id="_ArQFjVoHEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.&#xA;Every string ends with the empty string."/>
+        <ownedParameter xmi:id="_ArQFjloHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFj1oHEeS2WoXr83SnEA" name="equalsIgnoreCase" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+        <ownedComment xmi:id="_ArQFkFoHEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+        <ownedParameter xmi:id="_ArQFkVoHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFkloHEeS2WoXr83SnEA" name="indexOf" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+        <ownedComment xmi:id="_ArQFk1oHEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="_ArQFlFoHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFlVoHEeS2WoXr83SnEA" name="lastIndexOf" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+        <ownedComment xmi:id="_ArQFlloHEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="_ArQFl1oHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFmFoHEeS2WoXr83SnEA" name="matches" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+        <ownedComment xmi:id="_ArQFmVoHEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+        <ownedParameter xmi:id="_ArQFmloHEeS2WoXr83SnEA" name="regex" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFm1oHEeS2WoXr83SnEA" name="replaceAll" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQFnFoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+        <ownedParameter xmi:id="_ArQFnVoHEeS2WoXr83SnEA" name="regex" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_ArQFnloHEeS2WoXr83SnEA" name="replacement" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFn1oHEeS2WoXr83SnEA" name="replaceFirst" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQFoFoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+        <ownedParameter xmi:id="_ArQFoVoHEeS2WoXr83SnEA" name="regex" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_ArQFoloHEeS2WoXr83SnEA" name="replacement" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFo1oHEeS2WoXr83SnEA" name="size" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+        <ownedComment xmi:id="_ArQFpFoHEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFpVoHEeS2WoXr83SnEA" name="startsWith" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+        <ownedComment xmi:id="_ArQFploHEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.&#xA;Every string starts with the empty string."/>
+        <ownedParameter xmi:id="_ArQFp1oHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFqFoHEeS2WoXr83SnEA" name="substituteAll" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+        <ownedComment xmi:id="_ArQFqVoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+        <ownedParameter xmi:id="_ArQFqloHEeS2WoXr83SnEA" name="oldSubstring" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_ArQFq1oHEeS2WoXr83SnEA" name="newSubstring" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFrFoHEeS2WoXr83SnEA" name="substituteFirst" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+        <ownedComment xmi:id="_ArQFrVoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.&#xA;Returns invalid if there is no first occurrence."/>
+        <ownedParameter xmi:id="_ArQFrloHEeS2WoXr83SnEA" name="oldSubstring" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_ArQFr1oHEeS2WoXr83SnEA" name="newSubstring" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFsFoHEeS2WoXr83SnEA" name="substring" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQFsVoHEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+        <ownedParameter xmi:id="_ArQFsloHEeS2WoXr83SnEA" name="lower" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_ArQFs1oHEeS2WoXr83SnEA" name="upper" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFtFoHEeS2WoXr83SnEA" name="toBoolean" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQFtVoHEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFtloHEeS2WoXr83SnEA" name="toInteger" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQFt1oHEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFuFoHEeS2WoXr83SnEA" name="toLower" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="_ArQFuVoHEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFuloHEeS2WoXr83SnEA" name="toLowerCase" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="_ArQFu1oHEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFvFoHEeS2WoXr83SnEA" name="toReal" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQFvVoHEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFvloHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_ArQFv1oHEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFwFoHEeS2WoXr83SnEA" name="toUpper" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="_ArQFwVoHEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFwloHEeS2WoXr83SnEA" name="toUpperCase" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="_ArQFw1oHEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFxFoHEeS2WoXr83SnEA" name="tokenize" type="_ArQEjVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_ArQFxVoHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.&#xA;The delimiters are omitted from the return."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFxloHEeS2WoXr83SnEA" name="tokenize" type="_ArQEjVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_ArQFx1oHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+        <ownedParameter xmi:id="_ArQFyFoHEeS2WoXr83SnEA" name="delimiters" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFyVoHEeS2WoXr83SnEA" name="tokenize" type="_ArQEjVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_ArQFyloHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is&#xA;true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+        <ownedParameter xmi:id="_ArQFy1oHEeS2WoXr83SnEA" name="delimiters" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_ArQFzFoHEeS2WoXr83SnEA" name="returnDelimiters" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQFzVoHEeS2WoXr83SnEA" name="trim" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+        <ownedComment xmi:id="_ArQFzloHEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFE1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFOVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFa1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFbloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFcFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFgVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFiVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFi1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFjloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFkVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFlFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFl1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFmloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFm1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFnVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFnloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFn1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFoVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFoloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFp1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFqFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFqloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFq1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFrFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFrloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFr1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFsFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFuFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFuloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFvloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFwFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFwloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFyFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFy1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFzVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQG8loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG9VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHM1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHZ1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_ArQIiloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCqloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="mitosi.xml#_ArQCrFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCsVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCsloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCuloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCwVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCxFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC21oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="mitosi.xml#_ArQC3FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC3loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC4FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC5VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC5loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC51oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC71oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC9loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC-VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="javaMM.xml#_ArQInloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="javaMM.xml#_ArQIpFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_ArQFz1oHEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="_ArQFGVoHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_ArQF0FoHEeS2WoXr83SnEA" name="oclAsType" type="_ArQF1FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+        <ownedComment xmi:id="_ArQF0VoHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to&#xA;Real or Integer, but the e[unlimited] value may not.&#xA;Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+        <ownedTemplateSignature xmi:id="_ArQF0loHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQF01oHEeS2WoXr83SnEA" parameteredElement="_ArQF1FoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQF1FoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQF01oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQD_1oHEeS2WoXr83SnEA" typedElement="_ArQF0FoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQF1VoHEeS2WoXr83SnEA" name="type" type="_ArQD_VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQF1loHEeS2WoXr83SnEA" name="Bag" superClass="_ArQDjloHEeS2WoXr83SnEA" typedElement="_ArQF31oHEeS2WoXr83SnEA _ArQF4loHEeS2WoXr83SnEA _ArQF6loHEeS2WoXr83SnEA _ArQF7VoHEeS2WoXr83SnEA _ArQGC1oHEeS2WoXr83SnEA _ArQGD1oHEeS2WoXr83SnEA"
+        elementType="_ArQF2VoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_ArQF11oHEeS2WoXr83SnEA" templateBinding="_ArQDVloHEeS2WoXr83SnEA _ArQDWVoHEeS2WoXr83SnEA _ArQDXFoHEeS2WoXr83SnEA _ArQDX1oHEeS2WoXr83SnEA _ArQDYloHEeS2WoXr83SnEA _ArQDZVoHEeS2WoXr83SnEA _ArQDaFoHEeS2WoXr83SnEA _ArQDa1oHEeS2WoXr83SnEA _ArQDbloHEeS2WoXr83SnEA _ArQDcVoHEeS2WoXr83SnEA _ArQDdFoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQF2FoHEeS2WoXr83SnEA" parameteredElement="_ArQF2VoHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_ArQDV1oHEeS2WoXr83SnEA _ArQDWloHEeS2WoXr83SnEA _ArQDXVoHEeS2WoXr83SnEA _ArQDYFoHEeS2WoXr83SnEA _ArQDY1oHEeS2WoXr83SnEA _ArQDZloHEeS2WoXr83SnEA _ArQDaVoHEeS2WoXr83SnEA _ArQDbFoHEeS2WoXr83SnEA _ArQDb1oHEeS2WoXr83SnEA _ArQDcloHEeS2WoXr83SnEA _ArQDdVoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQF2VoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQF2FoHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_ArQDkFoHEeS2WoXr83SnEA _ArQEQVoHEeS2WoXr83SnEA _ArQEkloHEeS2WoXr83SnEA _ArQEsFoHEeS2WoXr83SnEA _ArQEy1oHEeS2WoXr83SnEA"
+              typedElement="_ArQF7FoHEeS2WoXr83SnEA _ArQF_VoHEeS2WoXr83SnEA _ArQGBFoHEeS2WoXr83SnEA _ArQGCloHEeS2WoXr83SnEA _ArQGDloHEeS2WoXr83SnEA _ArQGEloHEeS2WoXr83SnEA _ArQGFloHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_ArQF2loHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQF21oHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQF3FoHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQF3VoHEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+        <ownedParameter xmi:id="_ArQF3loHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQF31oHEeS2WoXr83SnEA" name="excluding" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_ArQF4FoHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+        <ownedParameter xmi:id="_ArQF4VoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQF4loHEeS2WoXr83SnEA" name="excludingAll" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_ArQF41oHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_ArQF5FoHEeS2WoXr83SnEA" name="objects" type="_ArQDuFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQF5VoHEeS2WoXr83SnEA" name="flatten" type="_ArQDW1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_ArQF5loHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].&#xA;If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_ArQF51oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQF6FoHEeS2WoXr83SnEA" parameteredElement="_ArQF6VoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQF6VoHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQF6FoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDXVoHEeS2WoXr83SnEA _ArQDh1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQF6loHEeS2WoXr83SnEA" name="including" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_ArQF61oHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_ArQF7FoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQF7VoHEeS2WoXr83SnEA" name="includingAll" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_ArQF7loHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_ArQF71oHEeS2WoXr83SnEA" name="objects" type="_ArQDjloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQF8FoHEeS2WoXr83SnEA" name="selectByKind" type="_ArQDXloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_ArQF8VoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQF8loHEeS2WoXr83SnEA" parameteredElement="_ArQF81oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQF81oHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQF8loHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDYFoHEeS2WoXr83SnEA _ArQDiloHEeS2WoXr83SnEA _ArQEAloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQF9FoHEeS2WoXr83SnEA" name="type" type="_ArQEAFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQF9VoHEeS2WoXr83SnEA" name="selectByType" type="_ArQDYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_ArQF9loHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQF91oHEeS2WoXr83SnEA" parameteredElement="_ArQF-FoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQF-FoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQF91oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDY1oHEeS2WoXr83SnEA _ArQDjVoHEeS2WoXr83SnEA _ArQEBVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQF-VoHEeS2WoXr83SnEA" name="type" type="_ArQEA1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQF-loHEeS2WoXr83SnEA" name="closure" type="_ArQErloHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_ArQF-1oHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_ArQF_FoHEeS2WoXr83SnEA" name="lambda" type="_ArQDPFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQF_VoHEeS2WoXr83SnEA" name="i" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQF_loHEeS2WoXr83SnEA" name="collectNested" type="_ArQDVVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_ArQF_1oHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="_ArQGAFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGAVoHEeS2WoXr83SnEA" parameteredElement="_ArQGAloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGAloHEeS2WoXr83SnEA" name="V" templateParameter="_ArQGAVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDV1oHEeS2WoXr83SnEA _ArQDgVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQGA1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDOVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGBFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGBVoHEeS2WoXr83SnEA" name="collect" type="_ArQDWFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_ArQGBloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGB1oHEeS2WoXr83SnEA" parameteredElement="_ArQGCFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGCFoHEeS2WoXr83SnEA" name="V" templateParameter="_ArQGB1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDWloHEeS2WoXr83SnEA _ArQDhFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQGCVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDOloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGCloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGC1oHEeS2WoXr83SnEA" name="reject" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_ArQGDFoHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].&#xA;&#xA;oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+        <ownedParameter xmi:id="_ArQGDVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDOFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGDloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGD1oHEeS2WoXr83SnEA" name="select" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_ArQGEFoHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].&#xA;&#xA;oclCode[self->select(iterator | body) =&#xA;self->iterate(iterator; result : Bag(T) = Bag{} |&#xA;if body then result->including(iterator)&#xA;else result&#xA;endif)]"/>
+        <ownedParameter xmi:id="_ArQGEVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDOFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGEloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGE1oHEeS2WoXr83SnEA" name="sortedBy" type="_ArQEkFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_ArQGFFoHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_ArQGFVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDO1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGFloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQGF1oHEeS2WoXr83SnEA" name="Class" superClass="_ArQGyVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQGGFoHEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="_ArQDaVoHEeS2WoXr83SnEA _ArQDrloHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGPVoHEeS2WoXr83SnEA _ArQGQFoHEeS2WoXr83SnEA _ArQGUVoHEeS2WoXr83SnEA _ArQGVFoHEeS2WoXr83SnEA _ArQGVloHEeS2WoXr83SnEA _ArQGWVoHEeS2WoXr83SnEA _ArQGe1oHEeS2WoXr83SnEA _ArQGrVoHEeS2WoXr83SnEA _ArQGsVoHEeS2WoXr83SnEA"
+        elementType="_ArQGG1oHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_ArQGGVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGGloHEeS2WoXr83SnEA" parameteredElement="_ArQGG1oHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGG1oHEeS2WoXr83SnEA" name="T" templateParameter="_ArQGGloHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_ArQDZloHEeS2WoXr83SnEA _ArQDq1oHEeS2WoXr83SnEA _ArQERFoHEeS2WoXr83SnEA _ArQEdFoHEeS2WoXr83SnEA _ArQElVoHEeS2WoXr83SnEA _ArQEs1oHEeS2WoXr83SnEA _ArQEzloHEeS2WoXr83SnEA"
+              typedElement="_ArQDU1oHEeS2WoXr83SnEA _ArQGHVoHEeS2WoXr83SnEA _ArQGU1oHEeS2WoXr83SnEA _ArQGX1oHEeS2WoXr83SnEA _ArQGYVoHEeS2WoXr83SnEA _ArQGd1oHEeS2WoXr83SnEA _ArQGfFoHEeS2WoXr83SnEA _ArQGf1oHEeS2WoXr83SnEA _ArQGhloHEeS2WoXr83SnEA _ArQGjVoHEeS2WoXr83SnEA _ArQGkFoHEeS2WoXr83SnEA _ArQGkVoHEeS2WoXr83SnEA _ArQGlVoHEeS2WoXr83SnEA _ArQGmFoHEeS2WoXr83SnEA _ArQGmVoHEeS2WoXr83SnEA _ArQGnVoHEeS2WoXr83SnEA _ArQGoVoHEeS2WoXr83SnEA _ArQGqFoHEeS2WoXr83SnEA _ArQGrFoHEeS2WoXr83SnEA _ArQGsFoHEeS2WoXr83SnEA _ArQGtFoHEeS2WoXr83SnEA _ArQGuFoHEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="_ArQGHFoHEeS2WoXr83SnEA" name="Collection" type="_ArQDZ1oHEeS2WoXr83SnEA" implicit="true" opposite="_ArQGHVoHEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+          <templateParameterSubstitution href="#_ArQDeFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDe1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDfloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDgVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDhFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDh1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDiloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDjVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDkFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDk1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDlloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDmVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDnFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDn1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDoloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDpVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDqFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDq1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDrloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDsVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDtFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDt1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDuloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDvVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDwFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDw1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDxloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDyVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDzFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQDz1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD0loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD1VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD2FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD21oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD3loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD4VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD5FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD51oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD6loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD7VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD8FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD81oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD9loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD-VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQD_FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_ArQIkVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="mitosi.xml#_ArQDLFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="javaMM.xml#_ArQIrFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="javaMM.xml#_ArQIr1oHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="#_ArQDd1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDeloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDfVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDgFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDg1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDhloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDiVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDjFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDj1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDkloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDlVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDmFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDm1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDnloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDoVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDpFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDp1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDqloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDrVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDsFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDs1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDtloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDuVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDvFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDv1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDwloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDxVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDyFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDy1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQDzloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD0VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD1FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD11oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD2loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD3VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD4FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD41oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD5loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD6VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD7FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD71oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD8loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD9VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD-FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQD-1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_ArQIkFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="mitosi.xml#_ArQDK1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="javaMM.xml#_ArQIq1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="javaMM.xml#_ArQIrloHEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="_ArQGHVoHEeS2WoXr83SnEA" isStatic="true" name="elementType" type="_ArQGG1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+          opposite="_ArQGHFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQGHloHEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_ArQGH1oHEeS2WoXr83SnEA" isStatic="true" name="lower" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+        <ownedComment xmi:id="_ArQGIFoHEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_ArQGIVoHEeS2WoXr83SnEA" isStatic="true" name="upper" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+        <ownedComment xmi:id="_ArQGIloHEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="_ArQGI1oHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQGJFoHEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+        <ownedParameter xmi:id="_ArQGJVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGJloHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQGJ1oHEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,&#xA;in the case of an ordered collection type."/>
+        <ownedParameter xmi:id="_ArQGKFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGKVoHEeS2WoXr83SnEA" name="asBag" type="_ArQDZFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+        <ownedComment xmi:id="_ArQGKloHEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGK1oHEeS2WoXr83SnEA" name="asOrderedSet" type="_ArQEcloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+        <ownedComment xmi:id="_ArQGLFoHEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,&#xA;in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGLVoHEeS2WoXr83SnEA" name="asSequence" type="_ArQEk1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+        <ownedComment xmi:id="_ArQGLloHEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGL1oHEeS2WoXr83SnEA" name="asSet" type="_ArQEsVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+        <ownedComment xmi:id="_ArQGMFoHEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGMVoHEeS2WoXr83SnEA" name="count" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+        <ownedComment xmi:id="_ArQGMloHEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+        <ownedParameter xmi:id="_ArQGM1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGNFoHEeS2WoXr83SnEA" name="excludes" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+        <ownedComment xmi:id="_ArQGNVoHEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_ArQGNloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGN1oHEeS2WoXr83SnEA" name="excludesAll" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+        <ownedComment xmi:id="_ArQGOFoHEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="_ArQGOVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGOloHEeS2WoXr83SnEA" parameteredElement="_ArQGO1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGO1oHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQGOloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDmVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQGPFoHEeS2WoXr83SnEA" name="c2" type="_ArQDl1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGPVoHEeS2WoXr83SnEA" name="excluding" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_ArQGPloHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+        <ownedParameter xmi:id="_ArQGP1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGQFoHEeS2WoXr83SnEA" name="excludingAll" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_ArQGQVoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_ArQGQloHEeS2WoXr83SnEA" name="objects" type="_ArQDuFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGQ1oHEeS2WoXr83SnEA" name="flatten" type="_ArQDmloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_ArQGRFoHEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].&#xA;If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_ArQGRVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGRloHEeS2WoXr83SnEA" parameteredElement="_ArQGR1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGR1oHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQGRloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDnFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGSFoHEeS2WoXr83SnEA" name="includes" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+        <ownedComment xmi:id="_ArQGSVoHEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_ArQGSloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGS1oHEeS2WoXr83SnEA" name="includesAll" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+        <ownedComment xmi:id="_ArQGTFoHEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="_ArQGTVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGTloHEeS2WoXr83SnEA" parameteredElement="_ArQGT1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGT1oHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQGTloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDn1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQGUFoHEeS2WoXr83SnEA" name="c2" type="_ArQDnVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGUVoHEeS2WoXr83SnEA" name="including" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_ArQGUloHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_ArQGU1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGVFoHEeS2WoXr83SnEA" name="includingAll" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_ArQGVVoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_ArQGVloHEeS2WoXr83SnEA" name="objects" type="_ArQGGFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGV1oHEeS2WoXr83SnEA" name="intersection" type="_ArQDZFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_ArQGWFoHEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+        <ownedParameter xmi:id="_ArQGWVoHEeS2WoXr83SnEA" name="c" type="_ArQGGFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGWloHEeS2WoXr83SnEA" name="intersection" type="_ArQEsVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_ArQGW1oHEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+        <ownedParameter xmi:id="_ArQGXFoHEeS2WoXr83SnEA" name="u" type="_ArQEzFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGXVoHEeS2WoXr83SnEA" name="isEmpty" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+        <ownedComment xmi:id="_ArQGXloHEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?&#xA;&#xA;Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGX1oHEeS2WoXr83SnEA" name="max" type="_ArQGG1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+        <ownedComment xmi:id="_ArQGYFoHEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the max operation.&#xA;The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGYVoHEeS2WoXr83SnEA" name="min" type="_ArQGG1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+        <ownedComment xmi:id="_ArQGYloHEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the min operation.&#xA;The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGY1oHEeS2WoXr83SnEA" name="notEmpty" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+        <ownedComment xmi:id="_ArQGZFoHEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?&#xA;&#xA;oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGZVoHEeS2WoXr83SnEA" name="product" type="_ArQEq1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+        <ownedComment xmi:id="_ArQGZloHEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+        <ownedTemplateSignature xmi:id="_ArQGZ1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGaFoHEeS2WoXr83SnEA" parameteredElement="_ArQGaVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGaVoHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQGaFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDoloHEeS2WoXr83SnEA" typedElement="_ArQDVFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQGaloHEeS2WoXr83SnEA" name="c2" type="_ArQDoFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGa1oHEeS2WoXr83SnEA" name="selectByKind" type="_ArQDo1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_ArQGbFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGbVoHEeS2WoXr83SnEA" parameteredElement="_ArQGbloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGbloHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQGbVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDpVoHEeS2WoXr83SnEA _ArQECFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQGb1oHEeS2WoXr83SnEA" name="type" type="_ArQEBloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGcFoHEeS2WoXr83SnEA" name="selectByType" type="_ArQDploHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_ArQGcVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGcloHEeS2WoXr83SnEA" parameteredElement="_ArQGc1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGc1oHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQGcloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDqFoHEeS2WoXr83SnEA _ArQEC1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQGdFoHEeS2WoXr83SnEA" name="type" type="_ArQECVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGdVoHEeS2WoXr83SnEA" name="size" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+        <ownedComment xmi:id="_ArQGdloHEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGd1oHEeS2WoXr83SnEA" name="sum" type="_ArQGG1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+        <ownedComment xmi:id="_ArQGeFoHEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].&#xA;Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.&#xA;The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).&#xA;UnlimitedNatural, Integer and Real fulfill this condition.&#xA;&#xA;If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,&#xA;which may result in unpredictable results during evaluation.&#xA;If an implementation is able to detect a lack of associativity or commutativity,&#xA;the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGeVoHEeS2WoXr83SnEA" name="union" type="_ArQDZFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="_ArQGeloHEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+        <ownedParameter xmi:id="_ArQGe1oHEeS2WoXr83SnEA" name="c" type="_ArQGGFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGfFoHEeS2WoXr83SnEA" name="any" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+        <ownedComment xmi:id="_ArQGfVoHEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].&#xA;If there is more than one element for which body is oclText[true], one of them is returned.&#xA;There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+        <ownedParameter xmi:id="_ArQGfloHEeS2WoXr83SnEA" name="lambda" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGf1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGgFoHEeS2WoXr83SnEA" name="collectNested" type="_ArQDkVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_ArQGgVoHEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+        <ownedTemplateSignature xmi:id="_ArQGgloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGg1oHEeS2WoXr83SnEA" parameteredElement="_ArQGhFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGhFoHEeS2WoXr83SnEA" name="V" templateParameter="_ArQGg1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDk1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQGhVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDPloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGhloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGh1oHEeS2WoXr83SnEA" name="collect" type="_ArQDlFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedComment xmi:id="_ArQGiFoHEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.&#xA;The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.&#xA;collectNested is defined individually for each subclass of CollectionType."/>
+        <ownedTemplateSignature xmi:id="_ArQGiVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGiloHEeS2WoXr83SnEA" parameteredElement="_ArQGi1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGi1oHEeS2WoXr83SnEA" name="V" templateParameter="_ArQGiloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDlloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQGjFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDP1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGjVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGjloHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedParameter xmi:id="_ArQGj1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGkFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGkVoHEeS2WoXr83SnEA" name="j" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGkloHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedComment xmi:id="_ArQGk1oHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+        <ownedParameter xmi:id="_ArQGlFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGlVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGlloHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedParameter xmi:id="_ArQGl1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGmFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGmVoHEeS2WoXr83SnEA" name="j" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGmloHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedComment xmi:id="_ArQGm1oHEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="_ArQGnFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGnVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGnloHEeS2WoXr83SnEA" name="isUnique" type="_ArQE-1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+        <ownedComment xmi:id="_ArQGn1oHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="_ArQGoFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDQVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGoVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGoloHEeS2WoXr83SnEA" name="iterate" isRequired="false" type="_ArQGpVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+        <ownedTemplateSignature xmi:id="_ArQGo1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGpFoHEeS2WoXr83SnEA" parameteredElement="_ArQGpVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGpVoHEeS2WoXr83SnEA" name="Tacc" templateParameter="_ArQGpFoHEeS2WoXr83SnEA"
+                typedElement="_ArQGoloHEeS2WoXr83SnEA _ArQGp1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQGploHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDQFoHEeS2WoXr83SnEA"/>
+        <ownedAccumulator xmi:id="_ArQGp1oHEeS2WoXr83SnEA" name="acc" isRequired="false" type="_ArQGpVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGqFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGqVoHEeS2WoXr83SnEA" name="one" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+        <ownedComment xmi:id="_ArQGqloHEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_ArQGq1oHEeS2WoXr83SnEA" name="lambda" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGrFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGrVoHEeS2WoXr83SnEA" name="reject" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_ArQGrloHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_ArQGr1oHEeS2WoXr83SnEA" name="lambda" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGsFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGsVoHEeS2WoXr83SnEA" name="select" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_ArQGsloHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_ArQGs1oHEeS2WoXr83SnEA" name="lambda" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGtFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGtVoHEeS2WoXr83SnEA" name="sortedBy" type="_ArQEk1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_ArQGtloHEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_ArQGt1oHEeS2WoXr83SnEA" name="lambda" type="_ArQDQVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQGuFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQGuVoHEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="_ArQDbFoHEeS2WoXr83SnEA _ArQDtFoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQGuloHEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+      <ownedAttribute xmi:id="_ArQGu1oHEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="_ArQEdVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+          opposite="_ArQGwVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQGvFoHEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="_ArQGvVoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+        <ownedComment xmi:id="_ArQGvloHEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQGv1oHEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="_ArQDsVoHEeS2WoXr83SnEA _ArQER1oHEeS2WoXr83SnEA _ArQEd1oHEeS2WoXr83SnEA _ArQE0VoHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQGwFoHEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+      <ownedAttribute xmi:id="_ArQGwVoHEeS2WoXr83SnEA" name="Enumeration" type="_ArQDaloHEeS2WoXr83SnEA" implicit="true" opposite="_ArQGu1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQGwloHEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="_ArQDb1oHEeS2WoXr83SnEA _ArQDt1oHEeS2WoXr83SnEA"
+        superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" instanceType="_ArQGxVoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_ArQGw1oHEeS2WoXr83SnEA" templateBinding="_ArQD_loHEeS2WoXr83SnEA _ArQEAVoHEeS2WoXr83SnEA _ArQEBFoHEeS2WoXr83SnEA _ArQEB1oHEeS2WoXr83SnEA _ArQECloHEeS2WoXr83SnEA _ArQEDVoHEeS2WoXr83SnEA _ArQEEFoHEeS2WoXr83SnEA _ArQEE1oHEeS2WoXr83SnEA _ArQEFloHEeS2WoXr83SnEA _ArQEGVoHEeS2WoXr83SnEA _ArQEHFoHEeS2WoXr83SnEA _ArQEH1oHEeS2WoXr83SnEA _ArQEIloHEeS2WoXr83SnEA _ArQEJVoHEeS2WoXr83SnEA _ArQEKFoHEeS2WoXr83SnEA _ArQEK1oHEeS2WoXr83SnEA _ArQELloHEeS2WoXr83SnEA _ArQEMVoHEeS2WoXr83SnEA _ArQENFoHEeS2WoXr83SnEA _ArQEN1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGxFoHEeS2WoXr83SnEA" parameteredElement="_ArQGxVoHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_ArQD_1oHEeS2WoXr83SnEA _ArQEAloHEeS2WoXr83SnEA _ArQEBVoHEeS2WoXr83SnEA _ArQECFoHEeS2WoXr83SnEA _ArQEC1oHEeS2WoXr83SnEA _ArQEDloHEeS2WoXr83SnEA _ArQEEVoHEeS2WoXr83SnEA _ArQEFFoHEeS2WoXr83SnEA _ArQEF1oHEeS2WoXr83SnEA _ArQEGloHEeS2WoXr83SnEA _ArQEHVoHEeS2WoXr83SnEA _ArQEIFoHEeS2WoXr83SnEA _ArQEI1oHEeS2WoXr83SnEA _ArQEJloHEeS2WoXr83SnEA _ArQEKVoHEeS2WoXr83SnEA _ArQELFoHEeS2WoXr83SnEA _ArQEL1oHEeS2WoXr83SnEA _ArQEMloHEeS2WoXr83SnEA _ArQENVoHEeS2WoXr83SnEA _ArQEOFoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGxVoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQGxFoHEeS2WoXr83SnEA"
+              typedElement="_ArQGx1oHEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="_ArQGxloHEeS2WoXr83SnEA" name="Metaclass" type="_ArQDbVoHEeS2WoXr83SnEA" implicit="true" opposite="_ArQGx1oHEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="_ArQGx1oHEeS2WoXr83SnEA" name="instanceType" type="_ArQGxVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+          opposite="_ArQGxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQGyFoHEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+      </ownedAttribute>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="_ArQGyVoHEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="_ArQDuloHEeS2WoXr83SnEA _ArQE1FoHEeS2WoXr83SnEA"
+        typedElement="_ArQF4VoHEeS2WoXr83SnEA _ArQGM1oHEeS2WoXr83SnEA _ArQGNloHEeS2WoXr83SnEA _ArQGP1oHEeS2WoXr83SnEA _ArQGSloHEeS2WoXr83SnEA _ArQHP1oHEeS2WoXr83SnEA _ArQHdFoHEeS2WoXr83SnEA _ArQHiloHEeS2WoXr83SnEA _ArQH3VoHEeS2WoXr83SnEA _ArQILloHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQGyloHEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.&#xA;Conceptually, OclAny behaves as a supertype for all the types.&#xA;Features of OclAny are available on each object in all OCL expressions.&#xA;OclAny is itself an instance of the metatype AnyType.&#xA;&#xA;All classes in a UML model inherit all operations defined on OclAny.&#xA;To avoid name conflicts between properties in the model and the properties inherited from OclAny,&#xA;all names on the properties of OclAny start with &#x2018;ocl.&#x2019;&#xA;Although theoretically there may still be name conflicts, they can be avoided.&#xA;One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.&#xA;&#xA;Operations of OclAny, where the instance of OclAny is called object."/>
+      <ownedOperation xmi:id="_ArQGy1oHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQGzFoHEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+        <ownedParameter xmi:id="_ArQGzVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQGzloHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQGz1oHEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+        <ownedParameter xmi:id="_ArQG0FoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG0VoHEeS2WoXr83SnEA" name="oclAsSet" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+        <ownedComment xmi:id="_ArQG0loHEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG01oHEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="_ArQG11oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedComment xmi:id="_ArQG1FoHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;In the case of feature redefinition, casting an object to a supertype of its actual type&#xA;does not access the supertype&#x2019;s definition of the feature;&#xA;according to the semantics of redefinition, the redefined feature simply does not exist for the object.&#xA;However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+        <ownedTemplateSignature xmi:id="_ArQG1VoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQG1loHEeS2WoXr83SnEA" parameteredElement="_ArQG11oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQG11oHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQG1loHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQEDloHEeS2WoXr83SnEA" typedElement="_ArQG01oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQG2FoHEeS2WoXr83SnEA" name="type" type="_ArQEDFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG2VoHEeS2WoXr83SnEA" name="oclIsInState" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+        <ownedComment xmi:id="_ArQG2loHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+        <ownedParameter xmi:id="_ArQG21oHEeS2WoXr83SnEA" name="statespec" type="_ArQHQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG3FoHEeS2WoXr83SnEA" name="oclIsInvalid" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true">
+        <ownedComment xmi:id="_ArQG3VoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG3loHEeS2WoXr83SnEA" name="oclIsKindOf" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedComment xmi:id="_ArQG31oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.&#xA;That is, oclText[self] is of type t or a subtype of t."/>
+        <ownedTemplateSignature xmi:id="_ArQG4FoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQG4VoHEeS2WoXr83SnEA" parameteredElement="_ArQG4loHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQG4loHEeS2WoXr83SnEA" name="T" templateParameter="_ArQG4VoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQEEVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQG41oHEeS2WoXr83SnEA" name="type" type="_ArQED1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG5FoHEeS2WoXr83SnEA" name="oclIsNew" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_ArQG5VoHEeS2WoXr83SnEA" body="Can only be used in a postcondition.&#xA;Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn&#x2019;t exist at precondition time)."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG5loHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedComment xmi:id="_ArQG51oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+        <ownedTemplateSignature xmi:id="_ArQG6FoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQG6VoHEeS2WoXr83SnEA" parameteredElement="_ArQG6loHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQG6loHEeS2WoXr83SnEA" name="T" templateParameter="_ArQG6VoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQEFFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQG61oHEeS2WoXr83SnEA" name="type" type="_ArQEEloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG7FoHEeS2WoXr83SnEA" name="oclIsUndefined" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true">
+        <ownedComment xmi:id="_ArQG7VoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG7loHEeS2WoXr83SnEA" name="oclLog" type="_ArQHQVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="_ArQG71oHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG8FoHEeS2WoXr83SnEA" name="oclLog" type="_ArQHQVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="_ArQG8VoHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+        <ownedParameter xmi:id="_ArQG8loHEeS2WoXr83SnEA" name="message" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG81oHEeS2WoXr83SnEA" name="oclType" type="_ArQEIVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+        <ownedComment xmi:id="_ArQG9FoHEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG9VoHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_ArQG9loHEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQG91oHEeS2WoXr83SnEA" name="OclComparable" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQG-FoHEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived&#xA;compareTo implementation may be sorted."/>
+      <ownedOperation xmi:id="_ArQG-VoHEeS2WoXr83SnEA" name="&lt;" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQG-loHEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+        <ownedParameter xmi:id="_ArQG-1oHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG_FoHEeS2WoXr83SnEA" name="&lt;=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQG_VoHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="_ArQG_loHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQG_1oHEeS2WoXr83SnEA" name=">" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQHAFoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+        <ownedParameter xmi:id="_ArQHAVoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHAloHEeS2WoXr83SnEA" name=">=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+          precedence="_ArQIfloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQHA1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="_ArQHBFoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHBVoHEeS2WoXr83SnEA" name="compareTo" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+        <ownedComment xmi:id="_ArQHBloHEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.&#xA;&#xA;The compareTo operation should be commutative."/>
+        <ownedParameter xmi:id="_ArQHB1oHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHCFoHEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="_ArQDvVoHEeS2WoXr83SnEA _ArQEtloHEeS2WoXr83SnEA _ArQE11oHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQHDFoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQHCVoHEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined&#xA;for OclElement are therefore applicable to all user-defined types."/>
+      <ownedOperation xmi:id="_ArQHCloHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+        <ownedComment xmi:id="_ArQHC1oHEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHDFoHEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="_ArQHCFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+        <ownedComment xmi:id="_ArQHDVoHEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHDloHEeS2WoXr83SnEA" name="oclContents" type="_ArQEtFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+        <ownedComment xmi:id="_ArQHD1oHEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="_ArQHEFoHEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="_ArQEIFoHEeS2WoXr83SnEA"
+        superClass="_ArQHVloHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQHEVoHEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.&#xA;It has one single instance, identified as  oclText[invalid].&#xA;Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().&#xA;OclInvalid is itself an instance of the metatype InvalidType."/>
+      <ownedOperation xmi:id="_ArQHEloHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQHE1oHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="_ArQHFFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHFVoHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQHFloHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="_ArQHF1oHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHGFoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+        <ownedComment xmi:id="_ArQHGVoHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHGloHEeS2WoXr83SnEA" name="and" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="_ArQIgFoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQHG1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHHFoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isValidating="true" precedence="_ArQIg1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQHHVoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHHloHEeS2WoXr83SnEA" name="oclAsSet" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+      <ownedOperation xmi:id="_ArQHH1oHEeS2WoXr83SnEA" name="oclAsType" type="_ArQHIloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedTemplateSignature xmi:id="_ArQHIFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHIVoHEeS2WoXr83SnEA" parameteredElement="_ArQHIloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHIloHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQHIVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQEF1oHEeS2WoXr83SnEA" typedElement="_ArQHH1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQHI1oHEeS2WoXr83SnEA" name="type" type="_ArQEFVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHJFoHEeS2WoXr83SnEA" name="oclIsInvalid" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_ArQHJVoHEeS2WoXr83SnEA" name="oclIsKindOf" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedTemplateSignature xmi:id="_ArQHJloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHJ1oHEeS2WoXr83SnEA" parameteredElement="_ArQHKFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHKFoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQHJ1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQEGloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQHKVoHEeS2WoXr83SnEA" name="type" type="_ArQEGFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHKloHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedTemplateSignature xmi:id="_ArQHK1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHLFoHEeS2WoXr83SnEA" parameteredElement="_ArQHLVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHLVoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQHLFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQEHVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQHLloHEeS2WoXr83SnEA" name="type" type="_ArQEG1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHL1oHEeS2WoXr83SnEA" name="oclIsUndefined" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_ArQHMFoHEeS2WoXr83SnEA" name="oclType" type="_ArQEIVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+      <ownedOperation xmi:id="_ArQHMVoHEeS2WoXr83SnEA" name="or" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="_ArQIgVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQHMloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHM1oHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_ArQHNFoHEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHNVoHEeS2WoXr83SnEA" name="OclLambda" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQHNloHEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda&#xA;therefore apply to all lambda expressions."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHN1oHEeS2WoXr83SnEA" name="OclMessage" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQHOFoHEeS2WoXr83SnEA" body="OclMessage&#xA;This sub clause contains the definition of the standard type OclMessage.&#xA;As defined in this sub clause, each ocl message type is actually a template type with one parameter.&#xA;&#x2018;T&#x2019; denotes the parameter.&#xA;A concrete ocl message type is created by substituting an operation or signal for the T.&#xA;&#xA;The predefined type OclMessage is an instance of MessageType.&#xA;Every OclMessage is fully determined by either the operation, or signal given as parameter.&#xA;Note that there is conceptually an undefined (infinite) number of these types,&#xA;as each is determined by a different operation or signal.&#xA;These types are unnamed. Every type has as attributes the name of the operation or signal,&#xA;and either all formal parameters of the operation, or all attributes of the signal.&#xA;OclMessage is itself an instance of the metatype MessageType.&#xA;&#xA;OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+      <ownedOperation xmi:id="_ArQHOVoHEeS2WoXr83SnEA" name="hasReturned" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_ArQHOloHEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.&#xA;This implies the fact that the message has been sent. False in all other cases."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHO1oHEeS2WoXr83SnEA" name="isOperationCall" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_ArQHPFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHPVoHEeS2WoXr83SnEA" name="isSignalSent" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_ArQHPloHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHP1oHEeS2WoXr83SnEA" name="result" type="_ArQGyVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_ArQHQFoHEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,&#xA;and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="_ArQHQVoHEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="_ArQDwFoHEeS2WoXr83SnEA _ArQEI1oHEeS2WoXr83SnEA _ArQEuVoHEeS2WoXr83SnEA _ArQE2loHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQE_loHEeS2WoXr83SnEA _ArQFAVoHEeS2WoXr83SnEA _ArQFHFoHEeS2WoXr83SnEA _ArQFH1oHEeS2WoXr83SnEA _ArQFJFoHEeS2WoXr83SnEA _ArQFJ1oHEeS2WoXr83SnEA _ArQFLFoHEeS2WoXr83SnEA _ArQFMloHEeS2WoXr83SnEA _ArQFNVoHEeS2WoXr83SnEA _ArQFPloHEeS2WoXr83SnEA _ArQFQVoHEeS2WoXr83SnEA _ArQFRloHEeS2WoXr83SnEA _ArQFSVoHEeS2WoXr83SnEA _ArQFTFoHEeS2WoXr83SnEA _ArQFT1oHEeS2WoXr83SnEA _ArQFUloHEeS2WoXr83SnEA _ArQFVVoHEeS2WoXr83SnEA _ArQFWFoHEeS2WoXr83SnEA _ArQFW1oHEeS2WoXr83SnEA _ArQFYFoHEeS2WoXr83SnEA _ArQFZVoHEeS2WoXr83SnEA _ArQFaFoHEeS2WoXr83SnEA _ArQFc1oHEeS2WoXr83SnEA _ArQFdloHEeS2WoXr83SnEA _ArQFeFoHEeS2WoXr83SnEA _ArQFeloHEeS2WoXr83SnEA _ArQFfVoHEeS2WoXr83SnEA _ArQFgFoHEeS2WoXr83SnEA _ArQFiFoHEeS2WoXr83SnEA _ArQF21oHEeS2WoXr83SnEA _ArQF3loHEeS2WoXr83SnEA _ArQGJVoHEeS2WoXr83SnEA _ArQGKFoHEeS2WoXr83SnEA _ArQGzVoHEeS2WoXr83SnEA _ArQG0FoHEeS2WoXr83SnEA _ArQG7loHEeS2WoXr83SnEA _ArQG8FoHEeS2WoXr83SnEA _ArQG-1oHEeS2WoXr83SnEA _ArQG_loHEeS2WoXr83SnEA _ArQHAVoHEeS2WoXr83SnEA _ArQHBFoHEeS2WoXr83SnEA _ArQHB1oHEeS2WoXr83SnEA _ArQHFFoHEeS2WoXr83SnEA _ArQHF1oHEeS2WoXr83SnEA _ArQHRloHEeS2WoXr83SnEA _ArQHSFoHEeS2WoXr83SnEA _ArQHSVoHEeS2WoXr83SnEA _ArQHTloHEeS2WoXr83SnEA _ArQHUFoHEeS2WoXr83SnEA _ArQHWVoHEeS2WoXr83SnEA _ArQHXFoHEeS2WoXr83SnEA _ArQHf1oHEeS2WoXr83SnEA _ArQHgVoHEeS2WoXr83SnEA _ArQH0VoHEeS2WoXr83SnEA _ArQH1FoHEeS2WoXr83SnEA _ArQIKFoHEeS2WoXr83SnEA _ArQIK1oHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQHQloHEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation&#xA;and Iteration signatures. Instances of OclSelf are never created."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHQ1oHEeS2WoXr83SnEA" name="OclState" superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQG21oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHRFoHEeS2WoXr83SnEA" name="OclSummable" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQHRVoHEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived&#xA;sum and zero implementations may be summed."/>
+      <ownedOperation xmi:id="_ArQHRloHEeS2WoXr83SnEA" name="sum" type="_ArQHQVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQHR1oHEeS2WoXr83SnEA" body="Return the sum of self and that.&#xA;&#xA;The sum operation should be associative."/>
+        <ownedParameter xmi:id="_ArQHSFoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHSVoHEeS2WoXr83SnEA" name="zero" type="_ArQHQVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQHSloHEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.&#xA;&#xA;zero().sum(self) = self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHS1oHEeS2WoXr83SnEA" name="OclTuple" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQHTFoHEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple&#xA;therefore apply to all tuples."/>
+      <ownedOperation xmi:id="_ArQHTVoHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQHTloHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHT1oHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQHUFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHUVoHEeS2WoXr83SnEA" name="OclType" superClass="_ArQHCFoHEeS2WoXr83SnEA" typedElement="_ArQHVVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQHUloHEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined&#xA;for OclType are therefore applicable to all UML types."/>
+      <ownedOperation xmi:id="_ArQHU1oHEeS2WoXr83SnEA" name="conformsTo" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+        <ownedComment xmi:id="_ArQHVFoHEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+        <ownedParameter xmi:id="_ArQHVVoHEeS2WoXr83SnEA" name="type2" type="_ArQHUVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="_ArQHVloHEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="_ArQEJloHEeS2WoXr83SnEA"
+        superClass="_ArQGyVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_ArQHV1oHEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.&#xA;It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.&#xA;Any property call applied on oclText[null] results in oclText[invalid], except for the&#xA;oclIsUndefined(), oclIsInvalid(), =(OclAny) and &lt;>(OclAny) operations.&#xA;However, by virtue of the implicit conversion to a collection literal,&#xA;an expression evaluating to oclText[null] can be used as source of collection operations (such as &#x2018;isEmpty&#x2019;).&#xA;If the source is the oclText[null] literal, it is implicitly converted to Bag{}.&#xA;&#xA;OclVoid is itself an instance of the metatype VoidType."/>
+      <ownedOperation xmi:id="_ArQHWFoHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQHWVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHWloHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQHW1oHEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]&#xA;if object is oclText[invalid], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_ArQHXFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHXVoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+        <ownedComment xmi:id="_ArQHXloHEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHX1oHEeS2WoXr83SnEA" name="and" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+          precedence="_ArQIgFoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQHYFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHYVoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+          precedence="_ArQIg1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQHYloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHY1oHEeS2WoXr83SnEA" name="oclIsInvalid" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_ArQHZFoHEeS2WoXr83SnEA" name="oclIsUndefined" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_ArQHZVoHEeS2WoXr83SnEA" name="or" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+          precedence="_ArQIgVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQHZloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHZ1oHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_ArQHaFoHEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQHaVoHEeS2WoXr83SnEA" name="OrderedCollection" superClass="_ArQDwVoHEeS2WoXr83SnEA"
+        elementType="_ArQHbFoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_ArQHaloHEeS2WoXr83SnEA" templateBinding="_ArQEOloHEeS2WoXr83SnEA _ArQEPVoHEeS2WoXr83SnEA _ArQEQFoHEeS2WoXr83SnEA _ArQEQ1oHEeS2WoXr83SnEA _ArQERloHEeS2WoXr83SnEA _ArQESVoHEeS2WoXr83SnEA _ArQETFoHEeS2WoXr83SnEA _ArQET1oHEeS2WoXr83SnEA _ArQEUloHEeS2WoXr83SnEA _ArQEVVoHEeS2WoXr83SnEA _ArQEWFoHEeS2WoXr83SnEA _ArQEW1oHEeS2WoXr83SnEA _ArQEXloHEeS2WoXr83SnEA _ArQEYVoHEeS2WoXr83SnEA _ArQEZFoHEeS2WoXr83SnEA _ArQEZ1oHEeS2WoXr83SnEA _ArQEaloHEeS2WoXr83SnEA _ArQEbVoHEeS2WoXr83SnEA _ArQEcFoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHa1oHEeS2WoXr83SnEA" parameteredElement="_ArQHbFoHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_ArQEO1oHEeS2WoXr83SnEA _ArQEPloHEeS2WoXr83SnEA _ArQEQVoHEeS2WoXr83SnEA _ArQERFoHEeS2WoXr83SnEA _ArQER1oHEeS2WoXr83SnEA _ArQESloHEeS2WoXr83SnEA _ArQETVoHEeS2WoXr83SnEA _ArQEUFoHEeS2WoXr83SnEA _ArQEU1oHEeS2WoXr83SnEA _ArQEVloHEeS2WoXr83SnEA _ArQEWVoHEeS2WoXr83SnEA _ArQEXFoHEeS2WoXr83SnEA _ArQEX1oHEeS2WoXr83SnEA _ArQEYloHEeS2WoXr83SnEA _ArQEZVoHEeS2WoXr83SnEA _ArQEaFoHEeS2WoXr83SnEA _ArQEa1oHEeS2WoXr83SnEA _ArQEbloHEeS2WoXr83SnEA _ArQEcVoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHbFoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQHa1oHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_ArQDw1oHEeS2WoXr83SnEA" typedElement="_ArQHbVoHEeS2WoXr83SnEA _ArQHcFoHEeS2WoXr83SnEA _ArQHdVoHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_ArQHbVoHEeS2WoXr83SnEA" name="at" isRequired="false" type="_ArQHbFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQHbloHEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+        <ownedParameter xmi:id="_ArQHb1oHEeS2WoXr83SnEA" name="index" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHcFoHEeS2WoXr83SnEA" name="first" isRequired="false" type="_ArQHbFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQHcVoHEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHcloHEeS2WoXr83SnEA" name="indexOf" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+        <ownedComment xmi:id="_ArQHc1oHEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+        <ownedParameter xmi:id="_ArQHdFoHEeS2WoXr83SnEA" name="obj" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHdVoHEeS2WoXr83SnEA" name="last" isRequired="false" type="_ArQHbFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQHdloHEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQHd1oHEeS2WoXr83SnEA" name="OrderedSet" superClass="_ArQEV1oHEeS2WoXr83SnEA _ArQE5FoHEeS2WoXr83SnEA"
+        typedElement="_ArQHe1oHEeS2WoXr83SnEA _ArQHgloHEeS2WoXr83SnEA _ArQHhVoHEeS2WoXr83SnEA _ArQHiFoHEeS2WoXr83SnEA _ArQHi1oHEeS2WoXr83SnEA _ArQHkloHEeS2WoXr83SnEA _ArQHlVoHEeS2WoXr83SnEA _ArQHmVoHEeS2WoXr83SnEA _ArQHnFoHEeS2WoXr83SnEA _ArQHn1oHEeS2WoXr83SnEA _ArQHq1oHEeS2WoXr83SnEA _ArQHr1oHEeS2WoXr83SnEA _ArQHwFoHEeS2WoXr83SnEA _ArQHxFoHEeS2WoXr83SnEA _ArQHyFoHEeS2WoXr83SnEA"
+        elementType="_ArQHeloHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_ArQHeFoHEeS2WoXr83SnEA" templateBinding="_ArQEc1oHEeS2WoXr83SnEA _ArQEdloHEeS2WoXr83SnEA _ArQEeVoHEeS2WoXr83SnEA _ArQEfFoHEeS2WoXr83SnEA _ArQEf1oHEeS2WoXr83SnEA _ArQEgloHEeS2WoXr83SnEA _ArQEhVoHEeS2WoXr83SnEA _ArQEiFoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHeVoHEeS2WoXr83SnEA" parameteredElement="_ArQHeloHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_ArQEdFoHEeS2WoXr83SnEA _ArQEd1oHEeS2WoXr83SnEA _ArQEeloHEeS2WoXr83SnEA _ArQEfVoHEeS2WoXr83SnEA _ArQEgFoHEeS2WoXr83SnEA _ArQEg1oHEeS2WoXr83SnEA _ArQEhloHEeS2WoXr83SnEA _ArQEiVoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHeloHEeS2WoXr83SnEA" name="T" templateParameter="_ArQHeVoHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_ArQD1VoHEeS2WoXr83SnEA _ArQEWVoHEeS2WoXr83SnEA _ArQE5loHEeS2WoXr83SnEA" typedElement="_ArQHhFoHEeS2WoXr83SnEA _ArQHlFoHEeS2WoXr83SnEA _ArQHmFoHEeS2WoXr83SnEA _ArQHm1oHEeS2WoXr83SnEA _ArQHsloHEeS2WoXr83SnEA _ArQHuVoHEeS2WoXr83SnEA _ArQHv1oHEeS2WoXr83SnEA _ArQHw1oHEeS2WoXr83SnEA _ArQHx1oHEeS2WoXr83SnEA _ArQHy1oHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_ArQHe1oHEeS2WoXr83SnEA" name="-" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_ArQIfVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQHfFoHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_ArQHfVoHEeS2WoXr83SnEA" name="s" type="_ArQE0loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHfloHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQHf1oHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHgFoHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQHgVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHgloHEeS2WoXr83SnEA" name="append" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="_ArQHg1oHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="_ArQHhFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHhVoHEeS2WoXr83SnEA" name="appendAll" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="_ArQHhloHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="_ArQHh1oHEeS2WoXr83SnEA" name="objects" type="_ArQEV1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHiFoHEeS2WoXr83SnEA" name="excluding" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_ArQHiVoHEeS2WoXr83SnEA" body="The ordered set  containing all elements of oclText[self] apart from object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="_ArQHiloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHi1oHEeS2WoXr83SnEA" name="excludingAll" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_ArQHjFoHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_ArQHjVoHEeS2WoXr83SnEA" name="objects" type="_ArQDuFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHjloHEeS2WoXr83SnEA" name="flatten" type="_ArQEeFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedTemplateSignature xmi:id="_ArQHj1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHkFoHEeS2WoXr83SnEA" parameteredElement="_ArQHkVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHkVoHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQHkFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDzFoHEeS2WoXr83SnEA _ArQEUFoHEeS2WoXr83SnEA _ArQEeloHEeS2WoXr83SnEA _ArQE3VoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHkloHEeS2WoXr83SnEA" name="including" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_ArQHk1oHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+        <ownedParameter xmi:id="_ArQHlFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHlVoHEeS2WoXr83SnEA" name="insertAt" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQHlloHEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+        <ownedParameter xmi:id="_ArQHl1oHEeS2WoXr83SnEA" name="index" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_ArQHmFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHmVoHEeS2WoXr83SnEA" name="prepend" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="_ArQHmloHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_ArQHm1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHnFoHEeS2WoXr83SnEA" name="prependAll" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="_ArQHnVoHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_ArQHnloHEeS2WoXr83SnEA" name="objects" type="_ArQEV1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHn1oHEeS2WoXr83SnEA" name="reverse" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="_ArQHoFoHEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHoVoHEeS2WoXr83SnEA" name="selectByKind" type="_ArQEe1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_ArQHoloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHo1oHEeS2WoXr83SnEA" parameteredElement="_ArQHpFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHpFoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQHo1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDz1oHEeS2WoXr83SnEA _ArQEKVoHEeS2WoXr83SnEA _ArQEU1oHEeS2WoXr83SnEA _ArQEfVoHEeS2WoXr83SnEA _ArQE4FoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQHpVoHEeS2WoXr83SnEA" name="type" type="_ArQEJ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHploHEeS2WoXr83SnEA" name="selectByType" type="_ArQEfloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_ArQHp1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHqFoHEeS2WoXr83SnEA" parameteredElement="_ArQHqVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHqVoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQHqFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQD0loHEeS2WoXr83SnEA _ArQELFoHEeS2WoXr83SnEA _ArQEVloHEeS2WoXr83SnEA _ArQEgFoHEeS2WoXr83SnEA _ArQE41oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQHqloHEeS2WoXr83SnEA" name="type" type="_ArQEKloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQHq1oHEeS2WoXr83SnEA" name="subOrderedSet" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQHrFoHEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="_ArQHrVoHEeS2WoXr83SnEA" name="lower" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_ArQHrloHEeS2WoXr83SnEA" name="upper" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHr1oHEeS2WoXr83SnEA" name="closure" type="_ArQHd1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_ArQHsFoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_ArQHsVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDRFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQHsloHEeS2WoXr83SnEA" name="i" type="_ArQHeloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHs1oHEeS2WoXr83SnEA" name="collectNested" type="_ArQElloHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_ArQHtFoHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="_ArQHtVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHtloHEeS2WoXr83SnEA" parameteredElement="_ArQHt1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHt1oHEeS2WoXr83SnEA" name="V" templateParameter="_ArQHtloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDxloHEeS2WoXr83SnEA _ArQESloHEeS2WoXr83SnEA _ArQEmFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQHuFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDRVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQHuVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHuloHEeS2WoXr83SnEA" name="collect" type="_ArQEmVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_ArQHu1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHvFoHEeS2WoXr83SnEA" parameteredElement="_ArQHvVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHvVoHEeS2WoXr83SnEA" name="V" templateParameter="_ArQHvFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDyVoHEeS2WoXr83SnEA _ArQETVoHEeS2WoXr83SnEA _ArQEm1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQHvloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDRloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQHv1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHwFoHEeS2WoXr83SnEA" name="reject" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_ArQHwVoHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_ArQHwloHEeS2WoXr83SnEA" name="lambda" type="_ArQDQloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQHw1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHxFoHEeS2WoXr83SnEA" name="select" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_ArQHxVoHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+        <ownedParameter xmi:id="_ArQHxloHEeS2WoXr83SnEA" name="lambda" type="_ArQDQloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQHx1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHyFoHEeS2WoXr83SnEA" name="sortedBy" type="_ArQHd1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_ArQHyVoHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_ArQHyloHEeS2WoXr83SnEA" name="lambda" type="_ArQDQ1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQHy1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQHzFoHEeS2WoXr83SnEA" name="Sequence" superClass="_ArQEaVoHEeS2WoXr83SnEA"
+        typedElement="_ArQH1VoHEeS2WoXr83SnEA _ArQH2FoHEeS2WoXr83SnEA _ArQH21oHEeS2WoXr83SnEA _ArQH3loHEeS2WoXr83SnEA _ArQH5loHEeS2WoXr83SnEA _ArQH6VoHEeS2WoXr83SnEA _ArQH7VoHEeS2WoXr83SnEA _ArQH8FoHEeS2WoXr83SnEA _ArQH81oHEeS2WoXr83SnEA _ArQH_1oHEeS2WoXr83SnEA _ArQIFFoHEeS2WoXr83SnEA _ArQIGFoHEeS2WoXr83SnEA _ArQIHFoHEeS2WoXr83SnEA"
+        elementType="_ArQHz1oHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_ArQHzVoHEeS2WoXr83SnEA" templateBinding="_ArQEi1oHEeS2WoXr83SnEA _ArQEjloHEeS2WoXr83SnEA _ArQEkVoHEeS2WoXr83SnEA _ArQElFoHEeS2WoXr83SnEA _ArQEl1oHEeS2WoXr83SnEA _ArQEmloHEeS2WoXr83SnEA _ArQEnVoHEeS2WoXr83SnEA _ArQEoFoHEeS2WoXr83SnEA _ArQEo1oHEeS2WoXr83SnEA _ArQEploHEeS2WoXr83SnEA _ArQEqVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHzloHEeS2WoXr83SnEA" parameteredElement="_ArQHz1oHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_ArQEjFoHEeS2WoXr83SnEA _ArQEj1oHEeS2WoXr83SnEA _ArQEkloHEeS2WoXr83SnEA _ArQElVoHEeS2WoXr83SnEA _ArQEmFoHEeS2WoXr83SnEA _ArQEm1oHEeS2WoXr83SnEA _ArQEnloHEeS2WoXr83SnEA _ArQEoVoHEeS2WoXr83SnEA _ArQEpFoHEeS2WoXr83SnEA _ArQEp1oHEeS2WoXr83SnEA _ArQEqloHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHz1oHEeS2WoXr83SnEA" name="T" templateParameter="_ArQHzloHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_ArQD51oHEeS2WoXr83SnEA _ArQEa1oHEeS2WoXr83SnEA _ArQEg1oHEeS2WoXr83SnEA _ArQE6VoHEeS2WoXr83SnEA"
+              typedElement="_ArQH11oHEeS2WoXr83SnEA _ArQH6FoHEeS2WoXr83SnEA _ArQH7FoHEeS2WoXr83SnEA _ArQH71oHEeS2WoXr83SnEA _ArQIBloHEeS2WoXr83SnEA _ArQIDVoHEeS2WoXr83SnEA _ArQIE1oHEeS2WoXr83SnEA _ArQIF1oHEeS2WoXr83SnEA _ArQIG1oHEeS2WoXr83SnEA _ArQIH1oHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_ArQH0FoHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQH0VoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH0loHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQH01oHEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+        <ownedParameter xmi:id="_ArQH1FoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH1VoHEeS2WoXr83SnEA" name="append" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="_ArQH1loHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="_ArQH11oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH2FoHEeS2WoXr83SnEA" name="appendAll" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="_ArQH2VoHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="_ArQH2loHEeS2WoXr83SnEA" name="objects" type="_ArQEaVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH21oHEeS2WoXr83SnEA" name="excluding" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_ArQH3FoHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="_ArQH3VoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH3loHEeS2WoXr83SnEA" name="excludingAll" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_ArQH31oHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_ArQH4FoHEeS2WoXr83SnEA" name="objects" type="_ArQDuFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH4VoHEeS2WoXr83SnEA" name="flatten" type="_ArQEoloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_ArQH4loHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].&#xA;If the element type is a collection type, the result is the sequence containing all the elements&#xA;of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+        <ownedTemplateSignature xmi:id="_ArQH41oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQH5FoHEeS2WoXr83SnEA" parameteredElement="_ArQH5VoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQH5VoHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQH5FoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQD3loHEeS2WoXr83SnEA _ArQEYloHEeS2WoXr83SnEA _ArQEpFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH5loHEeS2WoXr83SnEA" name="including" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_ArQH51oHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+        <ownedParameter xmi:id="_ArQH6FoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH6VoHEeS2WoXr83SnEA" name="insertAt" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQH6loHEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+        <ownedParameter xmi:id="_ArQH61oHEeS2WoXr83SnEA" name="index" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_ArQH7FoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH7VoHEeS2WoXr83SnEA" name="prepend" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="_ArQH7loHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_ArQH71oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH8FoHEeS2WoXr83SnEA" name="prependAll" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="_ArQH8VoHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_ArQH8loHEeS2WoXr83SnEA" name="objects" type="_ArQEaVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH81oHEeS2WoXr83SnEA" name="reverse" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="_ArQH9FoHEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH9VoHEeS2WoXr83SnEA" name="selectByKind" type="_ArQEpVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_ArQH9loHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQH91oHEeS2WoXr83SnEA" parameteredElement="_ArQH-FoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQH-FoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQH91oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQD4VoHEeS2WoXr83SnEA _ArQEL1oHEeS2WoXr83SnEA _ArQEZVoHEeS2WoXr83SnEA _ArQEp1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQH-VoHEeS2WoXr83SnEA" name="type" type="_ArQELVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH-loHEeS2WoXr83SnEA" name="selectByType" type="_ArQEqFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_ArQH-1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQH_FoHEeS2WoXr83SnEA" parameteredElement="_ArQH_VoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQH_VoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQH_FoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQD5FoHEeS2WoXr83SnEA _ArQEMloHEeS2WoXr83SnEA _ArQEaFoHEeS2WoXr83SnEA _ArQEqloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQH_loHEeS2WoXr83SnEA" name="type" type="_ArQEMFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQH_1oHEeS2WoXr83SnEA" name="subSequence" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_ArQIAFoHEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="_ArQIAVoHEeS2WoXr83SnEA" name="lower" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_ArQIAloHEeS2WoXr83SnEA" name="upper" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIA1oHEeS2WoXr83SnEA" name="closure" type="_ArQEgVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_ArQIBFoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_ArQIBVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDSVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIBloHEeS2WoXr83SnEA" name="i" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIB1oHEeS2WoXr83SnEA" name="collectNested" type="_ArQEnFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_ArQICFoHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="_ArQICVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQICloHEeS2WoXr83SnEA" parameteredElement="_ArQIC1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIC1oHEeS2WoXr83SnEA" name="V" templateParameter="_ArQICloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQD2FoHEeS2WoXr83SnEA _ArQEXFoHEeS2WoXr83SnEA _ArQEnloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQIDFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDSloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIDVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIDloHEeS2WoXr83SnEA" name="collect" type="_ArQEn1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_ArQID1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIEFoHEeS2WoXr83SnEA" parameteredElement="_ArQIEVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIEVoHEeS2WoXr83SnEA" name="V" templateParameter="_ArQIEFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQD21oHEeS2WoXr83SnEA _ArQEX1oHEeS2WoXr83SnEA _ArQEoVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQIEloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDS1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIE1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIFFoHEeS2WoXr83SnEA" name="reject" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_ArQIFVoHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_ArQIFloHEeS2WoXr83SnEA" name="lambda" type="_ArQDR1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIF1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIGFoHEeS2WoXr83SnEA" name="select" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_ArQIGVoHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_ArQIGloHEeS2WoXr83SnEA" name="lambda" type="_ArQDR1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIG1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIHFoHEeS2WoXr83SnEA" name="sortedBy" type="_ArQHzFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_ArQIHVoHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_ArQIHloHEeS2WoXr83SnEA" name="lambda" type="_ArQDSFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIH1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQIIFoHEeS2WoXr83SnEA" name="Set" superClass="_ArQE81oHEeS2WoXr83SnEA" typedElement="_ArQIJFoHEeS2WoXr83SnEA _ArQILFoHEeS2WoXr83SnEA _ArQIL1oHEeS2WoXr83SnEA _ArQIN1oHEeS2WoXr83SnEA _ArQIOloHEeS2WoXr83SnEA _ArQIR1oHEeS2WoXr83SnEA _ArQIWFoHEeS2WoXr83SnEA _ArQIXFoHEeS2WoXr83SnEA"
+        elementType="_ArQII1oHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_ArQIIVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIIloHEeS2WoXr83SnEA" parameteredElement="_ArQII1oHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQII1oHEeS2WoXr83SnEA" name="T" templateParameter="_ArQIIloHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_ArQD-VoHEeS2WoXr83SnEA _ArQEbloHEeS2WoXr83SnEA _ArQEhloHEeS2WoXr83SnEA _ArQE9VoHEeS2WoXr83SnEA"
+              typedElement="_ArQIOVoHEeS2WoXr83SnEA _ArQISloHEeS2WoXr83SnEA _ArQIUVoHEeS2WoXr83SnEA _ArQIV1oHEeS2WoXr83SnEA _ArQIW1oHEeS2WoXr83SnEA _ArQIX1oHEeS2WoXr83SnEA _ArQIY1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQErVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQEsFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQEs1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQEtloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQEuVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQEvFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQEv1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQEwloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQExVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_ArQIlFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="mitosi.xml#_ArQDL1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="javaMM.xml#_ArQIsloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="javaMM.xml#_ArQItVoHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="#_ArQErFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQEr1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQEsloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQEtVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQEuFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQEu1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQEvloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQEwVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQExFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_ArQIk1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="mitosi.xml#_ArQDLloHEeS2WoXr83SnEA"/>
+        <templateBinding href="javaMM.xml#_ArQIsVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="javaMM.xml#_ArQItFoHEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_ArQIJFoHEeS2WoXr83SnEA" name="-" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_ArQIfVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQIJVoHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_ArQIJloHEeS2WoXr83SnEA" name="s" type="_ArQE0loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQIJ1oHEeS2WoXr83SnEA" name="&lt;>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_ArQIKFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQIKVoHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_ArQIf1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQIKloHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+        <ownedParameter xmi:id="_ArQIK1oHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQILFoHEeS2WoXr83SnEA" name="excluding" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_ArQILVoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+        <ownedParameter xmi:id="_ArQILloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQIL1oHEeS2WoXr83SnEA" name="excludingAll" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_ArQIMFoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_ArQIMVoHEeS2WoXr83SnEA" name="objects" type="_ArQDuFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQIMloHEeS2WoXr83SnEA" name="flatten" type="_ArQEuloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_ArQIM1oHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].&#xA;If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_ArQINFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQINVoHEeS2WoXr83SnEA" parameteredElement="_ArQINloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQINloHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQINVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQD8FoHEeS2WoXr83SnEA _ArQEvFoHEeS2WoXr83SnEA _ArQE7FoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQIN1oHEeS2WoXr83SnEA" name="including" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_ArQIOFoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_ArQIOVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQIOloHEeS2WoXr83SnEA" name="includingAll" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_ArQIO1oHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_ArQIPFoHEeS2WoXr83SnEA" name="objects" type="_ArQD91oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQIPVoHEeS2WoXr83SnEA" name="selectByKind" type="_ArQEvVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_ArQIPloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIP1oHEeS2WoXr83SnEA" parameteredElement="_ArQIQFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIQFoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQIP1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQD81oHEeS2WoXr83SnEA _ArQENVoHEeS2WoXr83SnEA _ArQEv1oHEeS2WoXr83SnEA _ArQE71oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQIQVoHEeS2WoXr83SnEA" name="type" type="_ArQEM1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQIQloHEeS2WoXr83SnEA" name="selectByType" type="_ArQEwFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_ArQIQ1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIRFoHEeS2WoXr83SnEA" parameteredElement="_ArQIRVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIRVoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQIRFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQD9loHEeS2WoXr83SnEA _ArQEOFoHEeS2WoXr83SnEA _ArQEwloHEeS2WoXr83SnEA _ArQE8loHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQIRloHEeS2WoXr83SnEA" name="type" type="_ArQENloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIR1oHEeS2WoXr83SnEA" name="closure" type="_ArQIIFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_ArQISFoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_ArQISVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDTloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQISloHEeS2WoXr83SnEA" name="i" type="_ArQII1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIS1oHEeS2WoXr83SnEA" name="collectNested" type="_ArQDcFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_ArQITFoHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="_ArQITVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQITloHEeS2WoXr83SnEA" parameteredElement="_ArQIT1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIT1oHEeS2WoXr83SnEA" name="V" templateParameter="_ArQITloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDcloHEeS2WoXr83SnEA _ArQD6loHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQIUFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDT1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIUVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIUloHEeS2WoXr83SnEA" name="collect" type="_ArQDc1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_ArQIU1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIVFoHEeS2WoXr83SnEA" parameteredElement="_ArQIVVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIVVoHEeS2WoXr83SnEA" name="V" templateParameter="_ArQIVFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_ArQDdVoHEeS2WoXr83SnEA _ArQD7VoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_ArQIVloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDUFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIV1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIWFoHEeS2WoXr83SnEA" name="reject" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_ArQIWVoHEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_ArQIWloHEeS2WoXr83SnEA" name="lambda" type="_ArQDTFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIW1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIXFoHEeS2WoXr83SnEA" name="select" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_ArQIXVoHEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+        <ownedParameter xmi:id="_ArQIXloHEeS2WoXr83SnEA" name="lambda" type="_ArQDTFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIX1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIYFoHEeS2WoXr83SnEA" name="sortedBy" type="_ArQEhFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_ArQIYVoHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_ArQIYloHEeS2WoXr83SnEA" name="lambda" type="_ArQDTVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIY1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIZFoHEeS2WoXr83SnEA" name="State" superClass="_ArQHQ1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIZVoHEeS2WoXr83SnEA" name="Type" superClass="_ArQHUVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIZloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_ArQD-loHEeS2WoXr83SnEA"
+        typedElement="_ArQIaloHEeS2WoXr83SnEA _ArQIdVoHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_ArQIZ1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIaFoHEeS2WoXr83SnEA" parameteredElement="_ArQIaVoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIaVoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQIaFoHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_ArQD_FoHEeS2WoXr83SnEA _ArQEcVoHEeS2WoXr83SnEA _ArQEiVoHEeS2WoXr83SnEA _ArQExVoHEeS2WoXr83SnEA _ArQE-FoHEeS2WoXr83SnEA"
+              typedElement="_ArQIeVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQEyFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQEy1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQEzloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE0VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE1FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE11oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE2loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE3VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE4FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE41oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE5loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE6VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE7FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE71oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE8loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE9VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_ArQE-FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_ArQIl1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="mitosi.xml#_ArQDMloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="javaMM.xml#_ArQIuFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="javaMM.xml#_ArQIu1oHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="#_ArQEx1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQEyloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQEzVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE0FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE01oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE1loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE2VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE3FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE31oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE4loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE5VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE6FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE61oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE7loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE8VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE9FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_ArQE91oHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_ArQIlloHEeS2WoXr83SnEA"/>
+        <templateBinding href="mitosi.xml#_ArQDMVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="javaMM.xml#_ArQIt1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="javaMM.xml#_ArQIuloHEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_ArQIaloHEeS2WoXr83SnEA" name="-" type="_ArQIZloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_ArQIfVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_ArQIa1oHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_ArQIbFoHEeS2WoXr83SnEA" name="s" type="_ArQE0loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQIbVoHEeS2WoXr83SnEA" name="intersection" type="_ArQEw1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_ArQIbloHEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+        <ownedParameter xmi:id="_ArQIb1oHEeS2WoXr83SnEA" name="c" type="_ArQD-loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQIcFoHEeS2WoXr83SnEA" name="symmetricDifference" type="_ArQEw1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+        <ownedComment xmi:id="_ArQIcVoHEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+        <ownedParameter xmi:id="_ArQIcloHEeS2WoXr83SnEA" name="s" type="_ArQE0loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_ArQIc1oHEeS2WoXr83SnEA" name="union" type="_ArQEw1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="_ArQIdFoHEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+        <ownedParameter xmi:id="_ArQIdVoHEeS2WoXr83SnEA" name="s" type="_ArQIZloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIdloHEeS2WoXr83SnEA" name="sortedBy" type="_ArQEh1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_ArQId1oHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_ArQIeFoHEeS2WoXr83SnEA" name="lambda" type="_ArQDUVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_ArQIeVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQIaVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedPrecedence xmi:id="_ArQIeloHEeS2WoXr83SnEA" name="NAVIGATION"/>
+    <ownedPrecedence xmi:id="_ArQIe1oHEeS2WoXr83SnEA" name="UNARY" order="1"/>
+    <ownedPrecedence xmi:id="_ArQIfFoHEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+    <ownedPrecedence xmi:id="_ArQIfVoHEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+    <ownedPrecedence xmi:id="_ArQIfloHEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+    <ownedPrecedence xmi:id="_ArQIf1oHEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+    <ownedPrecedence xmi:id="_ArQIgFoHEeS2WoXr83SnEA" name="AND" order="6"/>
+    <ownedPrecedence xmi:id="_ArQIgVoHEeS2WoXr83SnEA" name="OR" order="7"/>
+    <ownedPrecedence xmi:id="_ArQIgloHEeS2WoXr83SnEA" name="XOR" order="8"/>
+    <ownedPrecedence xmi:id="_ArQIg1oHEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/javaMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/javaMM.xml
new file mode 100644
index 0000000..bf4a8a6
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/javaMM.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_ArQImFoHEeS2WoXr83SnEA" name="javaMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/javaMM.emof">
+  <nestedPackage xmi:id="_ArQImVoHEeS2WoXr83SnEA" name="javammsi" nsURI="javammsi">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQImloHEeS2WoXr83SnEA" name="Class" templateParameterSubstitution="_ArQIrFoHEeS2WoXr83SnEA _ArQIsloHEeS2WoXr83SnEA _ArQIuFoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_ArQIm1oHEeS2WoXr83SnEA" name="Extends" type="_ArQIsFoHEeS2WoXr83SnEA" opposite="_ArQInFoHEeS2WoXr83SnEA">
+        <propertyItem href="mitosi.xml#_ArQCwloHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_ArQInFoHEeS2WoXr83SnEA" name="extendedBy" type="_ArQIsFoHEeS2WoXr83SnEA" opposite="_ArQIm1oHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_ArQInVoHEeS2WoXr83SnEA" name="implements" type="_ArQIs1oHEeS2WoXr83SnEA" opposite="_ArQIo1oHEeS2WoXr83SnEA">
+        <propertyItem href="mitosi.xml#_ArQDF1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_ArQInloHEeS2WoXr83SnEA" name="name" isID="true">
+        <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+        <key href="mitosi.xml#_ArQDJ1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQCsFoHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQCwFoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_ArQIn1oHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_ArQIploHEeS2WoXr83SnEA" implicit="true"
+          opposite="_ArQIp1oHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQCr1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCtFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQCv1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCw1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCxloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCyFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCzloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC0VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQDFloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQDHFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDIVoHEeS2WoXr83SnEA"/>
+      <key href="mitosi.xml#_ArQDJ1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIoFoHEeS2WoXr83SnEA" name="Interface" templateParameterSubstitution="_ArQIr1oHEeS2WoXr83SnEA _ArQItVoHEeS2WoXr83SnEA _ArQIu1oHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_ArQIoVoHEeS2WoXr83SnEA" name="Extends" type="_ArQIs1oHEeS2WoXr83SnEA" opposite="_ArQIoloHEeS2WoXr83SnEA">
+        <propertyItem href="mitosi.xml#_ArQC91oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_ArQIoloHEeS2WoXr83SnEA" name="extendedBy" type="_ArQIs1oHEeS2WoXr83SnEA" opposite="_ArQIoVoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_ArQIo1oHEeS2WoXr83SnEA" name="implementedBy" type="_ArQIsFoHEeS2WoXr83SnEA" opposite="_ArQInVoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_ArQIpFoHEeS2WoXr83SnEA" name="name" isID="true">
+        <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+        <key href="mitosi.xml#_ArQDKFoHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQC5FoHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQC9VoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_ArQIpVoHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_ArQIploHEeS2WoXr83SnEA" implicit="true"
+          opposite="_ArQIqFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQC41oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC6VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQC9FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC-FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC-1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC_FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC_VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC_1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDBVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDCFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDDVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDGFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQDGloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDJVoHEeS2WoXr83SnEA"/>
+      <key href="mitosi.xml#_ArQDKFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIploHEeS2WoXr83SnEA" name="dummy" typedElement="_ArQIn1oHEeS2WoXr83SnEA _ArQIpVoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_ArQIp1oHEeS2WoXr83SnEA" name="containsClass" type="_ArQIsFoHEeS2WoXr83SnEA" isComposite="true" opposite="_ArQIn1oHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_ArQIqFoHEeS2WoXr83SnEA" name="containsIterface" type="_ArQIs1oHEeS2WoXr83SnEA" isComposite="true" opposite="_ArQIpVoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="_ArQIqVoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIqloHEeS2WoXr83SnEA" name="Collection" elementType="_ArQImloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQIq1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQIrFoHEeS2WoXr83SnEA" actual="_ArQImloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_ArQGGloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQGGVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQGGFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_ArQGyVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIrVoHEeS2WoXr83SnEA" name="Collection" elementType="_ArQIoFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQIrloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQIr1oHEeS2WoXr83SnEA" actual="_ArQIoFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_ArQGGloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQGGVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQGGFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_ArQGyVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQIsFoHEeS2WoXr83SnEA" name="Set" superClass="_ArQItloHEeS2WoXr83SnEA" typedElement="_ArQIm1oHEeS2WoXr83SnEA _ArQInFoHEeS2WoXr83SnEA _ArQIo1oHEeS2WoXr83SnEA _ArQIp1oHEeS2WoXr83SnEA"
+        elementType="_ArQImloHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_ArQIsVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQIsloHEeS2WoXr83SnEA" actual="_ArQImloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_ArQIIloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQIIVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_ArQIIFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQIs1oHEeS2WoXr83SnEA" name="Set" superClass="_ArQIuVoHEeS2WoXr83SnEA" typedElement="_ArQInVoHEeS2WoXr83SnEA _ArQIoVoHEeS2WoXr83SnEA _ArQIoloHEeS2WoXr83SnEA _ArQIqFoHEeS2WoXr83SnEA"
+        elementType="_ArQIoFoHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_ArQItFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQItVoHEeS2WoXr83SnEA" actual="_ArQIoFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_ArQIIloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQIIVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_ArQIIFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQItloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_ArQIqloHEeS2WoXr83SnEA"
+        elementType="_ArQImloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQIt1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQIuFoHEeS2WoXr83SnEA" actual="_ArQImloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_ArQIaFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQIZ1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQIZloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIuVoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_ArQIrVoHEeS2WoXr83SnEA"
+        elementType="_ArQIoFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQIuloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQIu1oHEeS2WoXr83SnEA" actual="_ArQIoFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_ArQIaFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQIZ1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQIZloHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/mitosi.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/mitosi.xml
new file mode 100644
index 0000000..a161707
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/mitosi.xml
@@ -0,0 +1,450 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_ArQCoFoHEeS2WoXr83SnEA" name="mitosi.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/mitosi.qvtr">
+  <ownedComment xmi:id="_ArQCoVoHEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+  <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="_ArQColoHEeS2WoXr83SnEA" name="MiToSi">
+    <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+    <modelParameter xmi:id="_ArQCo1oHEeS2WoXr83SnEA" name="uml">
+      <usedPackage href="umlMM.xml#_ArQIhVoHEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <modelParameter xmi:id="_ArQCpFoHEeS2WoXr83SnEA" name="java">
+      <usedPackage href="javaMM.xml#_ArQImVoHEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_ArQCpVoHEeS2WoXr83SnEA" name="RClassToClass" isTopLevel="true" relationCallExp="_ArQCzFoHEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQCploHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_ArQCo1oHEeS2WoXr83SnEA"
+          rootVariable="_ArQCs1oHEeS2WoXr83SnEA">
+        <pattern xmi:id="_ArQCp1oHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQCqFoHEeS2WoXr83SnEA" bindsTo="_ArQCs1oHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+            <part xmi:id="_ArQCqVoHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCqloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCsloHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_ArQCq1oHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_ArQIiloHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_ArQCrFoHEeS2WoXr83SnEA" stringSymbol="DomainRoot">
+                <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQCrVoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_ArQCpFoHEeS2WoXr83SnEA"
+          rootVariable="_ArQCtFoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_ArQCrloHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQCr1oHEeS2WoXr83SnEA" bindsTo="_ArQCtFoHEeS2WoXr83SnEA">
+            <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+            <part xmi:id="_ArQCsFoHEeS2WoXr83SnEA">
+              <referredProperty href="javaMM.xml#_ArQInloHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCsVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCsloHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_ArQCsloHEeS2WoXr83SnEA" name="n" isRequired="false">
+        <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQCs1oHEeS2WoXr83SnEA" name="c1" templateExp="_ArQCqFoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQCtFoHEeS2WoXr83SnEA" name="c2" templateExp="_ArQCr1oHEeS2WoXr83SnEA">
+        <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+      </variable>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_ArQCtVoHEeS2WoXr83SnEA" name="ClassToClass" isTopLevel="true" relationCallExp="_ArQCz1oHEeS2WoXr83SnEA _ArQDC1oHEeS2WoXr83SnEA _ArQDH1oHEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQCtloHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_ArQCo1oHEeS2WoXr83SnEA"
+          rootVariable="_ArQCx1oHEeS2WoXr83SnEA">
+        <pattern xmi:id="_ArQCt1oHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQCuFoHEeS2WoXr83SnEA" bindsTo="_ArQCx1oHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+            <part xmi:id="_ArQCuVoHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCuloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxFoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_ArQCu1oHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_ArQIiVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCvFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxVoHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQCvVoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_ArQCpFoHEeS2WoXr83SnEA"
+          rootVariable="_ArQCyFoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_ArQCvloHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQCv1oHEeS2WoXr83SnEA" bindsTo="_ArQCyFoHEeS2WoXr83SnEA">
+            <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+            <part xmi:id="_ArQCwFoHEeS2WoXr83SnEA">
+              <referredProperty href="javaMM.xml#_ArQInloHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCwVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxFoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_ArQCwloHEeS2WoXr83SnEA">
+              <referredProperty href="javaMM.xml#_ArQIm1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCw1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxloHEeS2WoXr83SnEA">
+                <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_ArQCxFoHEeS2WoXr83SnEA" name="n" isRequired="false">
+        <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQCxVoHEeS2WoXr83SnEA" name="c1sup" isRequired="false">
+        <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQCxloHEeS2WoXr83SnEA" name="c2sup" isRequired="false">
+        <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQCx1oHEeS2WoXr83SnEA" name="c1" templateExp="_ArQCuFoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQCyFoHEeS2WoXr83SnEA" name="c2" templateExp="_ArQCv1oHEeS2WoXr83SnEA">
+        <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+      </variable>
+      <when xmi:id="_ArQCyVoHEeS2WoXr83SnEA">
+        <predicate xmi:id="_ArQCyloHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQCy1oHEeS2WoXr83SnEA" name="or" isRequired="false">
+            <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQCzFoHEeS2WoXr83SnEA" referredRelation="_ArQCpVoHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCzVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxVoHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+              </argument>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCzloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxloHEeS2WoXr83SnEA">
+                <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+              </argument>
+            </source>
+            <argument xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQCz1oHEeS2WoXr83SnEA" referredRelation="_ArQCtVoHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC0FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxVoHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+              </argument>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC0VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxloHEeS2WoXr83SnEA">
+                <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+              </argument>
+            </argument>
+            <referredOperation href="OCL.xml#_ArQFD1oHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+      </when>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_ArQC0loHEeS2WoXr83SnEA" name="RClassToInterface" isTopLevel="true" relationCallExp="_ArQDA1oHEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQC01oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_ArQCo1oHEeS2WoXr83SnEA"
+          rootVariable="_ArQC6FoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_ArQC1FoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQC1VoHEeS2WoXr83SnEA" bindsTo="_ArQC6FoHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+            <where xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQC1loHEeS2WoXr83SnEA" name="and" isRequired="false">
+              <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+              <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQC11oHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+                <source xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_ArQC2FoHEeS2WoXr83SnEA" type="_ArQDLVoHEeS2WoXr83SnEA">
+                  <source xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC2VoHEeS2WoXr83SnEA" referredVariable="_ArQC6FoHEeS2WoXr83SnEA">
+                    <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+                  </source>
+                  <referredProperty href="umlMM.xml#_ArQIiVoHEeS2WoXr83SnEA"/>
+                </source>
+                <referredOperation href="OCL.xml#_ArQGXVoHEeS2WoXr83SnEA"/>
+              </source>
+              <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQC2loHEeS2WoXr83SnEA" name="&lt;>">
+                <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+                <source xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC21oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC51oHEeS2WoXr83SnEA">
+                  <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+                </source>
+                <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_ArQC3FoHEeS2WoXr83SnEA" stringSymbol="DomainRoot">
+                  <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+                </argument>
+                <referredOperation href="OCL.xml#_ArQFd1oHEeS2WoXr83SnEA"/>
+              </argument>
+              <referredOperation href="OCL.xml#_ArQFBFoHEeS2WoXr83SnEA"/>
+            </where>
+            <part xmi:id="_ArQC3VoHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC3loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC5loHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_ArQC31oHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_ArQIiloHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC4FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC51oHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQC4VoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_ArQCpFoHEeS2WoXr83SnEA"
+          rootVariable="_ArQC6VoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_ArQC4loHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQC41oHEeS2WoXr83SnEA" bindsTo="_ArQC6VoHEeS2WoXr83SnEA">
+            <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+            <part xmi:id="_ArQC5FoHEeS2WoXr83SnEA">
+              <referredProperty href="javaMM.xml#_ArQIpFoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC5VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC5loHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_ArQC5loHEeS2WoXr83SnEA" name="n" isRequired="false">
+        <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQC51oHEeS2WoXr83SnEA" name="typ" isRequired="false">
+        <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQC6FoHEeS2WoXr83SnEA" name="c" templateExp="_ArQC1VoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQC6VoHEeS2WoXr83SnEA" name="i" templateExp="_ArQC41oHEeS2WoXr83SnEA">
+        <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+      </variable>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_ArQC6loHEeS2WoXr83SnEA" name="ClassToInterface" isTopLevel="true" relationCallExp="_ArQDBloHEeS2WoXr83SnEA _ArQDI1oHEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQC61oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_ArQCo1oHEeS2WoXr83SnEA"
+          rootVariable="_ArQC_loHEeS2WoXr83SnEA">
+        <pattern xmi:id="_ArQC7FoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQC7VoHEeS2WoXr83SnEA" bindsTo="_ArQC_loHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+            <part xmi:id="_ArQC7loHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC71oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-VoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_ArQC8FoHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_ArQIiVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC8VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-loHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQC8loHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_ArQCpFoHEeS2WoXr83SnEA"
+          rootVariable="_ArQC_1oHEeS2WoXr83SnEA">
+        <pattern xmi:id="_ArQC81oHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQC9FoHEeS2WoXr83SnEA" bindsTo="_ArQC_1oHEeS2WoXr83SnEA">
+            <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+            <part xmi:id="_ArQC9VoHEeS2WoXr83SnEA">
+              <referredProperty href="javaMM.xml#_ArQIpFoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC9loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-VoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_ArQC91oHEeS2WoXr83SnEA">
+              <referredProperty href="javaMM.xml#_ArQIoVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC-FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-1oHEeS2WoXr83SnEA">
+                <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_ArQC-VoHEeS2WoXr83SnEA" name="n" isRequired="false">
+        <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQC-loHEeS2WoXr83SnEA" name="csup" isRequired="false">
+        <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQC-1oHEeS2WoXr83SnEA" name="isup" isRequired="false">
+        <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQC_FoHEeS2WoXr83SnEA" name="someI" isRequired="false">
+        <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQC_VoHEeS2WoXr83SnEA" name="z" isRequired="false">
+        <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQC_loHEeS2WoXr83SnEA" name="c" templateExp="_ArQC7VoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQC_1oHEeS2WoXr83SnEA" name="i" templateExp="_ArQC9FoHEeS2WoXr83SnEA">
+        <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <when xmi:id="_ArQDAFoHEeS2WoXr83SnEA">
+        <predicate xmi:id="_ArQDAVoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQDAloHEeS2WoXr83SnEA" name="or" isRequired="false">
+            <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQDA1oHEeS2WoXr83SnEA" referredRelation="_ArQC0loHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDBFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-loHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+              </argument>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDBVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-1oHEeS2WoXr83SnEA">
+                <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+              </argument>
+            </source>
+            <argument xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQDBloHEeS2WoXr83SnEA" referredRelation="_ArQC6loHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDB1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-loHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+              </argument>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDCFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-1oHEeS2WoXr83SnEA">
+                <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+              </argument>
+            </argument>
+            <referredOperation href="OCL.xml#_ArQFD1oHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_ArQDCVoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQDCloHEeS2WoXr83SnEA" name="not" isRequired="false">
+            <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQDC1oHEeS2WoXr83SnEA" referredRelation="_ArQCtVoHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDDFoHEeS2WoXr83SnEA" referredVariable="_ArQC_loHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+              </argument>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDDVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC_VoHEeS2WoXr83SnEA">
+                <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+              </argument>
+            </source>
+            <referredOperation href="OCL.xml#_ArQFDFoHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+      </when>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_ArQDDloHEeS2WoXr83SnEA" name="ClassSupersToClassImplements" isTopLevel="true">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQDD1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_ArQCo1oHEeS2WoXr83SnEA"
+          rootVariable="_ArQDG1oHEeS2WoXr83SnEA">
+        <pattern xmi:id="_ArQDEFoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQDEVoHEeS2WoXr83SnEA" bindsTo="_ArQDG1oHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+            <part xmi:id="_ArQDEloHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_ArQIiVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDE1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQDGVoHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQDFFoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_ArQCpFoHEeS2WoXr83SnEA"
+          rootVariable="_ArQDHFoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_ArQDFVoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQDFloHEeS2WoXr83SnEA" bindsTo="_ArQDHFoHEeS2WoXr83SnEA">
+            <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+            <part xmi:id="_ArQDF1oHEeS2WoXr83SnEA">
+              <referredProperty href="javaMM.xml#_ArQInVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDGFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQDGloHEeS2WoXr83SnEA">
+                <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_ArQDGVoHEeS2WoXr83SnEA" name="csup" isRequired="false">
+        <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQDGloHEeS2WoXr83SnEA" name="isup" isRequired="false">
+        <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQDG1oHEeS2WoXr83SnEA" name="c1" templateExp="_ArQDEVoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_ArQDHFoHEeS2WoXr83SnEA" name="c2" templateExp="_ArQDFloHEeS2WoXr83SnEA">
+        <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+      </variable>
+      <when xmi:id="_ArQDHVoHEeS2WoXr83SnEA">
+        <predicate xmi:id="_ArQDHloHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQDH1oHEeS2WoXr83SnEA" referredRelation="_ArQCtVoHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDIFoHEeS2WoXr83SnEA" referredVariable="_ArQDG1oHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDIVoHEeS2WoXr83SnEA" referredVariable="_ArQDHFoHEeS2WoXr83SnEA">
+              <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_ArQDIloHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQDI1oHEeS2WoXr83SnEA" referredRelation="_ArQC6loHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDJFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQDGVoHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDJVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQDGloHEeS2WoXr83SnEA">
+              <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </when>
+    </rule>
+    <ownedKey xmi:id="_ArQDJloHEeS2WoXr83SnEA">
+      <identifies href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+      <part href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="_ArQDJ1oHEeS2WoXr83SnEA">
+      <identifies href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+      <part href="javaMM.xml#_ArQInloHEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="_ArQDKFoHEeS2WoXr83SnEA">
+      <identifies href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+      <part href="javaMM.xml#_ArQIpFoHEeS2WoXr83SnEA"/>
+    </ownedKey>
+  </nestedPackage>
+  <nestedPackage xmi:id="_ArQDKVoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDKloHEeS2WoXr83SnEA" name="Collection">
+      <templateBinding xmi:id="_ArQDK1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDLFoHEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#_ArQGGloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQGGVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQGGFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_ArQGyVoHEeS2WoXr83SnEA"/>
+      <elementType href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQDLVoHEeS2WoXr83SnEA" name="Set" superClass="_ArQDMFoHEeS2WoXr83SnEA" typedElement="_ArQC2FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDLloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDL1oHEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#_ArQIIloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQIIVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_ArQIIFoHEeS2WoXr83SnEA"/>
+      <elementType href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDMFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_ArQDKloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQDMVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQDMloHEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#_ArQIaFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQIZ1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQIZloHEeS2WoXr83SnEA"/>
+      <elementType href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <unit xmi:id="_ArQDM1oHEeS2WoXr83SnEA" name="umlmmmi">
+    <ownedComment xmi:id="_ArQDNFoHEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+    <usedPackage xmi:type="flatemofqvt:Package" href="umlMM.xml#_ArQIhVoHEeS2WoXr83SnEA"/>
+  </unit>
+  <unit xmi:id="_ArQDNVoHEeS2WoXr83SnEA" name="javammsi">
+    <usedPackage xmi:type="flatemofqvt:Package" href="javaMM.xml#_ArQImVoHEeS2WoXr83SnEA"/>
+  </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/umlMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/umlMM.xml
new file mode 100644
index 0000000..cc2a043
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/umlMM.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_ArQIhFoHEeS2WoXr83SnEA" name="umlMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/umlMM.emof">
+  <nestedPackage xmi:id="_ArQIhVoHEeS2WoXr83SnEA" name="umlmmmi" nsURI="umlmmmi">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIhloHEeS2WoXr83SnEA" name="Class">
+      <templateParameterSubstitution href="#_ArQIkVoHEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#_ArQIlFoHEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#_ArQIl1oHEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="mitosi.xml#_ArQDLFoHEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="mitosi.xml#_ArQDL1oHEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="mitosi.xml#_ArQDMloHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_ArQIh1oHEeS2WoXr83SnEA" name="name" isID="true">
+        <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+        <key href="mitosi.xml#_ArQDJloHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQCqVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQCuVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQC3VoHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQC7loHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_ArQIiFoHEeS2WoXr83SnEA" name="subs" type="_ArQIkloHEeS2WoXr83SnEA" opposite="_ArQIiVoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_ArQIiVoHEeS2WoXr83SnEA" name="supers" type="_ArQIkloHEeS2WoXr83SnEA" opposite="_ArQIiFoHEeS2WoXr83SnEA">
+        <propertyItem href="mitosi.xml#_ArQCu1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQC8FoHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQDEloHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_ArQIiloHEeS2WoXr83SnEA" name="type" default="">
+        <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQCq1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="mitosi.xml#_ArQC31oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_ArQIi1oHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_ArQIjFoHEeS2WoXr83SnEA" implicit="true"
+          opposite="_ArQIjVoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQCqFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCs1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQCuFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCvFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCxVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCx1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCzVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC0FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQC1VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC2VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC6FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQC7VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC8VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC-loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC_loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDBFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDB1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDDFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQDEVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDE1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQDGVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQDG1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDIFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDJFoHEeS2WoXr83SnEA"/>
+      <key href="mitosi.xml#_ArQDJloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIjFoHEeS2WoXr83SnEA" name="dummy" typedElement="_ArQIi1oHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_ArQIjVoHEeS2WoXr83SnEA" name="containsClass" type="_ArQIkloHEeS2WoXr83SnEA" isComposite="true" opposite="_ArQIi1oHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="_ArQIjloHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIj1oHEeS2WoXr83SnEA" name="Collection" elementType="_ArQIhloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQIkFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQIkVoHEeS2WoXr83SnEA" actual="_ArQIhloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_ArQGGloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQGGVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQGGFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_ArQGyVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQIkloHEeS2WoXr83SnEA" name="Set" superClass="_ArQIlVoHEeS2WoXr83SnEA" typedElement="_ArQIiFoHEeS2WoXr83SnEA _ArQIiVoHEeS2WoXr83SnEA _ArQIjVoHEeS2WoXr83SnEA"
+        elementType="_ArQIhloHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_ArQIk1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQIlFoHEeS2WoXr83SnEA" actual="_ArQIhloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_ArQIIloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQIIVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_ArQIIFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIlVoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_ArQIj1oHEeS2WoXr83SnEA"
+        elementType="_ArQIhloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_ArQIlloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_ArQIl1oHEeS2WoXr83SnEA" actual="_ArQIhloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_ArQIaFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_ArQIZ1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQIZloHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/OCL.xml
new file mode 100644
index 0000000..8489539
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/OCL.xml
@@ -0,0 +1,2880 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__ImkIFoGEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+  <nestedPackage xmi:id="__ImkIVoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkIloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwXbVoGEeS2WoXr83SnEA __IwXcVoGEeS2WoXr83SnEA"
+        contextType="__IwXOVoGEeS2WoXr83SnEA" resultType="__IwWW1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkI1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwXY1oGEeS2WoXr83SnEA"
+        contextType="__IwXOVoGEeS2WoXr83SnEA" resultType="__IwXYloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkJFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwXaVoGEeS2WoXr83SnEA"
+        contextType="__IwXOVoGEeS2WoXr83SnEA" resultType="__IwXaFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkJVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwXdVoGEeS2WoXr83SnEA"
+        contextType="__IwXOVoGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkJloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwXXFoGEeS2WoXr83SnEA"
+        contextType="__IwXOVoGEeS2WoXr83SnEA" resultType="__IwWDloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkJ1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwX3loGEeS2WoXr83SnEA __IwX71oGEeS2WoXr83SnEA __IwX9FoGEeS2WoXr83SnEA __IwX91oGEeS2WoXr83SnEA __IwX_FoGEeS2WoXr83SnEA __IwYC1oGEeS2WoXr83SnEA __IwYD1oGEeS2WoXr83SnEA __IwYE1oGEeS2WoXr83SnEA"
+        contextType="__IwXe1oGEeS2WoXr83SnEA" resultType="__IwWW1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkKFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwX5VoGEeS2WoXr83SnEA"
+        contextType="__IwXe1oGEeS2WoXr83SnEA" resultType="__IwX5FoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkKVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwX7FoGEeS2WoXr83SnEA"
+        contextType="__IwXe1oGEeS2WoXr83SnEA" resultType="__IwX61oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkKloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwYBloGEeS2WoXr83SnEA"
+        contextType="__IwXe1oGEeS2WoXr83SnEA" resultType="__IwYBVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkK1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwYAFoGEeS2WoXr83SnEA __IwYF1oGEeS2WoXr83SnEA"
+        contextType="__IwXe1oGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkLFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZIloGEeS2WoXr83SnEA __IwZJloGEeS2WoXr83SnEA"
+        contextType="__IwY2loGEeS2WoXr83SnEA" resultType="__IwWW1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkLVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZKloGEeS2WoXr83SnEA"
+        contextType="__IwY2loGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkLloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZEVoGEeS2WoXr83SnEA"
+        contextType="__IwY2loGEeS2WoXr83SnEA" resultType="__IwY11oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkL1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZGFoGEeS2WoXr83SnEA"
+        contextType="__IwY2loGEeS2WoXr83SnEA" resultType="__IwZF1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkMFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZHloGEeS2WoXr83SnEA"
+        contextType="__IwY2loGEeS2WoXr83SnEA" resultType="__IwZHVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkMVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZdloGEeS2WoXr83SnEA __IwZeloGEeS2WoXr83SnEA"
+        contextType="__IwZL1oGEeS2WoXr83SnEA" resultType="__IwWW1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkMloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZfloGEeS2WoXr83SnEA"
+        contextType="__IwZL1oGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkM1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZZVoGEeS2WoXr83SnEA"
+        contextType="__IwZL1oGEeS2WoXr83SnEA" resultType="__IwV4VoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkNFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZbFoGEeS2WoXr83SnEA"
+        contextType="__IwZL1oGEeS2WoXr83SnEA" resultType="__IwZa1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkNVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZcloGEeS2WoXr83SnEA"
+        contextType="__IwZL1oGEeS2WoXr83SnEA" resultType="__IwZcVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkNloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZuloGEeS2WoXr83SnEA __IwZvloGEeS2WoXr83SnEA"
+        contextType="__IwZg1oGEeS2WoXr83SnEA" resultType="__IwWW1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkN1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZwloGEeS2WoXr83SnEA"
+        contextType="__IwZg1oGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkOFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZqVoGEeS2WoXr83SnEA"
+        contextType="__IwZg1oGEeS2WoXr83SnEA" resultType="__IwZgFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkOVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZsFoGEeS2WoXr83SnEA"
+        contextType="__IwZg1oGEeS2WoXr83SnEA" resultType="__IwZr1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkOloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZtloGEeS2WoXr83SnEA"
+        contextType="__IwZg1oGEeS2WoXr83SnEA" resultType="__IwZtVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkO1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZ2FoGEeS2WoXr83SnEA"
+        contextType="__IwZyVoGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="__ImkPFoGEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="__ImkaFoGEeS2WoXr83SnEA __IwWDVoGEeS2WoXr83SnEA __IwWKFoGEeS2WoXr83SnEA"
+        superClass="__IwYq1oGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__ImkPVoGEeS2WoXr83SnEA" name="first" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__ImkPloGEeS2WoXr83SnEA" name="second" type="__IwXyVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkP1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+        superClass="__ImkaVoGEeS2WoXr83SnEA" typedElement="__IwXXloGEeS2WoXr83SnEA" elementType="__IwXYloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkQFoGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkQVoGEeS2WoXr83SnEA" actual="__IwXYloGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkQloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+        superClass="__ImkbFoGEeS2WoXr83SnEA" typedElement="__IwXZVoGEeS2WoXr83SnEA" elementType="__IwXaFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkQ1oGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkRFoGEeS2WoXr83SnEA" actual="__IwXaFoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkRVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+        superClass="__Imkb1oGEeS2WoXr83SnEA" typedElement="__IwXRVoGEeS2WoXr83SnEA" elementType="__IwXSVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkRloGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkR1oGEeS2WoXr83SnEA" actual="__IwXSVoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkSFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+        superClass="__ImkcloGEeS2WoXr83SnEA" typedElement="__IwXUFoGEeS2WoXr83SnEA" elementType="__IwXU1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkSVoGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkSloGEeS2WoXr83SnEA" actual="__IwXU1oGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkS1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+        superClass="__ImkdVoGEeS2WoXr83SnEA" typedElement="__IwXVVoGEeS2WoXr83SnEA" elementType="__IwXWFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkTFoGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkTVoGEeS2WoXr83SnEA" actual="__IwXWFoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkTloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+        superClass="__Imkk1oGEeS2WoXr83SnEA" typedElement="__IwXiVoGEeS2WoXr83SnEA __IwXt1oGEeS2WoXr83SnEA __IwX2VoGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkT1oGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkUFoGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkUVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+        superClass="__ImklloGEeS2WoXr83SnEA" typedElement="__IwXfFoGEeS2WoXr83SnEA" elementType="__IwXeFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkUloGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkU1oGEeS2WoXr83SnEA" actual="__IwXeFoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkVFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+        superClass="__ImknFoGEeS2WoXr83SnEA" typedElement="__IwYIVoGEeS2WoXr83SnEA" elementType="__IwYGVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkVVoGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkVloGEeS2WoXr83SnEA" actual="__IwYGVoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkV1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+        superClass="__Imkn1oGEeS2WoXr83SnEA" typedElement="__IwYJloGEeS2WoXr83SnEA" elementType="__IwYIloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkWFoGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkWVoGEeS2WoXr83SnEA" actual="__IwYIloGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkWloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+        superClass="__IwVSFoGEeS2WoXr83SnEA" typedElement="__IwZq1oGEeS2WoXr83SnEA" elementType="__IwZr1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkW1oGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkXFoGEeS2WoXr83SnEA" actual="__IwZr1oGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkXVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+        superClass="__IwVS1oGEeS2WoXr83SnEA" typedElement="__IwZsloGEeS2WoXr83SnEA" elementType="__IwZtVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkXloGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkX1oGEeS2WoXr83SnEA" actual="__IwZtVoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkYFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwWeVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkYVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkYloGEeS2WoXr83SnEA" actual="__IwWeVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkY1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwWzVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkZFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkZVoGEeS2WoXr83SnEA" actual="__IwWzVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkZloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__ImkPFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkZ1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkaFoGEeS2WoXr83SnEA" actual="__ImkPFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkaVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXYloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkaloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__Imka1oGEeS2WoXr83SnEA" actual="__IwXYloGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkbFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXaFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkbVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkbloGEeS2WoXr83SnEA" actual="__IwXaFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Imkb1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXSVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkcFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkcVoGEeS2WoXr83SnEA" actual="__IwXSVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkcloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXU1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__Imkc1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkdFoGEeS2WoXr83SnEA" actual="__IwXU1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkdVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXWFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkdloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__Imkd1oGEeS2WoXr83SnEA" actual="__IwXWFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkeFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXT1oGEeS2WoXr83SnEA" elementType="__IwXOVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkeVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkeloGEeS2WoXr83SnEA" actual="__IwXOVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Imke1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwX4FoGEeS2WoXr83SnEA" elementType="__IwX5FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkfFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkfVoGEeS2WoXr83SnEA" actual="__IwX5FoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkfloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwX51oGEeS2WoXr83SnEA" elementType="__IwX61oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__Imkf1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkgFoGEeS2WoXr83SnEA" actual="__IwX61oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkgVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXnFoGEeS2WoXr83SnEA" elementType="__IwXm1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkgloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__Imkg1oGEeS2WoXr83SnEA" actual="__IwXm1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkhFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXo1oGEeS2WoXr83SnEA" elementType="__IwXp1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkhVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkhloGEeS2WoXr83SnEA" actual="__IwXp1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Imkh1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXsFoGEeS2WoXr83SnEA" elementType="__IwXr1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkiFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkiVoGEeS2WoXr83SnEA" actual="__IwXr1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkiloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXyloGEeS2WoXr83SnEA" elementType="__IwXyVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__Imki1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkjFoGEeS2WoXr83SnEA" actual="__IwXyVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkjVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXy1oGEeS2WoXr83SnEA" elementType="__IwXzloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkjloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__Imkj1oGEeS2WoXr83SnEA" actual="__IwXzloGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkkFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwX0FoGEeS2WoXr83SnEA" elementType="__IwX01oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkkVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkkloGEeS2WoXr83SnEA" actual="__IwX01oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Imkk1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImklFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImklVoGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImklloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXeFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__Imkl1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkmFoGEeS2WoXr83SnEA" actual="__IwXeFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkmVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkmloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__Imkm1oGEeS2WoXr83SnEA" actual="__IwYH1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImknFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYGVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImknVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImknloGEeS2WoXr83SnEA" actual="__IwYGVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Imkn1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYIloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkoFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkoVoGEeS2WoXr83SnEA" actual="__IwYIloGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkoloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXRFoGEeS2WoXr83SnEA __IwXoloGEeS2WoXr83SnEA __IwY7VoGEeS2WoXr83SnEA __IwZQFoGEeS2WoXr83SnEA __IwZkVoGEeS2WoXr83SnEA"
+        elementType="__IwYKVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__Imko1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__ImkpFoGEeS2WoXr83SnEA" actual="__IwYKVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkpVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYaFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkploGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__Imkp1oGEeS2WoXr83SnEA" actual="__IwYaFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkqFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYoVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__ImkqVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVIFoGEeS2WoXr83SnEA" actual="__IwYoVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVIVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYzFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVIloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVI1oGEeS2WoXr83SnEA" actual="__IwYzFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVJFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZF1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVJVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVJloGEeS2WoXr83SnEA" actual="__IwZF1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVJ1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZHVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVKFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVKVoGEeS2WoXr83SnEA" actual="__IwZHVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVKloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwY8VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVK1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVLFoGEeS2WoXr83SnEA" actual="__IwY8VoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVLVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVLloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVL1oGEeS2WoXr83SnEA" actual="__IwZBFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVMFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZCVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVMVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVMloGEeS2WoXr83SnEA" actual="__IwZCVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVM1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwY2loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVNFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVNVoGEeS2WoXr83SnEA" actual="__IwY2loGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVNloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZa1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVN1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVOFoGEeS2WoXr83SnEA" actual="__IwZa1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVOVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZcVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVOloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVO1oGEeS2WoXr83SnEA" actual="__IwZcVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVPFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZRVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVPVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVPloGEeS2WoXr83SnEA" actual="__IwZRVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVP1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZWFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVQFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVQVoGEeS2WoXr83SnEA" actual="__IwZWFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVQloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZXVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVQ1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVRFoGEeS2WoXr83SnEA" actual="__IwZXVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVRVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZL1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVRloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVR1oGEeS2WoXr83SnEA" actual="__IwZL1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVSFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZr1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVSVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVSloGEeS2WoXr83SnEA" actual="__IwZr1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVS1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZtVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVTFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVTVoGEeS2WoXr83SnEA" actual="__IwZtVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVTloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZlloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVT1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVUFoGEeS2WoXr83SnEA" actual="__IwZlloGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVUVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZoFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVUloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVU1oGEeS2WoXr83SnEA" actual="__IwZoFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVVFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZpVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVVVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVVloGEeS2WoXr83SnEA" actual="__IwZpVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVV1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwZnFoGEeS2WoXr83SnEA" elementType="__IwZg1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVWFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVWVoGEeS2WoXr83SnEA" actual="__IwZg1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVWloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwZz1oGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVW1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVXFoGEeS2WoXr83SnEA" actual="__IwZyVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVXVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwXNVoGEeS2WoXr83SnEA" instanceType="__IwXNFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVXloGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVX1oGEeS2WoXr83SnEA" actual="__IwXNFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVYFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwXVFoGEeS2WoXr83SnEA" instanceType="__IwXU1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVYVoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVYloGEeS2WoXr83SnEA" actual="__IwXU1oGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVY1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwXWVoGEeS2WoXr83SnEA" instanceType="__IwXWFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVZFoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVZVoGEeS2WoXr83SnEA" actual="__IwXWFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVZloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwXz1oGEeS2WoXr83SnEA" instanceType="__IwXzloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVZ1oGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVaFoGEeS2WoXr83SnEA" actual="__IwXzloGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVaVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwX1FoGEeS2WoXr83SnEA" instanceType="__IwX01oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwValoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVa1oGEeS2WoXr83SnEA" actual="__IwX01oGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVbFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYOFoGEeS2WoXr83SnEA" instanceType="__IwYN1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVbVoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVbloGEeS2WoXr83SnEA" actual="__IwYN1oGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVb1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYQ1oGEeS2WoXr83SnEA" instanceType="__IwYQloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVcFoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVcVoGEeS2WoXr83SnEA" actual="__IwYQloGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVcloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYS1oGEeS2WoXr83SnEA" instanceType="__IwYSloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVc1oGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVdFoGEeS2WoXr83SnEA" actual="__IwYSloGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVdVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYg1oGEeS2WoXr83SnEA" instanceType="__IwYgloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVdloGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVd1oGEeS2WoXr83SnEA" actual="__IwYgloGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVeFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYiVoGEeS2WoXr83SnEA" instanceType="__IwYiFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVeVoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVeloGEeS2WoXr83SnEA" actual="__IwYiFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVe1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYjloGEeS2WoXr83SnEA" instanceType="__IwYjVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVfFoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVfVoGEeS2WoXr83SnEA" actual="__IwYjVoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVfloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" instanceType="__IwYcFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVf1oGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVgFoGEeS2WoXr83SnEA" actual="__IwYcFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVgVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYU1oGEeS2WoXr83SnEA __IwYkFoGEeS2WoXr83SnEA" instanceType="__IwYoVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVgloGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVg1oGEeS2WoXr83SnEA" actual="__IwYoVoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVhFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" instanceType="__IwYtloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVhVoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVhloGEeS2WoXr83SnEA" actual="__IwYtloGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVh1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZBVoGEeS2WoXr83SnEA" instanceType="__IwZBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwViFoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwViVoGEeS2WoXr83SnEA" actual="__IwZBFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwViloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZCloGEeS2WoXr83SnEA" instanceType="__IwZCVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVi1oGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVjFoGEeS2WoXr83SnEA" actual="__IwZCVoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVjVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZWVoGEeS2WoXr83SnEA" instanceType="__IwZWFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVjloGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVj1oGEeS2WoXr83SnEA" actual="__IwZWFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVkFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZXloGEeS2WoXr83SnEA" instanceType="__IwZXVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVkVoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVkloGEeS2WoXr83SnEA" actual="__IwZXVoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVk1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZoVoGEeS2WoXr83SnEA" instanceType="__IwZoFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVlFoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVlVoGEeS2WoXr83SnEA" actual="__IwZoFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVlloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZploGEeS2WoXr83SnEA" instanceType="__IwZpVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVl1oGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVmFoGEeS2WoXr83SnEA" actual="__IwZpVoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVmVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__ImkYFoGEeS2WoXr83SnEA" elementType="__IwWeVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVmloGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVm1oGEeS2WoXr83SnEA" actual="__IwWeVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVnFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__ImkY1oGEeS2WoXr83SnEA" elementType="__IwWzVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVnVoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVnloGEeS2WoXr83SnEA" actual="__IwWzVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVn1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__ImkeFoGEeS2WoXr83SnEA" elementType="__IwXOVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVoFoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVoVoGEeS2WoXr83SnEA" actual="__IwXOVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVoloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__Imkk1oGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVo1oGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVpFoGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVpVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__ImkmVoGEeS2WoXr83SnEA" elementType="__IwYH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVploGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVp1oGEeS2WoXr83SnEA" actual="__IwYH1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVqFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVJFoGEeS2WoXr83SnEA" elementType="__IwZF1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVqVoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVqloGEeS2WoXr83SnEA" actual="__IwZF1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVq1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVJ1oGEeS2WoXr83SnEA" elementType="__IwZHVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVrFoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVrVoGEeS2WoXr83SnEA" actual="__IwZHVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVrloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVKloGEeS2WoXr83SnEA" elementType="__IwY8VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVr1oGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVsFoGEeS2WoXr83SnEA" actual="__IwY8VoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVsVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVLVoGEeS2WoXr83SnEA" elementType="__IwZBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVsloGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVs1oGEeS2WoXr83SnEA" actual="__IwZBFoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVtFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVMFoGEeS2WoXr83SnEA" elementType="__IwZCVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVtVoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVtloGEeS2WoXr83SnEA" actual="__IwZCVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVt1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVM1oGEeS2WoXr83SnEA" typedElement="__IwY51oGEeS2WoXr83SnEA __IwY_loGEeS2WoXr83SnEA" elementType="__IwY2loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVuFoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVuVoGEeS2WoXr83SnEA" actual="__IwY2loGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVuloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVNloGEeS2WoXr83SnEA" elementType="__IwZa1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVu1oGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVvFoGEeS2WoXr83SnEA" actual="__IwZa1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVvVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVOVoGEeS2WoXr83SnEA" elementType="__IwZcVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVvloGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVv1oGEeS2WoXr83SnEA" actual="__IwZcVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVwFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVPFoGEeS2WoXr83SnEA" elementType="__IwZRVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVwVoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVwloGEeS2WoXr83SnEA" actual="__IwZRVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVw1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVP1oGEeS2WoXr83SnEA" elementType="__IwZWFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVxFoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVxVoGEeS2WoXr83SnEA" actual="__IwZWFoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVxloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVQloGEeS2WoXr83SnEA" elementType="__IwZXVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVx1oGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVyFoGEeS2WoXr83SnEA" actual="__IwZXVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVyVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVRVoGEeS2WoXr83SnEA" typedElement="__IwZOloGEeS2WoXr83SnEA __IwZUloGEeS2WoXr83SnEA" elementType="__IwZL1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVyloGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVy1oGEeS2WoXr83SnEA" actual="__IwZL1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVzFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVV1oGEeS2WoXr83SnEA" elementType="__IwZg1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwVzVoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwVzloGEeS2WoXr83SnEA" actual="__IwZg1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVz1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+        superClass="__IwVWloGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV0FoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV0VoGEeS2WoXr83SnEA" actual="__IwZyVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV0loGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+        superClass="__IwVoloGEeS2WoXr83SnEA __IwWLFoGEeS2WoXr83SnEA" typedElement="__IwXi1oGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV01oGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV1FoGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV1VoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+        superClass="__IwVpVoGEeS2WoXr83SnEA __IwWL1oGEeS2WoXr83SnEA" typedElement="__IwYG1oGEeS2WoXr83SnEA" elementType="__IwYH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV1loGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV11oGEeS2WoXr83SnEA" actual="__IwYH1oGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV2FoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+        superClass="__IwVrloGEeS2WoXr83SnEA __IwWO1oGEeS2WoXr83SnEA" typedElement="__IwY7loGEeS2WoXr83SnEA" elementType="__IwY8VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV2VoGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV2loGEeS2WoXr83SnEA" actual="__IwY8VoGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV21oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+        superClass="__IwVsVoGEeS2WoXr83SnEA __IwWPloGEeS2WoXr83SnEA" typedElement="__IwZAVoGEeS2WoXr83SnEA" elementType="__IwZBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV3FoGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV3VoGEeS2WoXr83SnEA" actual="__IwZBFoGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV3loGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+        superClass="__IwVtFoGEeS2WoXr83SnEA __IwWQVoGEeS2WoXr83SnEA" typedElement="__IwZBloGEeS2WoXr83SnEA" elementType="__IwZCVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV31oGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV4FoGEeS2WoXr83SnEA" actual="__IwZCVoGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV4VoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+        superClass="__IwVyVoGEeS2WoXr83SnEA __IwWR1oGEeS2WoXr83SnEA" typedElement="__IwZY1oGEeS2WoXr83SnEA" elementType="__IwZL1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV4loGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV41oGEeS2WoXr83SnEA" actual="__IwZL1oGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV5FoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+        superClass="__IwVzFoGEeS2WoXr83SnEA __IwWU1oGEeS2WoXr83SnEA" typedElement="__IwZwFoGEeS2WoXr83SnEA" elementType="__IwZg1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV5VoGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV5loGEeS2WoXr83SnEA" actual="__IwZg1oGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV51oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+        superClass="__IwVz1oGEeS2WoXr83SnEA __IwWVloGEeS2WoXr83SnEA" typedElement="__IwZ1loGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV6FoGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV6VoGEeS2WoXr83SnEA" actual="__IwZyVoGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV6loGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+        superClass="__IwVmVoGEeS2WoXr83SnEA" elementType="__IwWeVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV61oGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV7FoGEeS2WoXr83SnEA" actual="__IwWeVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV7VoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+        superClass="__IwVnFoGEeS2WoXr83SnEA" typedElement="__IwW5FoGEeS2WoXr83SnEA __IwXJFoGEeS2WoXr83SnEA __IwXJloGEeS2WoXr83SnEA __IwXKVoGEeS2WoXr83SnEA"
+        elementType="__IwWzVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV7loGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV71oGEeS2WoXr83SnEA" actual="__IwWzVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV8FoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+        superClass="__IwVn1oGEeS2WoXr83SnEA" typedElement="__IwXc1oGEeS2WoXr83SnEA" elementType="__IwXOVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV8VoGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV8loGEeS2WoXr83SnEA" actual="__IwXOVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV81oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+        superClass="__IwVoloGEeS2WoXr83SnEA" typedElement="__IwXjVoGEeS2WoXr83SnEA __IwYFVoGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV9FoGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV9VoGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV9loGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+        superClass="__IwVqFoGEeS2WoXr83SnEA" typedElement="__IwZE1oGEeS2WoXr83SnEA" elementType="__IwZF1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV91oGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV-FoGEeS2WoXr83SnEA" actual="__IwZF1oGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV-VoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+        superClass="__IwVq1oGEeS2WoXr83SnEA" typedElement="__IwZGloGEeS2WoXr83SnEA" elementType="__IwZHVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV-loGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV-1oGEeS2WoXr83SnEA" actual="__IwZHVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV_FoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+        superClass="__IwVuloGEeS2WoXr83SnEA" typedElement="__IwZZ1oGEeS2WoXr83SnEA" elementType="__IwZa1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwV_VoGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwV_loGEeS2WoXr83SnEA" actual="__IwZa1oGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV_1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+        superClass="__IwVvVoGEeS2WoXr83SnEA" typedElement="__IwZbloGEeS2WoXr83SnEA" elementType="__IwZcVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWAFoGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWAVoGEeS2WoXr83SnEA" actual="__IwZcVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwWAloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+        superClass="__IwVwFoGEeS2WoXr83SnEA" typedElement="__IwZQVoGEeS2WoXr83SnEA" elementType="__IwZRVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWA1oGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWBFoGEeS2WoXr83SnEA" actual="__IwZRVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwWBVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+        superClass="__IwVw1oGEeS2WoXr83SnEA" typedElement="__IwZVVoGEeS2WoXr83SnEA" elementType="__IwZWFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWBloGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWB1oGEeS2WoXr83SnEA" actual="__IwZWFoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwWCFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+        superClass="__IwVxloGEeS2WoXr83SnEA" typedElement="__IwZWloGEeS2WoXr83SnEA" elementType="__IwZXVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWCVoGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWCloGEeS2WoXr83SnEA" actual="__IwZXVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWC1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+        superClass="__IwWJloGEeS2WoXr83SnEA" typedElement="__IwXxVoGEeS2WoXr83SnEA" elementType="__ImkPFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWDFoGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWDVoGEeS2WoXr83SnEA" actual="__ImkPFoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWDloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+        superClass="__IwWKVoGEeS2WoXr83SnEA" typedElement="__IwXWloGEeS2WoXr83SnEA" elementType="__IwXOVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWD1oGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWEFoGEeS2WoXr83SnEA" actual="__IwXOVoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWEVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+        superClass="__IwWLFoGEeS2WoXr83SnEA" typedElement="__IwXj1oGEeS2WoXr83SnEA __IwXuloGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWEloGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWE1oGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWFFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+        superClass="__IwWNVoGEeS2WoXr83SnEA" typedElement="__IwYbloGEeS2WoXr83SnEA" elementType="__IwYaFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWFVoGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWFloGEeS2WoXr83SnEA" actual="__IwYaFoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWF1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+        superClass="__IwWOFoGEeS2WoXr83SnEA" typedElement="__IwWYloGEeS2WoXr83SnEA __IwYHVoGEeS2WoXr83SnEA __IwYMVoGEeS2WoXr83SnEA __IwYaloGEeS2WoXr83SnEA __IwYeFoGEeS2WoXr83SnEA __IwYfloGEeS2WoXr83SnEA __IwYvVoGEeS2WoXr83SnEA"
+        elementType="__IwYoVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWGFoGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWGVoGEeS2WoXr83SnEA" actual="__IwYoVoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWGloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+        superClass="__IwWSloGEeS2WoXr83SnEA" typedElement="__IwZkloGEeS2WoXr83SnEA" elementType="__IwZlloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWG1oGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWHFoGEeS2WoXr83SnEA" actual="__IwZlloGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWHVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+        superClass="__IwWTVoGEeS2WoXr83SnEA" typedElement="__IwZnVoGEeS2WoXr83SnEA" elementType="__IwZoFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWHloGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWH1oGEeS2WoXr83SnEA" actual="__IwZoFoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWIFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+        superClass="__IwWUFoGEeS2WoXr83SnEA" typedElement="__IwZoloGEeS2WoXr83SnEA" elementType="__IwZpVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWIVoGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWIloGEeS2WoXr83SnEA" actual="__IwZpVoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWI1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+        superClass="__IwWVloGEeS2WoXr83SnEA" typedElement="__IwZzVoGEeS2WoXr83SnEA __IwZ0FoGEeS2WoXr83SnEA __IwZ01oGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWJFoGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWJVoGEeS2WoXr83SnEA" actual="__IwZyVoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWJloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__ImkZloGEeS2WoXr83SnEA" elementType="__ImkPFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWJ1oGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWKFoGEeS2WoXr83SnEA" actual="__ImkPFoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWKVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__ImkeFoGEeS2WoXr83SnEA" elementType="__IwXOVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWKloGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWK1oGEeS2WoXr83SnEA" actual="__IwXOVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWLFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__Imkk1oGEeS2WoXr83SnEA" typedElement="__IwXvFoGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWLVoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWLloGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWL1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__ImkmVoGEeS2WoXr83SnEA" elementType="__IwYH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWMFoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWMVoGEeS2WoXr83SnEA" actual="__IwYH1oGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWMloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__ImkoloGEeS2WoXr83SnEA" typedElement="__IwY3VoGEeS2WoXr83SnEA __IwZhloGEeS2WoXr83SnEA __IwZzFoGEeS2WoXr83SnEA __IwZ0loGEeS2WoXr83SnEA"
+        elementType="__IwYKVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWM1oGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWNFoGEeS2WoXr83SnEA" actual="__IwYKVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWNVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__ImkpVoGEeS2WoXr83SnEA" elementType="__IwYaFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWNloGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWN1oGEeS2WoXr83SnEA" actual="__IwYaFoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWOFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__ImkqFoGEeS2WoXr83SnEA" elementType="__IwYoVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWOVoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWOloGEeS2WoXr83SnEA" actual="__IwYoVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWO1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__IwVKloGEeS2WoXr83SnEA" elementType="__IwY8VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWPFoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWPVoGEeS2WoXr83SnEA" actual="__IwY8VoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWPloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__IwVLVoGEeS2WoXr83SnEA" elementType="__IwZBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWP1oGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWQFoGEeS2WoXr83SnEA" actual="__IwZBFoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWQVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__IwVMFoGEeS2WoXr83SnEA" elementType="__IwZCVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWQloGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWQ1oGEeS2WoXr83SnEA" actual="__IwZCVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWRFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__IwVM1oGEeS2WoXr83SnEA" elementType="__IwY2loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWRVoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWRloGEeS2WoXr83SnEA" actual="__IwY2loGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWR1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__IwVRVoGEeS2WoXr83SnEA" elementType="__IwZL1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWSFoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWSVoGEeS2WoXr83SnEA" actual="__IwZL1oGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWSloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__IwVTloGEeS2WoXr83SnEA" elementType="__IwZlloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWS1oGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWTFoGEeS2WoXr83SnEA" actual="__IwZlloGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWTVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__IwVUVoGEeS2WoXr83SnEA" elementType="__IwZoFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWTloGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWT1oGEeS2WoXr83SnEA" actual="__IwZoFoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWUFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__IwVVFoGEeS2WoXr83SnEA" elementType="__IwZpVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWUVoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWUloGEeS2WoXr83SnEA" actual="__IwZpVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWU1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__IwVV1oGEeS2WoXr83SnEA" elementType="__IwZg1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWVFoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWVVoGEeS2WoXr83SnEA" actual="__IwZg1oGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWVloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+        superClass="__IwVWloGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwWV1oGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwWWFoGEeS2WoXr83SnEA" actual="__IwZyVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="__IwWWVoGEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+    <ownedComment xmi:id="__IwWWloGEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.&#xA;This sub clause contains all standard types defined within OCL, including all the operations defined on those types.&#xA;For each operation the signature and a description of the semantics is given.&#xA;Within the description, the reserved word &#x2018;result&#x2019; is used to refer to the value that results from evaluating the operation.&#xA;In several places, post conditions are used to describe properties of the result.&#xA;When there is more than one postcondition, all postconditions must be true.&#xA;A similar thing is true for multiple preconditions.&#xA;If these are used, the operation is only defined if all preconditions evaluate to oclText[true].&#xA;&#xA;heading:1[Introduction]&#xA;&#xA;The structure, syntax, and semantics of the OCL is defined in Clauses 8 (&#x201c;Abstract Syntax&#x201d;), 9 (&#x201c;Concrete Syntax&#x201d;),&#xA;and 10 (&#x201c;Semantics Described using UML&#x201d;).&#xA;This sub clause adds another part to the OCL definition: a library of predefined types and operations.&#xA;Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,&#xA;where the language definition and the standard libraries are both mandatory parts of the complete language definition.&#xA;&#xA;The OCL standard library defines a number of types.&#xA;It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.&#xA;These are familiar from many other languages. The second part of the standard library consists of the collection types.&#xA;They are Bag, Set, Sequence, and Collection where Collection is an abstract type.&#xA;Note that all types defined in the OCL standard library are instances of an abstract syntax class.&#xA;The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.&#xA;&#xA;Next to definitions of types the OCL standard library defines a number of template expressions.&#xA;Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.&#xA;For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.&#xA;&#xA;The Standard Library may be extended with new types, new operations and new iterators.&#xA;In particular new operations can be defined for collections.&#xA;&#xA;Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted&#xA;in an appropriate fashion.&#xA;A locale is defined as a concatenation of up to three character sequences separated by underscores,&#xA;with the first sequence identifying the language and the second sequence identifying the country.&#xA;The third sequence is empty but may encode an implementation-specific variant.&#xA;Trailing empty strings and separators may be omitted.&#xA;&#xA;The character sequences for languages are defined by ISO 639.&#xA;&#xA;The character sequences for countries are defined by ISO 3166.&#xA;&#xA;&#x2018;fr_CA&#x2019; therefore identifies the locale for the French language in the Canada country.&#xA;&#xA;Comparison of strings and consequently the collation order of Collection::sortedBy()&#xA;conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.&#xA;&#xA;The locale is &#x2018;en_us&#x2019; by default but may be configured by a property constraint on OclAny::oclLocale.&#xA;&#xA;The prevailing locale is defined by the prevailing value of oclLocale within the current environment;&#xA;it may therefore be changed temporarily by using a Let expression.&#xA;let oclLocale : String = &#x2018;fr_CA&#x2019; in aString.toUpperCase()&#xA;&#xA;heading:1[Iterators]&#xA;&#xA;This sub clause defines the standard OCL iterator expressions.&#xA;In the abstract syntax these are all instances of IteratorExp.&#xA;These iterator expressions always have a collection expression as their source,&#xA;as is defined in the well-formedness rules in Clause 8 (&#x201c;Abstract Syntax&#x201d;).&#xA;The defined iterator expressions are shown per source collection type.&#xA;The semantics of each iterator expression is defined through a mapping from the iterator to the &#x2018;iterate&#x2019; construct.&#xA;This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.&#xA;&#xA;In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,&#xA;and the righthand side of the equals sign is the equivalent as an IterateExp.&#xA;The names source, body, and iterator refer to the role names in the abstract syntax:&#xA;&#xA;source&#x9;The source expression of the IteratorExp.&#xA;&#xA;body&#x9;The body expression of the IteratorExp.&#xA;&#xA;iterator&#x9;The iterator variable of the IteratorExp.&#xA;&#xA;result&#x9;The result variable of the IterateExp.&#xA;&#xA;heading:2[Extending the Standard Library with Iterator Expressions]&#xA;&#xA;It is possible to add new iterator expressions in the standard library.&#xA;If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,&#xA;in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__IwWW1oGEeS2WoXr83SnEA" name="Boolean" superClass="__IwYKVoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__IwWXFoGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWXVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__IwWXloGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWX1oGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWYFoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__IwWYVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWYloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+        <ownedComment xmi:id="__IwWY1oGEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWZFoGEeS2WoXr83SnEA" name="and" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isInvalidating="true" isValidating="true" precedence="__IwZ4FoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWZVoGEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[true]."/>
+        <bodyExpression xmi:id="__IwWZloGEeS2WoXr83SnEA" type="__IwWW1oGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = false then false
+		        else self
+		        endif endif
+		      else if self = false then false
+		      else if b.oclIsInvalid() then b
+		      else if b = false then false
+		      else if self = null then null
+		      else if b = null then null
+		      else true
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__IwWZ1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWaFoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isInvalidating="true" isValidating="true" precedence="__IwZ41oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWaVoGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="__IwWaloGEeS2WoXr83SnEA" type="__IwWW1oGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = true then true
+		        else self
+		        endif endif
+		      else if self = false then true
+		      else if b.oclIsInvalid() then b
+		      else if b = true then true
+		      else if self = null then null
+		      else if b = null then b
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__IwWa1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWbFoGEeS2WoXr83SnEA" name="not" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+          precedence="__IwZ21oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWbVoGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].&#xA;oclText[false] if oclText[self] is oclText[true].&#xA;oclText[null] if oclText[self] is oclText[null].&#xA;Otherwise oclText[invalid]."/>
+        <bodyExpression xmi:id="__IwWbloGEeS2WoXr83SnEA" type="__IwWW1oGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if self = null then null
+		      else self = false
+		      endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWb1oGEeS2WoXr83SnEA" name="or" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+          isInvalidating="true" isValidating="true" precedence="__IwZ4VoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWcFoGEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="__IwWcVoGEeS2WoXr83SnEA" type="__IwWW1oGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+			    else if b = true then true
+		        else self
+		        endif endif
+		      else if self = true then true
+			  else if b.oclIsInvalid() then b
+			  else if b = true then true
+			  else if self = null then null
+			  else if b = null then null
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__IwWcloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWc1oGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__IwWdFoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWdVoGEeS2WoXr83SnEA" name="xor" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+          precedence="__IwZ4loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWdloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].&#xA;oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null]."/>
+        <bodyExpression xmi:id="__IwWd1oGEeS2WoXr83SnEA" type="__IwWW1oGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if b.oclIsInvalid() then b
+		      else if self = null then null
+		      else if b = null then null
+		      else self &lt;> b
+		      endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__IwWeFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWXFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWX1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWZFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__IwWZloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwWZ1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWaFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__IwWaloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwWa1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWbFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__IwWbloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWb1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__IwWcVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwWcloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWdVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__IwWd1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwWeFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWqloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWrVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWsFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWs1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWtloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWuVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW0VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW1FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW11oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW2VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW21oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW3loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW7FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW71oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW-FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXBVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXFFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXLFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXOloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXPFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXg1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXhloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXlFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXl1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXqFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXq1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXvVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXw1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwX7loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwX8loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwX9loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwX-loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwX_loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwYCVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYK1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYLloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYOVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYPFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYPloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYRFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYRloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYTFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYWVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYXFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYX1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYYloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYcloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYdVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYeloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYe1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYfFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYfVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYhFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYhVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYiloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYj1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYkVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYkloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYmVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYm1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYnVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYrVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYr1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYs1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYuFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYuloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYv1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYwFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYwVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYwloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYw1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYxFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYxVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYxloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwY3loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwY4FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwZMFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwZMloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwZh1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwZiVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__IwavFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__Iwa9VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__Iwa-VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__Iwa_VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__IwbHloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__IwbIloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__IwWeVoGEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="__ImkYloGEeS2WoXr83SnEA __IwVm1oGEeS2WoXr83SnEA __IwV7FoGEeS2WoXr83SnEA"
+        superClass="__IwWm1oGEeS2WoXr83SnEA" typedElement="__IwWeloGEeS2WoXr83SnEA __IwWfVoGEeS2WoXr83SnEA __IwWgFoGEeS2WoXr83SnEA __IwWgloGEeS2WoXr83SnEA __IwWiFoGEeS2WoXr83SnEA __IwWiloGEeS2WoXr83SnEA __IwWjVoGEeS2WoXr83SnEA __IwWj1oGEeS2WoXr83SnEA __IwWkFoGEeS2WoXr83SnEA __IwWk1oGEeS2WoXr83SnEA __IwWlloGEeS2WoXr83SnEA __IwWmFoGEeS2WoXr83SnEA __IwWvloGEeS2WoXr83SnEA __IwWwVoGEeS2WoXr83SnEA __IwWyVoGEeS2WoXr83SnEA __IwW41oGEeS2WoXr83SnEA __IwW5loGEeS2WoXr83SnEA __IwW8loGEeS2WoXr83SnEA __IwW9VoGEeS2WoXr83SnEA __IwXA1oGEeS2WoXr83SnEA __IwXEloGEeS2WoXr83SnEA __IwXE1oGEeS2WoXr83SnEA __IwXFloGEeS2WoXr83SnEA __IwXf1oGEeS2WoXr83SnEA __IwXgVoGEeS2WoXr83SnEA __IwXkVoGEeS2WoXr83SnEA __IwX1VoGEeS2WoXr83SnEA __IwYZVoGEeS2WoXr83SnEA __IwYz1oGEeS2WoXr83SnEA __IwY0loGEeS2WoXr83SnEA __IwY91oGEeS2WoXr83SnEA __IwZDVoGEeS2WoXr83SnEA __IwZDloGEeS2WoXr83SnEA __IwZS1oGEeS2WoXr83SnEA __IwZYVoGEeS2WoXr83SnEA __IwZYloGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__IwWeloGEeS2WoXr83SnEA" name="*" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="__IwZ3FoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWe1oGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+        <ownedParameter xmi:id="__IwWfFoGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWfVoGEeS2WoXr83SnEA" name="+" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="__IwZ3VoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWfloGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+        <ownedParameter xmi:id="__IwWf1oGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWgFoGEeS2WoXr83SnEA" name="-" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="__IwZ21oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWgVoGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWgloGEeS2WoXr83SnEA" name="-" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="__IwZ3VoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWg1oGEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+        <ownedParameter xmi:id="__IwWhFoGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWhVoGEeS2WoXr83SnEA" name="/" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="__IwZ3FoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWhloGEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.&#xA;Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="__IwWh1oGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWiFoGEeS2WoXr83SnEA" name="abs" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="__IwWiVoGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWiloGEeS2WoXr83SnEA" name="compareTo" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="__IwWi1oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="__IwWjFoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWjVoGEeS2WoXr83SnEA" name="div" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+        <ownedComment xmi:id="__IwWjloGEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+        <ownedParameter xmi:id="__IwWj1oGEeS2WoXr83SnEA" name="i" type="__IwWeVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWkFoGEeS2WoXr83SnEA" name="max" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="__IwWkVoGEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+        <ownedParameter xmi:id="__IwWkloGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWk1oGEeS2WoXr83SnEA" name="min" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="__IwWlFoGEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+        <ownedParameter xmi:id="__IwWlVoGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWlloGEeS2WoXr83SnEA" name="mod" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+        <ownedComment xmi:id="__IwWl1oGEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+        <ownedParameter xmi:id="__IwWmFoGEeS2WoXr83SnEA" name="i" type="__IwWeVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWmVoGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__IwWmloGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__IwWm1oGEeS2WoXr83SnEA" name="Real" superClass="__IwYV1oGEeS2WoXr83SnEA __IwYpFoGEeS2WoXr83SnEA"
+        typedElement="__IwWhVoGEeS2WoXr83SnEA __IwWnFoGEeS2WoXr83SnEA __IwWn1oGEeS2WoXr83SnEA __IwWoloGEeS2WoXr83SnEA __IwWpFoGEeS2WoXr83SnEA __IwWp1oGEeS2WoXr83SnEA __IwWvFoGEeS2WoXr83SnEA __IwWw1oGEeS2WoXr83SnEA __IwWxloGEeS2WoXr83SnEA __IwXHFoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__IwWnFoGEeS2WoXr83SnEA" name="*" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="__IwZ3FoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWnVoGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+        <ownedParameter xmi:id="__IwWnloGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWn1oGEeS2WoXr83SnEA" name="+" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="__IwZ3VoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWoFoGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+        <ownedParameter xmi:id="__IwWoVoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWoloGEeS2WoXr83SnEA" name="-" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="__IwZ21oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWo1oGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWpFoGEeS2WoXr83SnEA" name="-" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="__IwZ3VoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWpVoGEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+        <ownedParameter xmi:id="__IwWploGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWp1oGEeS2WoXr83SnEA" name="/" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="__IwZ3FoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWqFoGEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="__IwWqVoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWqloGEeS2WoXr83SnEA" name="&lt;" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWq1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+        <ownedParameter xmi:id="__IwWrFoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWrVoGEeS2WoXr83SnEA" name="&lt;=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWrloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+        <ownedParameter xmi:id="__IwWr1oGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWsFoGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWsVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__IwWsloGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWs1oGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWtFoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__IwWtVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWtloGEeS2WoXr83SnEA" name=">" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWt1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+        <ownedParameter xmi:id="__IwWuFoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWuVoGEeS2WoXr83SnEA" name=">=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWuloGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+        <ownedParameter xmi:id="__IwWu1oGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWvFoGEeS2WoXr83SnEA" name="abs" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="__IwWvVoGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWvloGEeS2WoXr83SnEA" name="compareTo" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="__IwWv1oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="__IwWwFoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWwVoGEeS2WoXr83SnEA" name="floor" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+        <ownedComment xmi:id="__IwWwloGEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWw1oGEeS2WoXr83SnEA" name="max" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="__IwWxFoGEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+        <ownedParameter xmi:id="__IwWxVoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWxloGEeS2WoXr83SnEA" name="min" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="__IwWx1oGEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+        <ownedParameter xmi:id="__IwWyFoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWyVoGEeS2WoXr83SnEA" name="round" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+        <ownedComment xmi:id="__IwWyloGEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwWy1oGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__IwWzFoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__IwWzVoGEeS2WoXr83SnEA" name="String" templateParameterSubstitution="__ImkZVoGEeS2WoXr83SnEA __IwVnloGEeS2WoXr83SnEA __IwV71oGEeS2WoXr83SnEA"
+        superClass="__IwYV1oGEeS2WoXr83SnEA __IwYpFoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__IwWzloGEeS2WoXr83SnEA" name="+" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+          precedence="__IwZ3VoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwWz1oGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="__IwW0FoGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW0VoGEeS2WoXr83SnEA" name="&lt;" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwW0loGEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__IwW01oGEeS2WoXr83SnEA" name="s" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW1FoGEeS2WoXr83SnEA" name="&lt;=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwW1VoGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__IwW1loGEeS2WoXr83SnEA" name="s" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW11oGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwW2FoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW2VoGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwW2loGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW21oGEeS2WoXr83SnEA" name=">" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwW3FoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__IwW3VoGEeS2WoXr83SnEA" name="s" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW3loGEeS2WoXr83SnEA" name=">=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwW31oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__IwW4FoGEeS2WoXr83SnEA" name="s" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW4VoGEeS2WoXr83SnEA" name="at" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwW4loGEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+        <ownedParameter xmi:id="__IwW41oGEeS2WoXr83SnEA" name="i" type="__IwWeVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW5FoGEeS2WoXr83SnEA" name="characters" type="__IwV7VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+        <ownedComment xmi:id="__IwW5VoGEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW5loGEeS2WoXr83SnEA" name="compareTo" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+        <ownedComment xmi:id="__IwW51oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="__IwW6FoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW6VoGEeS2WoXr83SnEA" name="concat" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+        <ownedComment xmi:id="__IwW6loGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="__IwW61oGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW7FoGEeS2WoXr83SnEA" name="endsWith" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+        <ownedComment xmi:id="__IwW7VoGEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.&#xA;Every string ends with the empty string."/>
+        <ownedParameter xmi:id="__IwW7loGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW71oGEeS2WoXr83SnEA" name="equalsIgnoreCase" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+        <ownedComment xmi:id="__IwW8FoGEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+        <ownedParameter xmi:id="__IwW8VoGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW8loGEeS2WoXr83SnEA" name="indexOf" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+        <ownedComment xmi:id="__IwW81oGEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="__IwW9FoGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW9VoGEeS2WoXr83SnEA" name="lastIndexOf" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+        <ownedComment xmi:id="__IwW9loGEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="__IwW91oGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW-FoGEeS2WoXr83SnEA" name="matches" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+        <ownedComment xmi:id="__IwW-VoGEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+        <ownedParameter xmi:id="__IwW-loGEeS2WoXr83SnEA" name="regex" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW-1oGEeS2WoXr83SnEA" name="replaceAll" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwW_FoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+        <ownedParameter xmi:id="__IwW_VoGEeS2WoXr83SnEA" name="regex" type="__IwWzVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__IwW_loGEeS2WoXr83SnEA" name="replacement" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwW_1oGEeS2WoXr83SnEA" name="replaceFirst" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwXAFoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+        <ownedParameter xmi:id="__IwXAVoGEeS2WoXr83SnEA" name="regex" type="__IwWzVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__IwXAloGEeS2WoXr83SnEA" name="replacement" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXA1oGEeS2WoXr83SnEA" name="size" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+        <ownedComment xmi:id="__IwXBFoGEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXBVoGEeS2WoXr83SnEA" name="startsWith" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+        <ownedComment xmi:id="__IwXBloGEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.&#xA;Every string starts with the empty string."/>
+        <ownedParameter xmi:id="__IwXB1oGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXCFoGEeS2WoXr83SnEA" name="substituteAll" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+        <ownedComment xmi:id="__IwXCVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+        <ownedParameter xmi:id="__IwXCloGEeS2WoXr83SnEA" name="oldSubstring" type="__IwWzVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__IwXC1oGEeS2WoXr83SnEA" name="newSubstring" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXDFoGEeS2WoXr83SnEA" name="substituteFirst" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+        <ownedComment xmi:id="__IwXDVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.&#xA;Returns invalid if there is no first occurrence."/>
+        <ownedParameter xmi:id="__IwXDloGEeS2WoXr83SnEA" name="oldSubstring" type="__IwWzVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__IwXD1oGEeS2WoXr83SnEA" name="newSubstring" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXEFoGEeS2WoXr83SnEA" name="substring" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwXEVoGEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+        <ownedParameter xmi:id="__IwXEloGEeS2WoXr83SnEA" name="lower" type="__IwWeVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__IwXE1oGEeS2WoXr83SnEA" name="upper" type="__IwWeVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXFFoGEeS2WoXr83SnEA" name="toBoolean" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwXFVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXFloGEeS2WoXr83SnEA" name="toInteger" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwXF1oGEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXGFoGEeS2WoXr83SnEA" name="toLower" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="__IwXGVoGEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXGloGEeS2WoXr83SnEA" name="toLowerCase" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="__IwXG1oGEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXHFoGEeS2WoXr83SnEA" name="toReal" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwXHVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXHloGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__IwXH1oGEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXIFoGEeS2WoXr83SnEA" name="toUpper" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="__IwXIVoGEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXIloGEeS2WoXr83SnEA" name="toUpperCase" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="__IwXI1oGEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXJFoGEeS2WoXr83SnEA" name="tokenize" type="__IwV7VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="__IwXJVoGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.&#xA;The delimiters are omitted from the return."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXJloGEeS2WoXr83SnEA" name="tokenize" type="__IwV7VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="__IwXJ1oGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+        <ownedParameter xmi:id="__IwXKFoGEeS2WoXr83SnEA" name="delimiters" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXKVoGEeS2WoXr83SnEA" name="tokenize" type="__IwV7VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="__IwXKloGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is&#xA;true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+        <ownedParameter xmi:id="__IwXK1oGEeS2WoXr83SnEA" name="delimiters" type="__IwWzVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__IwXLFoGEeS2WoXr83SnEA" name="returnDelimiters" type="__IwWW1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXLVoGEeS2WoXr83SnEA" name="trim" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+        <ownedComment xmi:id="__IwXLloGEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWc1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWmVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWy1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWzloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW0FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW4VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW6VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW61oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW7loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW8VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW9FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW91oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW-loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW-1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW_VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW_loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW_1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXAVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXAloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXB1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXCFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXCloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXC1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXDFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXDloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXD1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXEFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXGFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXGloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXHloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXIFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXIloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXKFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXK1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXLVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYUloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYVVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYk1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYx1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__IwbQFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__IwbRVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__IwbSloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__IwbWloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwZ51oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwZ7VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwZ8FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwZ91oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwZ-1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwaAloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwaA1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwamloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwan1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwaoFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwaqFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwasVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwatFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwaxFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa11oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa4VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa5FoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__IwXL1oGEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="__IwWeVoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__IwXMFoGEeS2WoXr83SnEA" name="oclAsType" type="__IwXNFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+        <ownedComment xmi:id="__IwXMVoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to&#xA;Real or Integer, but the e[unlimited] value may not.&#xA;Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+        <ownedTemplateSignature xmi:id="__IwXMloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXM1oGEeS2WoXr83SnEA" parameteredElement="__IwXNFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXNFoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwXM1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVX1oGEeS2WoXr83SnEA" typedElement="__IwXMFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwXNVoGEeS2WoXr83SnEA" name="type" type="__IwVXVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__IwXNloGEeS2WoXr83SnEA" name="Bag" superClass="__ImkeFoGEeS2WoXr83SnEA" typedElement="__IwXP1oGEeS2WoXr83SnEA __IwXQloGEeS2WoXr83SnEA __IwXSloGEeS2WoXr83SnEA __IwXTVoGEeS2WoXr83SnEA __IwXa1oGEeS2WoXr83SnEA __IwXb1oGEeS2WoXr83SnEA"
+        elementType="__IwXOVoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__IwXN1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXOFoGEeS2WoXr83SnEA" parameteredElement="__IwXOVoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXOVoGEeS2WoXr83SnEA" name="T" templateParameter="__IwXOFoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__ImkeloGEeS2WoXr83SnEA __IwVoVoGEeS2WoXr83SnEA __IwV8loGEeS2WoXr83SnEA __IwWEFoGEeS2WoXr83SnEA __IwWK1oGEeS2WoXr83SnEA"
+              typedElement="__IwXTFoGEeS2WoXr83SnEA __IwXXVoGEeS2WoXr83SnEA __IwXZFoGEeS2WoXr83SnEA __IwXaloGEeS2WoXr83SnEA __IwXbloGEeS2WoXr83SnEA __IwXcloGEeS2WoXr83SnEA __IwXdloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaYloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwajFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkQVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkRFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkR1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkSloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkTVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkUFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkU1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkVloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkWVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkXFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkX1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbX1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaCloGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="orphanage.xml#__IwaYVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__Iwai1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkQFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkQ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkRloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkSVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkTFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkT1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkUloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkVVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkWFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkW1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkXloGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbXloGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaCVoGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__IwXOloGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwXO1oGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXPFoGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwXPVoGEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+        <ownedParameter xmi:id="__IwXPloGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXP1oGEeS2WoXr83SnEA" name="excluding" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__IwXQFoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+        <ownedParameter xmi:id="__IwXQVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXQloGEeS2WoXr83SnEA" name="excludingAll" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__IwXQ1oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__IwXRFoGEeS2WoXr83SnEA" name="objects" type="__ImkoloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXRVoGEeS2WoXr83SnEA" name="flatten" type="__ImkRVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__IwXRloGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].&#xA;If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="__IwXR1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXSFoGEeS2WoXr83SnEA" parameteredElement="__IwXSVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXSVoGEeS2WoXr83SnEA" name="T2" templateParameter="__IwXSFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkR1oGEeS2WoXr83SnEA __ImkcVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXSloGEeS2WoXr83SnEA" name="including" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__IwXS1oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="__IwXTFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXTVoGEeS2WoXr83SnEA" name="includingAll" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="__IwXTloGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="__IwXT1oGEeS2WoXr83SnEA" name="objects" type="__ImkeFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXUFoGEeS2WoXr83SnEA" name="selectByKind" type="__ImkSFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__IwXUVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXUloGEeS2WoXr83SnEA" parameteredElement="__IwXU1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXU1oGEeS2WoXr83SnEA" name="TT" templateParameter="__IwXUloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkSloGEeS2WoXr83SnEA __ImkdFoGEeS2WoXr83SnEA __IwVYloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwXVFoGEeS2WoXr83SnEA" name="type" type="__IwVYFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXVVoGEeS2WoXr83SnEA" name="selectByType" type="__ImkS1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__IwXVloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXV1oGEeS2WoXr83SnEA" parameteredElement="__IwXWFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXWFoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwXV1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkTVoGEeS2WoXr83SnEA __Imkd1oGEeS2WoXr83SnEA __IwVZVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwXWVoGEeS2WoXr83SnEA" name="type" type="__IwVY1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXWloGEeS2WoXr83SnEA" name="closure" type="__IwWDloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__IwXW1oGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__IwXXFoGEeS2WoXr83SnEA" name="lambda" type="__ImkJloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwXXVoGEeS2WoXr83SnEA" name="i" type="__IwXOVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXXloGEeS2WoXr83SnEA" name="collectNested" type="__ImkP1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__IwXX1oGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="__IwXYFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXYVoGEeS2WoXr83SnEA" parameteredElement="__IwXYloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXYloGEeS2WoXr83SnEA" name="V" templateParameter="__IwXYVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkQVoGEeS2WoXr83SnEA __Imka1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwXY1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkI1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwXZFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXZVoGEeS2WoXr83SnEA" name="collect" type="__ImkQloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__IwXZloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXZ1oGEeS2WoXr83SnEA" parameteredElement="__IwXaFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXaFoGEeS2WoXr83SnEA" name="V" templateParameter="__IwXZ1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkRFoGEeS2WoXr83SnEA __ImkbloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwXaVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkJFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwXaloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXa1oGEeS2WoXr83SnEA" name="reject" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__IwXbFoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].&#xA;&#xA;oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+        <ownedParameter xmi:id="__IwXbVoGEeS2WoXr83SnEA" name="lambda" type="__ImkIloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwXbloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXb1oGEeS2WoXr83SnEA" name="select" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__IwXcFoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].&#xA;&#xA;oclCode[self->select(iterator | body) =&#xA;self->iterate(iterator; result : Bag(T) = Bag{} |&#xA;if body then result->including(iterator)&#xA;else result&#xA;endif)]"/>
+        <ownedParameter xmi:id="__IwXcVoGEeS2WoXr83SnEA" name="lambda" type="__ImkIloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwXcloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXc1oGEeS2WoXr83SnEA" name="sortedBy" type="__IwV8FoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__IwXdFoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="__IwXdVoGEeS2WoXr83SnEA" name="lambda" type="__ImkJVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwXdloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwXd1oGEeS2WoXr83SnEA" name="Class" superClass="__IwYKVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwXeFoGEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="__ImkU1oGEeS2WoXr83SnEA __ImkmFoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXnVoGEeS2WoXr83SnEA __IwXoFoGEeS2WoXr83SnEA __IwXsVoGEeS2WoXr83SnEA __IwXtFoGEeS2WoXr83SnEA __IwXtloGEeS2WoXr83SnEA __IwXuVoGEeS2WoXr83SnEA __IwX21oGEeS2WoXr83SnEA __IwYDVoGEeS2WoXr83SnEA __IwYEVoGEeS2WoXr83SnEA"
+        elementType="__IwXe1oGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__IwXeVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXeloGEeS2WoXr83SnEA" parameteredElement="__IwXe1oGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXe1oGEeS2WoXr83SnEA" name="T" templateParameter="__IwXeloGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__ImkUFoGEeS2WoXr83SnEA __ImklVoGEeS2WoXr83SnEA __IwVpFoGEeS2WoXr83SnEA __IwV1FoGEeS2WoXr83SnEA __IwV9VoGEeS2WoXr83SnEA __IwWE1oGEeS2WoXr83SnEA __IwWLloGEeS2WoXr83SnEA"
+              typedElement="__ImkPVoGEeS2WoXr83SnEA __IwXfVoGEeS2WoXr83SnEA __IwXs1oGEeS2WoXr83SnEA __IwXv1oGEeS2WoXr83SnEA __IwXwVoGEeS2WoXr83SnEA __IwX11oGEeS2WoXr83SnEA __IwX3FoGEeS2WoXr83SnEA __IwX31oGEeS2WoXr83SnEA __IwX5loGEeS2WoXr83SnEA __IwX7VoGEeS2WoXr83SnEA __IwX8FoGEeS2WoXr83SnEA __IwX8VoGEeS2WoXr83SnEA __IwX9VoGEeS2WoXr83SnEA __IwX-FoGEeS2WoXr83SnEA __IwX-VoGEeS2WoXr83SnEA __IwX_VoGEeS2WoXr83SnEA __IwYAVoGEeS2WoXr83SnEA __IwYCFoGEeS2WoXr83SnEA __IwYDFoGEeS2WoXr83SnEA __IwYEFoGEeS2WoXr83SnEA __IwYFFoGEeS2WoXr83SnEA __IwYGFoGEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="__IwXfFoGEeS2WoXr83SnEA" name="Collection" type="__ImkUVoGEeS2WoXr83SnEA" implicit="true" opposite="__IwXfVoGEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+          <templateParameterSubstitution href="orphanage.xml#__IwaNVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaPloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaR1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaUFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaWVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaZVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwabloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__Iwad1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwagFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaiVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkYloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkZVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkaFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__Imka1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkbloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkcVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkdFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__Imkd1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkeloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkfVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkgFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__Imkg1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkhloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkiVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkjFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__Imkj1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkkloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImklVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkmFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__Imkm1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImknloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkoVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__ImkpFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__Imkp1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVIFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVI1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVJloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVKVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVLFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVL1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVMloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVNVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVOFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVO1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVPloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVQVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVRFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVR1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVSloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVTVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVUFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVU1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVVloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVWVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwVXFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbYloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbZVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbaFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__Iwba1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbbloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaDVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaEFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaE1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaFloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaGVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqToStm.xml#__IwbLVoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="orphanage.xml#__IwaNFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaPVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaRloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaT1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaWFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaZFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwabVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwadloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__Iwaf1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaiFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkYVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkZFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkZ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkaloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkbVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkcFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__Imkc1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkdloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkeVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkfFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__Imkf1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkgloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkhVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkiFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__Imki1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkjloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkkVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImklFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__Imkl1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkmloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImknVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkoFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__Imko1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkploGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__ImkqVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVIloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVJVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVKFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVK1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVLloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVMVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVNFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVN1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVOloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVPVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVQFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVQ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVRloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVSVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVTFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVT1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVUloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVVVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVWFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwVW1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbYVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbZFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbZ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbaloGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbbVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaDFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaD1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaEloGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaFVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaGFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqToStm.xml#__IwbLFoGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="__IwXfVoGEeS2WoXr83SnEA" isStatic="true" name="elementType" type="__IwXe1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+          opposite="__IwXfFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwXfloGEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwXf1oGEeS2WoXr83SnEA" isStatic="true" name="lower" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+        <ownedComment xmi:id="__IwXgFoGEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwXgVoGEeS2WoXr83SnEA" isStatic="true" name="upper" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+        <ownedComment xmi:id="__IwXgloGEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="__IwXg1oGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwXhFoGEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+        <ownedParameter xmi:id="__IwXhVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXhloGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwXh1oGEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,&#xA;in the case of an ordered collection type."/>
+        <ownedParameter xmi:id="__IwXiFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXiVoGEeS2WoXr83SnEA" name="asBag" type="__ImkTloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+        <ownedComment xmi:id="__IwXiloGEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXi1oGEeS2WoXr83SnEA" name="asOrderedSet" type="__IwV0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+        <ownedComment xmi:id="__IwXjFoGEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,&#xA;in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXjVoGEeS2WoXr83SnEA" name="asSequence" type="__IwV81oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+        <ownedComment xmi:id="__IwXjloGEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXj1oGEeS2WoXr83SnEA" name="asSet" type="__IwWEVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+        <ownedComment xmi:id="__IwXkFoGEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXkVoGEeS2WoXr83SnEA" name="count" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+        <ownedComment xmi:id="__IwXkloGEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+        <ownedParameter xmi:id="__IwXk1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXlFoGEeS2WoXr83SnEA" name="excludes" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+        <ownedComment xmi:id="__IwXlVoGEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__IwXlloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXl1oGEeS2WoXr83SnEA" name="excludesAll" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+        <ownedComment xmi:id="__IwXmFoGEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="__IwXmVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXmloGEeS2WoXr83SnEA" parameteredElement="__IwXm1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXm1oGEeS2WoXr83SnEA" name="T2" templateParameter="__IwXmloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__Imkg1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwXnFoGEeS2WoXr83SnEA" name="c2" type="__ImkgVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXnVoGEeS2WoXr83SnEA" name="excluding" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__IwXnloGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+        <ownedParameter xmi:id="__IwXn1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXoFoGEeS2WoXr83SnEA" name="excludingAll" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__IwXoVoGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__IwXoloGEeS2WoXr83SnEA" name="objects" type="__ImkoloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXo1oGEeS2WoXr83SnEA" name="flatten" type="__ImkhFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__IwXpFoGEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].&#xA;If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="__IwXpVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXploGEeS2WoXr83SnEA" parameteredElement="__IwXp1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXp1oGEeS2WoXr83SnEA" name="T2" templateParameter="__IwXploGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkhloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXqFoGEeS2WoXr83SnEA" name="includes" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+        <ownedComment xmi:id="__IwXqVoGEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__IwXqloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXq1oGEeS2WoXr83SnEA" name="includesAll" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+        <ownedComment xmi:id="__IwXrFoGEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="__IwXrVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXrloGEeS2WoXr83SnEA" parameteredElement="__IwXr1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXr1oGEeS2WoXr83SnEA" name="T2" templateParameter="__IwXrloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkiVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwXsFoGEeS2WoXr83SnEA" name="c2" type="__Imkh1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXsVoGEeS2WoXr83SnEA" name="including" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__IwXsloGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="__IwXs1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXtFoGEeS2WoXr83SnEA" name="includingAll" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="__IwXtVoGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="__IwXtloGEeS2WoXr83SnEA" name="objects" type="__IwXeFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXt1oGEeS2WoXr83SnEA" name="intersection" type="__ImkTloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="__IwXuFoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+        <ownedParameter xmi:id="__IwXuVoGEeS2WoXr83SnEA" name="c" type="__IwXeFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXuloGEeS2WoXr83SnEA" name="intersection" type="__IwWEVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="__IwXu1oGEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+        <ownedParameter xmi:id="__IwXvFoGEeS2WoXr83SnEA" name="u" type="__IwWLFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXvVoGEeS2WoXr83SnEA" name="isEmpty" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+        <ownedComment xmi:id="__IwXvloGEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?&#xA;&#xA;Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXv1oGEeS2WoXr83SnEA" name="max" type="__IwXe1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+        <ownedComment xmi:id="__IwXwFoGEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the max operation.&#xA;The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXwVoGEeS2WoXr83SnEA" name="min" type="__IwXe1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+        <ownedComment xmi:id="__IwXwloGEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the min operation.&#xA;The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXw1oGEeS2WoXr83SnEA" name="notEmpty" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+        <ownedComment xmi:id="__IwXxFoGEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?&#xA;&#xA;oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXxVoGEeS2WoXr83SnEA" name="product" type="__IwWC1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+        <ownedComment xmi:id="__IwXxloGEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+        <ownedTemplateSignature xmi:id="__IwXx1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXyFoGEeS2WoXr83SnEA" parameteredElement="__IwXyVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXyVoGEeS2WoXr83SnEA" name="T2" templateParameter="__IwXyFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkjFoGEeS2WoXr83SnEA" typedElement="__ImkPloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwXyloGEeS2WoXr83SnEA" name="c2" type="__ImkiloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwXy1oGEeS2WoXr83SnEA" name="selectByKind" type="__ImkjVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__IwXzFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXzVoGEeS2WoXr83SnEA" parameteredElement="__IwXzloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXzloGEeS2WoXr83SnEA" name="TT" templateParameter="__IwXzVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__Imkj1oGEeS2WoXr83SnEA __IwVaFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwXz1oGEeS2WoXr83SnEA" name="type" type="__IwVZloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwX0FoGEeS2WoXr83SnEA" name="selectByType" type="__ImkkFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__IwX0VoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwX0loGEeS2WoXr83SnEA" parameteredElement="__IwX01oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwX01oGEeS2WoXr83SnEA" name="TT" templateParameter="__IwX0loGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkkloGEeS2WoXr83SnEA __IwVa1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwX1FoGEeS2WoXr83SnEA" name="type" type="__IwVaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwX1VoGEeS2WoXr83SnEA" name="size" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+        <ownedComment xmi:id="__IwX1loGEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwX11oGEeS2WoXr83SnEA" name="sum" type="__IwXe1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+        <ownedComment xmi:id="__IwX2FoGEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].&#xA;Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.&#xA;The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).&#xA;UnlimitedNatural, Integer and Real fulfill this condition.&#xA;&#xA;If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,&#xA;which may result in unpredictable results during evaluation.&#xA;If an implementation is able to detect a lack of associativity or commutativity,&#xA;the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwX2VoGEeS2WoXr83SnEA" name="union" type="__ImkTloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="__IwX2loGEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+        <ownedParameter xmi:id="__IwX21oGEeS2WoXr83SnEA" name="c" type="__IwXeFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX3FoGEeS2WoXr83SnEA" name="any" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+        <ownedComment xmi:id="__IwX3VoGEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].&#xA;If there is more than one element for which body is oclText[true], one of them is returned.&#xA;There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+        <ownedParameter xmi:id="__IwX3loGEeS2WoXr83SnEA" name="lambda" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwX31oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX4FoGEeS2WoXr83SnEA" name="collectNested" type="__Imke1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__IwX4VoGEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+        <ownedTemplateSignature xmi:id="__IwX4loGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwX41oGEeS2WoXr83SnEA" parameteredElement="__IwX5FoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwX5FoGEeS2WoXr83SnEA" name="V" templateParameter="__IwX41oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkfVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwX5VoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkKFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwX5loGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX51oGEeS2WoXr83SnEA" name="collect" type="__ImkfloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedComment xmi:id="__IwX6FoGEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.&#xA;The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.&#xA;collectNested is defined individually for each subclass of CollectionType."/>
+        <ownedTemplateSignature xmi:id="__IwX6VoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwX6loGEeS2WoXr83SnEA" parameteredElement="__IwX61oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwX61oGEeS2WoXr83SnEA" name="V" templateParameter="__IwX6loGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkgFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwX7FoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkKVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwX7VoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX7loGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedParameter xmi:id="__IwX71oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwX8FoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwX8VoGEeS2WoXr83SnEA" name="j" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX8loGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedComment xmi:id="__IwX81oGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+        <ownedParameter xmi:id="__IwX9FoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwX9VoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX9loGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedParameter xmi:id="__IwX91oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwX-FoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwX-VoGEeS2WoXr83SnEA" name="j" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX-loGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedComment xmi:id="__IwX-1oGEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="__IwX_FoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwX_VoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX_loGEeS2WoXr83SnEA" name="isUnique" type="__IwWW1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+        <ownedComment xmi:id="__IwX_1oGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="__IwYAFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkK1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwYAVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwYAloGEeS2WoXr83SnEA" name="iterate" isRequired="false" type="__IwYBVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+        <ownedTemplateSignature xmi:id="__IwYA1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYBFoGEeS2WoXr83SnEA" parameteredElement="__IwYBVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYBVoGEeS2WoXr83SnEA" name="Tacc" templateParameter="__IwYBFoGEeS2WoXr83SnEA"
+                typedElement="__IwYAloGEeS2WoXr83SnEA __IwYB1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwYBloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkKloGEeS2WoXr83SnEA"/>
+        <ownedAccumulator xmi:id="__IwYB1oGEeS2WoXr83SnEA" name="acc" isRequired="false" type="__IwYBVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwYCFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwYCVoGEeS2WoXr83SnEA" name="one" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+        <ownedComment xmi:id="__IwYCloGEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="__IwYC1oGEeS2WoXr83SnEA" name="lambda" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwYDFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwYDVoGEeS2WoXr83SnEA" name="reject" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__IwYDloGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__IwYD1oGEeS2WoXr83SnEA" name="lambda" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwYEFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwYEVoGEeS2WoXr83SnEA" name="select" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__IwYEloGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="__IwYE1oGEeS2WoXr83SnEA" name="lambda" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwYFFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwYFVoGEeS2WoXr83SnEA" name="sortedBy" type="__IwV81oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__IwYFloGEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="__IwYF1oGEeS2WoXr83SnEA" name="lambda" type="__ImkK1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwYGFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYGVoGEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="__ImkVloGEeS2WoXr83SnEA __ImknloGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYGloGEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+      <ownedAttribute xmi:id="__IwYG1oGEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="__IwV1VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+          opposite="__IwYIVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYHFoGEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="__IwYHVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+        <ownedComment xmi:id="__IwYHloGEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYH1oGEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="__Imkm1oGEeS2WoXr83SnEA __IwVp1oGEeS2WoXr83SnEA __IwV11oGEeS2WoXr83SnEA __IwWMVoGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYIFoGEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+      <ownedAttribute xmi:id="__IwYIVoGEeS2WoXr83SnEA" name="Enumeration" type="__ImkVFoGEeS2WoXr83SnEA" implicit="true" opposite="__IwYG1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwYIloGEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="__ImkWVoGEeS2WoXr83SnEA __ImkoVoGEeS2WoXr83SnEA"
+        superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" instanceType="__IwYJVoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__IwYI1oGEeS2WoXr83SnEA" templateBinding="__IwVXloGEeS2WoXr83SnEA __IwVYVoGEeS2WoXr83SnEA __IwVZFoGEeS2WoXr83SnEA __IwVZ1oGEeS2WoXr83SnEA __IwValoGEeS2WoXr83SnEA __IwVbVoGEeS2WoXr83SnEA __IwVcFoGEeS2WoXr83SnEA __IwVc1oGEeS2WoXr83SnEA __IwVdloGEeS2WoXr83SnEA __IwVeVoGEeS2WoXr83SnEA __IwVfFoGEeS2WoXr83SnEA __IwVf1oGEeS2WoXr83SnEA __IwVgloGEeS2WoXr83SnEA __IwVhVoGEeS2WoXr83SnEA __IwViFoGEeS2WoXr83SnEA __IwVi1oGEeS2WoXr83SnEA __IwVjloGEeS2WoXr83SnEA __IwVkVoGEeS2WoXr83SnEA __IwVlFoGEeS2WoXr83SnEA __IwVl1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYJFoGEeS2WoXr83SnEA" parameteredElement="__IwYJVoGEeS2WoXr83SnEA"
+            templateParameterSubstitution="__IwVX1oGEeS2WoXr83SnEA __IwVYloGEeS2WoXr83SnEA __IwVZVoGEeS2WoXr83SnEA __IwVaFoGEeS2WoXr83SnEA __IwVa1oGEeS2WoXr83SnEA __IwVbloGEeS2WoXr83SnEA __IwVcVoGEeS2WoXr83SnEA __IwVdFoGEeS2WoXr83SnEA __IwVd1oGEeS2WoXr83SnEA __IwVeloGEeS2WoXr83SnEA __IwVfVoGEeS2WoXr83SnEA __IwVgFoGEeS2WoXr83SnEA __IwVg1oGEeS2WoXr83SnEA __IwVhloGEeS2WoXr83SnEA __IwViVoGEeS2WoXr83SnEA __IwVjFoGEeS2WoXr83SnEA __IwVj1oGEeS2WoXr83SnEA __IwVkloGEeS2WoXr83SnEA __IwVlVoGEeS2WoXr83SnEA __IwVmFoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYJVoGEeS2WoXr83SnEA" name="T" templateParameter="__IwYJFoGEeS2WoXr83SnEA"
+              typedElement="__IwYJ1oGEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="__IwYJloGEeS2WoXr83SnEA" name="Metaclass" type="__ImkV1oGEeS2WoXr83SnEA" implicit="true" opposite="__IwYJ1oGEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="__IwYJ1oGEeS2WoXr83SnEA" name="instanceType" type="__IwYJVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+          opposite="__IwYJloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYKFoGEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+      </ownedAttribute>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="__IwYKVoGEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="__ImkpFoGEeS2WoXr83SnEA __IwWNFoGEeS2WoXr83SnEA"
+        typedElement="__IwXQVoGEeS2WoXr83SnEA __IwXk1oGEeS2WoXr83SnEA __IwXlloGEeS2WoXr83SnEA __IwXn1oGEeS2WoXr83SnEA __IwXqloGEeS2WoXr83SnEA __IwYn1oGEeS2WoXr83SnEA __IwY1FoGEeS2WoXr83SnEA __IwY6loGEeS2WoXr83SnEA __IwZPVoGEeS2WoXr83SnEA __IwZjloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYKloGEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.&#xA;Conceptually, OclAny behaves as a supertype for all the types.&#xA;Features of OclAny are available on each object in all OCL expressions.&#xA;OclAny is itself an instance of the metatype AnyType.&#xA;&#xA;All classes in a UML model inherit all operations defined on OclAny.&#xA;To avoid name conflicts between properties in the model and the properties inherited from OclAny,&#xA;all names on the properties of OclAny start with &#x2018;ocl.&#x2019;&#xA;Although theoretically there may still be name conflicts, they can be avoided.&#xA;One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.&#xA;&#xA;Operations of OclAny, where the instance of OclAny is called object."/>
+      <ownedOperation xmi:id="__IwYK1oGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYLFoGEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+        <ownedParameter xmi:id="__IwYLVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYLloGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYL1oGEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+        <ownedParameter xmi:id="__IwYMFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYMVoGEeS2WoXr83SnEA" name="oclAsSet" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+        <ownedComment xmi:id="__IwYMloGEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYM1oGEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="__IwYN1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedComment xmi:id="__IwYNFoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;In the case of feature redefinition, casting an object to a supertype of its actual type&#xA;does not access the supertype&#x2019;s definition of the feature;&#xA;according to the semantics of redefinition, the redefined feature simply does not exist for the object.&#xA;However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+        <ownedTemplateSignature xmi:id="__IwYNVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYNloGEeS2WoXr83SnEA" parameteredElement="__IwYN1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYN1oGEeS2WoXr83SnEA" name="TT" templateParameter="__IwYNloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVbloGEeS2WoXr83SnEA" typedElement="__IwYM1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwYOFoGEeS2WoXr83SnEA" name="type" type="__IwVbFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYOVoGEeS2WoXr83SnEA" name="oclIsInState" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+        <ownedComment xmi:id="__IwYOloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+        <ownedParameter xmi:id="__IwYO1oGEeS2WoXr83SnEA" name="statespec" type="__IwYo1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYPFoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true">
+        <ownedComment xmi:id="__IwYPVoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYPloGEeS2WoXr83SnEA" name="oclIsKindOf" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedComment xmi:id="__IwYP1oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.&#xA;That is, oclText[self] is of type t or a subtype of t."/>
+        <ownedTemplateSignature xmi:id="__IwYQFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYQVoGEeS2WoXr83SnEA" parameteredElement="__IwYQloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYQloGEeS2WoXr83SnEA" name="T" templateParameter="__IwYQVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVcVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwYQ1oGEeS2WoXr83SnEA" name="type" type="__IwVb1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYRFoGEeS2WoXr83SnEA" name="oclIsNew" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__IwYRVoGEeS2WoXr83SnEA" body="Can only be used in a postcondition.&#xA;Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn&#x2019;t exist at precondition time)."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYRloGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedComment xmi:id="__IwYR1oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+        <ownedTemplateSignature xmi:id="__IwYSFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYSVoGEeS2WoXr83SnEA" parameteredElement="__IwYSloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYSloGEeS2WoXr83SnEA" name="T" templateParameter="__IwYSVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVdFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwYS1oGEeS2WoXr83SnEA" name="type" type="__IwVcloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYTFoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true">
+        <ownedComment xmi:id="__IwYTVoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYTloGEeS2WoXr83SnEA" name="oclLog" type="__IwYoVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="__IwYT1oGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYUFoGEeS2WoXr83SnEA" name="oclLog" type="__IwYoVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="__IwYUVoGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+        <ownedParameter xmi:id="__IwYUloGEeS2WoXr83SnEA" name="message" type="__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYU1oGEeS2WoXr83SnEA" name="oclType" type="__IwVgVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+        <ownedComment xmi:id="__IwYVFoGEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYVVoGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__IwYVloGEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYV1oGEeS2WoXr83SnEA" name="OclComparable" superClass="__IwYKVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYWFoGEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived&#xA;compareTo implementation may be sorted."/>
+      <ownedOperation xmi:id="__IwYWVoGEeS2WoXr83SnEA" name="&lt;" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYWloGEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+        <ownedParameter xmi:id="__IwYW1oGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYXFoGEeS2WoXr83SnEA" name="&lt;=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYXVoGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="__IwYXloGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYX1oGEeS2WoXr83SnEA" name=">" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYYFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+        <ownedParameter xmi:id="__IwYYVoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYYloGEeS2WoXr83SnEA" name=">=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+          precedence="__IwZ3loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYY1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="__IwYZFoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYZVoGEeS2WoXr83SnEA" name="compareTo" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+        <ownedComment xmi:id="__IwYZloGEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.&#xA;&#xA;The compareTo operation should be commutative."/>
+        <ownedParameter xmi:id="__IwYZ1oGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYaFoGEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="__Imkp1oGEeS2WoXr83SnEA __IwWFloGEeS2WoXr83SnEA __IwWN1oGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwYbFoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYaVoGEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined&#xA;for OclElement are therefore applicable to all user-defined types."/>
+      <ownedOperation xmi:id="__IwYaloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+        <ownedComment xmi:id="__IwYa1oGEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYbFoGEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="__IwYaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+        <ownedComment xmi:id="__IwYbVoGEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYbloGEeS2WoXr83SnEA" name="oclContents" type="__IwWFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+        <ownedComment xmi:id="__IwYb1oGEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="__IwYcFoGEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="__IwVgFoGEeS2WoXr83SnEA"
+        superClass="__IwYtloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYcVoGEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.&#xA;It has one single instance, identified as  oclText[invalid].&#xA;Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().&#xA;OclInvalid is itself an instance of the metatype InvalidType."/>
+      <ownedOperation xmi:id="__IwYcloGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYc1oGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="__IwYdFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYdVoGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYdloGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="__IwYd1oGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYeFoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+        <ownedComment xmi:id="__IwYeVoGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYeloGEeS2WoXr83SnEA" name="and" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="__IwZ4FoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwYe1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYfFoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isValidating="true" precedence="__IwZ41oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwYfVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYfloGEeS2WoXr83SnEA" name="oclAsSet" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+      <ownedOperation xmi:id="__IwYf1oGEeS2WoXr83SnEA" name="oclAsType" type="__IwYgloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedTemplateSignature xmi:id="__IwYgFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYgVoGEeS2WoXr83SnEA" parameteredElement="__IwYgloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYgloGEeS2WoXr83SnEA" name="TT" templateParameter="__IwYgVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVd1oGEeS2WoXr83SnEA" typedElement="__IwYf1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwYg1oGEeS2WoXr83SnEA" name="type" type="__IwVdVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYhFoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__IwYhVoGEeS2WoXr83SnEA" name="oclIsKindOf" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedTemplateSignature xmi:id="__IwYhloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYh1oGEeS2WoXr83SnEA" parameteredElement="__IwYiFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYiFoGEeS2WoXr83SnEA" name="T" templateParameter="__IwYh1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVeloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwYiVoGEeS2WoXr83SnEA" name="type" type="__IwVeFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYiloGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedTemplateSignature xmi:id="__IwYi1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYjFoGEeS2WoXr83SnEA" parameteredElement="__IwYjVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYjVoGEeS2WoXr83SnEA" name="T" templateParameter="__IwYjFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVfVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwYjloGEeS2WoXr83SnEA" name="type" type="__IwVe1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYj1oGEeS2WoXr83SnEA" name="oclIsUndefined" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__IwYkFoGEeS2WoXr83SnEA" name="oclType" type="__IwVgVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+      <ownedOperation xmi:id="__IwYkVoGEeS2WoXr83SnEA" name="or" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="__IwZ4VoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwYkloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYk1oGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__IwYlFoGEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYlVoGEeS2WoXr83SnEA" name="OclLambda" superClass="__IwYKVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYlloGEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda&#xA;therefore apply to all lambda expressions."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYl1oGEeS2WoXr83SnEA" name="OclMessage" superClass="__IwYKVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYmFoGEeS2WoXr83SnEA" body="OclMessage&#xA;This sub clause contains the definition of the standard type OclMessage.&#xA;As defined in this sub clause, each ocl message type is actually a template type with one parameter.&#xA;&#x2018;T&#x2019; denotes the parameter.&#xA;A concrete ocl message type is created by substituting an operation or signal for the T.&#xA;&#xA;The predefined type OclMessage is an instance of MessageType.&#xA;Every OclMessage is fully determined by either the operation, or signal given as parameter.&#xA;Note that there is conceptually an undefined (infinite) number of these types,&#xA;as each is determined by a different operation or signal.&#xA;These types are unnamed. Every type has as attributes the name of the operation or signal,&#xA;and either all formal parameters of the operation, or all attributes of the signal.&#xA;OclMessage is itself an instance of the metatype MessageType.&#xA;&#xA;OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+      <ownedOperation xmi:id="__IwYmVoGEeS2WoXr83SnEA" name="hasReturned" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__IwYmloGEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.&#xA;This implies the fact that the message has been sent. False in all other cases."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYm1oGEeS2WoXr83SnEA" name="isOperationCall" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__IwYnFoGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYnVoGEeS2WoXr83SnEA" name="isSignalSent" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__IwYnloGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYn1oGEeS2WoXr83SnEA" name="result" type="__IwYKVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__IwYoFoGEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,&#xA;and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="__IwYoVoGEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="__IwVIFoGEeS2WoXr83SnEA __IwVg1oGEeS2WoXr83SnEA __IwWGVoGEeS2WoXr83SnEA __IwWOloGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwWXloGEeS2WoXr83SnEA __IwWYVoGEeS2WoXr83SnEA __IwWfFoGEeS2WoXr83SnEA __IwWf1oGEeS2WoXr83SnEA __IwWhFoGEeS2WoXr83SnEA __IwWh1oGEeS2WoXr83SnEA __IwWjFoGEeS2WoXr83SnEA __IwWkloGEeS2WoXr83SnEA __IwWlVoGEeS2WoXr83SnEA __IwWnloGEeS2WoXr83SnEA __IwWoVoGEeS2WoXr83SnEA __IwWploGEeS2WoXr83SnEA __IwWqVoGEeS2WoXr83SnEA __IwWrFoGEeS2WoXr83SnEA __IwWr1oGEeS2WoXr83SnEA __IwWsloGEeS2WoXr83SnEA __IwWtVoGEeS2WoXr83SnEA __IwWuFoGEeS2WoXr83SnEA __IwWu1oGEeS2WoXr83SnEA __IwWwFoGEeS2WoXr83SnEA __IwWxVoGEeS2WoXr83SnEA __IwWyFoGEeS2WoXr83SnEA __IwW01oGEeS2WoXr83SnEA __IwW1loGEeS2WoXr83SnEA __IwW2FoGEeS2WoXr83SnEA __IwW2loGEeS2WoXr83SnEA __IwW3VoGEeS2WoXr83SnEA __IwW4FoGEeS2WoXr83SnEA __IwW6FoGEeS2WoXr83SnEA __IwXO1oGEeS2WoXr83SnEA __IwXPloGEeS2WoXr83SnEA __IwXhVoGEeS2WoXr83SnEA __IwXiFoGEeS2WoXr83SnEA __IwYLVoGEeS2WoXr83SnEA __IwYMFoGEeS2WoXr83SnEA __IwYTloGEeS2WoXr83SnEA __IwYUFoGEeS2WoXr83SnEA __IwYW1oGEeS2WoXr83SnEA __IwYXloGEeS2WoXr83SnEA __IwYYVoGEeS2WoXr83SnEA __IwYZFoGEeS2WoXr83SnEA __IwYZ1oGEeS2WoXr83SnEA __IwYdFoGEeS2WoXr83SnEA __IwYd1oGEeS2WoXr83SnEA __IwYploGEeS2WoXr83SnEA __IwYqFoGEeS2WoXr83SnEA __IwYqVoGEeS2WoXr83SnEA __IwYrloGEeS2WoXr83SnEA __IwYsFoGEeS2WoXr83SnEA __IwYuVoGEeS2WoXr83SnEA __IwYvFoGEeS2WoXr83SnEA __IwY31oGEeS2WoXr83SnEA __IwY4VoGEeS2WoXr83SnEA __IwZMVoGEeS2WoXr83SnEA __IwZNFoGEeS2WoXr83SnEA __IwZiFoGEeS2WoXr83SnEA __IwZi1oGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYoloGEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation&#xA;and Iteration signatures. Instances of OclSelf are never created."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYo1oGEeS2WoXr83SnEA" name="OclState" superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwYO1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYpFoGEeS2WoXr83SnEA" name="OclSummable" superClass="__IwYKVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYpVoGEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived&#xA;sum and zero implementations may be summed."/>
+      <ownedOperation xmi:id="__IwYploGEeS2WoXr83SnEA" name="sum" type="__IwYoVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYp1oGEeS2WoXr83SnEA" body="Return the sum of self and that.&#xA;&#xA;The sum operation should be associative."/>
+        <ownedParameter xmi:id="__IwYqFoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYqVoGEeS2WoXr83SnEA" name="zero" type="__IwYoVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYqloGEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.&#xA;&#xA;zero().sum(self) = self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYq1oGEeS2WoXr83SnEA" name="OclTuple" superClass="__IwYKVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYrFoGEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple&#xA;therefore apply to all tuples."/>
+      <ownedOperation xmi:id="__IwYrVoGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwYrloGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYr1oGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwYsFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYsVoGEeS2WoXr83SnEA" name="OclType" superClass="__IwYaFoGEeS2WoXr83SnEA" typedElement="__IwYtVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYsloGEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined&#xA;for OclType are therefore applicable to all UML types."/>
+      <ownedOperation xmi:id="__IwYs1oGEeS2WoXr83SnEA" name="conformsTo" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+        <ownedComment xmi:id="__IwYtFoGEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+        <ownedParameter xmi:id="__IwYtVoGEeS2WoXr83SnEA" name="type2" type="__IwYsVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="__IwYtloGEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="__IwVhloGEeS2WoXr83SnEA"
+        superClass="__IwYKVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__IwYt1oGEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.&#xA;It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.&#xA;Any property call applied on oclText[null] results in oclText[invalid], except for the&#xA;oclIsUndefined(), oclIsInvalid(), =(OclAny) and &lt;>(OclAny) operations.&#xA;However, by virtue of the implicit conversion to a collection literal,&#xA;an expression evaluating to oclText[null] can be used as source of collection operations (such as &#x2018;isEmpty&#x2019;).&#xA;If the source is the oclText[null] literal, it is implicitly converted to Bag{}.&#xA;&#xA;OclVoid is itself an instance of the metatype VoidType."/>
+      <ownedOperation xmi:id="__IwYuFoGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwYuVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYuloGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwYu1oGEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]&#xA;if object is oclText[invalid], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__IwYvFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYvVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+        <ownedComment xmi:id="__IwYvloGEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYv1oGEeS2WoXr83SnEA" name="and" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+          precedence="__IwZ4FoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwYwFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYwVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+          precedence="__IwZ41oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwYwloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYw1oGEeS2WoXr83SnEA" name="oclIsInvalid" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__IwYxFoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__IwYxVoGEeS2WoXr83SnEA" name="or" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+          precedence="__IwZ4VoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwYxloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwYx1oGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__IwYyFoGEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwYyVoGEeS2WoXr83SnEA" name="OrderedCollection" superClass="__IwVIVoGEeS2WoXr83SnEA"
+        elementType="__IwYzFoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__IwYyloGEeS2WoXr83SnEA" templateBinding="__IwVmloGEeS2WoXr83SnEA __IwVnVoGEeS2WoXr83SnEA __IwVoFoGEeS2WoXr83SnEA __IwVo1oGEeS2WoXr83SnEA __IwVploGEeS2WoXr83SnEA __IwVqVoGEeS2WoXr83SnEA __IwVrFoGEeS2WoXr83SnEA __IwVr1oGEeS2WoXr83SnEA __IwVsloGEeS2WoXr83SnEA __IwVtVoGEeS2WoXr83SnEA __IwVuFoGEeS2WoXr83SnEA __IwVu1oGEeS2WoXr83SnEA __IwVvloGEeS2WoXr83SnEA __IwVwVoGEeS2WoXr83SnEA __IwVxFoGEeS2WoXr83SnEA __IwVx1oGEeS2WoXr83SnEA __IwVyloGEeS2WoXr83SnEA __IwVzVoGEeS2WoXr83SnEA __IwV0FoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYy1oGEeS2WoXr83SnEA" parameteredElement="__IwYzFoGEeS2WoXr83SnEA"
+            templateParameterSubstitution="__IwVm1oGEeS2WoXr83SnEA __IwVnloGEeS2WoXr83SnEA __IwVoVoGEeS2WoXr83SnEA __IwVpFoGEeS2WoXr83SnEA __IwVp1oGEeS2WoXr83SnEA __IwVqloGEeS2WoXr83SnEA __IwVrVoGEeS2WoXr83SnEA __IwVsFoGEeS2WoXr83SnEA __IwVs1oGEeS2WoXr83SnEA __IwVtloGEeS2WoXr83SnEA __IwVuVoGEeS2WoXr83SnEA __IwVvFoGEeS2WoXr83SnEA __IwVv1oGEeS2WoXr83SnEA __IwVwloGEeS2WoXr83SnEA __IwVxVoGEeS2WoXr83SnEA __IwVyFoGEeS2WoXr83SnEA __IwVy1oGEeS2WoXr83SnEA __IwVzloGEeS2WoXr83SnEA __IwV0VoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYzFoGEeS2WoXr83SnEA" name="T" templateParameter="__IwYy1oGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__IwVI1oGEeS2WoXr83SnEA" typedElement="__IwYzVoGEeS2WoXr83SnEA __IwY0FoGEeS2WoXr83SnEA __IwY1VoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__IwYzVoGEeS2WoXr83SnEA" name="at" isRequired="false" type="__IwYzFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwYzloGEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+        <ownedParameter xmi:id="__IwYz1oGEeS2WoXr83SnEA" name="index" type="__IwWeVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY0FoGEeS2WoXr83SnEA" name="first" isRequired="false" type="__IwYzFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwY0VoGEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY0loGEeS2WoXr83SnEA" name="indexOf" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+        <ownedComment xmi:id="__IwY01oGEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+        <ownedParameter xmi:id="__IwY1FoGEeS2WoXr83SnEA" name="obj" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY1VoGEeS2WoXr83SnEA" name="last" isRequired="false" type="__IwYzFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwY1loGEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwY11oGEeS2WoXr83SnEA" name="OrderedSet" superClass="__IwVt1oGEeS2WoXr83SnEA __IwWRFoGEeS2WoXr83SnEA"
+        typedElement="__IwY21oGEeS2WoXr83SnEA __IwY4loGEeS2WoXr83SnEA __IwY5VoGEeS2WoXr83SnEA __IwY6FoGEeS2WoXr83SnEA __IwY61oGEeS2WoXr83SnEA __IwY8loGEeS2WoXr83SnEA __IwY9VoGEeS2WoXr83SnEA __IwY-VoGEeS2WoXr83SnEA __IwY_FoGEeS2WoXr83SnEA __IwY_1oGEeS2WoXr83SnEA __IwZC1oGEeS2WoXr83SnEA __IwZD1oGEeS2WoXr83SnEA __IwZIFoGEeS2WoXr83SnEA __IwZJFoGEeS2WoXr83SnEA __IwZKFoGEeS2WoXr83SnEA"
+        elementType="__IwY2loGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__IwY2FoGEeS2WoXr83SnEA" templateBinding="__IwV01oGEeS2WoXr83SnEA __IwV1loGEeS2WoXr83SnEA __IwV2VoGEeS2WoXr83SnEA __IwV3FoGEeS2WoXr83SnEA __IwV31oGEeS2WoXr83SnEA __IwV4loGEeS2WoXr83SnEA __IwV5VoGEeS2WoXr83SnEA __IwV6FoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwY2VoGEeS2WoXr83SnEA" parameteredElement="__IwY2loGEeS2WoXr83SnEA"
+            templateParameterSubstitution="__IwV1FoGEeS2WoXr83SnEA __IwV11oGEeS2WoXr83SnEA __IwV2loGEeS2WoXr83SnEA __IwV3VoGEeS2WoXr83SnEA __IwV4FoGEeS2WoXr83SnEA __IwV41oGEeS2WoXr83SnEA __IwV5loGEeS2WoXr83SnEA __IwV6VoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwY2loGEeS2WoXr83SnEA" name="T" templateParameter="__IwY2VoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__IwVNVoGEeS2WoXr83SnEA __IwVuVoGEeS2WoXr83SnEA __IwWRloGEeS2WoXr83SnEA" typedElement="__IwY5FoGEeS2WoXr83SnEA __IwY9FoGEeS2WoXr83SnEA __IwY-FoGEeS2WoXr83SnEA __IwY-1oGEeS2WoXr83SnEA __IwZEloGEeS2WoXr83SnEA __IwZGVoGEeS2WoXr83SnEA __IwZH1oGEeS2WoXr83SnEA __IwZI1oGEeS2WoXr83SnEA __IwZJ1oGEeS2WoXr83SnEA __IwZK1oGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__IwY21oGEeS2WoXr83SnEA" name="-" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="__IwZ3VoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwY3FoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="__IwY3VoGEeS2WoXr83SnEA" name="s" type="__IwWMloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY3loGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwY31oGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY4FoGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwY4VoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY4loGEeS2WoXr83SnEA" name="append" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="__IwY41oGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="__IwY5FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY5VoGEeS2WoXr83SnEA" name="appendAll" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="__IwY5loGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="__IwY51oGEeS2WoXr83SnEA" name="objects" type="__IwVt1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY6FoGEeS2WoXr83SnEA" name="excluding" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__IwY6VoGEeS2WoXr83SnEA" body="The ordered set  containing all elements of oclText[self] apart from object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="__IwY6loGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY61oGEeS2WoXr83SnEA" name="excludingAll" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__IwY7FoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__IwY7VoGEeS2WoXr83SnEA" name="objects" type="__ImkoloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY7loGEeS2WoXr83SnEA" name="flatten" type="__IwV2FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedTemplateSignature xmi:id="__IwY71oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwY8FoGEeS2WoXr83SnEA" parameteredElement="__IwY8VoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwY8VoGEeS2WoXr83SnEA" name="T2" templateParameter="__IwY8FoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVLFoGEeS2WoXr83SnEA __IwVsFoGEeS2WoXr83SnEA __IwV2loGEeS2WoXr83SnEA __IwWPVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY8loGEeS2WoXr83SnEA" name="including" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__IwY81oGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+        <ownedParameter xmi:id="__IwY9FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY9VoGEeS2WoXr83SnEA" name="insertAt" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwY9loGEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+        <ownedParameter xmi:id="__IwY91oGEeS2WoXr83SnEA" name="index" type="__IwWeVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__IwY-FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY-VoGEeS2WoXr83SnEA" name="prepend" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="__IwY-loGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__IwY-1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY_FoGEeS2WoXr83SnEA" name="prependAll" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="__IwY_VoGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__IwY_loGEeS2WoXr83SnEA" name="objects" type="__IwVt1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwY_1oGEeS2WoXr83SnEA" name="reverse" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="__IwZAFoGEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZAVoGEeS2WoXr83SnEA" name="selectByKind" type="__IwV21oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__IwZAloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZA1oGEeS2WoXr83SnEA" parameteredElement="__IwZBFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZBFoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZA1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVL1oGEeS2WoXr83SnEA __IwViVoGEeS2WoXr83SnEA __IwVs1oGEeS2WoXr83SnEA __IwV3VoGEeS2WoXr83SnEA __IwWQFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZBVoGEeS2WoXr83SnEA" name="type" type="__IwVh1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZBloGEeS2WoXr83SnEA" name="selectByType" type="__IwV3loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__IwZB1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZCFoGEeS2WoXr83SnEA" parameteredElement="__IwZCVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZCVoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZCFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVMloGEeS2WoXr83SnEA __IwVjFoGEeS2WoXr83SnEA __IwVtloGEeS2WoXr83SnEA __IwV4FoGEeS2WoXr83SnEA __IwWQ1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZCloGEeS2WoXr83SnEA" name="type" type="__IwViloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZC1oGEeS2WoXr83SnEA" name="subOrderedSet" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwZDFoGEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="__IwZDVoGEeS2WoXr83SnEA" name="lower" type="__IwWeVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__IwZDloGEeS2WoXr83SnEA" name="upper" type="__IwWeVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZD1oGEeS2WoXr83SnEA" name="closure" type="__IwY11oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__IwZEFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__IwZEVoGEeS2WoXr83SnEA" name="lambda" type="__ImkLloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZEloGEeS2WoXr83SnEA" name="i" type="__IwY2loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZE1oGEeS2WoXr83SnEA" name="collectNested" type="__IwV9loGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__IwZFFoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="__IwZFVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZFloGEeS2WoXr83SnEA" parameteredElement="__IwZF1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZF1oGEeS2WoXr83SnEA" name="V" templateParameter="__IwZFloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVJloGEeS2WoXr83SnEA __IwVqloGEeS2WoXr83SnEA __IwV-FoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZGFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkL1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZGVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZGloGEeS2WoXr83SnEA" name="collect" type="__IwV-VoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__IwZG1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZHFoGEeS2WoXr83SnEA" parameteredElement="__IwZHVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZHVoGEeS2WoXr83SnEA" name="V" templateParameter="__IwZHFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVKVoGEeS2WoXr83SnEA __IwVrVoGEeS2WoXr83SnEA __IwV-1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZHloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkMFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZH1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZIFoGEeS2WoXr83SnEA" name="reject" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__IwZIVoGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__IwZIloGEeS2WoXr83SnEA" name="lambda" type="__ImkLFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZI1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZJFoGEeS2WoXr83SnEA" name="select" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__IwZJVoGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+        <ownedParameter xmi:id="__IwZJloGEeS2WoXr83SnEA" name="lambda" type="__ImkLFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZJ1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZKFoGEeS2WoXr83SnEA" name="sortedBy" type="__IwY11oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__IwZKVoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="__IwZKloGEeS2WoXr83SnEA" name="lambda" type="__ImkLVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZK1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwZLFoGEeS2WoXr83SnEA" name="Sequence" superClass="__IwVyVoGEeS2WoXr83SnEA"
+        typedElement="__IwZNVoGEeS2WoXr83SnEA __IwZOFoGEeS2WoXr83SnEA __IwZO1oGEeS2WoXr83SnEA __IwZPloGEeS2WoXr83SnEA __IwZRloGEeS2WoXr83SnEA __IwZSVoGEeS2WoXr83SnEA __IwZTVoGEeS2WoXr83SnEA __IwZUFoGEeS2WoXr83SnEA __IwZU1oGEeS2WoXr83SnEA __IwZX1oGEeS2WoXr83SnEA __IwZdFoGEeS2WoXr83SnEA __IwZeFoGEeS2WoXr83SnEA __IwZfFoGEeS2WoXr83SnEA"
+        elementType="__IwZL1oGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__IwZLVoGEeS2WoXr83SnEA" templateBinding="__IwV61oGEeS2WoXr83SnEA __IwV7loGEeS2WoXr83SnEA __IwV8VoGEeS2WoXr83SnEA __IwV9FoGEeS2WoXr83SnEA __IwV91oGEeS2WoXr83SnEA __IwV-loGEeS2WoXr83SnEA __IwV_VoGEeS2WoXr83SnEA __IwWAFoGEeS2WoXr83SnEA __IwWA1oGEeS2WoXr83SnEA __IwWBloGEeS2WoXr83SnEA __IwWCVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZLloGEeS2WoXr83SnEA" parameteredElement="__IwZL1oGEeS2WoXr83SnEA"
+            templateParameterSubstitution="__IwV7FoGEeS2WoXr83SnEA __IwV71oGEeS2WoXr83SnEA __IwV8loGEeS2WoXr83SnEA __IwV9VoGEeS2WoXr83SnEA __IwV-FoGEeS2WoXr83SnEA __IwV-1oGEeS2WoXr83SnEA __IwV_loGEeS2WoXr83SnEA __IwWAVoGEeS2WoXr83SnEA __IwWBFoGEeS2WoXr83SnEA __IwWB1oGEeS2WoXr83SnEA __IwWCloGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZL1oGEeS2WoXr83SnEA" name="T" templateParameter="__IwZLloGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__IwVR1oGEeS2WoXr83SnEA __IwVy1oGEeS2WoXr83SnEA __IwV41oGEeS2WoXr83SnEA __IwWSVoGEeS2WoXr83SnEA"
+              typedElement="__IwZN1oGEeS2WoXr83SnEA __IwZSFoGEeS2WoXr83SnEA __IwZTFoGEeS2WoXr83SnEA __IwZT1oGEeS2WoXr83SnEA __IwZZloGEeS2WoXr83SnEA __IwZbVoGEeS2WoXr83SnEA __IwZc1oGEeS2WoXr83SnEA __IwZd1oGEeS2WoXr83SnEA __IwZe1oGEeS2WoXr83SnEA __IwZf1oGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__IwZMFoGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwZMVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZMloGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwZM1oGEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+        <ownedParameter xmi:id="__IwZNFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZNVoGEeS2WoXr83SnEA" name="append" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="__IwZNloGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="__IwZN1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZOFoGEeS2WoXr83SnEA" name="appendAll" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="__IwZOVoGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="__IwZOloGEeS2WoXr83SnEA" name="objects" type="__IwVyVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZO1oGEeS2WoXr83SnEA" name="excluding" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__IwZPFoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="__IwZPVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZPloGEeS2WoXr83SnEA" name="excludingAll" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__IwZP1oGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__IwZQFoGEeS2WoXr83SnEA" name="objects" type="__ImkoloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZQVoGEeS2WoXr83SnEA" name="flatten" type="__IwWAloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__IwZQloGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].&#xA;If the element type is a collection type, the result is the sequence containing all the elements&#xA;of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+        <ownedTemplateSignature xmi:id="__IwZQ1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZRFoGEeS2WoXr83SnEA" parameteredElement="__IwZRVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZRVoGEeS2WoXr83SnEA" name="T2" templateParameter="__IwZRFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVPloGEeS2WoXr83SnEA __IwVwloGEeS2WoXr83SnEA __IwWBFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZRloGEeS2WoXr83SnEA" name="including" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__IwZR1oGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+        <ownedParameter xmi:id="__IwZSFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZSVoGEeS2WoXr83SnEA" name="insertAt" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwZSloGEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+        <ownedParameter xmi:id="__IwZS1oGEeS2WoXr83SnEA" name="index" type="__IwWeVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__IwZTFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZTVoGEeS2WoXr83SnEA" name="prepend" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="__IwZTloGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__IwZT1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZUFoGEeS2WoXr83SnEA" name="prependAll" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="__IwZUVoGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__IwZUloGEeS2WoXr83SnEA" name="objects" type="__IwVyVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZU1oGEeS2WoXr83SnEA" name="reverse" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="__IwZVFoGEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZVVoGEeS2WoXr83SnEA" name="selectByKind" type="__IwWBVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__IwZVloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZV1oGEeS2WoXr83SnEA" parameteredElement="__IwZWFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZWFoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZV1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVQVoGEeS2WoXr83SnEA __IwVj1oGEeS2WoXr83SnEA __IwVxVoGEeS2WoXr83SnEA __IwWB1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZWVoGEeS2WoXr83SnEA" name="type" type="__IwVjVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZWloGEeS2WoXr83SnEA" name="selectByType" type="__IwWCFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__IwZW1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZXFoGEeS2WoXr83SnEA" parameteredElement="__IwZXVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZXVoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZXFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVRFoGEeS2WoXr83SnEA __IwVkloGEeS2WoXr83SnEA __IwVyFoGEeS2WoXr83SnEA __IwWCloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZXloGEeS2WoXr83SnEA" name="type" type="__IwVkFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZX1oGEeS2WoXr83SnEA" name="subSequence" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__IwZYFoGEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="__IwZYVoGEeS2WoXr83SnEA" name="lower" type="__IwWeVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__IwZYloGEeS2WoXr83SnEA" name="upper" type="__IwWeVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZY1oGEeS2WoXr83SnEA" name="closure" type="__IwV4VoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__IwZZFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__IwZZVoGEeS2WoXr83SnEA" name="lambda" type="__ImkM1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZZloGEeS2WoXr83SnEA" name="i" type="__IwZL1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZZ1oGEeS2WoXr83SnEA" name="collectNested" type="__IwV_FoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__IwZaFoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="__IwZaVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZaloGEeS2WoXr83SnEA" parameteredElement="__IwZa1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZa1oGEeS2WoXr83SnEA" name="V" templateParameter="__IwZaloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVOFoGEeS2WoXr83SnEA __IwVvFoGEeS2WoXr83SnEA __IwV_loGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZbFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkNFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZbVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZbloGEeS2WoXr83SnEA" name="collect" type="__IwV_1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__IwZb1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZcFoGEeS2WoXr83SnEA" parameteredElement="__IwZcVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZcVoGEeS2WoXr83SnEA" name="V" templateParameter="__IwZcFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVO1oGEeS2WoXr83SnEA __IwVv1oGEeS2WoXr83SnEA __IwWAVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZcloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkNVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZc1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZdFoGEeS2WoXr83SnEA" name="reject" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__IwZdVoGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__IwZdloGEeS2WoXr83SnEA" name="lambda" type="__ImkMVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZd1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZeFoGEeS2WoXr83SnEA" name="select" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__IwZeVoGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+        <ownedParameter xmi:id="__IwZeloGEeS2WoXr83SnEA" name="lambda" type="__ImkMVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZe1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZfFoGEeS2WoXr83SnEA" name="sortedBy" type="__IwZLFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__IwZfVoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="__IwZfloGEeS2WoXr83SnEA" name="lambda" type="__ImkMloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZf1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwZgFoGEeS2WoXr83SnEA" name="Set" superClass="__IwWU1oGEeS2WoXr83SnEA" typedElement="__IwZhFoGEeS2WoXr83SnEA __IwZjFoGEeS2WoXr83SnEA __IwZj1oGEeS2WoXr83SnEA __IwZl1oGEeS2WoXr83SnEA __IwZmloGEeS2WoXr83SnEA __IwZp1oGEeS2WoXr83SnEA __IwZuFoGEeS2WoXr83SnEA __IwZvFoGEeS2WoXr83SnEA"
+        elementType="__IwZg1oGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__IwZgVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZgloGEeS2WoXr83SnEA" parameteredElement="__IwZg1oGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZg1oGEeS2WoXr83SnEA" name="T" templateParameter="__IwZgloGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__IwVWVoGEeS2WoXr83SnEA __IwVzloGEeS2WoXr83SnEA __IwV5loGEeS2WoXr83SnEA __IwWVVoGEeS2WoXr83SnEA"
+              typedElement="__IwZmVoGEeS2WoXr83SnEA __IwZqloGEeS2WoXr83SnEA __IwZsVoGEeS2WoXr83SnEA __IwZt1oGEeS2WoXr83SnEA __IwZu1oGEeS2WoXr83SnEA __IwZv1oGEeS2WoXr83SnEA __IwZw1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaO1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaRFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaTVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaVloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaX1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__Iwaa1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwadFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwafVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwahloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__Iwaj1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWDVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWEFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWE1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWFloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWGVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWHFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWH1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWIloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWJVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbcVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbdFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__Iwbd1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbeloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbfVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaHFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaH1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaIloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaJVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqToStm.xml#__IwbMFoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="orphanage.xml#__IwaOloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaQ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaTFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaVVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaXloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaaloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__Iwac1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwafFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwahVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwajloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWDFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWD1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWEloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWFVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWGFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWG1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWHloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWIVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWJFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbcFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__Iwbc1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbdloGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbeVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbfFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaG1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaHloGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaIVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaJFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqToStm.xml#__IwbL1oGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__IwZhFoGEeS2WoXr83SnEA" name="-" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="__IwZ3VoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwZhVoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="__IwZhloGEeS2WoXr83SnEA" name="s" type="__IwWMloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZh1oGEeS2WoXr83SnEA" name="&lt;>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__IwZiFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZiVoGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__IwZ31oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwZiloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+        <ownedParameter xmi:id="__IwZi1oGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZjFoGEeS2WoXr83SnEA" name="excluding" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__IwZjVoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+        <ownedParameter xmi:id="__IwZjloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZj1oGEeS2WoXr83SnEA" name="excludingAll" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__IwZkFoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__IwZkVoGEeS2WoXr83SnEA" name="objects" type="__ImkoloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZkloGEeS2WoXr83SnEA" name="flatten" type="__IwWGloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__IwZk1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].&#xA;If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="__IwZlFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZlVoGEeS2WoXr83SnEA" parameteredElement="__IwZlloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZlloGEeS2WoXr83SnEA" name="T2" templateParameter="__IwZlVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVUFoGEeS2WoXr83SnEA __IwWHFoGEeS2WoXr83SnEA __IwWTFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZl1oGEeS2WoXr83SnEA" name="including" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__IwZmFoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="__IwZmVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZmloGEeS2WoXr83SnEA" name="includingAll" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="__IwZm1oGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="__IwZnFoGEeS2WoXr83SnEA" name="objects" type="__IwVV1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZnVoGEeS2WoXr83SnEA" name="selectByKind" type="__IwWHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__IwZnloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZn1oGEeS2WoXr83SnEA" parameteredElement="__IwZoFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZoFoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZn1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVU1oGEeS2WoXr83SnEA __IwVlVoGEeS2WoXr83SnEA __IwWH1oGEeS2WoXr83SnEA __IwWT1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZoVoGEeS2WoXr83SnEA" name="type" type="__IwVk1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZoloGEeS2WoXr83SnEA" name="selectByType" type="__IwWIFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__IwZo1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZpFoGEeS2WoXr83SnEA" parameteredElement="__IwZpVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZpVoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZpFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__IwVVloGEeS2WoXr83SnEA __IwVmFoGEeS2WoXr83SnEA __IwWIloGEeS2WoXr83SnEA __IwWUloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZploGEeS2WoXr83SnEA" name="type" type="__IwVlloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZp1oGEeS2WoXr83SnEA" name="closure" type="__IwZgFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__IwZqFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__IwZqVoGEeS2WoXr83SnEA" name="lambda" type="__ImkOFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZqloGEeS2WoXr83SnEA" name="i" type="__IwZg1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZq1oGEeS2WoXr83SnEA" name="collectNested" type="__ImkWloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__IwZrFoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="__IwZrVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZrloGEeS2WoXr83SnEA" parameteredElement="__IwZr1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZr1oGEeS2WoXr83SnEA" name="V" templateParameter="__IwZrloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkXFoGEeS2WoXr83SnEA __IwVSloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZsFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkOVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZsVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZsloGEeS2WoXr83SnEA" name="collect" type="__ImkXVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__IwZs1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZtFoGEeS2WoXr83SnEA" parameteredElement="__IwZtVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZtVoGEeS2WoXr83SnEA" name="V" templateParameter="__IwZtFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__ImkX1oGEeS2WoXr83SnEA __IwVTVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__IwZtloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkOloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZt1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZuFoGEeS2WoXr83SnEA" name="reject" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__IwZuVoGEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__IwZuloGEeS2WoXr83SnEA" name="lambda" type="__ImkNloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZu1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZvFoGEeS2WoXr83SnEA" name="select" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__IwZvVoGEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+        <ownedParameter xmi:id="__IwZvloGEeS2WoXr83SnEA" name="lambda" type="__ImkNloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZv1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZwFoGEeS2WoXr83SnEA" name="sortedBy" type="__IwV5FoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__IwZwVoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="__IwZwloGEeS2WoXr83SnEA" name="lambda" type="__ImkN1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZw1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZxFoGEeS2WoXr83SnEA" name="State" superClass="__IwYo1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZxVoGEeS2WoXr83SnEA" name="Type" superClass="__IwYsVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwZxloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwVWloGEeS2WoXr83SnEA"
+        typedElement="__IwZyloGEeS2WoXr83SnEA __IwZ1VoGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__IwZx1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZyFoGEeS2WoXr83SnEA" parameteredElement="__IwZyVoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZyVoGEeS2WoXr83SnEA" name="T" templateParameter="__IwZyFoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__IwVXFoGEeS2WoXr83SnEA __IwV0VoGEeS2WoXr83SnEA __IwV6VoGEeS2WoXr83SnEA __IwWJVoGEeS2WoXr83SnEA __IwWWFoGEeS2WoXr83SnEA"
+              typedElement="__IwZ2VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaOFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaQVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaSloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaU1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaXFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaaFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwacVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__IwaeloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__Iwag1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWKFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWK1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWLloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWMVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWNFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWN1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWOloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWPVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWQFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWQ1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWRloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWSVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWTFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWT1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWUloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWVVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__IwWWFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbgFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__Iwbg1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbhloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbiVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__IwbjFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaKFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaK1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaLloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__IwaMVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqToStm.xml#__IwbM1oGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="orphanage.xml#__IwaN1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaQFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaSVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaUloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaW1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaZ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwacFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwaeVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__IwagloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWJ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWKloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWLVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWMFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWM1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWNloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWOVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWPFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWP1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWQloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWRVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWSFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWS1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWTloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWUVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWVFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__IwWV1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__Iwbf1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbgloGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbhVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__IwbiFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__Iwbi1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaJ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaKloGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaLVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__IwaMFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqToStm.xml#__IwbMloGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__IwZyloGEeS2WoXr83SnEA" name="-" type="__IwZxloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="__IwZ3VoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__IwZy1oGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="__IwZzFoGEeS2WoXr83SnEA" name="s" type="__IwWMloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZzVoGEeS2WoXr83SnEA" name="intersection" type="__IwWI1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="__IwZzloGEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+        <ownedParameter xmi:id="__IwZz1oGEeS2WoXr83SnEA" name="c" type="__IwVWloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZ0FoGEeS2WoXr83SnEA" name="symmetricDifference" type="__IwWI1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+        <ownedComment xmi:id="__IwZ0VoGEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+        <ownedParameter xmi:id="__IwZ0loGEeS2WoXr83SnEA" name="s" type="__IwWMloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__IwZ01oGEeS2WoXr83SnEA" name="union" type="__IwWI1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="__IwZ1FoGEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+        <ownedParameter xmi:id="__IwZ1VoGEeS2WoXr83SnEA" name="s" type="__IwZxloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZ1loGEeS2WoXr83SnEA" name="sortedBy" type="__IwV51oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__IwZ11oGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="__IwZ2FoGEeS2WoXr83SnEA" name="lambda" type="__ImkO1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__IwZ2VoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZyVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedPrecedence xmi:id="__IwZ2loGEeS2WoXr83SnEA" name="NAVIGATION"/>
+    <ownedPrecedence xmi:id="__IwZ21oGEeS2WoXr83SnEA" name="UNARY" order="1"/>
+    <ownedPrecedence xmi:id="__IwZ3FoGEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+    <ownedPrecedence xmi:id="__IwZ3VoGEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+    <ownedPrecedence xmi:id="__IwZ3loGEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+    <ownedPrecedence xmi:id="__IwZ31oGEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+    <ownedPrecedence xmi:id="__IwZ4FoGEeS2WoXr83SnEA" name="AND" order="6"/>
+    <ownedPrecedence xmi:id="__IwZ4VoGEeS2WoXr83SnEA" name="OR" order="7"/>
+    <ownedPrecedence xmi:id="__IwZ4loGEeS2WoXr83SnEA" name="XOR" order="8"/>
+    <ownedPrecedence xmi:id="__IwZ41oGEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqMM.xml
new file mode 100644
index 0000000..7243d0a
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqMM.xml
@@ -0,0 +1,335 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__IwbN1oGEeS2WoXr83SnEA" name="SeqMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqMM.emof">
+  <nestedPackage xmi:id="__IwbOFoGEeS2WoXr83SnEA" name="SeqMM" nsURI="SeqMM">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbOVoGEeS2WoXr83SnEA" name="Dummy" typedElement="__IwbQVoGEeS2WoXr83SnEA __IwbW1oGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__IwbOloGEeS2WoXr83SnEA" name="containedState" type="__Iwbe1oGEeS2WoXr83SnEA" isComposite="true" opposite="__IwbW1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbO1oGEeS2WoXr83SnEA" name="hasInteraction" type="__Iwbb1oGEeS2WoXr83SnEA" isComposite="true" opposite="__IwbQVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbPFoGEeS2WoXr83SnEA" name="Event">
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbPVoGEeS2WoXr83SnEA" name="Interaction">
+      <templateParameterSubstitution href="orphanage.xml#__IwaUFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaU1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaVloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbYloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbcVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbgFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbPloGEeS2WoXr83SnEA" name="lifeline" type="__IwbcloGEeS2WoXr83SnEA" isComposite="true" opposite="__IwbQ1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbP1oGEeS2WoXr83SnEA" name="message" type="__IwbeFoGEeS2WoXr83SnEA" isComposite="true" opposite="__IwbSVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbQFoGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__IwamVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwbQVoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__IwbOVoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__IwbO1oGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwbQ1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwbSVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwamFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwaoVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwarFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwat1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwavVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa0loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa7FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa9loGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbQloGEeS2WoXr83SnEA" name="LifeLine">
+      <templateParameterSubstitution href="orphanage.xml#__IwaNVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaOFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaO1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbZVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbdFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__Iwbg1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbQ1oGEeS2WoXr83SnEA" name="interaction" type="__IwbPVoGEeS2WoXr83SnEA" opposite="__IwbPloGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStm.xml#__Iwaq1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwbRFoGEeS2WoXr83SnEA" name="msgEvent" type="__IwbdVoGEeS2WoXr83SnEA" isComposite="true" opposite="__IwbTFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbRVoGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwbRloGEeS2WoXr83SnEA" name="state" type="__Iwbe1oGEeS2WoXr83SnEA" opposite="__IwbWFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwbTFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwaqloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwatloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbR1oGEeS2WoXr83SnEA" name="Message">
+      <templateParameterSubstitution href="orphanage.xml#__IwaWVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaXFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaX1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__Iwba1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbeloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbiVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbSFoGEeS2WoXr83SnEA" name="event" type="__IwbdVoGEeS2WoXr83SnEA" opposite="__IwbTVoGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStm.xml#__IwaxVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwbSVoGEeS2WoXr83SnEA" name="interaction" type="__IwbPVoGEeS2WoXr83SnEA" opposite="__IwbP1oGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStm.xml#__Iwa0VoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwbSloGEeS2WoXr83SnEA" name="messageId">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__Iwaw1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwbTVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwawloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa5VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbB1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbDVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbFloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbGFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwbH1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwbI1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbS1oGEeS2WoXr83SnEA" name="MessageEvent" superClass="__IwbPFoGEeS2WoXr83SnEA">
+      <templateParameterSubstitution href="orphanage.xml#__IwaPloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaQVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaRFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaYloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__Iwaj1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbX1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbaFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__Iwbd1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbhloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="SeqToStm.xml#__IwbLVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="SeqToStm.xml#__IwbMFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="SeqToStm.xml#__IwbM1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbTFoGEeS2WoXr83SnEA" name="lifeline" type="__IwbQloGEeS2WoXr83SnEA" opposite="__IwbRFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbTVoGEeS2WoXr83SnEA" name="message" type="__IwbR1oGEeS2WoXr83SnEA" opposite="__IwbSFoGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStm.xml#__IwbBloGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__IwbDFoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwbTloGEeS2WoXr83SnEA" name="next" type="__IwbS1oGEeS2WoXr83SnEA" opposite="__IwbU1oGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStm.xml#__IwbCFoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwbT1oGEeS2WoXr83SnEA" name="prev" type="__IwbS1oGEeS2WoXr83SnEA" opposite="__IwbUloGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbUFoGEeS2WoXr83SnEA" name="state" type="__IwbV1oGEeS2WoXr83SnEA" opposite="__IwbWVoGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStm.xml#__IwayloGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__Iwaz1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwbUVoGEeS2WoXr83SnEA" name="type" type="__IwbVFoGEeS2WoXr83SnEA" default="Send">
+        <propertyItem href="SeqToStm.xml#__IwayFoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__IwazVoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__IwbBFoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__IwbCloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwbUloGEeS2WoXr83SnEA" name="MessageEvent" type="__IwbXVoGEeS2WoXr83SnEA" implicit="true" opposite="__IwbT1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbU1oGEeS2WoXr83SnEA" name="MessageEvent" type="__IwbXVoGEeS2WoXr83SnEA" implicit="true" opposite="__IwbTloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwbTloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwbT1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwax1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwazFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa51oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa6VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbA1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbCVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbFVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Enumeration" xmi:id="__IwbVFoGEeS2WoXr83SnEA" name="MessageEventType">
+      <superClass href="OCL.xml#__IwYGVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwbUVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:EnumLiteralExp" href="SeqToStm.xml#__IwayVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:EnumLiteralExp" href="SeqToStm.xml#__IwazloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:EnumLiteralExp" href="SeqToStm.xml#__IwbBVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:EnumLiteralExp" href="SeqToStm.xml#__IwbC1oGEeS2WoXr83SnEA"/>
+      <ownedLiteral xmi:id="__IwbVVoGEeS2WoXr83SnEA" name="Send"/>
+      <ownedLiteral xmi:id="__IwbVloGEeS2WoXr83SnEA" name="Receive"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbV1oGEeS2WoXr83SnEA" name="State">
+      <templateParameterSubstitution href="orphanage.xml#__IwaR1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaSloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaTVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbbloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbfVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwbjFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbWFoGEeS2WoXr83SnEA" name="lifeline" type="__IwbcloGEeS2WoXr83SnEA" opposite="__IwbRloGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStm.xml#__IwaqVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwbWVoGEeS2WoXr83SnEA" name="messageevent" type="__IwbdVoGEeS2WoXr83SnEA" opposite="__IwbUFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwbWloGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__Iwap1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwbW1oGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__IwbOVoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__IwbOloGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwbUFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwaploGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwatVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iway1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa0FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa6FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa6loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa-loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa_loGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="__IwbXFoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__IwbXVoGEeS2WoXr83SnEA" name="Bag" superClass="__IwbZloGEeS2WoXr83SnEA" typedElement="__IwbUloGEeS2WoXr83SnEA __IwbU1oGEeS2WoXr83SnEA"
+        elementType="__IwbS1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwbXloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbX1oGEeS2WoXr83SnEA" actual="__IwbS1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXOFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXN1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__IwXNloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbYFoGEeS2WoXr83SnEA" name="Collection" elementType="__IwbPVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwbYVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbYloGEeS2WoXr83SnEA" actual="__IwbPVoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbY1oGEeS2WoXr83SnEA" name="Collection" elementType="__IwbQloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwbZFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbZVoGEeS2WoXr83SnEA" actual="__IwbQloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbZloGEeS2WoXr83SnEA" name="Collection" elementType="__IwbS1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwbZ1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbaFoGEeS2WoXr83SnEA" actual="__IwbS1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbaVoGEeS2WoXr83SnEA" name="Collection" elementType="__IwbR1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwbaloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__Iwba1oGEeS2WoXr83SnEA" actual="__IwbR1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbbFoGEeS2WoXr83SnEA" name="Collection" elementType="__IwbV1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwbbVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbbloGEeS2WoXr83SnEA" actual="__IwbV1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__Iwbb1oGEeS2WoXr83SnEA" name="Set" superClass="__IwbfloGEeS2WoXr83SnEA" typedElement="__IwbO1oGEeS2WoXr83SnEA"
+        elementType="__IwbPVoGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__IwbcFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbcVoGEeS2WoXr83SnEA" actual="__IwbPVoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwbcloGEeS2WoXr83SnEA" name="Set" superClass="__IwbgVoGEeS2WoXr83SnEA" typedElement="__IwbPloGEeS2WoXr83SnEA __IwbWFoGEeS2WoXr83SnEA"
+        elementType="__IwbQloGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__Iwbc1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbdFoGEeS2WoXr83SnEA" actual="__IwbQloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwbdVoGEeS2WoXr83SnEA" name="Set" superClass="__IwbhFoGEeS2WoXr83SnEA" typedElement="__IwbRFoGEeS2WoXr83SnEA __IwbSFoGEeS2WoXr83SnEA __IwbWVoGEeS2WoXr83SnEA"
+        elementType="__IwbS1oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__IwbdloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__Iwbd1oGEeS2WoXr83SnEA" actual="__IwbS1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwbeFoGEeS2WoXr83SnEA" name="Set" superClass="__Iwbh1oGEeS2WoXr83SnEA" typedElement="__IwbP1oGEeS2WoXr83SnEA"
+        elementType="__IwbR1oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__IwbeVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbeloGEeS2WoXr83SnEA" actual="__IwbR1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__Iwbe1oGEeS2WoXr83SnEA" name="Set" superClass="__IwbiloGEeS2WoXr83SnEA" typedElement="__IwbOloGEeS2WoXr83SnEA __IwbRloGEeS2WoXr83SnEA"
+        elementType="__IwbV1oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__IwbfFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbfVoGEeS2WoXr83SnEA" actual="__IwbV1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbfloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbYFoGEeS2WoXr83SnEA"
+        elementType="__IwbPVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__Iwbf1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbgFoGEeS2WoXr83SnEA" actual="__IwbPVoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbgVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbY1oGEeS2WoXr83SnEA"
+        elementType="__IwbQloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwbgloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__Iwbg1oGEeS2WoXr83SnEA" actual="__IwbQloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbhFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbZloGEeS2WoXr83SnEA"
+        elementType="__IwbS1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwbhVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbhloGEeS2WoXr83SnEA" actual="__IwbS1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Iwbh1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbaVoGEeS2WoXr83SnEA"
+        elementType="__IwbR1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwbiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbiVoGEeS2WoXr83SnEA" actual="__IwbR1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbiloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbbFoGEeS2WoXr83SnEA"
+        elementType="__IwbV1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__Iwbi1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbjFoGEeS2WoXr83SnEA" actual="__IwbV1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqToStm.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqToStm.xml
new file mode 100644
index 0000000..aa51a95
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqToStm.xml
@@ -0,0 +1,520 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__IwakFoGEeS2WoXr83SnEA" name="SeqToStm.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqToStm.qvtr">
+  <ownedComment xmi:id="__IwakVoGEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+  <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="__IwakloGEeS2WoXr83SnEA" name="SeqToStm">
+    <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+    <modelParameter xmi:id="__Iwak1oGEeS2WoXr83SnEA" name="seqDgm">
+      <usedPackage href="SeqMM.xml#__IwbOFoGEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <modelParameter xmi:id="__IwalFoGEeS2WoXr83SnEA" name="stm">
+      <usedPackage href="StmcMM.xml#__IwZ5VoGEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="__IwalVoGEeS2WoXr83SnEA" name="InteractionToStateMachine" isTopLevel="true" relationCallExp="__IwavFoGEeS2WoXr83SnEA __Iwa9VoGEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwalloGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="__Iwak1oGEeS2WoXr83SnEA"
+          rootVariable="__IwaoVoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__Iwal1oGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwamFoGEeS2WoXr83SnEA" bindsTo="__IwaoVoGEeS2WoXr83SnEA">
+            <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+            <part xmi:id="__IwamVoGEeS2WoXr83SnEA">
+              <referredProperty href="SeqMM.xml#__IwbQFoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="__IwamloGEeS2WoXr83SnEA" isRequired="false" referredVariable="__IwaoFoGEeS2WoXr83SnEA">
+                <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__Iwam1oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__IwalFoGEeS2WoXr83SnEA"
+          rootVariable="__IwaoloGEeS2WoXr83SnEA">
+        <pattern xmi:id="__IwanFoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwanVoGEeS2WoXr83SnEA" bindsTo="__IwaoloGEeS2WoXr83SnEA">
+            <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+            <part xmi:id="__IwanloGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__IwZ-1oGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwan1oGEeS2WoXr83SnEA" isRequired="false" referredVariable="__IwaoFoGEeS2WoXr83SnEA">
+                <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="__IwaoFoGEeS2WoXr83SnEA" name="sn" isRequired="false">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwaoVoGEeS2WoXr83SnEA" name="i" templateExp="__IwamFoGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwaoloGEeS2WoXr83SnEA" name="s" templateExp="__IwanVoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+      </variable>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="__Iwao1oGEeS2WoXr83SnEA" name="StateToState" isTopLevel="true" relationCallExp="__Iwa-VoGEeS2WoXr83SnEA __Iwa_VoGEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwapFoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="__Iwak1oGEeS2WoXr83SnEA"
+          rootVariable="__IwatVoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__IwapVoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwaploGEeS2WoXr83SnEA" bindsTo="__IwatVoGEeS2WoXr83SnEA">
+            <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+            <part xmi:id="__Iwap1oGEeS2WoXr83SnEA">
+              <referredProperty href="SeqMM.xml#__IwbWloGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="__IwaqFoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__IwatFoGEeS2WoXr83SnEA">
+                <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="__IwaqVoGEeS2WoXr83SnEA">
+              <referredProperty href="SeqMM.xml#__IwbWFoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwaqloGEeS2WoXr83SnEA" bindsTo="__IwatloGEeS2WoXr83SnEA">
+                <type href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+                <part xmi:id="__Iwaq1oGEeS2WoXr83SnEA">
+                  <referredProperty href="SeqMM.xml#__IwbQ1oGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwarFoGEeS2WoXr83SnEA" bindsTo="__Iwat1oGEeS2WoXr83SnEA">
+                    <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+                    <referredClass href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwarVoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__IwalFoGEeS2WoXr83SnEA"
+          rootVariable="__IwauFoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__IwarloGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwar1oGEeS2WoXr83SnEA" bindsTo="__IwauFoGEeS2WoXr83SnEA">
+            <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+            <part xmi:id="__IwasFoGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__IwZ91oGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="__IwasVoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__IwatFoGEeS2WoXr83SnEA">
+                <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="__IwasloGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__IwZ-VoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwas1oGEeS2WoXr83SnEA" bindsTo="__IwauVoGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+                <referredClass href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="__IwatFoGEeS2WoXr83SnEA" name="sn" isRequired="false">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwatVoGEeS2WoXr83SnEA" name="st1" templateExp="__IwaploGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwatloGEeS2WoXr83SnEA" name="l" templateExp="__IwaqloGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwat1oGEeS2WoXr83SnEA" name="i" templateExp="__IwarFoGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwauFoGEeS2WoXr83SnEA" name="st2" templateExp="__Iwar1oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwauVoGEeS2WoXr83SnEA" name="s" templateExp="__Iwas1oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+      </variable>
+      <when xmi:id="__IwauloGEeS2WoXr83SnEA">
+        <predicate xmi:id="__Iwau1oGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__IwavFoGEeS2WoXr83SnEA" referredRelation="__IwalVoGEeS2WoXr83SnEA">
+            <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwavVoGEeS2WoXr83SnEA" referredVariable="__Iwat1oGEeS2WoXr83SnEA">
+              <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwavloGEeS2WoXr83SnEA" referredVariable="__IwauVoGEeS2WoXr83SnEA">
+              <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </when>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="__Iwav1oGEeS2WoXr83SnEA" name="MessageToTransition" isTopLevel="true" relationCallExp="__IwbHloGEeS2WoXr83SnEA __IwbIloGEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwawFoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="__Iwak1oGEeS2WoXr83SnEA"
+          rootVariable="__Iwa5VoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__IwawVoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwawloGEeS2WoXr83SnEA" bindsTo="__Iwa5VoGEeS2WoXr83SnEA">
+            <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+            <part xmi:id="__Iwaw1oGEeS2WoXr83SnEA">
+              <referredProperty href="SeqMM.xml#__IwbSloGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="__IwaxFoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__Iwa5FoGEeS2WoXr83SnEA">
+                <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="__IwaxVoGEeS2WoXr83SnEA">
+              <referredProperty href="SeqMM.xml#__IwbSFoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:CollectionTemplateExp" xmi:id="__IwaxloGEeS2WoXr83SnEA" type="__IwbLloGEeS2WoXr83SnEA" bindsTo="__Iwa5loGEeS2WoXr83SnEA"
+                  rest="__Iwa61oGEeS2WoXr83SnEA">
+                <member xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwax1oGEeS2WoXr83SnEA" bindsTo="__Iwa51oGEeS2WoXr83SnEA">
+                  <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+                  <part xmi:id="__IwayFoGEeS2WoXr83SnEA">
+                    <referredProperty href="SeqMM.xml#__IwbUVoGEeS2WoXr83SnEA"/>
+                    <value xmi:type="flatemofqvt:EnumLiteralExp" xmi:id="__IwayVoGEeS2WoXr83SnEA">
+                      <type href="SeqMM.xml#__IwbVFoGEeS2WoXr83SnEA"/>
+                      <referredEnumLiteral href="SeqMM.xml#__IwbVVoGEeS2WoXr83SnEA"/>
+                    </value>
+                  </part>
+                  <part xmi:id="__IwayloGEeS2WoXr83SnEA">
+                    <referredProperty href="SeqMM.xml#__IwbUFoGEeS2WoXr83SnEA"/>
+                    <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iway1oGEeS2WoXr83SnEA" bindsTo="__Iwa6FoGEeS2WoXr83SnEA">
+                      <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+                      <referredClass href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+                    </value>
+                  </part>
+                  <referredClass href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+                </member>
+                <member xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwazFoGEeS2WoXr83SnEA" bindsTo="__Iwa6VoGEeS2WoXr83SnEA">
+                  <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+                  <part xmi:id="__IwazVoGEeS2WoXr83SnEA">
+                    <referredProperty href="SeqMM.xml#__IwbUVoGEeS2WoXr83SnEA"/>
+                    <value xmi:type="flatemofqvt:EnumLiteralExp" xmi:id="__IwazloGEeS2WoXr83SnEA">
+                      <type href="SeqMM.xml#__IwbVFoGEeS2WoXr83SnEA"/>
+                      <referredEnumLiteral href="SeqMM.xml#__IwbVloGEeS2WoXr83SnEA"/>
+                    </value>
+                  </part>
+                  <part xmi:id="__Iwaz1oGEeS2WoXr83SnEA">
+                    <referredProperty href="SeqMM.xml#__IwbUFoGEeS2WoXr83SnEA"/>
+                    <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa0FoGEeS2WoXr83SnEA" bindsTo="__Iwa6loGEeS2WoXr83SnEA">
+                      <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+                      <referredClass href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+                    </value>
+                  </part>
+                  <referredClass href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+                </member>
+                <referredCollectionType href="orphanage.xml#__IwajVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="__Iwa0VoGEeS2WoXr83SnEA">
+              <referredProperty href="SeqMM.xml#__IwbSVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa0loGEeS2WoXr83SnEA" bindsTo="__Iwa7FoGEeS2WoXr83SnEA">
+                <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+                <referredClass href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__Iwa01oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__IwalFoGEeS2WoXr83SnEA"
+          rootVariable="__Iwa7VoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__Iwa1FoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa1VoGEeS2WoXr83SnEA" bindsTo="__Iwa7VoGEeS2WoXr83SnEA">
+            <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+            <part xmi:id="__Iwa1loGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__IwaA1oGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa11oGEeS2WoXr83SnEA" isRequired="false" referredVariable="__Iwa5FoGEeS2WoXr83SnEA">
+                <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="__Iwa2FoGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__IwaAVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa2VoGEeS2WoXr83SnEA" bindsTo="__Iwa7loGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+                <referredClass href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="__Iwa2loGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__IwaBVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa21oGEeS2WoXr83SnEA" bindsTo="__Iwa71oGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+                <referredClass href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="__Iwa3FoGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__IwaAFoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa3VoGEeS2WoXr83SnEA" bindsTo="__Iwa8FoGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+                <part xmi:id="__Iwa3loGEeS2WoXr83SnEA">
+                  <referredProperty href="StmcMM.xml#__IwZ9FoGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa31oGEeS2WoXr83SnEA" bindsTo="__Iwa8VoGEeS2WoXr83SnEA">
+                    <type href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+                    <part xmi:id="__Iwa4FoGEeS2WoXr83SnEA">
+                      <referredProperty href="StmcMM.xml#__IwZ8FoGEeS2WoXr83SnEA"/>
+                      <value xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa4VoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__Iwa5FoGEeS2WoXr83SnEA">
+                        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+                      </value>
+                    </part>
+                    <referredClass href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="__Iwa4loGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__IwaBFoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa41oGEeS2WoXr83SnEA" bindsTo="__Iwa8loGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+                <referredClass href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="__Iwa5FoGEeS2WoXr83SnEA" name="mid" isRequired="false">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa5VoGEeS2WoXr83SnEA" name="m1" templateExp="__IwawloGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa5loGEeS2WoXr83SnEA" type="__IwbLloGEeS2WoXr83SnEA" templateExp="__IwaxloGEeS2WoXr83SnEA"/>
+      <variable xmi:id="__Iwa51oGEeS2WoXr83SnEA" name="send" templateExp="__Iwax1oGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa6FoGEeS2WoXr83SnEA" name="ist1" templateExp="__Iway1oGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa6VoGEeS2WoXr83SnEA" name="receive" templateExp="__IwazFoGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa6loGEeS2WoXr83SnEA" name="ist2" templateExp="__Iwa0FoGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa61oGEeS2WoXr83SnEA" implicit="true" matchingExp="__IwaxloGEeS2WoXr83SnEA"/>
+      <variable xmi:id="__Iwa7FoGEeS2WoXr83SnEA" name="i" templateExp="__Iwa0loGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa7VoGEeS2WoXr83SnEA" name="tr" templateExp="__Iwa1VoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa7loGEeS2WoXr83SnEA" name="fst" templateExp="__Iwa2VoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa71oGEeS2WoXr83SnEA" name="tst" templateExp="__Iwa21oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa8FoGEeS2WoXr83SnEA" name="sm" templateExp="__Iwa3VoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa8VoGEeS2WoXr83SnEA" name="m2" templateExp="__Iwa31oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__Iwa8loGEeS2WoXr83SnEA" name="s" templateExp="__Iwa41oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+      </variable>
+      <when xmi:id="__Iwa81oGEeS2WoXr83SnEA">
+        <predicate xmi:id="__Iwa9FoGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__Iwa9VoGEeS2WoXr83SnEA" referredRelation="__IwalVoGEeS2WoXr83SnEA">
+            <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa9loGEeS2WoXr83SnEA" referredVariable="__Iwa7FoGEeS2WoXr83SnEA">
+              <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa91oGEeS2WoXr83SnEA" referredVariable="__Iwa8loGEeS2WoXr83SnEA">
+              <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="__Iwa-FoGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__Iwa-VoGEeS2WoXr83SnEA" referredRelation="__Iwao1oGEeS2WoXr83SnEA">
+            <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa-loGEeS2WoXr83SnEA" referredVariable="__Iwa6FoGEeS2WoXr83SnEA">
+              <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa-1oGEeS2WoXr83SnEA" referredVariable="__Iwa7loGEeS2WoXr83SnEA">
+              <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="__Iwa_FoGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__Iwa_VoGEeS2WoXr83SnEA" referredRelation="__Iwao1oGEeS2WoXr83SnEA">
+            <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa_loGEeS2WoXr83SnEA" referredVariable="__Iwa6loGEeS2WoXr83SnEA">
+              <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa_1oGEeS2WoXr83SnEA" referredVariable="__Iwa71oGEeS2WoXr83SnEA">
+              <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </when>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="__IwbAFoGEeS2WoXr83SnEA" name="MessageSequenceToTransitionSequence" isTopLevel="true">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwbAVoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="__Iwak1oGEeS2WoXr83SnEA"
+          rootVariable="__IwbFVoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__IwbAloGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbA1oGEeS2WoXr83SnEA" bindsTo="__IwbFVoGEeS2WoXr83SnEA">
+            <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+            <part xmi:id="__IwbBFoGEeS2WoXr83SnEA">
+              <referredProperty href="SeqMM.xml#__IwbUVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:EnumLiteralExp" xmi:id="__IwbBVoGEeS2WoXr83SnEA">
+                <type href="SeqMM.xml#__IwbVFoGEeS2WoXr83SnEA"/>
+                <referredEnumLiteral href="SeqMM.xml#__IwbVloGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="__IwbBloGEeS2WoXr83SnEA">
+              <referredProperty href="SeqMM.xml#__IwbTVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbB1oGEeS2WoXr83SnEA" bindsTo="__IwbFloGEeS2WoXr83SnEA">
+                <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+                <referredClass href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="__IwbCFoGEeS2WoXr83SnEA">
+              <referredProperty href="SeqMM.xml#__IwbTloGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbCVoGEeS2WoXr83SnEA" bindsTo="__IwbF1oGEeS2WoXr83SnEA">
+                <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+                <part xmi:id="__IwbCloGEeS2WoXr83SnEA">
+                  <referredProperty href="SeqMM.xml#__IwbUVoGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:EnumLiteralExp" xmi:id="__IwbC1oGEeS2WoXr83SnEA">
+                    <type href="SeqMM.xml#__IwbVFoGEeS2WoXr83SnEA"/>
+                    <referredEnumLiteral href="SeqMM.xml#__IwbVVoGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="__IwbDFoGEeS2WoXr83SnEA">
+                  <referredProperty href="SeqMM.xml#__IwbTVoGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbDVoGEeS2WoXr83SnEA" bindsTo="__IwbGFoGEeS2WoXr83SnEA">
+                    <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+                    <referredClass href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwbDloGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__IwalFoGEeS2WoXr83SnEA"
+          rootVariable="__IwbGVoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__IwbD1oGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbEFoGEeS2WoXr83SnEA" bindsTo="__IwbGVoGEeS2WoXr83SnEA">
+            <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+            <part xmi:id="__IwbEVoGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__IwaBVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbEloGEeS2WoXr83SnEA" bindsTo="__IwbGloGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+                <part xmi:id="__IwbE1oGEeS2WoXr83SnEA">
+                  <referredProperty href="StmcMM.xml#__IwZ-FoGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbFFoGEeS2WoXr83SnEA" bindsTo="__IwbG1oGEeS2WoXr83SnEA">
+                    <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+                    <referredClass href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="__IwbFVoGEeS2WoXr83SnEA" name="ev1" templateExp="__IwbA1oGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwbFloGEeS2WoXr83SnEA" name="m1" templateExp="__IwbB1oGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwbF1oGEeS2WoXr83SnEA" name="ev2" templateExp="__IwbCVoGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwbGFoGEeS2WoXr83SnEA" name="m2" templateExp="__IwbDVoGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwbGVoGEeS2WoXr83SnEA" name="tr1" templateExp="__IwbEFoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwbGloGEeS2WoXr83SnEA" name="tst" templateExp="__IwbEloGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__IwbG1oGEeS2WoXr83SnEA" name="tr2" templateExp="__IwbFFoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <when xmi:id="__IwbHFoGEeS2WoXr83SnEA">
+        <predicate xmi:id="__IwbHVoGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__IwbHloGEeS2WoXr83SnEA" referredRelation="__Iwav1oGEeS2WoXr83SnEA">
+            <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwbH1oGEeS2WoXr83SnEA" referredVariable="__IwbFloGEeS2WoXr83SnEA">
+              <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwbIFoGEeS2WoXr83SnEA" referredVariable="__IwbGVoGEeS2WoXr83SnEA">
+              <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="__IwbIVoGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__IwbIloGEeS2WoXr83SnEA" referredRelation="__Iwav1oGEeS2WoXr83SnEA">
+            <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwbI1oGEeS2WoXr83SnEA" referredVariable="__IwbGFoGEeS2WoXr83SnEA">
+              <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwbJFoGEeS2WoXr83SnEA" referredVariable="__IwbG1oGEeS2WoXr83SnEA">
+              <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </when>
+    </rule>
+    <ownedKey xmi:id="__IwbJVoGEeS2WoXr83SnEA">
+      <identifies href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+      <part href="StmcMM.xml#__IwZ-1oGEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="__IwbJloGEeS2WoXr83SnEA">
+      <identifies href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+      <part href="StmcMM.xml#__IwZ91oGEeS2WoXr83SnEA"/>
+      <part href="StmcMM.xml#__IwZ-VoGEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="__IwbJ1oGEeS2WoXr83SnEA">
+      <identifies href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+      <part href="StmcMM.xml#__IwaA1oGEeS2WoXr83SnEA"/>
+      <part href="StmcMM.xml#__IwaBFoGEeS2WoXr83SnEA"/>
+      <part href="StmcMM.xml#__IwaAVoGEeS2WoXr83SnEA"/>
+      <part href="StmcMM.xml#__IwaBVoGEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="__IwbKFoGEeS2WoXr83SnEA">
+      <identifies href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+      <part href="StmcMM.xml#__IwZ9FoGEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="__IwbKVoGEeS2WoXr83SnEA">
+      <identifies href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+      <part href="StmcMM.xml#__IwZ8FoGEeS2WoXr83SnEA"/>
+    </ownedKey>
+  </nestedPackage>
+  <nestedPackage xmi:id="__IwbKloGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbK1oGEeS2WoXr83SnEA" name="Collection">
+      <templateBinding xmi:id="__IwbLFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbLVoGEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+      <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwbLloGEeS2WoXr83SnEA" name="Set" superClass="__IwbMVoGEeS2WoXr83SnEA" typedElement="__IwaxloGEeS2WoXr83SnEA __Iwa5loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwbL1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbMFoGEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+      <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbMVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbK1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwbMloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwbM1oGEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+      <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <unit xmi:id="__IwbNFoGEeS2WoXr83SnEA" name="SeqMM">
+    <ownedComment xmi:id="__IwbNVoGEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+    <usedPackage xmi:type="flatemofqvt:Package" href="SeqMM.xml#__IwbOFoGEeS2WoXr83SnEA"/>
+  </unit>
+  <unit xmi:id="__IwbNloGEeS2WoXr83SnEA" name="StmcMM">
+    <usedPackage xmi:type="flatemofqvt:Package" href="StmcMM.xml#__IwZ5VoGEeS2WoXr83SnEA"/>
+  </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/StmcMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/StmcMM.xml
new file mode 100644
index 0000000..7036716
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/StmcMM.xml
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__IwZ5FoGEeS2WoXr83SnEA" name="StmcMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/StmcMM.emof">
+  <nestedPackage xmi:id="__IwZ5VoGEeS2WoXr83SnEA" name="StmcMM" nsURI="StmcMM">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ5loGEeS2WoXr83SnEA" name="Action" typedElement="__IwaAFoGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__IwZ51oGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwZ6FoGEeS2WoXr83SnEA" name="Transition" isRequired="false" type="__IwZ_1oGEeS2WoXr83SnEA" implicit="true"
+          opposite="__IwaAFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ6VoGEeS2WoXr83SnEA" name="Dummy" typedElement="__IwZ8VoGEeS2WoXr83SnEA __IwZ_loGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__IwZ6loGEeS2WoXr83SnEA" name="containsMessage" type="__IwaGloGEeS2WoXr83SnEA" isComposite="true" opposite="__IwZ8VoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwZ61oGEeS2WoXr83SnEA" name="containsStateMachine" type="__IwaHVoGEeS2WoXr83SnEA" isComposite="true" opposite="__IwZ_loGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ7FoGEeS2WoXr83SnEA" name="Event" typedElement="__IwaBloGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__IwZ7VoGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwZ7loGEeS2WoXr83SnEA" name="Transition" isRequired="false" type="__IwZ_1oGEeS2WoXr83SnEA" implicit="true"
+          opposite="__IwaBloGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ71oGEeS2WoXr83SnEA" name="Message">
+      <templateParameterSubstitution href="orphanage.xml#__Iwad1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaeloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwafVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaDVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaHFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaKFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwZ8FoGEeS2WoXr83SnEA" name="messageId">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+        <key href="SeqToStm.xml#__IwbKVoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__Iwa4FoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwZ8VoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__IwZ6VoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__IwZ6loGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwZ8loGEeS2WoXr83SnEA" name="SendMsg" type="__IwaCFoGEeS2WoXr83SnEA" implicit="true" opposite="__IwZ9FoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwZ9FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa31oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa8VoGEeS2WoXr83SnEA"/>
+      <key href="SeqToStm.xml#__IwbKVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ81oGEeS2WoXr83SnEA" name="SendMsg" superClass="__IwZ5loGEeS2WoXr83SnEA">
+      <templateParameterSubstitution href="orphanage.xml#__IwaiVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwajFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaCloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaEFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwZ9FoGEeS2WoXr83SnEA" name="message" type="__IwZ71oGEeS2WoXr83SnEA" opposite="__IwZ8loGEeS2WoXr83SnEA">
+        <key href="SeqToStm.xml#__IwbKFoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__Iwa3loGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa3VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa8FoGEeS2WoXr83SnEA"/>
+      <key href="SeqToStm.xml#__IwbKFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ9VoGEeS2WoXr83SnEA" name="State">
+      <templateParameterSubstitution href="orphanage.xml#__IwabloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwacVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwadFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaFloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaIloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaLloGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwZ9loGEeS2WoXr83SnEA" name="inTransition" type="__IwaI1oGEeS2WoXr83SnEA" opposite="__IwaBVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwZ91oGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+        <key href="SeqToStm.xml#__IwbJloGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__IwasFoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwZ-FoGEeS2WoXr83SnEA" name="outTransition" type="__IwaI1oGEeS2WoXr83SnEA" opposite="__IwaAVoGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStm.xml#__IwbE1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwZ-VoGEeS2WoXr83SnEA" name="owner" type="__IwZ-loGEeS2WoXr83SnEA" opposite="__IwZ_FoGEeS2WoXr83SnEA">
+        <key href="SeqToStm.xml#__IwbJloGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__IwasloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwaAVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwaBVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwar1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwauFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa2VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa21oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa7loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa71oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa-1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa_1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbEloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbGloGEeS2WoXr83SnEA"/>
+      <key href="SeqToStm.xml#__IwbJloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ-loGEeS2WoXr83SnEA" name="StateMachine">
+      <templateParameterSubstitution href="orphanage.xml#__IwagFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__Iwag1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwahloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaE1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaH1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaK1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwZ-1oGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+        <key href="SeqToStm.xml#__IwbJVoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__IwanloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwZ_FoGEeS2WoXr83SnEA" name="state" type="__IwaIFoGEeS2WoXr83SnEA" isComposite="true" opposite="__IwZ-VoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwZ_VoGEeS2WoXr83SnEA" name="transition" type="__IwaI1oGEeS2WoXr83SnEA" isComposite="true" opposite="__IwaBFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwZ_loGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__IwZ6VoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__IwZ61oGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwZ-VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwaBFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwanVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwaoloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwas1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwauVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwavloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa41oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa8loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa91oGEeS2WoXr83SnEA"/>
+      <key href="SeqToStm.xml#__IwbJVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ_1oGEeS2WoXr83SnEA" name="Transition">
+      <templateParameterSubstitution href="orphanage.xml#__IwaZVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__IwaaFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__Iwaa1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaGVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaJVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__IwaMVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__IwaAFoGEeS2WoXr83SnEA" name="action" type="__IwZ5loGEeS2WoXr83SnEA" isComposite="true" opposite="__IwZ6FoGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStm.xml#__Iwa3FoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwaAVoGEeS2WoXr83SnEA" name="fromState" type="__IwZ9VoGEeS2WoXr83SnEA" opposite="__IwZ-FoGEeS2WoXr83SnEA">
+        <key href="SeqToStm.xml#__IwbJ1oGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__Iwa2FoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwaAloGEeS2WoXr83SnEA" name="guard">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwaA1oGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+        <key href="SeqToStm.xml#__IwbJ1oGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__Iwa1loGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwaBFoGEeS2WoXr83SnEA" name="owner" type="__IwZ-loGEeS2WoXr83SnEA" opposite="__IwZ_VoGEeS2WoXr83SnEA">
+        <key href="SeqToStm.xml#__IwbJ1oGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__Iwa4loGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwaBVoGEeS2WoXr83SnEA" name="toState" type="__IwZ9VoGEeS2WoXr83SnEA" opposite="__IwZ9loGEeS2WoXr83SnEA">
+        <key href="SeqToStm.xml#__IwbJ1oGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__Iwa2loGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStm.xml#__IwbEVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__IwaBloGEeS2WoXr83SnEA" name="trigger" type="__IwZ7FoGEeS2WoXr83SnEA" isComposite="true" opposite="__IwZ7loGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwZ6FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__IwZ7loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa1VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa7VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbEFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbFFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbGVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbG1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwbIFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwbJFoGEeS2WoXr83SnEA"/>
+      <key href="SeqToStm.xml#__IwbJ1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="__IwaB1oGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__IwaCFoGEeS2WoXr83SnEA" name="Bag" superClass="__IwaDloGEeS2WoXr83SnEA" typedElement="__IwZ8loGEeS2WoXr83SnEA"
+        elementType="__IwZ81oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwaCVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaCloGEeS2WoXr83SnEA" actual="__IwZ81oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXOFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXN1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__IwXNloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaC1oGEeS2WoXr83SnEA" name="Collection" elementType="__IwZ71oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwaDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaDVoGEeS2WoXr83SnEA" actual="__IwZ71oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaDloGEeS2WoXr83SnEA" name="Collection" elementType="__IwZ81oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwaD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaEFoGEeS2WoXr83SnEA" actual="__IwZ81oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaEVoGEeS2WoXr83SnEA" name="Collection" elementType="__IwZ-loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwaEloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaE1oGEeS2WoXr83SnEA" actual="__IwZ-loGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaFFoGEeS2WoXr83SnEA" name="Collection" elementType="__IwZ9VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwaFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaFloGEeS2WoXr83SnEA" actual="__IwZ9VoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaF1oGEeS2WoXr83SnEA" name="Collection" elementType="__IwZ_1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwaGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaGVoGEeS2WoXr83SnEA" actual="__IwZ_1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaGloGEeS2WoXr83SnEA" name="Set" superClass="__IwaJloGEeS2WoXr83SnEA" typedElement="__IwZ6loGEeS2WoXr83SnEA"
+        elementType="__IwZ71oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__IwaG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaHFoGEeS2WoXr83SnEA" actual="__IwZ71oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaHVoGEeS2WoXr83SnEA" name="Set" superClass="__IwaKVoGEeS2WoXr83SnEA" typedElement="__IwZ61oGEeS2WoXr83SnEA"
+        elementType="__IwZ-loGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__IwaHloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaH1oGEeS2WoXr83SnEA" actual="__IwZ-loGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaIFoGEeS2WoXr83SnEA" name="Set" superClass="__IwaLFoGEeS2WoXr83SnEA" typedElement="__IwZ_FoGEeS2WoXr83SnEA"
+        elementType="__IwZ9VoGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__IwaIVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaIloGEeS2WoXr83SnEA" actual="__IwZ9VoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaI1oGEeS2WoXr83SnEA" name="Set" superClass="__IwaL1oGEeS2WoXr83SnEA" typedElement="__IwZ9loGEeS2WoXr83SnEA __IwZ-FoGEeS2WoXr83SnEA __IwZ_VoGEeS2WoXr83SnEA"
+        elementType="__IwZ_1oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__IwaJFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaJVoGEeS2WoXr83SnEA" actual="__IwZ_1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaJloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaC1oGEeS2WoXr83SnEA"
+        elementType="__IwZ71oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwaJ1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaKFoGEeS2WoXr83SnEA" actual="__IwZ71oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaKVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaEVoGEeS2WoXr83SnEA"
+        elementType="__IwZ-loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwaKloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaK1oGEeS2WoXr83SnEA" actual="__IwZ-loGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaLFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaFFoGEeS2WoXr83SnEA"
+        elementType="__IwZ9VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwaLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaLloGEeS2WoXr83SnEA" actual="__IwZ9VoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaL1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaF1oGEeS2WoXr83SnEA"
+        elementType="__IwZ_1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__IwaMFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__IwaMVoGEeS2WoXr83SnEA" actual="__IwZ_1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/orphanage.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/orphanage.xml
new file mode 100644
index 0000000..4364c0b
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/orphanage.xml
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Package xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__IwaMloGEeS2WoXr83SnEA" name="$$" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaM1oGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__IwaNFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaNVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaNloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaM1oGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__IwaN1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaOFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaOVoGEeS2WoXr83SnEA" name="Set" superClass="__IwaNloGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__IwaOloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaO1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaPFoGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__IwaPVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaPloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaP1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaPFoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__IwaQFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaQVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaQloGEeS2WoXr83SnEA" name="Set" superClass="__IwaP1oGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__IwaQ1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaRFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaRVoGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__IwaRloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaR1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaSFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaRVoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__IwaSVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaSloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaS1oGEeS2WoXr83SnEA" name="Set" superClass="__IwaSFoGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__IwaTFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaTVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaTloGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__IwaT1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaUFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaUVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaTloGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__IwaUloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaU1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaVFoGEeS2WoXr83SnEA" name="Set" superClass="__IwaUVoGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__IwaVVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaVloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaV1oGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__IwaWFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaWVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaWloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaV1oGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__IwaW1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaXFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaXVoGEeS2WoXr83SnEA" name="Set" superClass="__IwaWloGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__IwaXloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaX1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__IwaYFoGEeS2WoXr83SnEA" name="Bag" superClass="__IwaPFoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__IwaYVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaYloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXOFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXN1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__IwXNloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaY1oGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__IwaZFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaZVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaZloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaY1oGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__IwaZ1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaaFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaaVoGEeS2WoXr83SnEA" name="Set" superClass="__IwaZloGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__IwaaloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__Iwaa1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwabFoGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__IwabVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwabloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Iwab1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwabFoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__IwacFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwacVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwacloGEeS2WoXr83SnEA" name="Set" superClass="__Iwab1oGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__Iwac1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwadFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwadVoGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__IwadloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__Iwad1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaeFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwadVoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__IwaeVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaeloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__Iwae1oGEeS2WoXr83SnEA" name="Set" superClass="__IwaeFoGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__IwafFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwafVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwafloGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__Iwaf1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwagFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwagVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwafloGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__IwagloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__Iwag1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwahFoGEeS2WoXr83SnEA" name="Set" superClass="__IwagVoGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__IwahVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwahloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Iwah1oGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__IwaiFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwaiVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__IwailoGEeS2WoXr83SnEA" name="Bag" superClass="__Iwah1oGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__Iwai1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__IwajFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwXOFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwXN1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__IwXNloGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwajVoGEeS2WoXr83SnEA" name="Set" superClass="__IwaP1oGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__IwajloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__Iwaj1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+</flatemofqvt:Package>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/OCL.xml
new file mode 100644
index 0000000..9b0ab7d
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/OCL.xml
@@ -0,0 +1,2988 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__jbf51oGEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+  <nestedPackage xmi:id="__jbf6FoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf6VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbivloGEeS2WoXr83SnEA __jbiwloGEeS2WoXr83SnEA"
+        contextType="__jbiiloGEeS2WoXr83SnEA" resultType="__jbhrFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf6loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbitFoGEeS2WoXr83SnEA"
+        contextType="__jbiiloGEeS2WoXr83SnEA" resultType="__jbis1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf61oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbiuloGEeS2WoXr83SnEA"
+        contextType="__jbiiloGEeS2WoXr83SnEA" resultType="__jbiuVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf7FoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbixloGEeS2WoXr83SnEA"
+        contextType="__jbiiloGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf7VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbirVoGEeS2WoXr83SnEA"
+        contextType="__jbiiloGEeS2WoXr83SnEA" resultType="__jbhX1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf7loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbjL1oGEeS2WoXr83SnEA __jbjQFoGEeS2WoXr83SnEA __jbjRVoGEeS2WoXr83SnEA __jbjSFoGEeS2WoXr83SnEA __jbjTVoGEeS2WoXr83SnEA __jbjXFoGEeS2WoXr83SnEA __jbjYFoGEeS2WoXr83SnEA __jbjZFoGEeS2WoXr83SnEA"
+        contextType="__jbizFoGEeS2WoXr83SnEA" resultType="__jbhrFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf71oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbjNloGEeS2WoXr83SnEA"
+        contextType="__jbizFoGEeS2WoXr83SnEA" resultType="__jbjNVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf8FoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbjPVoGEeS2WoXr83SnEA"
+        contextType="__jbizFoGEeS2WoXr83SnEA" resultType="__jbjPFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf8VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbjV1oGEeS2WoXr83SnEA"
+        contextType="__jbizFoGEeS2WoXr83SnEA" resultType="__jbjVloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf8loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbjUVoGEeS2WoXr83SnEA __jbjaFoGEeS2WoXr83SnEA"
+        contextType="__jbizFoGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf81oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkc1oGEeS2WoXr83SnEA __jbkd1oGEeS2WoXr83SnEA"
+        contextType="__jbkK1oGEeS2WoXr83SnEA" resultType="__jbhrFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf9FoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbke1oGEeS2WoXr83SnEA"
+        contextType="__jbkK1oGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf9VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkYloGEeS2WoXr83SnEA"
+        contextType="__jbkK1oGEeS2WoXr83SnEA" resultType="__jbkKFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf9loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkaVoGEeS2WoXr83SnEA"
+        contextType="__jbkK1oGEeS2WoXr83SnEA" resultType="__jbkaFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf91oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkb1oGEeS2WoXr83SnEA"
+        contextType="__jbkK1oGEeS2WoXr83SnEA" resultType="__jbkbloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf-FoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkx1oGEeS2WoXr83SnEA __jbky1oGEeS2WoXr83SnEA"
+        contextType="__jbkgFoGEeS2WoXr83SnEA" resultType="__jbhrFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf-VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkz1oGEeS2WoXr83SnEA"
+        contextType="__jbkgFoGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf-loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbktloGEeS2WoXr83SnEA"
+        contextType="__jbkgFoGEeS2WoXr83SnEA" resultType="__jbhMloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf-1oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkvVoGEeS2WoXr83SnEA"
+        contextType="__jbkgFoGEeS2WoXr83SnEA" resultType="__jbkvFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf_FoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkw1oGEeS2WoXr83SnEA"
+        contextType="__jbkgFoGEeS2WoXr83SnEA" resultType="__jbkwloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf_VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jblC1oGEeS2WoXr83SnEA __jblD1oGEeS2WoXr83SnEA"
+        contextType="__jbk1FoGEeS2WoXr83SnEA" resultType="__jbhrFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf_loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jblE1oGEeS2WoXr83SnEA"
+        contextType="__jbk1FoGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf_1oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbk-loGEeS2WoXr83SnEA"
+        contextType="__jbk1FoGEeS2WoXr83SnEA" resultType="__jbk0VoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbgAFoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jblAVoGEeS2WoXr83SnEA"
+        contextType="__jbk1FoGEeS2WoXr83SnEA" resultType="__jblAFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbgAVoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jblB1oGEeS2WoXr83SnEA"
+        contextType="__jbk1FoGEeS2WoXr83SnEA" resultType="__jblBloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbgAloGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jblKVoGEeS2WoXr83SnEA"
+        contextType="__jblGloGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="__jbgA1oGEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="__jbgL1oGEeS2WoXr83SnEA __jbhXloGEeS2WoXr83SnEA __jbheVoGEeS2WoXr83SnEA"
+        superClass="__jbj_FoGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__jbgBFoGEeS2WoXr83SnEA" name="first" type="__jbizFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbgBVoGEeS2WoXr83SnEA" name="second" type="__jbjGloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgBloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+        superClass="__jbgMFoGEeS2WoXr83SnEA" typedElement="__jbir1oGEeS2WoXr83SnEA" elementType="__jbis1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgB1oGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgCFoGEeS2WoXr83SnEA" actual="__jbis1oGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgCVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+        superClass="__jbgM1oGEeS2WoXr83SnEA" typedElement="__jbitloGEeS2WoXr83SnEA" elementType="__jbiuVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgCloGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgC1oGEeS2WoXr83SnEA" actual="__jbiuVoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgDFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+        superClass="__jbgNloGEeS2WoXr83SnEA" typedElement="__jbilloGEeS2WoXr83SnEA" elementType="__jbimloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgDVoGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgDloGEeS2WoXr83SnEA" actual="__jbimloGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgD1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+        superClass="__jbgOVoGEeS2WoXr83SnEA" typedElement="__jbioVoGEeS2WoXr83SnEA" elementType="__jbipFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgEFoGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgEVoGEeS2WoXr83SnEA" actual="__jbipFoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgEloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+        superClass="__jbgPFoGEeS2WoXr83SnEA" typedElement="__jbiploGEeS2WoXr83SnEA" elementType="__jbiqVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgE1oGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgFFoGEeS2WoXr83SnEA" actual="__jbiqVoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgFVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+        superClass="__jbgWloGEeS2WoXr83SnEA" typedElement="__jbi2loGEeS2WoXr83SnEA __jbjCFoGEeS2WoXr83SnEA __jbjKloGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgFloGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgF1oGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgGFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+        superClass="__jbgXVoGEeS2WoXr83SnEA" typedElement="__jbizVoGEeS2WoXr83SnEA" elementType="__jbiyVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgGVoGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgGloGEeS2WoXr83SnEA" actual="__jbiyVoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgG1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+        superClass="__jbgY1oGEeS2WoXr83SnEA" typedElement="__jbjcloGEeS2WoXr83SnEA" elementType="__jbjaloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgHFoGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgHVoGEeS2WoXr83SnEA" actual="__jbjaloGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgHloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+        superClass="__jbgZloGEeS2WoXr83SnEA" typedElement="__jbjd1oGEeS2WoXr83SnEA" elementType="__jbjc1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgH1oGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgIFoGEeS2WoXr83SnEA" actual="__jbjc1oGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgIVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+        superClass="__jbgmVoGEeS2WoXr83SnEA" typedElement="__jbk_FoGEeS2WoXr83SnEA" elementType="__jblAFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgIloGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgI1oGEeS2WoXr83SnEA" actual="__jblAFoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgJFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+        superClass="__jbgnFoGEeS2WoXr83SnEA" typedElement="__jblA1oGEeS2WoXr83SnEA" elementType="__jblBloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgJVoGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgJloGEeS2WoXr83SnEA" actual="__jblBloGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgJ1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbhyloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgKFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgKVoGEeS2WoXr83SnEA" actual="__jbhyloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgKloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbiHloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgK1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgLFoGEeS2WoXr83SnEA" actual="__jbiHloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgLVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbgA1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgLloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgL1oGEeS2WoXr83SnEA" actual="__jbgA1oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgMFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbis1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgMVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgMloGEeS2WoXr83SnEA" actual="__jbis1oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgM1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbiuVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgNFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgNVoGEeS2WoXr83SnEA" actual="__jbiuVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgNloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbimloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgN1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgOFoGEeS2WoXr83SnEA" actual="__jbimloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgOVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbipFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgOloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgO1oGEeS2WoXr83SnEA" actual="__jbipFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgPFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbiqVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgPVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgPloGEeS2WoXr83SnEA" actual="__jbiqVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgP1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbioFoGEeS2WoXr83SnEA" elementType="__jbiiloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgQFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgQVoGEeS2WoXr83SnEA" actual="__jbiiloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgQloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjMVoGEeS2WoXr83SnEA" elementType="__jbjNVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgQ1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgRFoGEeS2WoXr83SnEA" actual="__jbjNVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgRVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjOFoGEeS2WoXr83SnEA" elementType="__jbjPFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgRloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgR1oGEeS2WoXr83SnEA" actual="__jbjPFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgSFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbi7VoGEeS2WoXr83SnEA" elementType="__jbi7FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgSVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgSloGEeS2WoXr83SnEA" actual="__jbi7FoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgS1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbi9FoGEeS2WoXr83SnEA" elementType="__jbi-FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgTFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgTVoGEeS2WoXr83SnEA" actual="__jbi-FoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgTloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjAVoGEeS2WoXr83SnEA" elementType="__jbjAFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgT1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgUFoGEeS2WoXr83SnEA" actual="__jbjAFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgUVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjG1oGEeS2WoXr83SnEA" elementType="__jbjGloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgUloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgU1oGEeS2WoXr83SnEA" actual="__jbjGloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgVFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjHFoGEeS2WoXr83SnEA" elementType="__jbjH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgVVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgVloGEeS2WoXr83SnEA" actual="__jbjH1oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgV1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjIVoGEeS2WoXr83SnEA" elementType="__jbjJFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgWFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgWVoGEeS2WoXr83SnEA" actual="__jbjJFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgWloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgW1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgXFoGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgXVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbiyVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgXloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgX1oGEeS2WoXr83SnEA" actual="__jbiyVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgYFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbjcFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgYVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgYloGEeS2WoXr83SnEA" actual="__jbjcFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgY1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbjaloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgZFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgZVoGEeS2WoXr83SnEA" actual="__jbjaloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgZloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbjc1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgZ1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgaFoGEeS2WoXr83SnEA" actual="__jbjc1oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgaVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbilVoGEeS2WoXr83SnEA __jbi81oGEeS2WoXr83SnEA __jbkPloGEeS2WoXr83SnEA __jbkkVoGEeS2WoXr83SnEA __jbk4loGEeS2WoXr83SnEA"
+        elementType="__jbjeloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgaloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbga1oGEeS2WoXr83SnEA" actual="__jbjeloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgbFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbjuVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgbVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgbloGEeS2WoXr83SnEA" actual="__jbjuVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgb1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbj8loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgcFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgcVoGEeS2WoXr83SnEA" actual="__jbj8loGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgcloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkHVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgc1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgdFoGEeS2WoXr83SnEA" actual="__jbkHVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgdVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkaFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgdloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgd1oGEeS2WoXr83SnEA" actual="__jbkaFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgeFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkbloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgeVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgeloGEeS2WoXr83SnEA" actual="__jbkbloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbge1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkQloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgfFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgfVoGEeS2WoXr83SnEA" actual="__jbkQloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgfloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkVVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgf1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbggFoGEeS2WoXr83SnEA" actual="__jbkVVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbggVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkWloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbggloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgg1oGEeS2WoXr83SnEA" actual="__jbkWloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbghFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkK1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbghVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbghloGEeS2WoXr83SnEA" actual="__jbkK1oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgh1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkvFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgiFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgiVoGEeS2WoXr83SnEA" actual="__jbkvFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgiloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkwloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgi1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgjFoGEeS2WoXr83SnEA" actual="__jbkwloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgjVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbklloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgjloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgj1oGEeS2WoXr83SnEA" actual="__jbklloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgkFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkqVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgkVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgkloGEeS2WoXr83SnEA" actual="__jbkqVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgk1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkrloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbglFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbglVoGEeS2WoXr83SnEA" actual="__jbkrloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbglloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkgFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgl1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgmFoGEeS2WoXr83SnEA" actual="__jbkgFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgmVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jblAFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgmloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgm1oGEeS2WoXr83SnEA" actual="__jblAFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgnFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jblBloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgnVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgnloGEeS2WoXr83SnEA" actual="__jblBloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgn1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbk51oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgoFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgoVoGEeS2WoXr83SnEA" actual="__jbk51oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgoloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbk8VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgo1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgpFoGEeS2WoXr83SnEA" actual="__jbk8VoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgpVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbk9loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgploGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgp1oGEeS2WoXr83SnEA" actual="__jbk9loGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgqFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbk7VoGEeS2WoXr83SnEA" elementType="__jbk1FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgqVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgqloGEeS2WoXr83SnEA" actual="__jbk1FoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgq1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jblIFoGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgrFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgrVoGEeS2WoXr83SnEA" actual="__jblGloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgrloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbihloGEeS2WoXr83SnEA" instanceType="__jbihVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgr1oGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgsFoGEeS2WoXr83SnEA" actual="__jbihVoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgsVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbipVoGEeS2WoXr83SnEA" instanceType="__jbipFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgsloGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgs1oGEeS2WoXr83SnEA" actual="__jbipFoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgtFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbiqloGEeS2WoXr83SnEA" instanceType="__jbiqVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgtVoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgtloGEeS2WoXr83SnEA" actual="__jbiqVoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgt1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjIFoGEeS2WoXr83SnEA" instanceType="__jbjH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbguFoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbguVoGEeS2WoXr83SnEA" actual="__jbjH1oGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbguloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjJVoGEeS2WoXr83SnEA" instanceType="__jbjJFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgu1oGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgvFoGEeS2WoXr83SnEA" actual="__jbjJFoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgvVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjiVoGEeS2WoXr83SnEA" instanceType="__jbjiFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgvloGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgv1oGEeS2WoXr83SnEA" actual="__jbjiFoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgwFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjlFoGEeS2WoXr83SnEA" instanceType="__jbjk1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgwVoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgwloGEeS2WoXr83SnEA" actual="__jbjk1oGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgw1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjnFoGEeS2WoXr83SnEA" instanceType="__jbjm1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgxFoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgxVoGEeS2WoXr83SnEA" actual="__jbjm1oGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgxloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbj1FoGEeS2WoXr83SnEA" instanceType="__jbj01oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgx1oGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgyFoGEeS2WoXr83SnEA" actual="__jbj01oGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgyVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbj2loGEeS2WoXr83SnEA" instanceType="__jbj2VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgyloGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgy1oGEeS2WoXr83SnEA" actual="__jbj2VoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgzFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbj31oGEeS2WoXr83SnEA" instanceType="__jbj3loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbgzVoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbgzloGEeS2WoXr83SnEA" actual="__jbj3loGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgz1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" instanceType="__jbjwVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg0FoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg0VoGEeS2WoXr83SnEA" actual="__jbjwVoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg0loGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjpFoGEeS2WoXr83SnEA __jbj4VoGEeS2WoXr83SnEA" instanceType="__jbj8loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg01oGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg1FoGEeS2WoXr83SnEA" actual="__jbj8loGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg1VoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" instanceType="__jbkB1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg1loGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg11oGEeS2WoXr83SnEA" actual="__jbkB1oGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg2FoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbkVloGEeS2WoXr83SnEA" instanceType="__jbkVVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg2VoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg2loGEeS2WoXr83SnEA" actual="__jbkVVoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg21oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbkW1oGEeS2WoXr83SnEA" instanceType="__jbkWloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg3FoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg3VoGEeS2WoXr83SnEA" actual="__jbkWloGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg3loGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbkqloGEeS2WoXr83SnEA" instanceType="__jbkqVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg31oGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg4FoGEeS2WoXr83SnEA" actual="__jbkqVoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg4VoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbkr1oGEeS2WoXr83SnEA" instanceType="__jbkrloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg4loGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg41oGEeS2WoXr83SnEA" actual="__jbkrloGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg5FoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbk8loGEeS2WoXr83SnEA" instanceType="__jbk8VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg5VoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg5loGEeS2WoXr83SnEA" actual="__jbk8VoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg51oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbk91oGEeS2WoXr83SnEA" instanceType="__jbk9loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg6FoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg6VoGEeS2WoXr83SnEA" actual="__jbk9loGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg6loGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgJ1oGEeS2WoXr83SnEA" elementType="__jbhyloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg61oGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg7FoGEeS2WoXr83SnEA" actual="__jbhyloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg7VoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgKloGEeS2WoXr83SnEA" elementType="__jbiHloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg7loGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg71oGEeS2WoXr83SnEA" actual="__jbiHloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg8FoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgP1oGEeS2WoXr83SnEA" elementType="__jbiiloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg8VoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg8loGEeS2WoXr83SnEA" actual="__jbiiloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg81oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgWloGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg9FoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg9VoGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg9loGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgYFoGEeS2WoXr83SnEA" elementType="__jbjcFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg91oGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg-FoGEeS2WoXr83SnEA" actual="__jbjcFoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg-VoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgdVoGEeS2WoXr83SnEA" elementType="__jbkaFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg-loGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg-1oGEeS2WoXr83SnEA" actual="__jbkaFoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg_FoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgeFoGEeS2WoXr83SnEA" elementType="__jbkbloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbg_VoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbg_loGEeS2WoXr83SnEA" actual="__jbkbloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg_1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbge1oGEeS2WoXr83SnEA" elementType="__jbkQloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhAFoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhAVoGEeS2WoXr83SnEA" actual="__jbkQloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhAloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgfloGEeS2WoXr83SnEA" elementType="__jbkVVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhA1oGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhBFoGEeS2WoXr83SnEA" actual="__jbkVVoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhBVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbggVoGEeS2WoXr83SnEA" elementType="__jbkWloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhBloGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhB1oGEeS2WoXr83SnEA" actual="__jbkWloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhCFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbghFoGEeS2WoXr83SnEA" typedElement="__jbkOFoGEeS2WoXr83SnEA __jbkT1oGEeS2WoXr83SnEA" elementType="__jbkK1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhCVoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhCloGEeS2WoXr83SnEA" actual="__jbkK1oGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhC1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgh1oGEeS2WoXr83SnEA" elementType="__jbkvFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhDFoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhDVoGEeS2WoXr83SnEA" actual="__jbkvFoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhDloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgiloGEeS2WoXr83SnEA" elementType="__jbkwloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhD1oGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhEFoGEeS2WoXr83SnEA" actual="__jbkwloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhEVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgjVoGEeS2WoXr83SnEA" elementType="__jbklloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhEloGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhE1oGEeS2WoXr83SnEA" actual="__jbklloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhFFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgkFoGEeS2WoXr83SnEA" elementType="__jbkqVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhFVoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhFloGEeS2WoXr83SnEA" actual="__jbkqVoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhF1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgk1oGEeS2WoXr83SnEA" elementType="__jbkrloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhGFoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhGVoGEeS2WoXr83SnEA" actual="__jbkrloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhGloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbglloGEeS2WoXr83SnEA" typedElement="__jbki1oGEeS2WoXr83SnEA __jbko1oGEeS2WoXr83SnEA" elementType="__jbkgFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhG1oGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhHFoGEeS2WoXr83SnEA" actual="__jbkgFoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhHVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgqFoGEeS2WoXr83SnEA" elementType="__jbk1FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhHloGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhH1oGEeS2WoXr83SnEA" actual="__jbk1FoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhIFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+        superClass="__jbgq1oGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhIVoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhIloGEeS2WoXr83SnEA" actual="__jblGloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhI1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+        superClass="__jbg81oGEeS2WoXr83SnEA __jbhfVoGEeS2WoXr83SnEA" typedElement="__jbi3FoGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhJFoGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhJVoGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhJloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+        superClass="__jbg9loGEeS2WoXr83SnEA __jbhgFoGEeS2WoXr83SnEA" typedElement="__jbjbFoGEeS2WoXr83SnEA" elementType="__jbjcFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhJ1oGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhKFoGEeS2WoXr83SnEA" actual="__jbjcFoGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhKVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+        superClass="__jbg_1oGEeS2WoXr83SnEA __jbhjFoGEeS2WoXr83SnEA" typedElement="__jbkP1oGEeS2WoXr83SnEA" elementType="__jbkQloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhKloGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhK1oGEeS2WoXr83SnEA" actual="__jbkQloGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhLFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+        superClass="__jbhAloGEeS2WoXr83SnEA __jbhj1oGEeS2WoXr83SnEA" typedElement="__jbkUloGEeS2WoXr83SnEA" elementType="__jbkVVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhLVoGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhLloGEeS2WoXr83SnEA" actual="__jbkVVoGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhL1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+        superClass="__jbhBVoGEeS2WoXr83SnEA __jbhkloGEeS2WoXr83SnEA" typedElement="__jbkV1oGEeS2WoXr83SnEA" elementType="__jbkWloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhMFoGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhMVoGEeS2WoXr83SnEA" actual="__jbkWloGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhMloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+        superClass="__jbhGloGEeS2WoXr83SnEA __jbhmFoGEeS2WoXr83SnEA" typedElement="__jbktFoGEeS2WoXr83SnEA" elementType="__jbkgFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhM1oGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhNFoGEeS2WoXr83SnEA" actual="__jbkgFoGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhNVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+        superClass="__jbhHVoGEeS2WoXr83SnEA __jbhpFoGEeS2WoXr83SnEA" typedElement="__jblEVoGEeS2WoXr83SnEA" elementType="__jbk1FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhNloGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhN1oGEeS2WoXr83SnEA" actual="__jbk1FoGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhOFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+        superClass="__jbhIFoGEeS2WoXr83SnEA __jbhp1oGEeS2WoXr83SnEA" typedElement="__jblJ1oGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhOVoGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhOloGEeS2WoXr83SnEA" actual="__jblGloGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhO1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+        superClass="__jbg6loGEeS2WoXr83SnEA" elementType="__jbhyloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhPFoGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhPVoGEeS2WoXr83SnEA" actual="__jbhyloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhPloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+        superClass="__jbg7VoGEeS2WoXr83SnEA" typedElement="__jbiNVoGEeS2WoXr83SnEA __jbidVoGEeS2WoXr83SnEA __jbid1oGEeS2WoXr83SnEA __jbieloGEeS2WoXr83SnEA"
+        elementType="__jbiHloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhP1oGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhQFoGEeS2WoXr83SnEA" actual="__jbiHloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhQVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+        superClass="__jbg8FoGEeS2WoXr83SnEA" typedElement="__jbixFoGEeS2WoXr83SnEA" elementType="__jbiiloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhQloGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhQ1oGEeS2WoXr83SnEA" actual="__jbiiloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhRFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+        superClass="__jbg81oGEeS2WoXr83SnEA" typedElement="__jbi3loGEeS2WoXr83SnEA __jbjZloGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhRVoGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhRloGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhR1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+        superClass="__jbg-VoGEeS2WoXr83SnEA" typedElement="__jbkZFoGEeS2WoXr83SnEA" elementType="__jbkaFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhSFoGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhSVoGEeS2WoXr83SnEA" actual="__jbkaFoGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhSloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+        superClass="__jbg_FoGEeS2WoXr83SnEA" typedElement="__jbka1oGEeS2WoXr83SnEA" elementType="__jbkbloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhS1oGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhTFoGEeS2WoXr83SnEA" actual="__jbkbloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhTVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+        superClass="__jbhC1oGEeS2WoXr83SnEA" typedElement="__jbkuFoGEeS2WoXr83SnEA" elementType="__jbkvFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhTloGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhT1oGEeS2WoXr83SnEA" actual="__jbkvFoGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhUFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+        superClass="__jbhDloGEeS2WoXr83SnEA" typedElement="__jbkv1oGEeS2WoXr83SnEA" elementType="__jbkwloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhUVoGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhUloGEeS2WoXr83SnEA" actual="__jbkwloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhU1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+        superClass="__jbhEVoGEeS2WoXr83SnEA" typedElement="__jbkkloGEeS2WoXr83SnEA" elementType="__jbklloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhVFoGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhVVoGEeS2WoXr83SnEA" actual="__jbklloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhVloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+        superClass="__jbhFFoGEeS2WoXr83SnEA" typedElement="__jbkploGEeS2WoXr83SnEA" elementType="__jbkqVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhV1oGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhWFoGEeS2WoXr83SnEA" actual="__jbkqVoGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhWVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+        superClass="__jbhF1oGEeS2WoXr83SnEA" typedElement="__jbkq1oGEeS2WoXr83SnEA" elementType="__jbkrloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhWloGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhW1oGEeS2WoXr83SnEA" actual="__jbkrloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhXFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+        superClass="__jbhd1oGEeS2WoXr83SnEA" typedElement="__jbjFloGEeS2WoXr83SnEA" elementType="__jbgA1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhXVoGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhXloGEeS2WoXr83SnEA" actual="__jbgA1oGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhX1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+        superClass="__jbheloGEeS2WoXr83SnEA" typedElement="__jbiq1oGEeS2WoXr83SnEA" elementType="__jbiiloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhYFoGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhYVoGEeS2WoXr83SnEA" actual="__jbiiloGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhYloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+        superClass="__jbhfVoGEeS2WoXr83SnEA" typedElement="__jbi4FoGEeS2WoXr83SnEA __jbjC1oGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhY1oGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhZFoGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhZVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+        superClass="__jbhhloGEeS2WoXr83SnEA" typedElement="__jbjv1oGEeS2WoXr83SnEA" elementType="__jbjuVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhZloGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhZ1oGEeS2WoXr83SnEA" actual="__jbjuVoGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhaFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+        superClass="__jbhiVoGEeS2WoXr83SnEA" typedElement="__jbhs1oGEeS2WoXr83SnEA __jbjbloGEeS2WoXr83SnEA __jbjgloGEeS2WoXr83SnEA __jbju1oGEeS2WoXr83SnEA __jbjyVoGEeS2WoXr83SnEA __jbjz1oGEeS2WoXr83SnEA __jbkDloGEeS2WoXr83SnEA"
+        elementType="__jbj8loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhaVoGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhaloGEeS2WoXr83SnEA" actual="__jbj8loGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbha1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+        superClass="__jbhm1oGEeS2WoXr83SnEA" typedElement="__jbk41oGEeS2WoXr83SnEA" elementType="__jbk51oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhbFoGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhbVoGEeS2WoXr83SnEA" actual="__jbk51oGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhbloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+        superClass="__jbhnloGEeS2WoXr83SnEA" typedElement="__jbk7loGEeS2WoXr83SnEA" elementType="__jbk8VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhb1oGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhcFoGEeS2WoXr83SnEA" actual="__jbk8VoGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhcVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+        superClass="__jbhoVoGEeS2WoXr83SnEA" typedElement="__jbk81oGEeS2WoXr83SnEA" elementType="__jbk9loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhcloGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhc1oGEeS2WoXr83SnEA" actual="__jbk9loGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhdFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+        superClass="__jbhp1oGEeS2WoXr83SnEA" typedElement="__jblHloGEeS2WoXr83SnEA __jblIVoGEeS2WoXr83SnEA __jblJFoGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhdVoGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhdloGEeS2WoXr83SnEA" actual="__jblGloGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhd1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgLVoGEeS2WoXr83SnEA" elementType="__jbgA1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbheFoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbheVoGEeS2WoXr83SnEA" actual="__jbgA1oGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbheloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgP1oGEeS2WoXr83SnEA" elementType="__jbiiloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhe1oGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhfFoGEeS2WoXr83SnEA" actual="__jbiiloGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhfVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgWloGEeS2WoXr83SnEA" typedElement="__jbjDVoGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhfloGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhf1oGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhgFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgYFoGEeS2WoXr83SnEA" elementType="__jbjcFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhgVoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhgloGEeS2WoXr83SnEA" actual="__jbjcFoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhg1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgaVoGEeS2WoXr83SnEA" typedElement="__jbkLloGEeS2WoXr83SnEA __jbk11oGEeS2WoXr83SnEA __jblHVoGEeS2WoXr83SnEA __jblI1oGEeS2WoXr83SnEA"
+        elementType="__jbjeloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhhFoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhhVoGEeS2WoXr83SnEA" actual="__jbjeloGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhhloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgbFoGEeS2WoXr83SnEA" elementType="__jbjuVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhh1oGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhiFoGEeS2WoXr83SnEA" actual="__jbjuVoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhiVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgb1oGEeS2WoXr83SnEA" elementType="__jbj8loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhiloGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhi1oGEeS2WoXr83SnEA" actual="__jbj8loGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhjFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbge1oGEeS2WoXr83SnEA" elementType="__jbkQloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhjVoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhjloGEeS2WoXr83SnEA" actual="__jbkQloGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhj1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgfloGEeS2WoXr83SnEA" elementType="__jbkVVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhkFoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhkVoGEeS2WoXr83SnEA" actual="__jbkVVoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhkloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbggVoGEeS2WoXr83SnEA" elementType="__jbkWloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhk1oGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhlFoGEeS2WoXr83SnEA" actual="__jbkWloGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhlVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbghFoGEeS2WoXr83SnEA" elementType="__jbkK1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhlloGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhl1oGEeS2WoXr83SnEA" actual="__jbkK1oGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhmFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbglloGEeS2WoXr83SnEA" elementType="__jbkgFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhmVoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhmloGEeS2WoXr83SnEA" actual="__jbkgFoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhm1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgn1oGEeS2WoXr83SnEA" elementType="__jbk51oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhnFoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhnVoGEeS2WoXr83SnEA" actual="__jbk51oGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhnloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgoloGEeS2WoXr83SnEA" elementType="__jbk8VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhn1oGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhoFoGEeS2WoXr83SnEA" actual="__jbk8VoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhoVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgpVoGEeS2WoXr83SnEA" elementType="__jbk9loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbholoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbho1oGEeS2WoXr83SnEA" actual="__jbk9loGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhpFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgqFoGEeS2WoXr83SnEA" elementType="__jbk1FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhpVoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhploGEeS2WoXr83SnEA" actual="__jbk1FoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhp1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+        superClass="__jbgq1oGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbhqFoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbhqVoGEeS2WoXr83SnEA" actual="__jblGloGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="__jbhqloGEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+    <ownedComment xmi:id="__jbhq1oGEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.&#xA;This sub clause contains all standard types defined within OCL, including all the operations defined on those types.&#xA;For each operation the signature and a description of the semantics is given.&#xA;Within the description, the reserved word &#x2018;result&#x2019; is used to refer to the value that results from evaluating the operation.&#xA;In several places, post conditions are used to describe properties of the result.&#xA;When there is more than one postcondition, all postconditions must be true.&#xA;A similar thing is true for multiple preconditions.&#xA;If these are used, the operation is only defined if all preconditions evaluate to oclText[true].&#xA;&#xA;heading:1[Introduction]&#xA;&#xA;The structure, syntax, and semantics of the OCL is defined in Clauses 8 (&#x201c;Abstract Syntax&#x201d;), 9 (&#x201c;Concrete Syntax&#x201d;),&#xA;and 10 (&#x201c;Semantics Described using UML&#x201d;).&#xA;This sub clause adds another part to the OCL definition: a library of predefined types and operations.&#xA;Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,&#xA;where the language definition and the standard libraries are both mandatory parts of the complete language definition.&#xA;&#xA;The OCL standard library defines a number of types.&#xA;It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.&#xA;These are familiar from many other languages. The second part of the standard library consists of the collection types.&#xA;They are Bag, Set, Sequence, and Collection where Collection is an abstract type.&#xA;Note that all types defined in the OCL standard library are instances of an abstract syntax class.&#xA;The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.&#xA;&#xA;Next to definitions of types the OCL standard library defines a number of template expressions.&#xA;Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.&#xA;For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.&#xA;&#xA;The Standard Library may be extended with new types, new operations and new iterators.&#xA;In particular new operations can be defined for collections.&#xA;&#xA;Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted&#xA;in an appropriate fashion.&#xA;A locale is defined as a concatenation of up to three character sequences separated by underscores,&#xA;with the first sequence identifying the language and the second sequence identifying the country.&#xA;The third sequence is empty but may encode an implementation-specific variant.&#xA;Trailing empty strings and separators may be omitted.&#xA;&#xA;The character sequences for languages are defined by ISO 639.&#xA;&#xA;The character sequences for countries are defined by ISO 3166.&#xA;&#xA;&#x2018;fr_CA&#x2019; therefore identifies the locale for the French language in the Canada country.&#xA;&#xA;Comparison of strings and consequently the collation order of Collection::sortedBy()&#xA;conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.&#xA;&#xA;The locale is &#x2018;en_us&#x2019; by default but may be configured by a property constraint on OclAny::oclLocale.&#xA;&#xA;The prevailing locale is defined by the prevailing value of oclLocale within the current environment;&#xA;it may therefore be changed temporarily by using a Let expression.&#xA;let oclLocale : String = &#x2018;fr_CA&#x2019; in aString.toUpperCase()&#xA;&#xA;heading:1[Iterators]&#xA;&#xA;This sub clause defines the standard OCL iterator expressions.&#xA;In the abstract syntax these are all instances of IteratorExp.&#xA;These iterator expressions always have a collection expression as their source,&#xA;as is defined in the well-formedness rules in Clause 8 (&#x201c;Abstract Syntax&#x201d;).&#xA;The defined iterator expressions are shown per source collection type.&#xA;The semantics of each iterator expression is defined through a mapping from the iterator to the &#x2018;iterate&#x2019; construct.&#xA;This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.&#xA;&#xA;In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,&#xA;and the righthand side of the equals sign is the equivalent as an IterateExp.&#xA;The names source, body, and iterator refer to the role names in the abstract syntax:&#xA;&#xA;source&#x9;The source expression of the IteratorExp.&#xA;&#xA;body&#x9;The body expression of the IteratorExp.&#xA;&#xA;iterator&#x9;The iterator variable of the IteratorExp.&#xA;&#xA;result&#x9;The result variable of the IterateExp.&#xA;&#xA;heading:2[Extending the Standard Library with Iterator Expressions]&#xA;&#xA;It is possible to add new iterator expressions in the standard library.&#xA;If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,&#xA;in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__jbhrFoGEeS2WoXr83SnEA" name="Boolean" superClass="__jbjeloGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__jbhrVoGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbhrloGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__jbhr1oGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbhsFoGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbhsVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__jbhsloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbhs1oGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+        <ownedComment xmi:id="__jbhtFoGEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbhtVoGEeS2WoXr83SnEA" name="and" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isInvalidating="true" isValidating="true" precedence="__jblMVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbhtloGEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[true]."/>
+        <bodyExpression xmi:id="__jbht1oGEeS2WoXr83SnEA" type="__jbhrFoGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = false then false
+		        else self
+		        endif endif
+		      else if self = false then false
+		      else if b.oclIsInvalid() then b
+		      else if b = false then false
+		      else if self = null then null
+		      else if b = null then null
+		      else true
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__jbhuFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbhuVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isInvalidating="true" isValidating="true" precedence="__jblNFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbhuloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="__jbhu1oGEeS2WoXr83SnEA" type="__jbhrFoGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = true then true
+		        else self
+		        endif endif
+		      else if self = false then true
+		      else if b.oclIsInvalid() then b
+		      else if b = true then true
+		      else if self = null then null
+		      else if b = null then b
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__jbhvFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbhvVoGEeS2WoXr83SnEA" name="not" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+          precedence="__jblLFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbhvloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].&#xA;oclText[false] if oclText[self] is oclText[true].&#xA;oclText[null] if oclText[self] is oclText[null].&#xA;Otherwise oclText[invalid]."/>
+        <bodyExpression xmi:id="__jbhv1oGEeS2WoXr83SnEA" type="__jbhrFoGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if self = null then null
+		      else self = false
+		      endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbhwFoGEeS2WoXr83SnEA" name="or" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+          isInvalidating="true" isValidating="true" precedence="__jblMloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbhwVoGEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="__jbhwloGEeS2WoXr83SnEA" type="__jbhrFoGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+			    else if b = true then true
+		        else self
+		        endif endif
+		      else if self = true then true
+			  else if b.oclIsInvalid() then b
+			  else if b = true then true
+			  else if self = null then null
+			  else if b = null then null
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__jbhw1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbhxFoGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__jbhxVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbhxloGEeS2WoXr83SnEA" name="xor" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+          precedence="__jblM1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbhx1oGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].&#xA;oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null]."/>
+        <bodyExpression xmi:id="__jbhyFoGEeS2WoXr83SnEA" type="__jbhrFoGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if b.oclIsInvalid() then b
+		      else if self = null then null
+		      else if b = null then null
+		      else self &lt;> b
+		      endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="__jbhyVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhrVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhsFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhtVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__jbht1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbhuFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhuVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__jbhu1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbhvFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhvVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__jbhv1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhwFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__jbhwloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbhw1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhxloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__jbhyFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbhyVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbh-1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbh_loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiAVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiBFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiB1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiCloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiIloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiJVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiKFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiKloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiLFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiL1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiPVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiQFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiSVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiVloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiZVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbifVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbii1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbijVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi1FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi11oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi5VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi6FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi-VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi_FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjDloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjFFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjP1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjQ1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjR1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjS1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjT1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjWloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjfFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjf1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjiloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjjVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjj1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjlVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjl1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjnVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjqloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjrVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjsFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjs1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjw1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjxloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjy1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbjzFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjzVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbjzloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj1VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj1loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj21oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj4FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj4loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbj41oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj6loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj7FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj7loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj_loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkAFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkBFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkCVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkC1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkEFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbkEVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkEloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbkE1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkFFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkFVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkFloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbkF1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkL1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkMVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkgVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkg1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbk2FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbk2loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbfa1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbfkFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="SeqToStmc.xml#__jbfn1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbfoFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbfo1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbfwloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbf11oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__jbhyloGEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="__jbgKVoGEeS2WoXr83SnEA __jbg7FoGEeS2WoXr83SnEA __jbhPVoGEeS2WoXr83SnEA"
+        superClass="__jbh7FoGEeS2WoXr83SnEA" typedElement="__jbhy1oGEeS2WoXr83SnEA __jbhzloGEeS2WoXr83SnEA __jbh0VoGEeS2WoXr83SnEA __jbh01oGEeS2WoXr83SnEA __jbh2VoGEeS2WoXr83SnEA __jbh21oGEeS2WoXr83SnEA __jbh3loGEeS2WoXr83SnEA __jbh4FoGEeS2WoXr83SnEA __jbh4VoGEeS2WoXr83SnEA __jbh5FoGEeS2WoXr83SnEA __jbh51oGEeS2WoXr83SnEA __jbh6VoGEeS2WoXr83SnEA __jbiD1oGEeS2WoXr83SnEA __jbiEloGEeS2WoXr83SnEA __jbiGloGEeS2WoXr83SnEA __jbiNFoGEeS2WoXr83SnEA __jbiN1oGEeS2WoXr83SnEA __jbiQ1oGEeS2WoXr83SnEA __jbiRloGEeS2WoXr83SnEA __jbiVFoGEeS2WoXr83SnEA __jbiY1oGEeS2WoXr83SnEA __jbiZFoGEeS2WoXr83SnEA __jbiZ1oGEeS2WoXr83SnEA __jbi0FoGEeS2WoXr83SnEA __jbi0loGEeS2WoXr83SnEA __jbi4loGEeS2WoXr83SnEA __jbjJloGEeS2WoXr83SnEA __jbjtloGEeS2WoXr83SnEA __jbkIFoGEeS2WoXr83SnEA __jbkI1oGEeS2WoXr83SnEA __jbkSFoGEeS2WoXr83SnEA __jbkXloGEeS2WoXr83SnEA __jbkX1oGEeS2WoXr83SnEA __jbknFoGEeS2WoXr83SnEA __jbksloGEeS2WoXr83SnEA __jbks1oGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__jbhy1oGEeS2WoXr83SnEA" name="*" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="__jblLVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbhzFoGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+        <ownedParameter xmi:id="__jbhzVoGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbhzloGEeS2WoXr83SnEA" name="+" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="__jblLloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbhz1oGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+        <ownedParameter xmi:id="__jbh0FoGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh0VoGEeS2WoXr83SnEA" name="-" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="__jblLFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbh0loGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh01oGEeS2WoXr83SnEA" name="-" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="__jblLloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbh1FoGEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+        <ownedParameter xmi:id="__jbh1VoGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh1loGEeS2WoXr83SnEA" name="/" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="__jblLVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbh11oGEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.&#xA;Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="__jbh2FoGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh2VoGEeS2WoXr83SnEA" name="abs" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="__jbh2loGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh21oGEeS2WoXr83SnEA" name="compareTo" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="__jbh3FoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="__jbh3VoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh3loGEeS2WoXr83SnEA" name="div" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+        <ownedComment xmi:id="__jbh31oGEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+        <ownedParameter xmi:id="__jbh4FoGEeS2WoXr83SnEA" name="i" type="__jbhyloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh4VoGEeS2WoXr83SnEA" name="max" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="__jbh4loGEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+        <ownedParameter xmi:id="__jbh41oGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh5FoGEeS2WoXr83SnEA" name="min" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="__jbh5VoGEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+        <ownedParameter xmi:id="__jbh5loGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh51oGEeS2WoXr83SnEA" name="mod" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+        <ownedComment xmi:id="__jbh6FoGEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+        <ownedParameter xmi:id="__jbh6VoGEeS2WoXr83SnEA" name="i" type="__jbhyloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh6loGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__jbh61oGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__jbh7FoGEeS2WoXr83SnEA" name="Real" superClass="__jbjqFoGEeS2WoXr83SnEA __jbj9VoGEeS2WoXr83SnEA"
+        typedElement="__jbh1loGEeS2WoXr83SnEA __jbh7VoGEeS2WoXr83SnEA __jbh8FoGEeS2WoXr83SnEA __jbh81oGEeS2WoXr83SnEA __jbh9VoGEeS2WoXr83SnEA __jbh-FoGEeS2WoXr83SnEA __jbiDVoGEeS2WoXr83SnEA __jbiFFoGEeS2WoXr83SnEA __jbiF1oGEeS2WoXr83SnEA __jbibVoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__jbh7VoGEeS2WoXr83SnEA" name="*" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="__jblLVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbh7loGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+        <ownedParameter xmi:id="__jbh71oGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh8FoGEeS2WoXr83SnEA" name="+" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="__jblLloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbh8VoGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+        <ownedParameter xmi:id="__jbh8loGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh81oGEeS2WoXr83SnEA" name="-" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="__jblLFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbh9FoGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh9VoGEeS2WoXr83SnEA" name="-" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="__jblLloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbh9loGEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+        <ownedParameter xmi:id="__jbh91oGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh-FoGEeS2WoXr83SnEA" name="/" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="__jblLVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbh-VoGEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="__jbh-loGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh-1oGEeS2WoXr83SnEA" name="&lt;" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbh_FoGEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+        <ownedParameter xmi:id="__jbh_VoGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbh_loGEeS2WoXr83SnEA" name="&lt;=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbh_1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+        <ownedParameter xmi:id="__jbiAFoGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiAVoGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbiAloGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__jbiA1oGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiBFoGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbiBVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__jbiBloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiB1oGEeS2WoXr83SnEA" name=">" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbiCFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+        <ownedParameter xmi:id="__jbiCVoGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiCloGEeS2WoXr83SnEA" name=">=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbiC1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+        <ownedParameter xmi:id="__jbiDFoGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiDVoGEeS2WoXr83SnEA" name="abs" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="__jbiDloGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiD1oGEeS2WoXr83SnEA" name="compareTo" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="__jbiEFoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="__jbiEVoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiEloGEeS2WoXr83SnEA" name="floor" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+        <ownedComment xmi:id="__jbiE1oGEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiFFoGEeS2WoXr83SnEA" name="max" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="__jbiFVoGEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+        <ownedParameter xmi:id="__jbiFloGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiF1oGEeS2WoXr83SnEA" name="min" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="__jbiGFoGEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+        <ownedParameter xmi:id="__jbiGVoGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiGloGEeS2WoXr83SnEA" name="round" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+        <ownedComment xmi:id="__jbiG1oGEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiHFoGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__jbiHVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__jbiHloGEeS2WoXr83SnEA" name="String" templateParameterSubstitution="__jbgLFoGEeS2WoXr83SnEA __jbg71oGEeS2WoXr83SnEA __jbhQFoGEeS2WoXr83SnEA"
+        superClass="__jbjqFoGEeS2WoXr83SnEA __jbj9VoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__jbiH1oGEeS2WoXr83SnEA" name="+" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+          precedence="__jblLloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbiIFoGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="__jbiIVoGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiIloGEeS2WoXr83SnEA" name="&lt;" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbiI1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__jbiJFoGEeS2WoXr83SnEA" name="s" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiJVoGEeS2WoXr83SnEA" name="&lt;=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbiJloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__jbiJ1oGEeS2WoXr83SnEA" name="s" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiKFoGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbiKVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiKloGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbiK1oGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiLFoGEeS2WoXr83SnEA" name=">" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbiLVoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__jbiLloGEeS2WoXr83SnEA" name="s" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiL1oGEeS2WoXr83SnEA" name=">=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbiMFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="__jbiMVoGEeS2WoXr83SnEA" name="s" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiMloGEeS2WoXr83SnEA" name="at" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbiM1oGEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+        <ownedParameter xmi:id="__jbiNFoGEeS2WoXr83SnEA" name="i" type="__jbhyloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiNVoGEeS2WoXr83SnEA" name="characters" type="__jbhPloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+        <ownedComment xmi:id="__jbiNloGEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiN1oGEeS2WoXr83SnEA" name="compareTo" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+        <ownedComment xmi:id="__jbiOFoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="__jbiOVoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiOloGEeS2WoXr83SnEA" name="concat" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+        <ownedComment xmi:id="__jbiO1oGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="__jbiPFoGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiPVoGEeS2WoXr83SnEA" name="endsWith" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+        <ownedComment xmi:id="__jbiPloGEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.&#xA;Every string ends with the empty string."/>
+        <ownedParameter xmi:id="__jbiP1oGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiQFoGEeS2WoXr83SnEA" name="equalsIgnoreCase" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+        <ownedComment xmi:id="__jbiQVoGEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+        <ownedParameter xmi:id="__jbiQloGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiQ1oGEeS2WoXr83SnEA" name="indexOf" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+        <ownedComment xmi:id="__jbiRFoGEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="__jbiRVoGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiRloGEeS2WoXr83SnEA" name="lastIndexOf" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+        <ownedComment xmi:id="__jbiR1oGEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="__jbiSFoGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiSVoGEeS2WoXr83SnEA" name="matches" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+        <ownedComment xmi:id="__jbiSloGEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+        <ownedParameter xmi:id="__jbiS1oGEeS2WoXr83SnEA" name="regex" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiTFoGEeS2WoXr83SnEA" name="replaceAll" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbiTVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+        <ownedParameter xmi:id="__jbiTloGEeS2WoXr83SnEA" name="regex" type="__jbiHloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__jbiT1oGEeS2WoXr83SnEA" name="replacement" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiUFoGEeS2WoXr83SnEA" name="replaceFirst" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbiUVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+        <ownedParameter xmi:id="__jbiUloGEeS2WoXr83SnEA" name="regex" type="__jbiHloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__jbiU1oGEeS2WoXr83SnEA" name="replacement" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiVFoGEeS2WoXr83SnEA" name="size" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+        <ownedComment xmi:id="__jbiVVoGEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiVloGEeS2WoXr83SnEA" name="startsWith" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+        <ownedComment xmi:id="__jbiV1oGEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.&#xA;Every string starts with the empty string."/>
+        <ownedParameter xmi:id="__jbiWFoGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiWVoGEeS2WoXr83SnEA" name="substituteAll" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+        <ownedComment xmi:id="__jbiWloGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+        <ownedParameter xmi:id="__jbiW1oGEeS2WoXr83SnEA" name="oldSubstring" type="__jbiHloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__jbiXFoGEeS2WoXr83SnEA" name="newSubstring" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiXVoGEeS2WoXr83SnEA" name="substituteFirst" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+        <ownedComment xmi:id="__jbiXloGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.&#xA;Returns invalid if there is no first occurrence."/>
+        <ownedParameter xmi:id="__jbiX1oGEeS2WoXr83SnEA" name="oldSubstring" type="__jbiHloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__jbiYFoGEeS2WoXr83SnEA" name="newSubstring" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiYVoGEeS2WoXr83SnEA" name="substring" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbiYloGEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+        <ownedParameter xmi:id="__jbiY1oGEeS2WoXr83SnEA" name="lower" type="__jbhyloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__jbiZFoGEeS2WoXr83SnEA" name="upper" type="__jbhyloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiZVoGEeS2WoXr83SnEA" name="toBoolean" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbiZloGEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiZ1oGEeS2WoXr83SnEA" name="toInteger" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbiaFoGEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiaVoGEeS2WoXr83SnEA" name="toLower" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="__jbialoGEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbia1oGEeS2WoXr83SnEA" name="toLowerCase" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="__jbibFoGEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbibVoGEeS2WoXr83SnEA" name="toReal" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbibloGEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbib1oGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__jbicFoGEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbicVoGEeS2WoXr83SnEA" name="toUpper" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="__jbicloGEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbic1oGEeS2WoXr83SnEA" name="toUpperCase" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="__jbidFoGEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbidVoGEeS2WoXr83SnEA" name="tokenize" type="__jbhPloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="__jbidloGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.&#xA;The delimiters are omitted from the return."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbid1oGEeS2WoXr83SnEA" name="tokenize" type="__jbhPloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="__jbieFoGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+        <ownedParameter xmi:id="__jbieVoGEeS2WoXr83SnEA" name="delimiters" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbieloGEeS2WoXr83SnEA" name="tokenize" type="__jbhPloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="__jbie1oGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is&#xA;true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+        <ownedParameter xmi:id="__jbifFoGEeS2WoXr83SnEA" name="delimiters" type="__jbiHloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__jbifVoGEeS2WoXr83SnEA" name="returnDelimiters" type="__jbhrFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbifloGEeS2WoXr83SnEA" name="trim" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+        <ownedComment xmi:id="__jbif1oGEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhxFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbh6loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiHFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiH1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiIVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiMloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiOloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiPFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiP1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiQloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiRVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiSFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiS1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiTFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiTloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiT1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiUFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiUloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiU1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiWFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiWVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiW1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiXFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiXVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiX1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiYFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiYVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiaVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbia1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbib1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbicVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbic1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbieVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbifFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbifloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbjo1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjploGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj5FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkGFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfW1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfYloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfY1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfdloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfgVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfhFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfrFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbftVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfuFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jbluloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jblwloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jblxloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jbly1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jbl0loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jbl4loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jbl5loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbe81oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbe9loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbe_loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbfAVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbfCFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbfDFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbfFVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbfFloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__jbigFoGEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="__jbhyloGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="__jbigVoGEeS2WoXr83SnEA" name="oclAsType" type="__jbihVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+        <ownedComment xmi:id="__jbigloGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to&#xA;Real or Integer, but the e[unlimited] value may not.&#xA;Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+        <ownedTemplateSignature xmi:id="__jbig1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbihFoGEeS2WoXr83SnEA" parameteredElement="__jbihVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbihVoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbihFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgsFoGEeS2WoXr83SnEA" typedElement="__jbigVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbihloGEeS2WoXr83SnEA" name="type" type="__jbgrloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbih1oGEeS2WoXr83SnEA" name="Bag" superClass="__jbgP1oGEeS2WoXr83SnEA" typedElement="__jbikFoGEeS2WoXr83SnEA __jbik1oGEeS2WoXr83SnEA __jbim1oGEeS2WoXr83SnEA __jbinloGEeS2WoXr83SnEA __jbivFoGEeS2WoXr83SnEA __jbiwFoGEeS2WoXr83SnEA"
+        elementType="__jbiiloGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__jbiiFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbiiVoGEeS2WoXr83SnEA" parameteredElement="__jbiiloGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbiiloGEeS2WoXr83SnEA" name="T" templateParameter="__jbiiVoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__jbgQVoGEeS2WoXr83SnEA __jbg8loGEeS2WoXr83SnEA __jbhQ1oGEeS2WoXr83SnEA __jbhYVoGEeS2WoXr83SnEA __jbhfFoGEeS2WoXr83SnEA"
+              typedElement="__jbinVoGEeS2WoXr83SnEA __jbirloGEeS2WoXr83SnEA __jbitVoGEeS2WoXr83SnEA __jbiu1oGEeS2WoXr83SnEA __jbiv1oGEeS2WoXr83SnEA __jbiw1oGEeS2WoXr83SnEA __jbix1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jbld1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jbleloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblfVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblsFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgCFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgC1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgDloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgEVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgFFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgF1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgGloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgHVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgIFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgI1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgJloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbl7FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbl71oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbl8loGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfHFoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="orphanage.xml#__jbldloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jbleVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblfFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblr1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgB1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgCloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgDVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgEFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgE1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgFloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgGVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgHFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgH1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgIloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgJVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbl61oGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbl7loGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbl8VoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfG1oGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__jbii1oGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbijFoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbijVoGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbijloGEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+        <ownedParameter xmi:id="__jbij1oGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbikFoGEeS2WoXr83SnEA" name="excluding" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__jbikVoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+        <ownedParameter xmi:id="__jbikloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbik1oGEeS2WoXr83SnEA" name="excludingAll" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__jbilFoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__jbilVoGEeS2WoXr83SnEA" name="objects" type="__jbgaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbilloGEeS2WoXr83SnEA" name="flatten" type="__jbgDFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__jbil1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].&#xA;If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="__jbimFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbimVoGEeS2WoXr83SnEA" parameteredElement="__jbimloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbimloGEeS2WoXr83SnEA" name="T2" templateParameter="__jbimVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgDloGEeS2WoXr83SnEA __jbgOFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbim1oGEeS2WoXr83SnEA" name="including" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__jbinFoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="__jbinVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbinloGEeS2WoXr83SnEA" name="includingAll" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="__jbin1oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="__jbioFoGEeS2WoXr83SnEA" name="objects" type="__jbgP1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbioVoGEeS2WoXr83SnEA" name="selectByKind" type="__jbgD1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__jbioloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbio1oGEeS2WoXr83SnEA" parameteredElement="__jbipFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbipFoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbio1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgEVoGEeS2WoXr83SnEA __jbgO1oGEeS2WoXr83SnEA __jbgs1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbipVoGEeS2WoXr83SnEA" name="type" type="__jbgsVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbiploGEeS2WoXr83SnEA" name="selectByType" type="__jbgEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__jbip1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbiqFoGEeS2WoXr83SnEA" parameteredElement="__jbiqVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbiqVoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbiqFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgFFoGEeS2WoXr83SnEA __jbgPloGEeS2WoXr83SnEA __jbgtloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbiqloGEeS2WoXr83SnEA" name="type" type="__jbgtFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbiq1oGEeS2WoXr83SnEA" name="closure" type="__jbhX1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__jbirFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__jbirVoGEeS2WoXr83SnEA" name="lambda" type="__jbf7VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbirloGEeS2WoXr83SnEA" name="i" type="__jbiiloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbir1oGEeS2WoXr83SnEA" name="collectNested" type="__jbgBloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__jbisFoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="__jbisVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbisloGEeS2WoXr83SnEA" parameteredElement="__jbis1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbis1oGEeS2WoXr83SnEA" name="V" templateParameter="__jbisloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgCFoGEeS2WoXr83SnEA __jbgMloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbitFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf6loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbitVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbitloGEeS2WoXr83SnEA" name="collect" type="__jbgCVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__jbit1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbiuFoGEeS2WoXr83SnEA" parameteredElement="__jbiuVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbiuVoGEeS2WoXr83SnEA" name="V" templateParameter="__jbiuFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgC1oGEeS2WoXr83SnEA __jbgNVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbiuloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf61oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbiu1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbivFoGEeS2WoXr83SnEA" name="reject" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__jbivVoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].&#xA;&#xA;oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+        <ownedParameter xmi:id="__jbivloGEeS2WoXr83SnEA" name="lambda" type="__jbf6VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbiv1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbiwFoGEeS2WoXr83SnEA" name="select" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__jbiwVoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].&#xA;&#xA;oclCode[self->select(iterator | body) =&#xA;self->iterate(iterator; result : Bag(T) = Bag{} |&#xA;if body then result->including(iterator)&#xA;else result&#xA;endif)]"/>
+        <ownedParameter xmi:id="__jbiwloGEeS2WoXr83SnEA" name="lambda" type="__jbf6VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbiw1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbixFoGEeS2WoXr83SnEA" name="sortedBy" type="__jbhQVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__jbixVoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="__jbixloGEeS2WoXr83SnEA" name="lambda" type="__jbf7FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbix1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbiyFoGEeS2WoXr83SnEA" name="Class" superClass="__jbjeloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbiyVoGEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="__jbgGloGEeS2WoXr83SnEA __jbgX1oGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbi7loGEeS2WoXr83SnEA __jbi8VoGEeS2WoXr83SnEA __jbjAloGEeS2WoXr83SnEA __jbjBVoGEeS2WoXr83SnEA __jbjB1oGEeS2WoXr83SnEA __jbjCloGEeS2WoXr83SnEA __jbjLFoGEeS2WoXr83SnEA __jbjXloGEeS2WoXr83SnEA __jbjYloGEeS2WoXr83SnEA"
+        elementType="__jbizFoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__jbiyloGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbiy1oGEeS2WoXr83SnEA" parameteredElement="__jbizFoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbizFoGEeS2WoXr83SnEA" name="T" templateParameter="__jbiy1oGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__jbgF1oGEeS2WoXr83SnEA __jbgXFoGEeS2WoXr83SnEA __jbg9VoGEeS2WoXr83SnEA __jbhJVoGEeS2WoXr83SnEA __jbhRloGEeS2WoXr83SnEA __jbhZFoGEeS2WoXr83SnEA __jbhf1oGEeS2WoXr83SnEA"
+              typedElement="__jbgBFoGEeS2WoXr83SnEA __jbizloGEeS2WoXr83SnEA __jbjBFoGEeS2WoXr83SnEA __jbjEFoGEeS2WoXr83SnEA __jbjEloGEeS2WoXr83SnEA __jbjKFoGEeS2WoXr83SnEA __jbjLVoGEeS2WoXr83SnEA __jbjMFoGEeS2WoXr83SnEA __jbjN1oGEeS2WoXr83SnEA __jbjPloGEeS2WoXr83SnEA __jbjQVoGEeS2WoXr83SnEA __jbjQloGEeS2WoXr83SnEA __jbjRloGEeS2WoXr83SnEA __jbjSVoGEeS2WoXr83SnEA __jbjSloGEeS2WoXr83SnEA __jbjTloGEeS2WoXr83SnEA __jbjUloGEeS2WoXr83SnEA __jbjWVoGEeS2WoXr83SnEA __jbjXVoGEeS2WoXr83SnEA __jbjYVoGEeS2WoXr83SnEA __jbjZVoGEeS2WoXr83SnEA __jbjaVoGEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="__jbizVoGEeS2WoXr83SnEA" name="Collection" type="__jbgGFoGEeS2WoXr83SnEA" implicit="true" opposite="__jbizloGEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+          <templateParameterSubstitution href="orphanage.xml#__jblOFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblQVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblSloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblU1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblXFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblZVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblbloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblgFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jbliVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblkloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblm1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblpFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblrVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgKVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgLFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgL1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgMloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgNVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgOFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgO1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgPloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgQVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgRFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgR1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgSloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgTVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgUFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgU1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgVloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgWVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgXFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgX1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgYloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgZVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgaFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbga1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgbloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgcVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgdFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgd1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgeloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgfVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbggFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgg1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbghloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgiVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgjFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgj1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgkloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbglVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgmFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgm1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgnloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgoVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgpFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgp1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgqloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbgrVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqToStmc.xml#__jbf3VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbl9VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbl-FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbl-1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbl_loGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmAVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmBFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmB1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfH1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfIloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfJVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfKFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfK1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfLloGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="orphanage.xml#__jblN1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblQFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblSVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblUloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblW1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblZFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblbVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblf1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jbliFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblkVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblmloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblo1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblrFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgKFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgK1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgLloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgMVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgNFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgN1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgOloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgPVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgQFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgQ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgRloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgSVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgTFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgT1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgUloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgVVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgWFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgW1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgXloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgYVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgZFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgZ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgaloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgbVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgcFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgc1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgdloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgeVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgfFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgf1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbggloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbghVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgiFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgi1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgjloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgkVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbglFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgl1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgmloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgnVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgoFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgo1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgploGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgqVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbgrFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqToStmc.xml#__jbf3FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbl9FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbl91oGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbl-loGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbl_VoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmAFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmA1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmBloGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfHloGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfIVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfJFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfJ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfKloGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfLVoGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="__jbizloGEeS2WoXr83SnEA" isStatic="true" name="elementType" type="__jbizFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+          opposite="__jbizVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbiz1oGEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbi0FoGEeS2WoXr83SnEA" isStatic="true" name="lower" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+        <ownedComment xmi:id="__jbi0VoGEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbi0loGEeS2WoXr83SnEA" isStatic="true" name="upper" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+        <ownedComment xmi:id="__jbi01oGEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="__jbi1FoGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbi1VoGEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+        <ownedParameter xmi:id="__jbi1loGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi11oGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbi2FoGEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,&#xA;in the case of an ordered collection type."/>
+        <ownedParameter xmi:id="__jbi2VoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi2loGEeS2WoXr83SnEA" name="asBag" type="__jbgFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+        <ownedComment xmi:id="__jbi21oGEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi3FoGEeS2WoXr83SnEA" name="asOrderedSet" type="__jbhI1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+        <ownedComment xmi:id="__jbi3VoGEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,&#xA;in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi3loGEeS2WoXr83SnEA" name="asSequence" type="__jbhRFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+        <ownedComment xmi:id="__jbi31oGEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi4FoGEeS2WoXr83SnEA" name="asSet" type="__jbhYloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+        <ownedComment xmi:id="__jbi4VoGEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi4loGEeS2WoXr83SnEA" name="count" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+        <ownedComment xmi:id="__jbi41oGEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+        <ownedParameter xmi:id="__jbi5FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi5VoGEeS2WoXr83SnEA" name="excludes" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+        <ownedComment xmi:id="__jbi5loGEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__jbi51oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi6FoGEeS2WoXr83SnEA" name="excludesAll" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+        <ownedComment xmi:id="__jbi6VoGEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="__jbi6loGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbi61oGEeS2WoXr83SnEA" parameteredElement="__jbi7FoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbi7FoGEeS2WoXr83SnEA" name="T2" templateParameter="__jbi61oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgSloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbi7VoGEeS2WoXr83SnEA" name="c2" type="__jbgSFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi7loGEeS2WoXr83SnEA" name="excluding" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__jbi71oGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+        <ownedParameter xmi:id="__jbi8FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi8VoGEeS2WoXr83SnEA" name="excludingAll" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__jbi8loGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__jbi81oGEeS2WoXr83SnEA" name="objects" type="__jbgaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi9FoGEeS2WoXr83SnEA" name="flatten" type="__jbgS1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__jbi9VoGEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].&#xA;If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="__jbi9loGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbi91oGEeS2WoXr83SnEA" parameteredElement="__jbi-FoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbi-FoGEeS2WoXr83SnEA" name="T2" templateParameter="__jbi91oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgTVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi-VoGEeS2WoXr83SnEA" name="includes" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+        <ownedComment xmi:id="__jbi-loGEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__jbi-1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbi_FoGEeS2WoXr83SnEA" name="includesAll" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+        <ownedComment xmi:id="__jbi_VoGEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="__jbi_loGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbi_1oGEeS2WoXr83SnEA" parameteredElement="__jbjAFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjAFoGEeS2WoXr83SnEA" name="T2" templateParameter="__jbi_1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgUFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbjAVoGEeS2WoXr83SnEA" name="c2" type="__jbgTloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjAloGEeS2WoXr83SnEA" name="including" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__jbjA1oGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="__jbjBFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjBVoGEeS2WoXr83SnEA" name="includingAll" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="__jbjBloGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="__jbjB1oGEeS2WoXr83SnEA" name="objects" type="__jbiyVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjCFoGEeS2WoXr83SnEA" name="intersection" type="__jbgFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="__jbjCVoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+        <ownedParameter xmi:id="__jbjCloGEeS2WoXr83SnEA" name="c" type="__jbiyVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjC1oGEeS2WoXr83SnEA" name="intersection" type="__jbhYloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="__jbjDFoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+        <ownedParameter xmi:id="__jbjDVoGEeS2WoXr83SnEA" name="u" type="__jbhfVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjDloGEeS2WoXr83SnEA" name="isEmpty" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+        <ownedComment xmi:id="__jbjD1oGEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?&#xA;&#xA;Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjEFoGEeS2WoXr83SnEA" name="max" type="__jbizFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+        <ownedComment xmi:id="__jbjEVoGEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the max operation.&#xA;The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjEloGEeS2WoXr83SnEA" name="min" type="__jbizFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+        <ownedComment xmi:id="__jbjE1oGEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the min operation.&#xA;The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjFFoGEeS2WoXr83SnEA" name="notEmpty" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+        <ownedComment xmi:id="__jbjFVoGEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?&#xA;&#xA;oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjFloGEeS2WoXr83SnEA" name="product" type="__jbhXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+        <ownedComment xmi:id="__jbjF1oGEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+        <ownedTemplateSignature xmi:id="__jbjGFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjGVoGEeS2WoXr83SnEA" parameteredElement="__jbjGloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjGloGEeS2WoXr83SnEA" name="T2" templateParameter="__jbjGVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgU1oGEeS2WoXr83SnEA" typedElement="__jbgBVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbjG1oGEeS2WoXr83SnEA" name="c2" type="__jbgUVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjHFoGEeS2WoXr83SnEA" name="selectByKind" type="__jbgVFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__jbjHVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjHloGEeS2WoXr83SnEA" parameteredElement="__jbjH1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjH1oGEeS2WoXr83SnEA" name="TT" templateParameter="__jbjHloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgVloGEeS2WoXr83SnEA __jbguVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbjIFoGEeS2WoXr83SnEA" name="type" type="__jbgt1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjIVoGEeS2WoXr83SnEA" name="selectByType" type="__jbgV1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__jbjIloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjI1oGEeS2WoXr83SnEA" parameteredElement="__jbjJFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjJFoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbjI1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgWVoGEeS2WoXr83SnEA __jbgvFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbjJVoGEeS2WoXr83SnEA" name="type" type="__jbguloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjJloGEeS2WoXr83SnEA" name="size" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+        <ownedComment xmi:id="__jbjJ1oGEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjKFoGEeS2WoXr83SnEA" name="sum" type="__jbizFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+        <ownedComment xmi:id="__jbjKVoGEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].&#xA;Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.&#xA;The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).&#xA;UnlimitedNatural, Integer and Real fulfill this condition.&#xA;&#xA;If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,&#xA;which may result in unpredictable results during evaluation.&#xA;If an implementation is able to detect a lack of associativity or commutativity,&#xA;the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjKloGEeS2WoXr83SnEA" name="union" type="__jbgFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="__jbjK1oGEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+        <ownedParameter xmi:id="__jbjLFoGEeS2WoXr83SnEA" name="c" type="__jbiyVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjLVoGEeS2WoXr83SnEA" name="any" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+        <ownedComment xmi:id="__jbjLloGEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].&#xA;If there is more than one element for which body is oclText[true], one of them is returned.&#xA;There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+        <ownedParameter xmi:id="__jbjL1oGEeS2WoXr83SnEA" name="lambda" type="__jbf7loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjMFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjMVoGEeS2WoXr83SnEA" name="collectNested" type="__jbgQloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__jbjMloGEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+        <ownedTemplateSignature xmi:id="__jbjM1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjNFoGEeS2WoXr83SnEA" parameteredElement="__jbjNVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjNVoGEeS2WoXr83SnEA" name="V" templateParameter="__jbjNFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgRFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbjNloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf71oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjN1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjOFoGEeS2WoXr83SnEA" name="collect" type="__jbgRVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedComment xmi:id="__jbjOVoGEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.&#xA;The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.&#xA;collectNested is defined individually for each subclass of CollectionType."/>
+        <ownedTemplateSignature xmi:id="__jbjOloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjO1oGEeS2WoXr83SnEA" parameteredElement="__jbjPFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjPFoGEeS2WoXr83SnEA" name="V" templateParameter="__jbjO1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgR1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbjPVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf8FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjPloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjP1oGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedParameter xmi:id="__jbjQFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf7loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjQVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjQloGEeS2WoXr83SnEA" name="j" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjQ1oGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedComment xmi:id="__jbjRFoGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+        <ownedParameter xmi:id="__jbjRVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf7loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjRloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjR1oGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedParameter xmi:id="__jbjSFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf7loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjSVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjSloGEeS2WoXr83SnEA" name="j" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjS1oGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedComment xmi:id="__jbjTFoGEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="__jbjTVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf7loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjTloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjT1oGEeS2WoXr83SnEA" name="isUnique" type="__jbhrFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+        <ownedComment xmi:id="__jbjUFoGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="__jbjUVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf8loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjUloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjU1oGEeS2WoXr83SnEA" name="iterate" isRequired="false" type="__jbjVloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+        <ownedTemplateSignature xmi:id="__jbjVFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjVVoGEeS2WoXr83SnEA" parameteredElement="__jbjVloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjVloGEeS2WoXr83SnEA" name="Tacc" templateParameter="__jbjVVoGEeS2WoXr83SnEA"
+                typedElement="__jbjU1oGEeS2WoXr83SnEA __jbjWFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbjV1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf8VoGEeS2WoXr83SnEA"/>
+        <ownedAccumulator xmi:id="__jbjWFoGEeS2WoXr83SnEA" name="acc" isRequired="false" type="__jbjVloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjWVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjWloGEeS2WoXr83SnEA" name="one" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+        <ownedComment xmi:id="__jbjW1oGEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="__jbjXFoGEeS2WoXr83SnEA" name="lambda" type="__jbf7loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjXVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjXloGEeS2WoXr83SnEA" name="reject" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__jbjX1oGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__jbjYFoGEeS2WoXr83SnEA" name="lambda" type="__jbf7loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjYVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjYloGEeS2WoXr83SnEA" name="select" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__jbjY1oGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="__jbjZFoGEeS2WoXr83SnEA" name="lambda" type="__jbf7loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjZVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjZloGEeS2WoXr83SnEA" name="sortedBy" type="__jbhRFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__jbjZ1oGEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="__jbjaFoGEeS2WoXr83SnEA" name="lambda" type="__jbf8loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbjaVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbjaloGEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="__jbgHVoGEeS2WoXr83SnEA __jbgZVoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbja1oGEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+      <ownedAttribute xmi:id="__jbjbFoGEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="__jbhJloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+          opposite="__jbjcloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbjbVoGEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="__jbjbloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+        <ownedComment xmi:id="__jbjb1oGEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbjcFoGEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="__jbgYloGEeS2WoXr83SnEA __jbg-FoGEeS2WoXr83SnEA __jbhKFoGEeS2WoXr83SnEA __jbhgloGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbjcVoGEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+      <ownedAttribute xmi:id="__jbjcloGEeS2WoXr83SnEA" name="Enumeration" type="__jbgG1oGEeS2WoXr83SnEA" implicit="true" opposite="__jbjbFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbjc1oGEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="__jbgIFoGEeS2WoXr83SnEA __jbgaFoGEeS2WoXr83SnEA"
+        superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" instanceType="__jbjdloGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__jbjdFoGEeS2WoXr83SnEA" templateBinding="__jbgr1oGEeS2WoXr83SnEA __jbgsloGEeS2WoXr83SnEA __jbgtVoGEeS2WoXr83SnEA __jbguFoGEeS2WoXr83SnEA __jbgu1oGEeS2WoXr83SnEA __jbgvloGEeS2WoXr83SnEA __jbgwVoGEeS2WoXr83SnEA __jbgxFoGEeS2WoXr83SnEA __jbgx1oGEeS2WoXr83SnEA __jbgyloGEeS2WoXr83SnEA __jbgzVoGEeS2WoXr83SnEA __jbg0FoGEeS2WoXr83SnEA __jbg01oGEeS2WoXr83SnEA __jbg1loGEeS2WoXr83SnEA __jbg2VoGEeS2WoXr83SnEA __jbg3FoGEeS2WoXr83SnEA __jbg31oGEeS2WoXr83SnEA __jbg4loGEeS2WoXr83SnEA __jbg5VoGEeS2WoXr83SnEA __jbg6FoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjdVoGEeS2WoXr83SnEA" parameteredElement="__jbjdloGEeS2WoXr83SnEA"
+            templateParameterSubstitution="__jbgsFoGEeS2WoXr83SnEA __jbgs1oGEeS2WoXr83SnEA __jbgtloGEeS2WoXr83SnEA __jbguVoGEeS2WoXr83SnEA __jbgvFoGEeS2WoXr83SnEA __jbgv1oGEeS2WoXr83SnEA __jbgwloGEeS2WoXr83SnEA __jbgxVoGEeS2WoXr83SnEA __jbgyFoGEeS2WoXr83SnEA __jbgy1oGEeS2WoXr83SnEA __jbgzloGEeS2WoXr83SnEA __jbg0VoGEeS2WoXr83SnEA __jbg1FoGEeS2WoXr83SnEA __jbg11oGEeS2WoXr83SnEA __jbg2loGEeS2WoXr83SnEA __jbg3VoGEeS2WoXr83SnEA __jbg4FoGEeS2WoXr83SnEA __jbg41oGEeS2WoXr83SnEA __jbg5loGEeS2WoXr83SnEA __jbg6VoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjdloGEeS2WoXr83SnEA" name="T" templateParameter="__jbjdVoGEeS2WoXr83SnEA"
+              typedElement="__jbjeFoGEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="__jbjd1oGEeS2WoXr83SnEA" name="Metaclass" type="__jbgHloGEeS2WoXr83SnEA" implicit="true" opposite="__jbjeFoGEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="__jbjeFoGEeS2WoXr83SnEA" name="instanceType" type="__jbjdloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+          opposite="__jbjd1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbjeVoGEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+      </ownedAttribute>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="__jbjeloGEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="__jbga1oGEeS2WoXr83SnEA __jbhhVoGEeS2WoXr83SnEA"
+        typedElement="__jbikloGEeS2WoXr83SnEA __jbi5FoGEeS2WoXr83SnEA __jbi51oGEeS2WoXr83SnEA __jbi8FoGEeS2WoXr83SnEA __jbi-1oGEeS2WoXr83SnEA __jbj8FoGEeS2WoXr83SnEA __jbkJVoGEeS2WoXr83SnEA __jbkO1oGEeS2WoXr83SnEA __jbkjloGEeS2WoXr83SnEA __jbk31oGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbje1oGEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.&#xA;Conceptually, OclAny behaves as a supertype for all the types.&#xA;Features of OclAny are available on each object in all OCL expressions.&#xA;OclAny is itself an instance of the metatype AnyType.&#xA;&#xA;All classes in a UML model inherit all operations defined on OclAny.&#xA;To avoid name conflicts between properties in the model and the properties inherited from OclAny,&#xA;all names on the properties of OclAny start with &#x2018;ocl.&#x2019;&#xA;Although theoretically there may still be name conflicts, they can be avoided.&#xA;One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.&#xA;&#xA;Operations of OclAny, where the instance of OclAny is called object."/>
+      <ownedOperation xmi:id="__jbjfFoGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbjfVoGEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+        <ownedParameter xmi:id="__jbjfloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjf1oGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbjgFoGEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+        <ownedParameter xmi:id="__jbjgVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjgloGEeS2WoXr83SnEA" name="oclAsSet" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+        <ownedComment xmi:id="__jbjg1oGEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjhFoGEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="__jbjiFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedComment xmi:id="__jbjhVoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;In the case of feature redefinition, casting an object to a supertype of its actual type&#xA;does not access the supertype&#x2019;s definition of the feature;&#xA;according to the semantics of redefinition, the redefined feature simply does not exist for the object.&#xA;However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+        <ownedTemplateSignature xmi:id="__jbjhloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjh1oGEeS2WoXr83SnEA" parameteredElement="__jbjiFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjiFoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbjh1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgv1oGEeS2WoXr83SnEA" typedElement="__jbjhFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbjiVoGEeS2WoXr83SnEA" name="type" type="__jbgvVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjiloGEeS2WoXr83SnEA" name="oclIsInState" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+        <ownedComment xmi:id="__jbji1oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+        <ownedParameter xmi:id="__jbjjFoGEeS2WoXr83SnEA" name="statespec" type="__jbj9FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjjVoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true">
+        <ownedComment xmi:id="__jbjjloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjj1oGEeS2WoXr83SnEA" name="oclIsKindOf" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedComment xmi:id="__jbjkFoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.&#xA;That is, oclText[self] is of type t or a subtype of t."/>
+        <ownedTemplateSignature xmi:id="__jbjkVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjkloGEeS2WoXr83SnEA" parameteredElement="__jbjk1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjk1oGEeS2WoXr83SnEA" name="T" templateParameter="__jbjkloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgwloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbjlFoGEeS2WoXr83SnEA" name="type" type="__jbgwFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjlVoGEeS2WoXr83SnEA" name="oclIsNew" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__jbjlloGEeS2WoXr83SnEA" body="Can only be used in a postcondition.&#xA;Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn&#x2019;t exist at precondition time)."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjl1oGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedComment xmi:id="__jbjmFoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+        <ownedTemplateSignature xmi:id="__jbjmVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjmloGEeS2WoXr83SnEA" parameteredElement="__jbjm1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjm1oGEeS2WoXr83SnEA" name="T" templateParameter="__jbjmloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgxVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbjnFoGEeS2WoXr83SnEA" name="type" type="__jbgw1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjnVoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true">
+        <ownedComment xmi:id="__jbjnloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjn1oGEeS2WoXr83SnEA" name="oclLog" type="__jbj8loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="__jbjoFoGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjoVoGEeS2WoXr83SnEA" name="oclLog" type="__jbj8loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="__jbjoloGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+        <ownedParameter xmi:id="__jbjo1oGEeS2WoXr83SnEA" name="message" type="__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjpFoGEeS2WoXr83SnEA" name="oclType" type="__jbg0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+        <ownedComment xmi:id="__jbjpVoGEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjploGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__jbjp1oGEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbjqFoGEeS2WoXr83SnEA" name="OclComparable" superClass="__jbjeloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbjqVoGEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived&#xA;compareTo implementation may be sorted."/>
+      <ownedOperation xmi:id="__jbjqloGEeS2WoXr83SnEA" name="&lt;" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbjq1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+        <ownedParameter xmi:id="__jbjrFoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjrVoGEeS2WoXr83SnEA" name="&lt;=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbjrloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="__jbjr1oGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjsFoGEeS2WoXr83SnEA" name=">" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbjsVoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+        <ownedParameter xmi:id="__jbjsloGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjs1oGEeS2WoXr83SnEA" name=">=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+          precedence="__jblL1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbjtFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="__jbjtVoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjtloGEeS2WoXr83SnEA" name="compareTo" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+        <ownedComment xmi:id="__jbjt1oGEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.&#xA;&#xA;The compareTo operation should be commutative."/>
+        <ownedParameter xmi:id="__jbjuFoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbjuVoGEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="__jbgbloGEeS2WoXr83SnEA __jbhZ1oGEeS2WoXr83SnEA __jbhiFoGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjvVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbjuloGEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined&#xA;for OclElement are therefore applicable to all user-defined types."/>
+      <ownedOperation xmi:id="__jbju1oGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+        <ownedComment xmi:id="__jbjvFoGEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjvVoGEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="__jbjuVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+        <ownedComment xmi:id="__jbjvloGEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjv1oGEeS2WoXr83SnEA" name="oclContents" type="__jbhZVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+        <ownedComment xmi:id="__jbjwFoGEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="__jbjwVoGEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="__jbg0VoGEeS2WoXr83SnEA"
+        superClass="__jbkB1oGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbjwloGEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.&#xA;It has one single instance, identified as  oclText[invalid].&#xA;Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().&#xA;OclInvalid is itself an instance of the metatype InvalidType."/>
+      <ownedOperation xmi:id="__jbjw1oGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbjxFoGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="__jbjxVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjxloGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbjx1oGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="__jbjyFoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjyVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+        <ownedComment xmi:id="__jbjyloGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjy1oGEeS2WoXr83SnEA" name="and" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="__jblMVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbjzFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjzVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isValidating="true" precedence="__jblNFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbjzloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbjz1oGEeS2WoXr83SnEA" name="oclAsSet" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+      <ownedOperation xmi:id="__jbj0FoGEeS2WoXr83SnEA" name="oclAsType" type="__jbj01oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedTemplateSignature xmi:id="__jbj0VoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbj0loGEeS2WoXr83SnEA" parameteredElement="__jbj01oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbj01oGEeS2WoXr83SnEA" name="TT" templateParameter="__jbj0loGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgyFoGEeS2WoXr83SnEA" typedElement="__jbj0FoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbj1FoGEeS2WoXr83SnEA" name="type" type="__jbgxloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbj1VoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__jbj1loGEeS2WoXr83SnEA" name="oclIsKindOf" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedTemplateSignature xmi:id="__jbj11oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbj2FoGEeS2WoXr83SnEA" parameteredElement="__jbj2VoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbj2VoGEeS2WoXr83SnEA" name="T" templateParameter="__jbj2FoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgy1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbj2loGEeS2WoXr83SnEA" name="type" type="__jbgyVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbj21oGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedTemplateSignature xmi:id="__jbj3FoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbj3VoGEeS2WoXr83SnEA" parameteredElement="__jbj3loGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbj3loGEeS2WoXr83SnEA" name="T" templateParameter="__jbj3VoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgzloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbj31oGEeS2WoXr83SnEA" name="type" type="__jbgzFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbj4FoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__jbj4VoGEeS2WoXr83SnEA" name="oclType" type="__jbg0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+      <ownedOperation xmi:id="__jbj4loGEeS2WoXr83SnEA" name="or" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="__jblMloGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbj41oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbj5FoGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__jbj5VoGEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbj5loGEeS2WoXr83SnEA" name="OclLambda" superClass="__jbjeloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbj51oGEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda&#xA;therefore apply to all lambda expressions."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbj6FoGEeS2WoXr83SnEA" name="OclMessage" superClass="__jbjeloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbj6VoGEeS2WoXr83SnEA" body="OclMessage&#xA;This sub clause contains the definition of the standard type OclMessage.&#xA;As defined in this sub clause, each ocl message type is actually a template type with one parameter.&#xA;&#x2018;T&#x2019; denotes the parameter.&#xA;A concrete ocl message type is created by substituting an operation or signal for the T.&#xA;&#xA;The predefined type OclMessage is an instance of MessageType.&#xA;Every OclMessage is fully determined by either the operation, or signal given as parameter.&#xA;Note that there is conceptually an undefined (infinite) number of these types,&#xA;as each is determined by a different operation or signal.&#xA;These types are unnamed. Every type has as attributes the name of the operation or signal,&#xA;and either all formal parameters of the operation, or all attributes of the signal.&#xA;OclMessage is itself an instance of the metatype MessageType.&#xA;&#xA;OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+      <ownedOperation xmi:id="__jbj6loGEeS2WoXr83SnEA" name="hasReturned" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__jbj61oGEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.&#xA;This implies the fact that the message has been sent. False in all other cases."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbj7FoGEeS2WoXr83SnEA" name="isOperationCall" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__jbj7VoGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbj7loGEeS2WoXr83SnEA" name="isSignalSent" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__jbj71oGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbj8FoGEeS2WoXr83SnEA" name="result" type="__jbjeloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="__jbj8VoGEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,&#xA;and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="__jbj8loGEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="__jbgcVoGEeS2WoXr83SnEA __jbg1FoGEeS2WoXr83SnEA __jbhaloGEeS2WoXr83SnEA __jbhi1oGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbhr1oGEeS2WoXr83SnEA __jbhsloGEeS2WoXr83SnEA __jbhzVoGEeS2WoXr83SnEA __jbh0FoGEeS2WoXr83SnEA __jbh1VoGEeS2WoXr83SnEA __jbh2FoGEeS2WoXr83SnEA __jbh3VoGEeS2WoXr83SnEA __jbh41oGEeS2WoXr83SnEA __jbh5loGEeS2WoXr83SnEA __jbh71oGEeS2WoXr83SnEA __jbh8loGEeS2WoXr83SnEA __jbh91oGEeS2WoXr83SnEA __jbh-loGEeS2WoXr83SnEA __jbh_VoGEeS2WoXr83SnEA __jbiAFoGEeS2WoXr83SnEA __jbiA1oGEeS2WoXr83SnEA __jbiBloGEeS2WoXr83SnEA __jbiCVoGEeS2WoXr83SnEA __jbiDFoGEeS2WoXr83SnEA __jbiEVoGEeS2WoXr83SnEA __jbiFloGEeS2WoXr83SnEA __jbiGVoGEeS2WoXr83SnEA __jbiJFoGEeS2WoXr83SnEA __jbiJ1oGEeS2WoXr83SnEA __jbiKVoGEeS2WoXr83SnEA __jbiK1oGEeS2WoXr83SnEA __jbiLloGEeS2WoXr83SnEA __jbiMVoGEeS2WoXr83SnEA __jbiOVoGEeS2WoXr83SnEA __jbijFoGEeS2WoXr83SnEA __jbij1oGEeS2WoXr83SnEA __jbi1loGEeS2WoXr83SnEA __jbi2VoGEeS2WoXr83SnEA __jbjfloGEeS2WoXr83SnEA __jbjgVoGEeS2WoXr83SnEA __jbjn1oGEeS2WoXr83SnEA __jbjoVoGEeS2WoXr83SnEA __jbjrFoGEeS2WoXr83SnEA __jbjr1oGEeS2WoXr83SnEA __jbjsloGEeS2WoXr83SnEA __jbjtVoGEeS2WoXr83SnEA __jbjuFoGEeS2WoXr83SnEA __jbjxVoGEeS2WoXr83SnEA __jbjyFoGEeS2WoXr83SnEA __jbj91oGEeS2WoXr83SnEA __jbj-VoGEeS2WoXr83SnEA __jbj-loGEeS2WoXr83SnEA __jbj_1oGEeS2WoXr83SnEA __jbkAVoGEeS2WoXr83SnEA __jbkCloGEeS2WoXr83SnEA __jbkDVoGEeS2WoXr83SnEA __jbkMFoGEeS2WoXr83SnEA __jbkMloGEeS2WoXr83SnEA __jbkgloGEeS2WoXr83SnEA __jbkhVoGEeS2WoXr83SnEA __jbk2VoGEeS2WoXr83SnEA __jbk3FoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbj81oGEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation&#xA;and Iteration signatures. Instances of OclSelf are never created."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbj9FoGEeS2WoXr83SnEA" name="OclState" superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjjFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbj9VoGEeS2WoXr83SnEA" name="OclSummable" superClass="__jbjeloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbj9loGEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived&#xA;sum and zero implementations may be summed."/>
+      <ownedOperation xmi:id="__jbj91oGEeS2WoXr83SnEA" name="sum" type="__jbj8loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbj-FoGEeS2WoXr83SnEA" body="Return the sum of self and that.&#xA;&#xA;The sum operation should be associative."/>
+        <ownedParameter xmi:id="__jbj-VoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbj-loGEeS2WoXr83SnEA" name="zero" type="__jbj8loGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbj-1oGEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.&#xA;&#xA;zero().sum(self) = self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbj_FoGEeS2WoXr83SnEA" name="OclTuple" superClass="__jbjeloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbj_VoGEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple&#xA;therefore apply to all tuples."/>
+      <ownedOperation xmi:id="__jbj_loGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbj_1oGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkAFoGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbkAVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbkAloGEeS2WoXr83SnEA" name="OclType" superClass="__jbjuVoGEeS2WoXr83SnEA" typedElement="__jbkBloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbkA1oGEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined&#xA;for OclType are therefore applicable to all UML types."/>
+      <ownedOperation xmi:id="__jbkBFoGEeS2WoXr83SnEA" name="conformsTo" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+        <ownedComment xmi:id="__jbkBVoGEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+        <ownedParameter xmi:id="__jbkBloGEeS2WoXr83SnEA" name="type2" type="__jbkAloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="__jbkB1oGEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="__jbg11oGEeS2WoXr83SnEA"
+        superClass="__jbjeloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="__jbkCFoGEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.&#xA;It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.&#xA;Any property call applied on oclText[null] results in oclText[invalid], except for the&#xA;oclIsUndefined(), oclIsInvalid(), =(OclAny) and &lt;>(OclAny) operations.&#xA;However, by virtue of the implicit conversion to a collection literal,&#xA;an expression evaluating to oclText[null] can be used as source of collection operations (such as &#x2018;isEmpty&#x2019;).&#xA;If the source is the oclText[null] literal, it is implicitly converted to Bag{}.&#xA;&#xA;OclVoid is itself an instance of the metatype VoidType."/>
+      <ownedOperation xmi:id="__jbkCVoGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbkCloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkC1oGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbkDFoGEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]&#xA;if object is oclText[invalid], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="__jbkDVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkDloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+        <ownedComment xmi:id="__jbkD1oGEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkEFoGEeS2WoXr83SnEA" name="and" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+          precedence="__jblMVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbkEVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkEloGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+          precedence="__jblNFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbkE1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkFFoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__jbkFVoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="__jbkFloGEeS2WoXr83SnEA" name="or" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+          precedence="__jblMloGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbkF1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkGFoGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="__jbkGVoGEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbkGloGEeS2WoXr83SnEA" name="OrderedCollection" superClass="__jbgcloGEeS2WoXr83SnEA"
+        elementType="__jbkHVoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__jbkG1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkHFoGEeS2WoXr83SnEA" parameteredElement="__jbkHVoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkHVoGEeS2WoXr83SnEA" name="T" templateParameter="__jbkHFoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__jbgdFoGEeS2WoXr83SnEA" typedElement="__jbkHloGEeS2WoXr83SnEA __jbkIVoGEeS2WoXr83SnEA __jbkJloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jbls1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbg7FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbg71oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbg8loGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbg9VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbg-FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbg-1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbg_loGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhAVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhBFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhB1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhCloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhDVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhEFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhE1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhFloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhGVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhHFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhH1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhIloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqToStmc.xml#__jbf4FoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="orphanage.xml#__jblsloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbg61oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbg7loGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbg8VoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbg9FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbg91oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbg-loGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbg_VoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhAFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhA1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhBloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhCVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhDFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhD1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhEloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhFVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhGFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhG1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhHloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhIVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqToStmc.xml#__jbf31oGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__jbkHloGEeS2WoXr83SnEA" name="at" isRequired="false" type="__jbkHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbkH1oGEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+        <ownedParameter xmi:id="__jbkIFoGEeS2WoXr83SnEA" name="index" type="__jbhyloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkIVoGEeS2WoXr83SnEA" name="first" isRequired="false" type="__jbkHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbkIloGEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkI1oGEeS2WoXr83SnEA" name="indexOf" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+        <ownedComment xmi:id="__jbkJFoGEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+        <ownedParameter xmi:id="__jbkJVoGEeS2WoXr83SnEA" name="obj" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkJloGEeS2WoXr83SnEA" name="last" isRequired="false" type="__jbkHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbkJ1oGEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbkKFoGEeS2WoXr83SnEA" name="OrderedSet" superClass="__jbhCFoGEeS2WoXr83SnEA __jbhlVoGEeS2WoXr83SnEA"
+        typedElement="__jbkLFoGEeS2WoXr83SnEA __jbkM1oGEeS2WoXr83SnEA __jbkNloGEeS2WoXr83SnEA __jbkOVoGEeS2WoXr83SnEA __jbkPFoGEeS2WoXr83SnEA __jbkQ1oGEeS2WoXr83SnEA __jbkRloGEeS2WoXr83SnEA __jbkSloGEeS2WoXr83SnEA __jbkTVoGEeS2WoXr83SnEA __jbkUFoGEeS2WoXr83SnEA __jbkXFoGEeS2WoXr83SnEA __jbkYFoGEeS2WoXr83SnEA __jbkcVoGEeS2WoXr83SnEA __jbkdVoGEeS2WoXr83SnEA __jbkeVoGEeS2WoXr83SnEA"
+        elementType="__jbkK1oGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__jbkKVoGEeS2WoXr83SnEA" templateBinding="__jbhJFoGEeS2WoXr83SnEA __jbhJ1oGEeS2WoXr83SnEA __jbhKloGEeS2WoXr83SnEA __jbhLVoGEeS2WoXr83SnEA __jbhMFoGEeS2WoXr83SnEA __jbhM1oGEeS2WoXr83SnEA __jbhNloGEeS2WoXr83SnEA __jbhOVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkKloGEeS2WoXr83SnEA" parameteredElement="__jbkK1oGEeS2WoXr83SnEA"
+            templateParameterSubstitution="__jbhJVoGEeS2WoXr83SnEA __jbhKFoGEeS2WoXr83SnEA __jbhK1oGEeS2WoXr83SnEA __jbhLloGEeS2WoXr83SnEA __jbhMVoGEeS2WoXr83SnEA __jbhNFoGEeS2WoXr83SnEA __jbhN1oGEeS2WoXr83SnEA __jbhOloGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkK1oGEeS2WoXr83SnEA" name="T" templateParameter="__jbkKloGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__jbghloGEeS2WoXr83SnEA __jbhCloGEeS2WoXr83SnEA __jbhl1oGEeS2WoXr83SnEA" typedElement="__jbkNVoGEeS2WoXr83SnEA __jbkRVoGEeS2WoXr83SnEA __jbkSVoGEeS2WoXr83SnEA __jbkTFoGEeS2WoXr83SnEA __jbkY1oGEeS2WoXr83SnEA __jbkaloGEeS2WoXr83SnEA __jbkcFoGEeS2WoXr83SnEA __jbkdFoGEeS2WoXr83SnEA __jbkeFoGEeS2WoXr83SnEA __jbkfFoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__jbkLFoGEeS2WoXr83SnEA" name="-" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="__jblLloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbkLVoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="__jbkLloGEeS2WoXr83SnEA" name="s" type="__jbhg1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkL1oGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbkMFoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkMVoGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbkMloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkM1oGEeS2WoXr83SnEA" name="append" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="__jbkNFoGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="__jbkNVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkNloGEeS2WoXr83SnEA" name="appendAll" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="__jbkN1oGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="__jbkOFoGEeS2WoXr83SnEA" name="objects" type="__jbhCFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkOVoGEeS2WoXr83SnEA" name="excluding" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__jbkOloGEeS2WoXr83SnEA" body="The ordered set  containing all elements of oclText[self] apart from object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="__jbkO1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkPFoGEeS2WoXr83SnEA" name="excludingAll" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__jbkPVoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__jbkPloGEeS2WoXr83SnEA" name="objects" type="__jbgaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkP1oGEeS2WoXr83SnEA" name="flatten" type="__jbhKVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedTemplateSignature xmi:id="__jbkQFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkQVoGEeS2WoXr83SnEA" parameteredElement="__jbkQloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkQloGEeS2WoXr83SnEA" name="T2" templateParameter="__jbkQVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgfVoGEeS2WoXr83SnEA __jbhAVoGEeS2WoXr83SnEA __jbhK1oGEeS2WoXr83SnEA __jbhjloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkQ1oGEeS2WoXr83SnEA" name="including" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__jbkRFoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+        <ownedParameter xmi:id="__jbkRVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkRloGEeS2WoXr83SnEA" name="insertAt" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbkR1oGEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+        <ownedParameter xmi:id="__jbkSFoGEeS2WoXr83SnEA" name="index" type="__jbhyloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__jbkSVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkSloGEeS2WoXr83SnEA" name="prepend" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="__jbkS1oGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__jbkTFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkTVoGEeS2WoXr83SnEA" name="prependAll" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="__jbkTloGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__jbkT1oGEeS2WoXr83SnEA" name="objects" type="__jbhCFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkUFoGEeS2WoXr83SnEA" name="reverse" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="__jbkUVoGEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkUloGEeS2WoXr83SnEA" name="selectByKind" type="__jbhLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__jbkU1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkVFoGEeS2WoXr83SnEA" parameteredElement="__jbkVVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkVVoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbkVFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbggFoGEeS2WoXr83SnEA __jbg2loGEeS2WoXr83SnEA __jbhBFoGEeS2WoXr83SnEA __jbhLloGEeS2WoXr83SnEA __jbhkVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbkVloGEeS2WoXr83SnEA" name="type" type="__jbg2FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkV1oGEeS2WoXr83SnEA" name="selectByType" type="__jbhL1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__jbkWFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkWVoGEeS2WoXr83SnEA" parameteredElement="__jbkWloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkWloGEeS2WoXr83SnEA" name="TT" templateParameter="__jbkWVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgg1oGEeS2WoXr83SnEA __jbg3VoGEeS2WoXr83SnEA __jbhB1oGEeS2WoXr83SnEA __jbhMVoGEeS2WoXr83SnEA __jbhlFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbkW1oGEeS2WoXr83SnEA" name="type" type="__jbg21oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkXFoGEeS2WoXr83SnEA" name="subOrderedSet" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbkXVoGEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="__jbkXloGEeS2WoXr83SnEA" name="lower" type="__jbhyloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__jbkX1oGEeS2WoXr83SnEA" name="upper" type="__jbhyloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkYFoGEeS2WoXr83SnEA" name="closure" type="__jbkKFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__jbkYVoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__jbkYloGEeS2WoXr83SnEA" name="lambda" type="__jbf9VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbkY1oGEeS2WoXr83SnEA" name="i" type="__jbkK1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkZFoGEeS2WoXr83SnEA" name="collectNested" type="__jbhR1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__jbkZVoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="__jbkZloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkZ1oGEeS2WoXr83SnEA" parameteredElement="__jbkaFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkaFoGEeS2WoXr83SnEA" name="V" templateParameter="__jbkZ1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgd1oGEeS2WoXr83SnEA __jbg-1oGEeS2WoXr83SnEA __jbhSVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbkaVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf9loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbkaloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbka1oGEeS2WoXr83SnEA" name="collect" type="__jbhSloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__jbkbFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkbVoGEeS2WoXr83SnEA" parameteredElement="__jbkbloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkbloGEeS2WoXr83SnEA" name="V" templateParameter="__jbkbVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgeloGEeS2WoXr83SnEA __jbg_loGEeS2WoXr83SnEA __jbhTFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbkb1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf91oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbkcFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkcVoGEeS2WoXr83SnEA" name="reject" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__jbkcloGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__jbkc1oGEeS2WoXr83SnEA" name="lambda" type="__jbf81oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbkdFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkdVoGEeS2WoXr83SnEA" name="select" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__jbkdloGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+        <ownedParameter xmi:id="__jbkd1oGEeS2WoXr83SnEA" name="lambda" type="__jbf81oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbkeFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkeVoGEeS2WoXr83SnEA" name="sortedBy" type="__jbkKFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__jbkeloGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="__jbke1oGEeS2WoXr83SnEA" name="lambda" type="__jbf9FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbkfFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbkfVoGEeS2WoXr83SnEA" name="Sequence" superClass="__jbhGloGEeS2WoXr83SnEA"
+        typedElement="__jbkhloGEeS2WoXr83SnEA __jbkiVoGEeS2WoXr83SnEA __jbkjFoGEeS2WoXr83SnEA __jbkj1oGEeS2WoXr83SnEA __jbkl1oGEeS2WoXr83SnEA __jbkmloGEeS2WoXr83SnEA __jbknloGEeS2WoXr83SnEA __jbkoVoGEeS2WoXr83SnEA __jbkpFoGEeS2WoXr83SnEA __jbksFoGEeS2WoXr83SnEA __jbkxVoGEeS2WoXr83SnEA __jbkyVoGEeS2WoXr83SnEA __jbkzVoGEeS2WoXr83SnEA"
+        elementType="__jbkgFoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__jbkfloGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkf1oGEeS2WoXr83SnEA" parameteredElement="__jbkgFoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkgFoGEeS2WoXr83SnEA" name="T" templateParameter="__jbkf1oGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__jbgmFoGEeS2WoXr83SnEA __jbhHFoGEeS2WoXr83SnEA __jbhNFoGEeS2WoXr83SnEA __jbhmloGEeS2WoXr83SnEA"
+              typedElement="__jbkiFoGEeS2WoXr83SnEA __jbkmVoGEeS2WoXr83SnEA __jbknVoGEeS2WoXr83SnEA __jbkoFoGEeS2WoXr83SnEA __jbkt1oGEeS2WoXr83SnEA __jbkvloGEeS2WoXr83SnEA __jbkxFoGEeS2WoXr83SnEA __jbkyFoGEeS2WoXr83SnEA __jbkzFoGEeS2WoXr83SnEA __jbk0FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jbltloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhPVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhQFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhQ1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhRloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhSVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhTFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhT1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhUloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhVVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhWFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhW1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqToStmc.xml#__jbf41oGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="orphanage.xml#__jbltVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhPFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhP1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhQloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhRVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhSFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhS1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhTloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhUVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhVFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhV1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhWloGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqToStmc.xml#__jbf4loGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__jbkgVoGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbkgloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkg1oGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbkhFoGEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+        <ownedParameter xmi:id="__jbkhVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkhloGEeS2WoXr83SnEA" name="append" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="__jbkh1oGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="__jbkiFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkiVoGEeS2WoXr83SnEA" name="appendAll" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="__jbkiloGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="__jbki1oGEeS2WoXr83SnEA" name="objects" type="__jbhGloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkjFoGEeS2WoXr83SnEA" name="excluding" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__jbkjVoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="__jbkjloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkj1oGEeS2WoXr83SnEA" name="excludingAll" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__jbkkFoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__jbkkVoGEeS2WoXr83SnEA" name="objects" type="__jbgaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkkloGEeS2WoXr83SnEA" name="flatten" type="__jbhU1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__jbkk1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].&#xA;If the element type is a collection type, the result is the sequence containing all the elements&#xA;of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+        <ownedTemplateSignature xmi:id="__jbklFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbklVoGEeS2WoXr83SnEA" parameteredElement="__jbklloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbklloGEeS2WoXr83SnEA" name="T2" templateParameter="__jbklVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgj1oGEeS2WoXr83SnEA __jbhE1oGEeS2WoXr83SnEA __jbhVVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkl1oGEeS2WoXr83SnEA" name="including" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__jbkmFoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+        <ownedParameter xmi:id="__jbkmVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkmloGEeS2WoXr83SnEA" name="insertAt" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbkm1oGEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+        <ownedParameter xmi:id="__jbknFoGEeS2WoXr83SnEA" name="index" type="__jbhyloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__jbknVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbknloGEeS2WoXr83SnEA" name="prepend" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="__jbkn1oGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__jbkoFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkoVoGEeS2WoXr83SnEA" name="prependAll" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="__jbkoloGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="__jbko1oGEeS2WoXr83SnEA" name="objects" type="__jbhGloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkpFoGEeS2WoXr83SnEA" name="reverse" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="__jbkpVoGEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkploGEeS2WoXr83SnEA" name="selectByKind" type="__jbhVloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__jbkp1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkqFoGEeS2WoXr83SnEA" parameteredElement="__jbkqVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkqVoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbkqFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgkloGEeS2WoXr83SnEA __jbg4FoGEeS2WoXr83SnEA __jbhFloGEeS2WoXr83SnEA __jbhWFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbkqloGEeS2WoXr83SnEA" name="type" type="__jbg3loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbkq1oGEeS2WoXr83SnEA" name="selectByType" type="__jbhWVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__jbkrFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkrVoGEeS2WoXr83SnEA" parameteredElement="__jbkrloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkrloGEeS2WoXr83SnEA" name="TT" templateParameter="__jbkrVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbglVoGEeS2WoXr83SnEA __jbg41oGEeS2WoXr83SnEA __jbhGVoGEeS2WoXr83SnEA __jbhW1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbkr1oGEeS2WoXr83SnEA" name="type" type="__jbg4VoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbksFoGEeS2WoXr83SnEA" name="subSequence" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="__jbksVoGEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="__jbksloGEeS2WoXr83SnEA" name="lower" type="__jbhyloGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="__jbks1oGEeS2WoXr83SnEA" name="upper" type="__jbhyloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbktFoGEeS2WoXr83SnEA" name="closure" type="__jbhMloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__jbktVoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__jbktloGEeS2WoXr83SnEA" name="lambda" type="__jbf-loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbkt1oGEeS2WoXr83SnEA" name="i" type="__jbkgFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkuFoGEeS2WoXr83SnEA" name="collectNested" type="__jbhTVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__jbkuVoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="__jbkuloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbku1oGEeS2WoXr83SnEA" parameteredElement="__jbkvFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkvFoGEeS2WoXr83SnEA" name="V" templateParameter="__jbku1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgiVoGEeS2WoXr83SnEA __jbhDVoGEeS2WoXr83SnEA __jbhT1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbkvVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf-1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbkvloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkv1oGEeS2WoXr83SnEA" name="collect" type="__jbhUFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__jbkwFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkwVoGEeS2WoXr83SnEA" parameteredElement="__jbkwloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkwloGEeS2WoXr83SnEA" name="V" templateParameter="__jbkwVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgjFoGEeS2WoXr83SnEA __jbhEFoGEeS2WoXr83SnEA __jbhUloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbkw1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf_FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbkxFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkxVoGEeS2WoXr83SnEA" name="reject" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__jbkxloGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__jbkx1oGEeS2WoXr83SnEA" name="lambda" type="__jbf-FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbkyFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkyVoGEeS2WoXr83SnEA" name="select" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__jbkyloGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+        <ownedParameter xmi:id="__jbky1oGEeS2WoXr83SnEA" name="lambda" type="__jbf-FoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbkzFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkzVoGEeS2WoXr83SnEA" name="sortedBy" type="__jbkfVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__jbkzloGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="__jbkz1oGEeS2WoXr83SnEA" name="lambda" type="__jbf-VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbk0FoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbk0VoGEeS2WoXr83SnEA" name="Set" superClass="__jbhpFoGEeS2WoXr83SnEA" typedElement="__jbk1VoGEeS2WoXr83SnEA __jbk3VoGEeS2WoXr83SnEA __jbk4FoGEeS2WoXr83SnEA __jbk6FoGEeS2WoXr83SnEA __jbk61oGEeS2WoXr83SnEA __jbk-FoGEeS2WoXr83SnEA __jblCVoGEeS2WoXr83SnEA __jblDVoGEeS2WoXr83SnEA"
+        elementType="__jbk1FoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__jbk0loGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbk01oGEeS2WoXr83SnEA" parameteredElement="__jbk1FoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbk1FoGEeS2WoXr83SnEA" name="T" templateParameter="__jbk01oGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__jbgqloGEeS2WoXr83SnEA __jbhH1oGEeS2WoXr83SnEA __jbhN1oGEeS2WoXr83SnEA __jbhploGEeS2WoXr83SnEA"
+              typedElement="__jbk6loGEeS2WoXr83SnEA __jbk-1oGEeS2WoXr83SnEA __jblAloGEeS2WoXr83SnEA __jblCFoGEeS2WoXr83SnEA __jblDFoGEeS2WoXr83SnEA __jblEFoGEeS2WoXr83SnEA __jblFFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblPloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblR1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblUFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblWVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblYloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jbla1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jbldFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblhloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblj1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblmFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jbloVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblqloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhXloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhYVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhZFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhZ1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhaloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhbVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhcFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhc1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhdloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmCloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmDVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmEFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmE1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmFloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmGVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmHFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfMVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfNFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfN1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfOloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfPVoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="orphanage.xml#__jblPVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblRloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblT1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblWFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblYVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblaloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblc1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblhVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jbljloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jbll1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jbloFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblqVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhXVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhYFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhY1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhZloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhaVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhbFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhb1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhcloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhdVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmCVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmDFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmD1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmEloGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmFVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmGFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmG1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfMFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfM1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfNloGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfOVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfPFoGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__jbk1VoGEeS2WoXr83SnEA" name="-" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="__jblLloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbk1loGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="__jbk11oGEeS2WoXr83SnEA" name="s" type="__jbhg1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbk2FoGEeS2WoXr83SnEA" name="&lt;>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="__jbk2VoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbk2loGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="__jblMFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jbk21oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+        <ownedParameter xmi:id="__jbk3FoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbk3VoGEeS2WoXr83SnEA" name="excluding" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="__jbk3loGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+        <ownedParameter xmi:id="__jbk31oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbk4FoGEeS2WoXr83SnEA" name="excludingAll" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="__jbk4VoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="__jbk4loGEeS2WoXr83SnEA" name="objects" type="__jbgaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbk41oGEeS2WoXr83SnEA" name="flatten" type="__jbha1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="__jbk5FoGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].&#xA;If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="__jbk5VoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbk5loGEeS2WoXr83SnEA" parameteredElement="__jbk51oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbk51oGEeS2WoXr83SnEA" name="T2" templateParameter="__jbk5loGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgoVoGEeS2WoXr83SnEA __jbhbVoGEeS2WoXr83SnEA __jbhnVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbk6FoGEeS2WoXr83SnEA" name="including" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="__jbk6VoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="__jbk6loGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbk61oGEeS2WoXr83SnEA" name="includingAll" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="__jbk7FoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="__jbk7VoGEeS2WoXr83SnEA" name="objects" type="__jbgqFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbk7loGEeS2WoXr83SnEA" name="selectByKind" type="__jbhbloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="__jbk71oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbk8FoGEeS2WoXr83SnEA" parameteredElement="__jbk8VoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbk8VoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbk8FoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgpFoGEeS2WoXr83SnEA __jbg5loGEeS2WoXr83SnEA __jbhcFoGEeS2WoXr83SnEA __jbhoFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbk8loGEeS2WoXr83SnEA" name="type" type="__jbg5FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jbk81oGEeS2WoXr83SnEA" name="selectByType" type="__jbhcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="__jbk9FoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbk9VoGEeS2WoXr83SnEA" parameteredElement="__jbk9loGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbk9loGEeS2WoXr83SnEA" name="TT" templateParameter="__jbk9VoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgp1oGEeS2WoXr83SnEA __jbg6VoGEeS2WoXr83SnEA __jbhc1oGEeS2WoXr83SnEA __jbho1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jbk91oGEeS2WoXr83SnEA" name="type" type="__jbg51oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbk-FoGEeS2WoXr83SnEA" name="closure" type="__jbk0VoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="__jbk-VoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="__jbk-loGEeS2WoXr83SnEA" name="lambda" type="__jbf_1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jbk-1oGEeS2WoXr83SnEA" name="i" type="__jbk1FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbk_FoGEeS2WoXr83SnEA" name="collectNested" type="__jbgIVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="__jbk_VoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="__jbk_loGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbk_1oGEeS2WoXr83SnEA" parameteredElement="__jblAFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jblAFoGEeS2WoXr83SnEA" name="V" templateParameter="__jbk_1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgI1oGEeS2WoXr83SnEA __jbgm1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jblAVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbgAFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jblAloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jblA1oGEeS2WoXr83SnEA" name="collect" type="__jbgJFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="__jblBFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jblBVoGEeS2WoXr83SnEA" parameteredElement="__jblBloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jblBloGEeS2WoXr83SnEA" name="V" templateParameter="__jblBVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="__jbgJloGEeS2WoXr83SnEA __jbgnloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="__jblB1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbgAVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jblCFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jblCVoGEeS2WoXr83SnEA" name="reject" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="__jblCloGEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="__jblC1oGEeS2WoXr83SnEA" name="lambda" type="__jbf_VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jblDFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jblDVoGEeS2WoXr83SnEA" name="select" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="__jblDloGEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+        <ownedParameter xmi:id="__jblD1oGEeS2WoXr83SnEA" name="lambda" type="__jbf_VoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jblEFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jblEVoGEeS2WoXr83SnEA" name="sortedBy" type="__jbhNVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__jblEloGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="__jblE1oGEeS2WoXr83SnEA" name="lambda" type="__jbf_loGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jblFFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblFVoGEeS2WoXr83SnEA" name="State" superClass="__jbj9FoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblFloGEeS2WoXr83SnEA" name="Type" superClass="__jbkAloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblF1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbgq1oGEeS2WoXr83SnEA"
+        typedElement="__jblG1oGEeS2WoXr83SnEA __jblJloGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="__jblGFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jblGVoGEeS2WoXr83SnEA" parameteredElement="__jblGloGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jblGloGEeS2WoXr83SnEA" name="T" templateParameter="__jblGVoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="__jbgrVoGEeS2WoXr83SnEA __jbhIloGEeS2WoXr83SnEA __jbhOloGEeS2WoXr83SnEA __jbhdloGEeS2WoXr83SnEA __jbhqVoGEeS2WoXr83SnEA"
+              typedElement="__jblKloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblO1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblRFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblTVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblVloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblX1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblaFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblcVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblg1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jbljFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jbllVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblnloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="orphanage.xml#__jblp1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbheVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhfFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhf1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhgloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhhVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhiFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhi1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhjloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhkVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhlFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhl1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhmloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhnVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhoFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbho1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhploGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#__jbhqVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmH1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmIloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmJVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmKFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmK1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmLloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="SeqMM.xml#__jbmMVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfQFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfQ1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfRloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfSVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="StmcMM.xml#__jbfTFoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="orphanage.xml#__jblOloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblQ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblTFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblVVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblXloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblZ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblcFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblgloGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jbli1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jbllFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblnVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="orphanage.xml#__jblploGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbheFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhe1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhfloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhgVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhhFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhh1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhiloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhjVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhkFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhk1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhlloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhmVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhnFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhn1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbholoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhpVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#__jbhqFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmHloGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmIVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmJFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmJ1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmKloGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmLVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="SeqMM.xml#__jbmMFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfP1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfQloGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfRVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfSFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="StmcMM.xml#__jbfS1oGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="__jblG1oGEeS2WoXr83SnEA" name="-" type="__jblF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="__jblLloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="__jblHFoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="__jblHVoGEeS2WoXr83SnEA" name="s" type="__jbhg1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jblHloGEeS2WoXr83SnEA" name="intersection" type="__jbhdFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="__jblH1oGEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+        <ownedParameter xmi:id="__jblIFoGEeS2WoXr83SnEA" name="c" type="__jbgq1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jblIVoGEeS2WoXr83SnEA" name="symmetricDifference" type="__jbhdFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+        <ownedComment xmi:id="__jblIloGEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+        <ownedParameter xmi:id="__jblI1oGEeS2WoXr83SnEA" name="s" type="__jbhg1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="__jblJFoGEeS2WoXr83SnEA" name="union" type="__jbhdFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="__jblJVoGEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+        <ownedParameter xmi:id="__jblJloGEeS2WoXr83SnEA" name="s" type="__jblF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jblJ1oGEeS2WoXr83SnEA" name="sortedBy" type="__jbhOFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="__jblKFoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="__jblKVoGEeS2WoXr83SnEA" name="lambda" type="__jbgAloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="__jblKloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jblGloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedPrecedence xmi:id="__jblK1oGEeS2WoXr83SnEA" name="NAVIGATION"/>
+    <ownedPrecedence xmi:id="__jblLFoGEeS2WoXr83SnEA" name="UNARY" order="1"/>
+    <ownedPrecedence xmi:id="__jblLVoGEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+    <ownedPrecedence xmi:id="__jblLloGEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+    <ownedPrecedence xmi:id="__jblL1oGEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+    <ownedPrecedence xmi:id="__jblMFoGEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+    <ownedPrecedence xmi:id="__jblMVoGEeS2WoXr83SnEA" name="AND" order="6"/>
+    <ownedPrecedence xmi:id="__jblMloGEeS2WoXr83SnEA" name="OR" order="7"/>
+    <ownedPrecedence xmi:id="__jblM1oGEeS2WoXr83SnEA" name="XOR" order="8"/>
+    <ownedPrecedence xmi:id="__jblNFoGEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqMM.xml
new file mode 100644
index 0000000..73cced5
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqMM.xml
@@ -0,0 +1,414 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__jblt1oGEeS2WoXr83SnEA" name="SeqMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqMM.emof">
+  <nestedPackage xmi:id="__jbluFoGEeS2WoXr83SnEA" name="SeqMM_CT" nsURI="SeqMM_CT">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbluVoGEeS2WoXr83SnEA" name="Class">
+      <templateParameterSubstitution href="orphanage.xml#__jblQVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblRFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblR1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbl9VoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmCloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmH1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbluloGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStmc.xml#__jbfWloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jblu1oGEeS2WoXr83SnEA" name="object" type="__jbmF1oGEeS2WoXr83SnEA" isComposite="true" opposite="__jbl4FoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jblvFoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jblvVoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__jblv1oGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfWVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfZloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbl4FoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblvVoGEeS2WoXr83SnEA" name="Dummy" typedElement="__jblvFoGEeS2WoXr83SnEA __jblx1oGEeS2WoXr83SnEA __jbl51oGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__jblvloGEeS2WoXr83SnEA" name="containedState" type="__jbmGloGEeS2WoXr83SnEA" isComposite="true" opposite="__jbl51oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jblv1oGEeS2WoXr83SnEA" name="hasClass" type="__jbmCFoGEeS2WoXr83SnEA" isComposite="true" opposite="__jblvFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jblwFoGEeS2WoXr83SnEA" name="hasInteraction" type="__jbmC1oGEeS2WoXr83SnEA" isComposite="true" opposite="__jblx1oGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblwVoGEeS2WoXr83SnEA" name="Event">
+      <ownedAttribute xmi:id="__jblwloGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStmc.xml#__jbfdVoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStmc.xml#__jbfq1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblw1oGEeS2WoXr83SnEA" name="Interaction" typedElement="__jblyloGEeS2WoXr83SnEA __jbl0VoGEeS2WoXr83SnEA">
+      <templateParameterSubstitution href="orphanage.xml#__jblbloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblcVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jbldFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbl-FoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmDVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmIloGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jblxFoGEeS2WoXr83SnEA" name="lifeline" type="__jbmDloGEeS2WoXr83SnEA" isComposite="true" opposite="__jblyloGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jblxVoGEeS2WoXr83SnEA" name="message" type="__jbmFFoGEeS2WoXr83SnEA" isComposite="true" opposite="__jbl0VoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jblxloGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jblx1oGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jblvVoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__jblwFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblyFoGEeS2WoXr83SnEA" name="LifeLine">
+      <templateParameterSubstitution href="orphanage.xml#__jblU1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblVloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblWVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblfVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbl7FoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbl-1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmEFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmJVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jblyVoGEeS2WoXr83SnEA" name="event" type="__jbmEVoGEeS2WoXr83SnEA" isComposite="true" opposite="__jbl1FoGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStmc.xml#__jbfcloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jblyloGEeS2WoXr83SnEA" name="interaction" type="__jblw1oGEeS2WoXr83SnEA" opposite="__jblxFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbly1oGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jblzFoGEeS2WoXr83SnEA" name="object" type="__jbl31oGEeS2WoXr83SnEA" opposite="__jbl4VoGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStmc.xml#__jbfVloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jblzVoGEeS2WoXr83SnEA" name="state" type="__jbmGloGEeS2WoXr83SnEA" opposite="__jbl6FoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jblzloGEeS2WoXr83SnEA" name="State" type="__jbl8FoGEeS2WoXr83SnEA" implicit="true" opposite="__jbl5FoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfVVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfZFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfbFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfcVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfhloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbl1FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbl4VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblz1oGEeS2WoXr83SnEA" name="Message" typedElement="__jbl1VoGEeS2WoXr83SnEA">
+      <templateParameterSubstitution href="orphanage.xml#__jblOFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblO1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblPloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmAVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmFloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmK1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl0FoGEeS2WoXr83SnEA" name="event" type="__jbmEVoGEeS2WoXr83SnEA" opposite="__jbl1VoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl0VoGEeS2WoXr83SnEA" name="interaction" type="__jblw1oGEeS2WoXr83SnEA" opposite="__jblxVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl0loGEeS2WoXr83SnEA" name="messageId">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbl01oGEeS2WoXr83SnEA" name="MessageEvent" superClass="__jblwVoGEeS2WoXr83SnEA">
+      <templateParameterSubstitution href="orphanage.xml#__jblXFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblX1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblYloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jbld1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jbls1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jbltloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="SeqToStmc.xml#__jbf3VoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="SeqToStmc.xml#__jbf4FoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="SeqToStmc.xml#__jbf41oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbl71oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbl_loGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmE1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmKFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl1FoGEeS2WoXr83SnEA" name="lifeline" type="__jblyFoGEeS2WoXr83SnEA" opposite="__jblyVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl1VoGEeS2WoXr83SnEA" name="message" type="__jblz1oGEeS2WoXr83SnEA" opposite="__jbl0FoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl1loGEeS2WoXr83SnEA" name="next" type="__jbl01oGEeS2WoXr83SnEA" opposite="__jbl21oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl11oGEeS2WoXr83SnEA" name="prev" type="__jbl01oGEeS2WoXr83SnEA" opposite="__jbl2loGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl2FoGEeS2WoXr83SnEA" name="state" type="__jbl41oGEeS2WoXr83SnEA" opposite="__jbl5VoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl2VoGEeS2WoXr83SnEA" name="type" type="__jbl3FoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl2loGEeS2WoXr83SnEA" name="MessageEvent" type="__jbl7VoGEeS2WoXr83SnEA" implicit="true" opposite="__jbl11oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl21oGEeS2WoXr83SnEA" name="MessageEvent" type="__jbl7VoGEeS2WoXr83SnEA" implicit="true" opposite="__jbl1loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfdFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfiFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfqloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfu1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbl1loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbl11oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Enumeration" xmi:id="__jbl3FoGEeS2WoXr83SnEA" name="MessageEventType" typedElement="__jbl2VoGEeS2WoXr83SnEA">
+      <superClass href="OCL.xml#__jbjaloGEeS2WoXr83SnEA"/>
+      <ownedLiteral xmi:id="__jbl3VoGEeS2WoXr83SnEA" name="Send"/>
+      <ownedLiteral xmi:id="__jbl3loGEeS2WoXr83SnEA" name="Receive"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbl31oGEeS2WoXr83SnEA" name="Object">
+      <templateParameterSubstitution href="orphanage.xml#__jblSloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblTVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblUFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmBFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmGVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmLloGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl4FoGEeS2WoXr83SnEA" name="class" type="__jbluVoGEeS2WoXr83SnEA" opposite="__jblu1oGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStmc.xml#__jbfWFoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbl4VoGEeS2WoXr83SnEA" name="lifeline" type="__jblyFoGEeS2WoXr83SnEA" opposite="__jblzFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl4loGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfV1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfZVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jblzFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbl41oGEeS2WoXr83SnEA" name="State" typedElement="__jbl2FoGEeS2WoXr83SnEA">
+      <templateParameterSubstitution href="orphanage.xml#__jblZVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblaFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jbla1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jbleloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbl8loGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmB1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmHFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbmMVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl5FoGEeS2WoXr83SnEA" name="lifeline" type="__jbmDloGEeS2WoXr83SnEA" opposite="__jblzloGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl5VoGEeS2WoXr83SnEA" name="messageevent" type="__jbmEVoGEeS2WoXr83SnEA" opposite="__jbl2FoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl5loGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbl51oGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jblvVoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__jblvloGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbl6FoGEeS2WoXr83SnEA" name="LifeLine" type="__jbl6loGEeS2WoXr83SnEA" implicit="true" opposite="__jblzVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="__jbl6VoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbl6loGEeS2WoXr83SnEA" name="Bag" superClass="__jbl-VoGEeS2WoXr83SnEA" typedElement="__jbl6FoGEeS2WoXr83SnEA"
+        elementType="__jblyFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbl61oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbl7FoGEeS2WoXr83SnEA" actual="__jblyFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbl7VoGEeS2WoXr83SnEA" name="Bag" superClass="__jbl_FoGEeS2WoXr83SnEA" typedElement="__jbl2loGEeS2WoXr83SnEA __jbl21oGEeS2WoXr83SnEA"
+        elementType="__jbl01oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbl7loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbl71oGEeS2WoXr83SnEA" actual="__jbl01oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbl8FoGEeS2WoXr83SnEA" name="Bag" superClass="__jbmBVoGEeS2WoXr83SnEA" typedElement="__jblzloGEeS2WoXr83SnEA"
+        elementType="__jbl41oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbl8VoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbl8loGEeS2WoXr83SnEA" actual="__jbl41oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbl81oGEeS2WoXr83SnEA" name="Collection" elementType="__jbluVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbl9FoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbl9VoGEeS2WoXr83SnEA" actual="__jbluVoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbl9loGEeS2WoXr83SnEA" name="Collection" elementType="__jblw1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbl91oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbl-FoGEeS2WoXr83SnEA" actual="__jblw1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbl-VoGEeS2WoXr83SnEA" name="Collection" elementType="__jblyFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbl-loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbl-1oGEeS2WoXr83SnEA" actual="__jblyFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbl_FoGEeS2WoXr83SnEA" name="Collection" elementType="__jbl01oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbl_VoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbl_loGEeS2WoXr83SnEA" actual="__jbl01oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbl_1oGEeS2WoXr83SnEA" name="Collection" elementType="__jblz1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbmAFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmAVoGEeS2WoXr83SnEA" actual="__jblz1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmAloGEeS2WoXr83SnEA" name="Collection" elementType="__jbl31oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbmA1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmBFoGEeS2WoXr83SnEA" actual="__jbl31oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmBVoGEeS2WoXr83SnEA" name="Collection" elementType="__jbl41oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbmBloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmB1oGEeS2WoXr83SnEA" actual="__jbl41oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmCFoGEeS2WoXr83SnEA" name="Set" superClass="__jbmHVoGEeS2WoXr83SnEA" typedElement="__jblv1oGEeS2WoXr83SnEA"
+        elementType="__jbluVoGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbmCVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmCloGEeS2WoXr83SnEA" actual="__jbluVoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmC1oGEeS2WoXr83SnEA" name="Set" superClass="__jbmIFoGEeS2WoXr83SnEA" typedElement="__jblwFoGEeS2WoXr83SnEA"
+        elementType="__jblw1oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbmDFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmDVoGEeS2WoXr83SnEA" actual="__jblw1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmDloGEeS2WoXr83SnEA" name="Set" superClass="__jbmI1oGEeS2WoXr83SnEA" typedElement="__jblxFoGEeS2WoXr83SnEA __jbl5FoGEeS2WoXr83SnEA"
+        elementType="__jblyFoGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbmD1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmEFoGEeS2WoXr83SnEA" actual="__jblyFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmEVoGEeS2WoXr83SnEA" name="Set" superClass="__jbmJloGEeS2WoXr83SnEA" typedElement="__jblyVoGEeS2WoXr83SnEA __jbl0FoGEeS2WoXr83SnEA __jbl5VoGEeS2WoXr83SnEA"
+        elementType="__jbl01oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbmEloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmE1oGEeS2WoXr83SnEA" actual="__jbl01oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmFFoGEeS2WoXr83SnEA" name="Set" superClass="__jbmKVoGEeS2WoXr83SnEA" typedElement="__jblxVoGEeS2WoXr83SnEA"
+        elementType="__jblz1oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbmFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmFloGEeS2WoXr83SnEA" actual="__jblz1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmF1oGEeS2WoXr83SnEA" name="Set" superClass="__jbmLFoGEeS2WoXr83SnEA" typedElement="__jblu1oGEeS2WoXr83SnEA"
+        elementType="__jbl31oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbmGFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmGVoGEeS2WoXr83SnEA" actual="__jbl31oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmGloGEeS2WoXr83SnEA" name="Set" superClass="__jbmL1oGEeS2WoXr83SnEA" typedElement="__jblvloGEeS2WoXr83SnEA __jblzVoGEeS2WoXr83SnEA"
+        elementType="__jbl41oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbmG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmHFoGEeS2WoXr83SnEA" actual="__jbl41oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmHVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbl81oGEeS2WoXr83SnEA"
+        elementType="__jbluVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbmHloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmH1oGEeS2WoXr83SnEA" actual="__jbluVoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmIFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbl9loGEeS2WoXr83SnEA"
+        elementType="__jblw1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbmIVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmIloGEeS2WoXr83SnEA" actual="__jblw1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmI1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbl-VoGEeS2WoXr83SnEA"
+        elementType="__jblyFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbmJFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmJVoGEeS2WoXr83SnEA" actual="__jblyFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmJloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbl_FoGEeS2WoXr83SnEA"
+        elementType="__jbl01oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbmJ1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmKFoGEeS2WoXr83SnEA" actual="__jbl01oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmKVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbl_1oGEeS2WoXr83SnEA"
+        elementType="__jblz1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbmKloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmK1oGEeS2WoXr83SnEA" actual="__jblz1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmLFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbmAloGEeS2WoXr83SnEA"
+        elementType="__jbl31oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbmLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmLloGEeS2WoXr83SnEA" actual="__jbl31oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmL1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbmBVoGEeS2WoXr83SnEA"
+        elementType="__jbl41oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbmMFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbmMVoGEeS2WoXr83SnEA" actual="__jbl41oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqToStmc.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqToStmc.xml
new file mode 100644
index 0000000..f7dde3f
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqToStmc.xml
@@ -0,0 +1,443 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__jbfTVoGEeS2WoXr83SnEA" name="SeqToStmc.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqToStmc.qvtr">
+  <ownedComment xmi:id="__jbfTloGEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+  <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="__jbfT1oGEeS2WoXr83SnEA" name="SeqToStmc">
+    <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+    <modelParameter xmi:id="__jbfUFoGEeS2WoXr83SnEA" name="seqDgm">
+      <usedPackage href="SeqMM.xml#__jbluFoGEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <modelParameter xmi:id="__jbfUVoGEeS2WoXr83SnEA" name="stmc">
+      <usedPackage href="StmcMM.xml#__jbe8VoGEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="__jbfUloGEeS2WoXr83SnEA" name="LifeLineToStateMachine" isTopLevel="true">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfU1oGEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="__jbfUFoGEeS2WoXr83SnEA"
+          rootVariable="__jbfZFoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__jbfVFoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfVVoGEeS2WoXr83SnEA" bindsTo="__jbfZFoGEeS2WoXr83SnEA">
+            <type href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+            <part xmi:id="__jbfVloGEeS2WoXr83SnEA">
+              <referredProperty href="SeqMM.xml#__jblzFoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfV1oGEeS2WoXr83SnEA" bindsTo="__jbfZVoGEeS2WoXr83SnEA">
+                <type href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+                <part xmi:id="__jbfWFoGEeS2WoXr83SnEA">
+                  <referredProperty href="SeqMM.xml#__jbl4FoGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfWVoGEeS2WoXr83SnEA" bindsTo="__jbfZloGEeS2WoXr83SnEA">
+                    <type href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+                    <part xmi:id="__jbfWloGEeS2WoXr83SnEA">
+                      <referredProperty href="SeqMM.xml#__jbluloGEeS2WoXr83SnEA"/>
+                      <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfW1oGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfY1oGEeS2WoXr83SnEA">
+                        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+                      </value>
+                    </part>
+                    <referredClass href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfXFoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__jbfUVoGEeS2WoXr83SnEA"
+          rootVariable="__jbfZ1oGEeS2WoXr83SnEA">
+        <pattern xmi:id="__jbfXVoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfXloGEeS2WoXr83SnEA" bindsTo="__jbfZ1oGEeS2WoXr83SnEA">
+            <type href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+            <part xmi:id="__jbfX1oGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__jbfDVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfYFoGEeS2WoXr83SnEA" bindsTo="__jbfaFoGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+                <part xmi:id="__jbfYVoGEeS2WoXr83SnEA">
+                  <referredProperty href="StmcMM.xml#__jbe9loGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfYloGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfY1oGEeS2WoXr83SnEA">
+                    <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="__jbfY1oGEeS2WoXr83SnEA" name="cn" isRequired="false">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfZFoGEeS2WoXr83SnEA" name="l" templateExp="__jbfVVoGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfZVoGEeS2WoXr83SnEA" name="o" templateExp="__jbfV1oGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfZloGEeS2WoXr83SnEA" name="c1" templateExp="__jbfWVoGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfZ1oGEeS2WoXr83SnEA" name="s" templateExp="__jbfXloGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfaFoGEeS2WoXr83SnEA" name="c2" templateExp="__jbfYFoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+      </variable>
+      <where xmi:id="__jbfaVoGEeS2WoXr83SnEA">
+        <predicate xmi:id="__jbfaloGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbfa1oGEeS2WoXr83SnEA" referredRelation="__jbfbloGEeS2WoXr83SnEA">
+            <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfbFoGEeS2WoXr83SnEA" referredVariable="__jbfZFoGEeS2WoXr83SnEA">
+              <type href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfbVoGEeS2WoXr83SnEA" referredVariable="__jbfZ1oGEeS2WoXr83SnEA">
+              <type href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="__jbfbloGEeS2WoXr83SnEA" name="LLEventSeqToSMStatePath" relationCallExp="__jbfa1oGEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfb1oGEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="__jbfUFoGEeS2WoXr83SnEA"
+          rootVariable="__jbfhloGEeS2WoXr83SnEA">
+        <pattern xmi:id="__jbfcFoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfcVoGEeS2WoXr83SnEA" bindsTo="__jbfhloGEeS2WoXr83SnEA">
+            <type href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+            <part xmi:id="__jbfcloGEeS2WoXr83SnEA">
+              <referredProperty href="SeqMM.xml#__jblyVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:CollectionTemplateExp" xmi:id="__jbfc1oGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA" bindsTo="__jbfh1oGEeS2WoXr83SnEA">
+                <member xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfdFoGEeS2WoXr83SnEA" bindsTo="__jbfiFoGEeS2WoXr83SnEA">
+                  <type href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+                  <part xmi:id="__jbfdVoGEeS2WoXr83SnEA">
+                    <referredProperty href="SeqMM.xml#__jblwloGEeS2WoXr83SnEA"/>
+                    <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfdloGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfhFoGEeS2WoXr83SnEA">
+                      <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+                    </value>
+                  </part>
+                  <referredClass href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+                </member>
+                <referredCollectionType href="orphanage.xml#__jbltFoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfd1oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__jbfUVoGEeS2WoXr83SnEA"
+          rootVariable="__jbfiVoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__jbfeFoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfeVoGEeS2WoXr83SnEA" bindsTo="__jbfiVoGEeS2WoXr83SnEA">
+            <type href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+            <part xmi:id="__jbfeloGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__jbfDloGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfe1oGEeS2WoXr83SnEA" bindsTo="__jbfiloGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+                <part xmi:id="__jbffFoGEeS2WoXr83SnEA">
+                  <referredProperty href="StmcMM.xml#__jbfCVoGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbffVoGEeS2WoXr83SnEA" bindsTo="__jbfi1oGEeS2WoXr83SnEA">
+                    <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+                    <part xmi:id="__jbffloGEeS2WoXr83SnEA">
+                      <referredProperty href="StmcMM.xml#__jbfE1oGEeS2WoXr83SnEA"/>
+                      <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbff1oGEeS2WoXr83SnEA" bindsTo="__jbfjFoGEeS2WoXr83SnEA">
+                        <type href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+                        <part xmi:id="__jbfgFoGEeS2WoXr83SnEA">
+                          <referredProperty href="StmcMM.xml#__jbe_loGEeS2WoXr83SnEA"/>
+                          <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfgVoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfhFoGEeS2WoXr83SnEA">
+                            <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+                          </value>
+                        </part>
+                        <referredClass href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+                      </value>
+                    </part>
+                    <part xmi:id="__jbfgloGEeS2WoXr83SnEA">
+                      <referredProperty href="StmcMM.xml#__jbfGFoGEeS2WoXr83SnEA"/>
+                      <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfg1oGEeS2WoXr83SnEA" bindsTo="__jbfjVoGEeS2WoXr83SnEA">
+                        <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+                        <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+                      </value>
+                    </part>
+                    <referredClass href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="__jbfhFoGEeS2WoXr83SnEA" name="en" isRequired="false">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfhVoGEeS2WoXr83SnEA" name="restEvSeq" isRequired="false" type="__jbf4VoGEeS2WoXr83SnEA"/>
+      <variable xmi:id="__jbfhloGEeS2WoXr83SnEA" name="ll" templateExp="__jbfcVoGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfh1oGEeS2WoXr83SnEA" name="es" type="__jbf4VoGEeS2WoXr83SnEA" templateExp="__jbfc1oGEeS2WoXr83SnEA"/>
+      <variable xmi:id="__jbfiFoGEeS2WoXr83SnEA" name="e1" templateExp="__jbfdFoGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfiVoGEeS2WoXr83SnEA" name="sm" templateExp="__jbfeVoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfiloGEeS2WoXr83SnEA" name="s1" templateExp="__jbfe1oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfi1oGEeS2WoXr83SnEA" name="tr" templateExp="__jbffVoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfjFoGEeS2WoXr83SnEA" name="e" templateExp="__jbff1oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfjVoGEeS2WoXr83SnEA" name="s2" templateExp="__jbfg1oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+      </variable>
+      <where xmi:id="__jbfjloGEeS2WoXr83SnEA">
+        <predicate xmi:id="__jbfj1oGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbfkFoGEeS2WoXr83SnEA" referredRelation="__jbfk1oGEeS2WoXr83SnEA">
+            <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfkVoGEeS2WoXr83SnEA" isRequired="false" type="__jbf4VoGEeS2WoXr83SnEA"
+                referredVariable="__jbfhVoGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfkloGEeS2WoXr83SnEA" referredVariable="__jbfjVoGEeS2WoXr83SnEA">
+              <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="__jbfk1oGEeS2WoXr83SnEA" name="EventSeqToStatePath" relationCallExp="__jbfkFoGEeS2WoXr83SnEA __jbfwloGEeS2WoXr83SnEA __jbf11oGEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbflFoGEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="__jbfUFoGEeS2WoXr83SnEA"
+          rootVariable="__jbfmloGEeS2WoXr83SnEA">
+        <pattern xmi:id="__jbflVoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:CollectionTemplateExp" xmi:id="__jbflloGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA"
+              bindsTo="__jbfmloGEeS2WoXr83SnEA" rest="__jbfm1oGEeS2WoXr83SnEA">
+            <referredCollectionType href="orphanage.xml#__jbltFoGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfl1oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__jbfUVoGEeS2WoXr83SnEA"
+          rootVariable="__jbfnFoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__jbfmFoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfmVoGEeS2WoXr83SnEA" bindsTo="__jbfnFoGEeS2WoXr83SnEA">
+            <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+            <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="__jbfmloGEeS2WoXr83SnEA" name="es" type="__jbf4VoGEeS2WoXr83SnEA" templateExp="__jbflloGEeS2WoXr83SnEA"/>
+      <variable xmi:id="__jbfm1oGEeS2WoXr83SnEA" implicit="true" matchingExp="__jbflloGEeS2WoXr83SnEA"/>
+      <variable xmi:id="__jbfnFoGEeS2WoXr83SnEA" name="fs" templateExp="__jbfmVoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+      </variable>
+      <where xmi:id="__jbfnVoGEeS2WoXr83SnEA">
+        <predicate xmi:id="__jbfnloGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="__jbfn1oGEeS2WoXr83SnEA" name="or" isRequired="false">
+            <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbfoFoGEeS2WoXr83SnEA" referredRelation="__jbfploGEeS2WoXr83SnEA">
+              <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfoVoGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA" referredVariable="__jbfmloGEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfoloGEeS2WoXr83SnEA" referredVariable="__jbfnFoGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+              </argument>
+            </source>
+            <argument xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbfo1oGEeS2WoXr83SnEA" referredRelation="__jbfxVoGEeS2WoXr83SnEA">
+              <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfpFoGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA" referredVariable="__jbfmloGEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfpVoGEeS2WoXr83SnEA" referredVariable="__jbfnFoGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+              </argument>
+            </argument>
+            <referredOperation href="OCL.xml#__jbhwFoGEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="__jbfploGEeS2WoXr83SnEA" name="EventSeqToStatePathImm" relationCallExp="__jbfoFoGEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfp1oGEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="__jbfUFoGEeS2WoXr83SnEA"
+          rootVariable="__jbfuloGEeS2WoXr83SnEA">
+        <pattern xmi:id="__jbfqFoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:CollectionTemplateExp" xmi:id="__jbfqVoGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA"
+              bindsTo="__jbfuloGEeS2WoXr83SnEA">
+            <member xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfqloGEeS2WoXr83SnEA" bindsTo="__jbfu1oGEeS2WoXr83SnEA">
+              <type href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+              <part xmi:id="__jbfq1oGEeS2WoXr83SnEA">
+                <referredProperty href="SeqMM.xml#__jblwloGEeS2WoXr83SnEA"/>
+                <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfrFoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfuFoGEeS2WoXr83SnEA">
+                  <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+                </value>
+              </part>
+              <referredClass href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+            </member>
+            <referredCollectionType href="orphanage.xml#__jbltFoGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfrVoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__jbfUVoGEeS2WoXr83SnEA"
+          rootVariable="__jbfvFoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__jbfrloGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfr1oGEeS2WoXr83SnEA" bindsTo="__jbfvFoGEeS2WoXr83SnEA">
+            <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+            <part xmi:id="__jbfsFoGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__jbfCVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfsVoGEeS2WoXr83SnEA" bindsTo="__jbfvVoGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+                <part xmi:id="__jbfsloGEeS2WoXr83SnEA">
+                  <referredProperty href="StmcMM.xml#__jbfE1oGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfs1oGEeS2WoXr83SnEA" bindsTo="__jbfvloGEeS2WoXr83SnEA">
+                    <type href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+                    <part xmi:id="__jbftFoGEeS2WoXr83SnEA">
+                      <referredProperty href="StmcMM.xml#__jbe_loGEeS2WoXr83SnEA"/>
+                      <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbftVoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfuFoGEeS2WoXr83SnEA">
+                        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+                      </value>
+                    </part>
+                    <referredClass href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="__jbftloGEeS2WoXr83SnEA">
+                  <referredProperty href="StmcMM.xml#__jbfGFoGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbft1oGEeS2WoXr83SnEA" bindsTo="__jbfv1oGEeS2WoXr83SnEA">
+                    <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+                    <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="__jbfuFoGEeS2WoXr83SnEA" name="en" isRequired="false">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfuVoGEeS2WoXr83SnEA" name="restEvSeq" isRequired="false" type="__jbf4VoGEeS2WoXr83SnEA"/>
+      <variable xmi:id="__jbfuloGEeS2WoXr83SnEA" name="es" type="__jbf4VoGEeS2WoXr83SnEA" templateExp="__jbfqVoGEeS2WoXr83SnEA"/>
+      <variable xmi:id="__jbfu1oGEeS2WoXr83SnEA" name="e1" templateExp="__jbfqloGEeS2WoXr83SnEA">
+        <type href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfvFoGEeS2WoXr83SnEA" name="fs" templateExp="__jbfr1oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfvVoGEeS2WoXr83SnEA" name="tr" templateExp="__jbfsVoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfvloGEeS2WoXr83SnEA" name="e2" templateExp="__jbfs1oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbfv1oGEeS2WoXr83SnEA" name="ts" templateExp="__jbft1oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+      </variable>
+      <where xmi:id="__jbfwFoGEeS2WoXr83SnEA">
+        <predicate xmi:id="__jbfwVoGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbfwloGEeS2WoXr83SnEA" referredRelation="__jbfk1oGEeS2WoXr83SnEA">
+            <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfw1oGEeS2WoXr83SnEA" isRequired="false" type="__jbf4VoGEeS2WoXr83SnEA"
+                referredVariable="__jbfuVoGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfxFoGEeS2WoXr83SnEA" referredVariable="__jbfv1oGEeS2WoXr83SnEA">
+              <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="__jbfxVoGEeS2WoXr83SnEA" name="EventSeqToStatePathTrans" relationCallExp="__jbfo1oGEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfxloGEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="__jbfUFoGEeS2WoXr83SnEA"
+          rootVariable="__jbf0FoGEeS2WoXr83SnEA">
+        <pattern xmi:id="__jbfx1oGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:CollectionTemplateExp" xmi:id="__jbfyFoGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA"
+              bindsTo="__jbf0FoGEeS2WoXr83SnEA" rest="__jbf0VoGEeS2WoXr83SnEA">
+            <referredCollectionType href="orphanage.xml#__jbltFoGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfyVoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__jbfUVoGEeS2WoXr83SnEA"
+          rootVariable="__jbf0loGEeS2WoXr83SnEA">
+        <pattern xmi:id="__jbfyloGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfy1oGEeS2WoXr83SnEA" bindsTo="__jbf0loGEeS2WoXr83SnEA">
+            <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+            <part xmi:id="__jbfzFoGEeS2WoXr83SnEA">
+              <referredProperty href="StmcMM.xml#__jbfCVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfzVoGEeS2WoXr83SnEA" bindsTo="__jbf01oGEeS2WoXr83SnEA">
+                <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+                <part xmi:id="__jbfzloGEeS2WoXr83SnEA">
+                  <referredProperty href="StmcMM.xml#__jbfGFoGEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfz1oGEeS2WoXr83SnEA" bindsTo="__jbf1FoGEeS2WoXr83SnEA">
+                    <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+                    <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="__jbf0FoGEeS2WoXr83SnEA" name="es" type="__jbf4VoGEeS2WoXr83SnEA" templateExp="__jbfyFoGEeS2WoXr83SnEA"/>
+      <variable xmi:id="__jbf0VoGEeS2WoXr83SnEA" implicit="true" matchingExp="__jbfyFoGEeS2WoXr83SnEA"/>
+      <variable xmi:id="__jbf0loGEeS2WoXr83SnEA" name="fs" templateExp="__jbfy1oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbf01oGEeS2WoXr83SnEA" name="tr" templateExp="__jbfzVoGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="__jbf1FoGEeS2WoXr83SnEA" name="ts" templateExp="__jbfz1oGEeS2WoXr83SnEA">
+        <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+      </variable>
+      <where xmi:id="__jbf1VoGEeS2WoXr83SnEA">
+        <predicate xmi:id="__jbf1loGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbf11oGEeS2WoXr83SnEA" referredRelation="__jbfk1oGEeS2WoXr83SnEA">
+            <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbf2FoGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA" referredVariable="__jbf0FoGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbf2VoGEeS2WoXr83SnEA" referredVariable="__jbf1FoGEeS2WoXr83SnEA">
+              <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+  </nestedPackage>
+  <nestedPackage xmi:id="__jbf2loGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbf21oGEeS2WoXr83SnEA" name="Collection">
+      <templateBinding xmi:id="__jbf3FoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbf3VoGEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+      <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbf3loGEeS2WoXr83SnEA" name="OrderedCollection" superClass="__jbf21oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbf31oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbf4FoGEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#__jbkHFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbkG1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbkGloGEeS2WoXr83SnEA"/>
+      <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbf4VoGEeS2WoXr83SnEA" name="Sequence" superClass="__jbf3loGEeS2WoXr83SnEA"
+        typedElement="__jbfc1oGEeS2WoXr83SnEA __jbfhVoGEeS2WoXr83SnEA __jbfh1oGEeS2WoXr83SnEA __jbfkVoGEeS2WoXr83SnEA __jbflloGEeS2WoXr83SnEA __jbfmloGEeS2WoXr83SnEA __jbfoVoGEeS2WoXr83SnEA __jbfpFoGEeS2WoXr83SnEA __jbfqVoGEeS2WoXr83SnEA __jbfuVoGEeS2WoXr83SnEA __jbfuloGEeS2WoXr83SnEA __jbfw1oGEeS2WoXr83SnEA __jbfyFoGEeS2WoXr83SnEA __jbf0FoGEeS2WoXr83SnEA __jbf2FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbf4loGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbf41oGEeS2WoXr83SnEA">
+          <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+          <formal href="OCL.xml#__jbkf1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbkfloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SequenceType" href="OCL.xml#__jbkfVoGEeS2WoXr83SnEA"/>
+      <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <unit xmi:id="__jbf5FoGEeS2WoXr83SnEA" name="SeqMM">
+    <ownedComment xmi:id="__jbf5VoGEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+    <usedPackage xmi:type="flatemofqvt:Package" href="SeqMM.xml#__jbluFoGEeS2WoXr83SnEA"/>
+  </unit>
+  <unit xmi:id="__jbf5loGEeS2WoXr83SnEA" name="StmcMM">
+    <usedPackage xmi:type="flatemofqvt:Package" href="StmcMM.xml#__jbe8VoGEeS2WoXr83SnEA"/>
+  </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/StmcMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/StmcMM.xml
new file mode 100644
index 0000000..1e5ce90
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/StmcMM.xml
@@ -0,0 +1,352 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__jbe8FoGEeS2WoXr83SnEA" name="StmcMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/StmcMM.emof">
+  <nestedPackage xmi:id="__jbe8VoGEeS2WoXr83SnEA" name="StmcMM" nsURI="StmcMM">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbe8loGEeS2WoXr83SnEA" name="Action" typedElement="__jbfEloGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__jbe81oGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbe9FoGEeS2WoXr83SnEA" name="Transition" isRequired="false" type="__jbfEVoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__jbfEloGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbe9VoGEeS2WoXr83SnEA" name="Class">
+      <templateParameterSubstitution href="orphanage.xml#__jblm1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblnloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jbloVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfH1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfMVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfQFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbe9loGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStmc.xml#__jbfYVoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbe91oGEeS2WoXr83SnEA" name="stateMachine" type="__jbfNVoGEeS2WoXr83SnEA" opposite="__jbfDVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbe-FoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jbe-VoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__jbe_FoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfYFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfaFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbfDVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbe-VoGEeS2WoXr83SnEA" name="Dummy" typedElement="__jbe-FoGEeS2WoXr83SnEA __jbfAloGEeS2WoXr83SnEA __jbfEFoGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="__jbe-loGEeS2WoXr83SnEA" name="containsMessage" type="__jbfMloGEeS2WoXr83SnEA" isComposite="true" opposite="__jbfAloGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbe-1oGEeS2WoXr83SnEA" name="containsStateMachine" type="__jbfNVoGEeS2WoXr83SnEA" isComposite="true" opposite="__jbfEFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbe_FoGEeS2WoXr83SnEA" name="hasClass" type="__jbfL1oGEeS2WoXr83SnEA" isComposite="true" opposite="__jbe-FoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbe_VoGEeS2WoXr83SnEA" name="Event">
+      <ownedAttribute xmi:id="__jbe_loGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStmc.xml#__jbfgFoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStmc.xml#__jbftFoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbe_1oGEeS2WoXr83SnEA" name="Transition" isRequired="false" type="__jbfEVoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__jbfE1oGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbff1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfjFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfs1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfvloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbfE1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbfAFoGEeS2WoXr83SnEA" name="Message" typedElement="__jbfBVoGEeS2WoXr83SnEA">
+      <templateParameterSubstitution href="orphanage.xml#__jbliVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jbljFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblj1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfIloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfNFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfQ1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbfAVoGEeS2WoXr83SnEA" name="messageId">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbfAloGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jbe-VoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__jbe-loGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbfA1oGEeS2WoXr83SnEA" name="SendMsg" type="__jbfGloGEeS2WoXr83SnEA" implicit="true" opposite="__jbfBVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbfBFoGEeS2WoXr83SnEA" name="SendMsg" superClass="__jbe8loGEeS2WoXr83SnEA">
+      <templateParameterSubstitution href="orphanage.xml#__jblrVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblsFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfHFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfJVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbfBVoGEeS2WoXr83SnEA" name="message" type="__jbfAFoGEeS2WoXr83SnEA" opposite="__jbfA1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbfBloGEeS2WoXr83SnEA" name="State">
+      <templateParameterSubstitution href="orphanage.xml#__jblpFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblp1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblqloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfK1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfOloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfSVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbfB1oGEeS2WoXr83SnEA" name="inTransition" type="__jbfO1oGEeS2WoXr83SnEA" opposite="__jbfGFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbfCFoGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbfCVoGEeS2WoXr83SnEA" name="outTransition" type="__jbfO1oGEeS2WoXr83SnEA" opposite="__jbfFFoGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStmc.xml#__jbffFoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStmc.xml#__jbfsFoGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStmc.xml#__jbfzFoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbfCloGEeS2WoXr83SnEA" name="owner" type="__jbfC1oGEeS2WoXr83SnEA" opposite="__jbfDloGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfe1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfg1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfiloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfjVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfkloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfmVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfnFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfoloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfpVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfr1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbft1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfvFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfv1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfxFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfy1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfz1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbf0loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbf1FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbf2VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbfFFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbfGFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbfC1oGEeS2WoXr83SnEA" name="StateMachine">
+      <templateParameterSubstitution href="orphanage.xml#__jblkloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jbllVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblmFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfKFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfN1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfRloGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbfDFoGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbfDVoGEeS2WoXr83SnEA" name="owner" type="__jbe9VoGEeS2WoXr83SnEA" opposite="__jbe91oGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStmc.xml#__jbfX1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbfDloGEeS2WoXr83SnEA" name="state" type="__jbfOFoGEeS2WoXr83SnEA" isComposite="true" opposite="__jbfCloGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStmc.xml#__jbfeloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbfD1oGEeS2WoXr83SnEA" name="transition" type="__jbfO1oGEeS2WoXr83SnEA" isComposite="true" opposite="__jbfF1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbfEFoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jbe-VoGEeS2WoXr83SnEA" implicit="true"
+          opposite="__jbe-1oGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfXloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfZ1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfbVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfeVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfiVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbfCloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbfF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbfEVoGEeS2WoXr83SnEA" name="Transition">
+      <templateParameterSubstitution href="orphanage.xml#__jblgFoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblg1oGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="orphanage.xml#__jblhloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfLloGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfPVoGEeS2WoXr83SnEA"/>
+      <templateParameterSubstitution href="#__jbfTFoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbfEloGEeS2WoXr83SnEA" name="action" type="__jbe8loGEeS2WoXr83SnEA" isComposite="true" opposite="__jbe9FoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbfE1oGEeS2WoXr83SnEA" name="event" type="__jbe_VoGEeS2WoXr83SnEA" isComposite="true" opposite="__jbe_1oGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStmc.xml#__jbffloGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStmc.xml#__jbfsloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbfFFoGEeS2WoXr83SnEA" name="fromState" type="__jbfBloGEeS2WoXr83SnEA" opposite="__jbfCVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbfFVoGEeS2WoXr83SnEA" name="guard">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbfFloGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__jbfF1oGEeS2WoXr83SnEA" name="owner" type="__jbfC1oGEeS2WoXr83SnEA" opposite="__jbfD1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="__jbfGFoGEeS2WoXr83SnEA" name="toState" type="__jbfBloGEeS2WoXr83SnEA" opposite="__jbfB1oGEeS2WoXr83SnEA">
+        <propertyItem href="SeqToStmc.xml#__jbfgloGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStmc.xml#__jbftloGEeS2WoXr83SnEA"/>
+        <propertyItem href="SeqToStmc.xml#__jbfzloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbffVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfi1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfsVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfvVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfzVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbf01oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbe9FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#__jbe_1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="__jbfGVoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbfGloGEeS2WoXr83SnEA" name="Bag" superClass="__jbfI1oGEeS2WoXr83SnEA" typedElement="__jbfA1oGEeS2WoXr83SnEA"
+        elementType="__jbfBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfG1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfHFoGEeS2WoXr83SnEA" actual="__jbfBFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfHVoGEeS2WoXr83SnEA" name="Collection" elementType="__jbe9VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfHloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfH1oGEeS2WoXr83SnEA" actual="__jbe9VoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfIFoGEeS2WoXr83SnEA" name="Collection" elementType="__jbfAFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfIVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfIloGEeS2WoXr83SnEA" actual="__jbfAFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfI1oGEeS2WoXr83SnEA" name="Collection" elementType="__jbfBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfJFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfJVoGEeS2WoXr83SnEA" actual="__jbfBFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfJloGEeS2WoXr83SnEA" name="Collection" elementType="__jbfC1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfJ1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfKFoGEeS2WoXr83SnEA" actual="__jbfC1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfKVoGEeS2WoXr83SnEA" name="Collection" elementType="__jbfBloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfKloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfK1oGEeS2WoXr83SnEA" actual="__jbfBloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfLFoGEeS2WoXr83SnEA" name="Collection" elementType="__jbfEVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfLVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfLloGEeS2WoXr83SnEA" actual="__jbfEVoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbfL1oGEeS2WoXr83SnEA" name="Set" superClass="__jbfPloGEeS2WoXr83SnEA" typedElement="__jbe_FoGEeS2WoXr83SnEA"
+        elementType="__jbe9VoGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbfMFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfMVoGEeS2WoXr83SnEA" actual="__jbe9VoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbfMloGEeS2WoXr83SnEA" name="Set" superClass="__jbfQVoGEeS2WoXr83SnEA" typedElement="__jbe-loGEeS2WoXr83SnEA"
+        elementType="__jbfAFoGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbfM1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfNFoGEeS2WoXr83SnEA" actual="__jbfAFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbfNVoGEeS2WoXr83SnEA" name="Set" superClass="__jbfRFoGEeS2WoXr83SnEA" typedElement="__jbe91oGEeS2WoXr83SnEA __jbe-1oGEeS2WoXr83SnEA"
+        elementType="__jbfC1oGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbfNloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfN1oGEeS2WoXr83SnEA" actual="__jbfC1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbfOFoGEeS2WoXr83SnEA" name="Set" superClass="__jbfR1oGEeS2WoXr83SnEA" typedElement="__jbfDloGEeS2WoXr83SnEA"
+        elementType="__jbfBloGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbfOVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfOloGEeS2WoXr83SnEA" actual="__jbfBloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbfO1oGEeS2WoXr83SnEA" name="Set" superClass="__jbfSloGEeS2WoXr83SnEA" typedElement="__jbfB1oGEeS2WoXr83SnEA __jbfCVoGEeS2WoXr83SnEA __jbfD1oGEeS2WoXr83SnEA"
+        elementType="__jbfEVoGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="__jbfPFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfPVoGEeS2WoXr83SnEA" actual="__jbfEVoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfPloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbfHVoGEeS2WoXr83SnEA"
+        elementType="__jbe9VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfP1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfQFoGEeS2WoXr83SnEA" actual="__jbe9VoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfQVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbfIFoGEeS2WoXr83SnEA"
+        elementType="__jbfAFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfQloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfQ1oGEeS2WoXr83SnEA" actual="__jbfAFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfRFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbfJloGEeS2WoXr83SnEA"
+        elementType="__jbfC1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfRVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfRloGEeS2WoXr83SnEA" actual="__jbfC1oGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfR1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbfKVoGEeS2WoXr83SnEA"
+        elementType="__jbfBloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfSFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfSVoGEeS2WoXr83SnEA" actual="__jbfBloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfSloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbfLFoGEeS2WoXr83SnEA"
+        elementType="__jbfEVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="__jbfS1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="__jbfTFoGEeS2WoXr83SnEA" actual="__jbfEVoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/orphanage.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/orphanage.xml
new file mode 100644
index 0000000..9838215
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/orphanage.xml
@@ -0,0 +1,491 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Package xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="__jblNVoGEeS2WoXr83SnEA" name="$$" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblNloGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblN1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblOFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblOVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblNloGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblOloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblO1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblPFoGEeS2WoXr83SnEA" name="Set" superClass="__jblOVoGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jblPVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblPloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblP1oGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblQFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblQVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblQloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblP1oGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblQ1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblRFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblRVoGEeS2WoXr83SnEA" name="Set" superClass="__jblQloGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jblRloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblR1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblSFoGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblSVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblSloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblS1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblSFoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblTFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblTVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblTloGEeS2WoXr83SnEA" name="Set" superClass="__jblS1oGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jblT1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblUFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblUVoGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblUloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblU1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblVFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblUVoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblVVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblVloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblV1oGEeS2WoXr83SnEA" name="Set" superClass="__jblVFoGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jblWFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblWVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblWloGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblW1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblXFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblXVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblWloGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblXloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblX1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblYFoGEeS2WoXr83SnEA" name="Set" superClass="__jblXVoGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jblYVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblYloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblY1oGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblZFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblZVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblZloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblY1oGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblZ1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblaFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblaVoGEeS2WoXr83SnEA" name="Set" superClass="__jblZloGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jblaloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jbla1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblbFoGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblbVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblbloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblb1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblbFoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblcFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblcVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblcloGEeS2WoXr83SnEA" name="Set" superClass="__jblb1oGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jblc1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jbldFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbldVoGEeS2WoXr83SnEA" name="Bag" superClass="__jblWloGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jbldloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jbld1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbleFoGEeS2WoXr83SnEA" name="Bag" superClass="__jblY1oGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jbleVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jbleloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jble1oGEeS2WoXr83SnEA" name="Bag" superClass="__jblUVoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblfFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblfVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblfloGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblf1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblgFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblgVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblfloGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblgloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblg1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblhFoGEeS2WoXr83SnEA" name="Set" superClass="__jblgVoGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jblhVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblhloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblh1oGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jbliFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jbliVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbliloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblh1oGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jbli1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jbljFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbljVoGEeS2WoXr83SnEA" name="Set" superClass="__jbliloGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jbljloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblj1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblkFoGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblkVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblkloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblk1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblkFoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jbllFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jbllVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbllloGEeS2WoXr83SnEA" name="Set" superClass="__jblk1oGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jbll1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblmFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblmVoGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblmloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblm1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblnFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblmVoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblnVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblnloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbln1oGEeS2WoXr83SnEA" name="Set" superClass="__jblnFoGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jbloFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jbloVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbloloGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblo1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblpFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblpVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbloloGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblploGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblp1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblqFoGEeS2WoXr83SnEA" name="Set" superClass="__jblpVoGEeS2WoXr83SnEA" lower="1">
+    <templateBinding xmi:id="__jblqVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblqloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblq1oGEeS2WoXr83SnEA" name="Collection">
+    <templateBinding xmi:id="__jblrFoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblrVoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfBFoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+    <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfBFoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jblrloGEeS2WoXr83SnEA" name="Bag" superClass="__jblq1oGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblr1oGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jblsFoGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfBFoGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+    <elementType href="StmcMM.xml#__jbfBFoGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblsVoGEeS2WoXr83SnEA" name="OrderedCollection" superClass="__jblWloGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jblsloGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jbls1oGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbkHFoGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbkG1oGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbkGloGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+  </ownedType>
+  <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbltFoGEeS2WoXr83SnEA" name="Sequence" superClass="__jblsVoGEeS2WoXr83SnEA">
+    <templateBinding xmi:id="__jbltVoGEeS2WoXr83SnEA">
+      <parameterSubstitution xmi:id="__jbltloGEeS2WoXr83SnEA">
+        <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+        <formal href="OCL.xml#__jbkf1oGEeS2WoXr83SnEA"/>
+      </parameterSubstitution>
+      <signature href="OCL.xml#__jbkfloGEeS2WoXr83SnEA"/>
+    </templateBinding>
+    <unspecializedElement xmi:type="flatemofqvt:SequenceType" href="OCL.xml#__jbkfVoGEeS2WoXr83SnEA"/>
+    <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+  </ownedType>
+</flatemofqvt:Package>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/OCL.xml
new file mode 100644
index 0000000..5ead39f
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/OCL.xml
@@ -0,0 +1,2890 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_BafHfloHEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+  <nestedPackage xmi:id="_BafHf1oHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHgFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKVVoHEeS2WoXr83SnEA _BafKWVoHEeS2WoXr83SnEA"
+        contextType="_BafKIVoHEeS2WoXr83SnEA" resultType="_BafJQ1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHgVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKS1oHEeS2WoXr83SnEA"
+        contextType="_BafKIVoHEeS2WoXr83SnEA" resultType="_BafKSloHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHgloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKUVoHEeS2WoXr83SnEA"
+        contextType="_BafKIVoHEeS2WoXr83SnEA" resultType="_BafKUFoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHg1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKXVoHEeS2WoXr83SnEA"
+        contextType="_BafKIVoHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHhFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKRFoHEeS2WoXr83SnEA"
+        contextType="_BafKIVoHEeS2WoXr83SnEA" resultType="_BafI9loHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHhVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKxloHEeS2WoXr83SnEA _BafK11oHEeS2WoXr83SnEA _BafK3FoHEeS2WoXr83SnEA _BafK31oHEeS2WoXr83SnEA _BafK5FoHEeS2WoXr83SnEA _BafK81oHEeS2WoXr83SnEA _BafK91oHEeS2WoXr83SnEA _BafK-1oHEeS2WoXr83SnEA"
+        contextType="_BafKY1oHEeS2WoXr83SnEA" resultType="_BafJQ1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHhloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKzVoHEeS2WoXr83SnEA"
+        contextType="_BafKY1oHEeS2WoXr83SnEA" resultType="_BafKzFoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHh1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafK1FoHEeS2WoXr83SnEA"
+        contextType="_BafKY1oHEeS2WoXr83SnEA" resultType="_BafK01oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHiFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafK7loHEeS2WoXr83SnEA"
+        contextType="_BafKY1oHEeS2WoXr83SnEA" resultType="_BafK7VoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHiVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafK6FoHEeS2WoXr83SnEA _BafK_1oHEeS2WoXr83SnEA"
+        contextType="_BafKY1oHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHiloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMCloHEeS2WoXr83SnEA _BafMDloHEeS2WoXr83SnEA"
+        contextType="_BafLwloHEeS2WoXr83SnEA" resultType="_BafJQ1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHi1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMEloHEeS2WoXr83SnEA"
+        contextType="_BafLwloHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHjFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafL-VoHEeS2WoXr83SnEA"
+        contextType="_BafLwloHEeS2WoXr83SnEA" resultType="_BafLv1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHjVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMAFoHEeS2WoXr83SnEA"
+        contextType="_BafLwloHEeS2WoXr83SnEA" resultType="_BafL_1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHjloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMBloHEeS2WoXr83SnEA"
+        contextType="_BafLwloHEeS2WoXr83SnEA" resultType="_BafMBVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHj1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMXloHEeS2WoXr83SnEA _BafMYloHEeS2WoXr83SnEA"
+        contextType="_BafMF1oHEeS2WoXr83SnEA" resultType="_BafJQ1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHkFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMZloHEeS2WoXr83SnEA"
+        contextType="_BafMF1oHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHkVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMTVoHEeS2WoXr83SnEA"
+        contextType="_BafMF1oHEeS2WoXr83SnEA" resultType="_BafIyVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHkloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMVFoHEeS2WoXr83SnEA"
+        contextType="_BafMF1oHEeS2WoXr83SnEA" resultType="_BafMU1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHk1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMWloHEeS2WoXr83SnEA"
+        contextType="_BafMF1oHEeS2WoXr83SnEA" resultType="_BafMWVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHlFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMoloHEeS2WoXr83SnEA _BafMploHEeS2WoXr83SnEA"
+        contextType="_BafMa1oHEeS2WoXr83SnEA" resultType="_BafJQ1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHlVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMqloHEeS2WoXr83SnEA"
+        contextType="_BafMa1oHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHlloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMkVoHEeS2WoXr83SnEA"
+        contextType="_BafMa1oHEeS2WoXr83SnEA" resultType="_BafMaFoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHl1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMmFoHEeS2WoXr83SnEA"
+        contextType="_BafMa1oHEeS2WoXr83SnEA" resultType="_BafMl1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHmFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMnloHEeS2WoXr83SnEA"
+        contextType="_BafMa1oHEeS2WoXr83SnEA" resultType="_BafMnVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHmVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMwFoHEeS2WoXr83SnEA"
+        contextType="_BafMsVoHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="_BafHmloHEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="_BafHxloHEeS2WoXr83SnEA _BafI9VoHEeS2WoXr83SnEA _BafJEFoHEeS2WoXr83SnEA"
+        superClass="_BafLk1oHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafHm1oHEeS2WoXr83SnEA" name="first" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_BafHnFoHEeS2WoXr83SnEA" name="second" type="_BafKsVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHnVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+        superClass="_BafHx1oHEeS2WoXr83SnEA" typedElement="_BafKRloHEeS2WoXr83SnEA" elementType="_BafKSloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHnloHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHn1oHEeS2WoXr83SnEA" actual="_BafKSloHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHoFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+        superClass="_BafHyloHEeS2WoXr83SnEA" typedElement="_BafKTVoHEeS2WoXr83SnEA" elementType="_BafKUFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHoVoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHoloHEeS2WoXr83SnEA" actual="_BafKUFoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHo1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+        superClass="_BafHzVoHEeS2WoXr83SnEA" typedElement="_BafKLVoHEeS2WoXr83SnEA" elementType="_BafKMVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHpFoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHpVoHEeS2WoXr83SnEA" actual="_BafKMVoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHploHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+        superClass="_BafH0FoHEeS2WoXr83SnEA" typedElement="_BafKOFoHEeS2WoXr83SnEA" elementType="_BafKO1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHp1oHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHqFoHEeS2WoXr83SnEA" actual="_BafKO1oHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHqVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+        superClass="_BafH01oHEeS2WoXr83SnEA" typedElement="_BafKPVoHEeS2WoXr83SnEA" elementType="_BafKQFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHqloHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHq1oHEeS2WoXr83SnEA" actual="_BafKQFoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHrFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+        superClass="_BafH8VoHEeS2WoXr83SnEA" typedElement="_BafKcVoHEeS2WoXr83SnEA _BafKn1oHEeS2WoXr83SnEA _BafKwVoHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHrVoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHrloHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHr1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+        superClass="_BafH9FoHEeS2WoXr83SnEA" typedElement="_BafKZFoHEeS2WoXr83SnEA" elementType="_BafKYFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHsFoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHsVoHEeS2WoXr83SnEA" actual="_BafKYFoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHsloHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+        superClass="_BafH-loHEeS2WoXr83SnEA" typedElement="_BafLCVoHEeS2WoXr83SnEA" elementType="_BafLAVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHs1oHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHtFoHEeS2WoXr83SnEA" actual="_BafLAVoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHtVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+        superClass="_BafH_VoHEeS2WoXr83SnEA" typedElement="_BafLDloHEeS2WoXr83SnEA" elementType="_BafLCloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHtloHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHt1oHEeS2WoXr83SnEA" actual="_BafLCloHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHuFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+        superClass="_BafIMFoHEeS2WoXr83SnEA" typedElement="_BafMk1oHEeS2WoXr83SnEA" elementType="_BafMl1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHuVoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHuloHEeS2WoXr83SnEA" actual="_BafMl1oHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHu1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+        superClass="_BafIM1oHEeS2WoXr83SnEA" typedElement="_BafMmloHEeS2WoXr83SnEA" elementType="_BafMnVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHvFoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHvVoHEeS2WoXr83SnEA" actual="_BafMnVoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHvloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafJYVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHv1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHwFoHEeS2WoXr83SnEA" actual="_BafJYVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHwVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafJtVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHwloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHw1oHEeS2WoXr83SnEA" actual="_BafJtVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHxFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafHmloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHxVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHxloHEeS2WoXr83SnEA" actual="_BafHmloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHx1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKSloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHyFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHyVoHEeS2WoXr83SnEA" actual="_BafKSloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHyloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKUFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHy1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHzFoHEeS2WoXr83SnEA" actual="_BafKUFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHzVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKMVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHzloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHz1oHEeS2WoXr83SnEA" actual="_BafKMVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH0FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKO1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH0VoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH0loHEeS2WoXr83SnEA" actual="_BafKO1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH01oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKQFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH1FoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH1VoHEeS2WoXr83SnEA" actual="_BafKQFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH1loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKN1oHEeS2WoXr83SnEA" elementType="_BafKIVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH11oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH2FoHEeS2WoXr83SnEA" actual="_BafKIVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH2VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKyFoHEeS2WoXr83SnEA" elementType="_BafKzFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH2loHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH21oHEeS2WoXr83SnEA" actual="_BafKzFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH3FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKz1oHEeS2WoXr83SnEA" elementType="_BafK01oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH3VoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH3loHEeS2WoXr83SnEA" actual="_BafK01oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH31oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKhFoHEeS2WoXr83SnEA" elementType="_BafKg1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH4FoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH4VoHEeS2WoXr83SnEA" actual="_BafKg1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH4loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKi1oHEeS2WoXr83SnEA" elementType="_BafKj1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH41oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH5FoHEeS2WoXr83SnEA" actual="_BafKj1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH5VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKmFoHEeS2WoXr83SnEA" elementType="_BafKl1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH5loHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH51oHEeS2WoXr83SnEA" actual="_BafKl1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH6FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKsloHEeS2WoXr83SnEA" elementType="_BafKsVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH6VoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH6loHEeS2WoXr83SnEA" actual="_BafKsVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH61oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKs1oHEeS2WoXr83SnEA" elementType="_BafKtloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH7FoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH7VoHEeS2WoXr83SnEA" actual="_BafKtloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH7loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKuFoHEeS2WoXr83SnEA" elementType="_BafKu1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH71oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH8FoHEeS2WoXr83SnEA" actual="_BafKu1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH8VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH8loHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH81oHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH9FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKYFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH9VoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH9loHEeS2WoXr83SnEA" actual="_BafKYFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH91oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLB1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH-FoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH-VoHEeS2WoXr83SnEA" actual="_BafLB1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH-loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLAVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH-1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH_FoHEeS2WoXr83SnEA" actual="_BafLAVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH_VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLCloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafH_loHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafH_1oHEeS2WoXr83SnEA" actual="_BafLCloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIAFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKLFoHEeS2WoXr83SnEA _BafKiloHEeS2WoXr83SnEA _BafL1VoHEeS2WoXr83SnEA _BafMKFoHEeS2WoXr83SnEA _BafMeVoHEeS2WoXr83SnEA"
+        elementType="_BafLEVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIAVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIAloHEeS2WoXr83SnEA" actual="_BafLEVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIA1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLUFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIBFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIBVoHEeS2WoXr83SnEA" actual="_BafLUFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIBloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLiVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIB1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafICFoHEeS2WoXr83SnEA" actual="_BafLiVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafICVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLtFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafICloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIC1oHEeS2WoXr83SnEA" actual="_BafLtFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIDFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafL_1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIDVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIDloHEeS2WoXr83SnEA" actual="_BafL_1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafID1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMBVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIEFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIEVoHEeS2WoXr83SnEA" actual="_BafMBVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIEloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafL2VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIE1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIFFoHEeS2WoXr83SnEA" actual="_BafL2VoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIFVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafL7FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIFloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIF1oHEeS2WoXr83SnEA" actual="_BafL7FoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIGFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafL8VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIGVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIGloHEeS2WoXr83SnEA" actual="_BafL8VoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIG1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLwloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIHFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIHVoHEeS2WoXr83SnEA" actual="_BafLwloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIHloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMU1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIH1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIIFoHEeS2WoXr83SnEA" actual="_BafMU1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIIVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMWVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIIloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafII1oHEeS2WoXr83SnEA" actual="_BafMWVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIJFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMLVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIJVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIJloHEeS2WoXr83SnEA" actual="_BafMLVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIJ1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMQFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIKFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIKVoHEeS2WoXr83SnEA" actual="_BafMQFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIKloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMRVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIK1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafILFoHEeS2WoXr83SnEA" actual="_BafMRVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafILVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMF1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafILloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIL1oHEeS2WoXr83SnEA" actual="_BafMF1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIMFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMl1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIMVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIMloHEeS2WoXr83SnEA" actual="_BafMl1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIM1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMnVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafINFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafINVoHEeS2WoXr83SnEA" actual="_BafMnVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafINloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMfloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIN1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIOFoHEeS2WoXr83SnEA" actual="_BafMfloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIOVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMiFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIOloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIO1oHEeS2WoXr83SnEA" actual="_BafMiFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIPFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMjVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIPVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIPloHEeS2WoXr83SnEA" actual="_BafMjVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIP1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafMhFoHEeS2WoXr83SnEA" elementType="_BafMa1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIQFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIQVoHEeS2WoXr83SnEA" actual="_BafMa1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIQloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafMt1oHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIQ1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIRFoHEeS2WoXr83SnEA" actual="_BafMsVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIRVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafKHVoHEeS2WoXr83SnEA" instanceType="_BafKHFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIRloHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIR1oHEeS2WoXr83SnEA" actual="_BafKHFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafISFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafKPFoHEeS2WoXr83SnEA" instanceType="_BafKO1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafISVoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafISloHEeS2WoXr83SnEA" actual="_BafKO1oHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIS1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafKQVoHEeS2WoXr83SnEA" instanceType="_BafKQFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafITFoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafITVoHEeS2WoXr83SnEA" actual="_BafKQFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafITloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafKt1oHEeS2WoXr83SnEA" instanceType="_BafKtloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIT1oHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIUFoHEeS2WoXr83SnEA" actual="_BafKtloHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIUVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafKvFoHEeS2WoXr83SnEA" instanceType="_BafKu1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIUloHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIU1oHEeS2WoXr83SnEA" actual="_BafKu1oHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIVFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLIFoHEeS2WoXr83SnEA" instanceType="_BafLH1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIVVoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIVloHEeS2WoXr83SnEA" actual="_BafLH1oHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIV1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLK1oHEeS2WoXr83SnEA" instanceType="_BafLKloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIWFoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIWVoHEeS2WoXr83SnEA" actual="_BafLKloHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIWloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLM1oHEeS2WoXr83SnEA" instanceType="_BafLMloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIW1oHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIXFoHEeS2WoXr83SnEA" actual="_BafLMloHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIXVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLa1oHEeS2WoXr83SnEA" instanceType="_BafLaloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIXloHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIX1oHEeS2WoXr83SnEA" actual="_BafLaloHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIYFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLcVoHEeS2WoXr83SnEA" instanceType="_BafLcFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIYVoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIYloHEeS2WoXr83SnEA" actual="_BafLcFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIY1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLdloHEeS2WoXr83SnEA" instanceType="_BafLdVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIZFoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIZVoHEeS2WoXr83SnEA" actual="_BafLdVoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIZloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" instanceType="_BafLWFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIZ1oHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIaFoHEeS2WoXr83SnEA" actual="_BafLWFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIaVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLO1oHEeS2WoXr83SnEA _BafLeFoHEeS2WoXr83SnEA" instanceType="_BafLiVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIaloHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIa1oHEeS2WoXr83SnEA" actual="_BafLiVoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIbFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" instanceType="_BafLnloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIbVoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIbloHEeS2WoXr83SnEA" actual="_BafLnloHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIb1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafL7VoHEeS2WoXr83SnEA" instanceType="_BafL7FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIcFoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIcVoHEeS2WoXr83SnEA" actual="_BafL7FoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIcloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafL8loHEeS2WoXr83SnEA" instanceType="_BafL8VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIc1oHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIdFoHEeS2WoXr83SnEA" actual="_BafL8VoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIdVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafMQVoHEeS2WoXr83SnEA" instanceType="_BafMQFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIdloHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafId1oHEeS2WoXr83SnEA" actual="_BafMQFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIeFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafMRloHEeS2WoXr83SnEA" instanceType="_BafMRVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIeVoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIeloHEeS2WoXr83SnEA" actual="_BafMRVoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIe1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafMiVoHEeS2WoXr83SnEA" instanceType="_BafMiFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIfFoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIfVoHEeS2WoXr83SnEA" actual="_BafMiFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIfloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafMjloHEeS2WoXr83SnEA" instanceType="_BafMjVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIf1oHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIgFoHEeS2WoXr83SnEA" actual="_BafMjVoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIgVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafHvloHEeS2WoXr83SnEA" elementType="_BafJYVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIgloHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIg1oHEeS2WoXr83SnEA" actual="_BafJYVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIhFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafHwVoHEeS2WoXr83SnEA" elementType="_BafJtVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIhVoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIhloHEeS2WoXr83SnEA" actual="_BafJtVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIh1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafH1loHEeS2WoXr83SnEA" elementType="_BafKIVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIiFoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIiVoHEeS2WoXr83SnEA" actual="_BafKIVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIiloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafH8VoHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIi1oHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIjFoHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIjVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafH91oHEeS2WoXr83SnEA" elementType="_BafLB1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIjloHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIj1oHEeS2WoXr83SnEA" actual="_BafLB1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIkFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIDFoHEeS2WoXr83SnEA" elementType="_BafL_1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIkVoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIkloHEeS2WoXr83SnEA" actual="_BafL_1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIk1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafID1oHEeS2WoXr83SnEA" elementType="_BafMBVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIlFoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIlVoHEeS2WoXr83SnEA" actual="_BafMBVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIlloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIEloHEeS2WoXr83SnEA" elementType="_BafL2VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIl1oHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafImFoHEeS2WoXr83SnEA" actual="_BafL2VoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafImVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIFVoHEeS2WoXr83SnEA" elementType="_BafL7FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafImloHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIm1oHEeS2WoXr83SnEA" actual="_BafL7FoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafInFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIGFoHEeS2WoXr83SnEA" elementType="_BafL8VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafInVoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafInloHEeS2WoXr83SnEA" actual="_BafL8VoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIn1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIG1oHEeS2WoXr83SnEA" typedElement="_BafLz1oHEeS2WoXr83SnEA _BafL5loHEeS2WoXr83SnEA" elementType="_BafLwloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIoFoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIoVoHEeS2WoXr83SnEA" actual="_BafLwloHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIoloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIHloHEeS2WoXr83SnEA" elementType="_BafMU1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIo1oHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIpFoHEeS2WoXr83SnEA" actual="_BafMU1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIpVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIIVoHEeS2WoXr83SnEA" elementType="_BafMWVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIploHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIp1oHEeS2WoXr83SnEA" actual="_BafMWVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIqFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIJFoHEeS2WoXr83SnEA" elementType="_BafMLVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIqVoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIqloHEeS2WoXr83SnEA" actual="_BafMLVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIq1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIJ1oHEeS2WoXr83SnEA" elementType="_BafMQFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIrFoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIrVoHEeS2WoXr83SnEA" actual="_BafMQFoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIrloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIKloHEeS2WoXr83SnEA" elementType="_BafMRVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIr1oHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIsFoHEeS2WoXr83SnEA" actual="_BafMRVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIsVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafILVoHEeS2WoXr83SnEA" typedElement="_BafMIloHEeS2WoXr83SnEA _BafMOloHEeS2WoXr83SnEA" elementType="_BafMF1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIsloHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIs1oHEeS2WoXr83SnEA" actual="_BafMF1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafItFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIP1oHEeS2WoXr83SnEA" elementType="_BafMa1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafItVoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafItloHEeS2WoXr83SnEA" actual="_BafMa1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIt1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+        superClass="_BafIQloHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIuFoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIuVoHEeS2WoXr83SnEA" actual="_BafMsVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIuloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+        superClass="_BafIiloHEeS2WoXr83SnEA _BafJFFoHEeS2WoXr83SnEA" typedElement="_BafKc1oHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIu1oHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIvFoHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIvVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+        superClass="_BafIjVoHEeS2WoXr83SnEA _BafJF1oHEeS2WoXr83SnEA" typedElement="_BafLA1oHEeS2WoXr83SnEA" elementType="_BafLB1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIvloHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIv1oHEeS2WoXr83SnEA" actual="_BafLB1oHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIwFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+        superClass="_BafIlloHEeS2WoXr83SnEA _BafJI1oHEeS2WoXr83SnEA" typedElement="_BafL1loHEeS2WoXr83SnEA" elementType="_BafL2VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIwVoHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIwloHEeS2WoXr83SnEA" actual="_BafL2VoHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIw1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+        superClass="_BafImVoHEeS2WoXr83SnEA _BafJJloHEeS2WoXr83SnEA" typedElement="_BafL6VoHEeS2WoXr83SnEA" elementType="_BafL7FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIxFoHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIxVoHEeS2WoXr83SnEA" actual="_BafL7FoHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIxloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+        superClass="_BafInFoHEeS2WoXr83SnEA _BafJKVoHEeS2WoXr83SnEA" typedElement="_BafL7loHEeS2WoXr83SnEA" elementType="_BafL8VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIx1oHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIyFoHEeS2WoXr83SnEA" actual="_BafL8VoHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIyVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+        superClass="_BafIsVoHEeS2WoXr83SnEA _BafJL1oHEeS2WoXr83SnEA" typedElement="_BafMS1oHEeS2WoXr83SnEA" elementType="_BafMF1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIyloHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIy1oHEeS2WoXr83SnEA" actual="_BafMF1oHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIzFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+        superClass="_BafItFoHEeS2WoXr83SnEA _BafJO1oHEeS2WoXr83SnEA" typedElement="_BafMqFoHEeS2WoXr83SnEA" elementType="_BafMa1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafIzVoHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafIzloHEeS2WoXr83SnEA" actual="_BafMa1oHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIz1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+        superClass="_BafIt1oHEeS2WoXr83SnEA _BafJPloHEeS2WoXr83SnEA" typedElement="_BafMvloHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI0FoHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI0VoHEeS2WoXr83SnEA" actual="_BafMsVoHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI0loHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+        superClass="_BafIgVoHEeS2WoXr83SnEA" elementType="_BafJYVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI01oHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI1FoHEeS2WoXr83SnEA" actual="_BafJYVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI1VoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+        superClass="_BafIhFoHEeS2WoXr83SnEA" typedElement="_BafJzFoHEeS2WoXr83SnEA _BafKDFoHEeS2WoXr83SnEA _BafKDloHEeS2WoXr83SnEA _BafKEVoHEeS2WoXr83SnEA"
+        elementType="_BafJtVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI1loHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI11oHEeS2WoXr83SnEA" actual="_BafJtVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI2FoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+        superClass="_BafIh1oHEeS2WoXr83SnEA" typedElement="_BafKW1oHEeS2WoXr83SnEA" elementType="_BafKIVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI2VoHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI2loHEeS2WoXr83SnEA" actual="_BafKIVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI21oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+        superClass="_BafIiloHEeS2WoXr83SnEA" typedElement="_BafKdVoHEeS2WoXr83SnEA _BafK_VoHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI3FoHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI3VoHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI3loHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+        superClass="_BafIkFoHEeS2WoXr83SnEA" typedElement="_BafL-1oHEeS2WoXr83SnEA" elementType="_BafL_1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI31oHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI4FoHEeS2WoXr83SnEA" actual="_BafL_1oHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI4VoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+        superClass="_BafIk1oHEeS2WoXr83SnEA" typedElement="_BafMAloHEeS2WoXr83SnEA" elementType="_BafMBVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI4loHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI41oHEeS2WoXr83SnEA" actual="_BafMBVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI5FoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+        superClass="_BafIoloHEeS2WoXr83SnEA" typedElement="_BafMT1oHEeS2WoXr83SnEA" elementType="_BafMU1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI5VoHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI5loHEeS2WoXr83SnEA" actual="_BafMU1oHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI51oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+        superClass="_BafIpVoHEeS2WoXr83SnEA" typedElement="_BafMVloHEeS2WoXr83SnEA" elementType="_BafMWVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI6FoHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI6VoHEeS2WoXr83SnEA" actual="_BafMWVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI6loHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+        superClass="_BafIqFoHEeS2WoXr83SnEA" typedElement="_BafMKVoHEeS2WoXr83SnEA" elementType="_BafMLVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI61oHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI7FoHEeS2WoXr83SnEA" actual="_BafMLVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI7VoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+        superClass="_BafIq1oHEeS2WoXr83SnEA" typedElement="_BafMPVoHEeS2WoXr83SnEA" elementType="_BafMQFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI7loHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI71oHEeS2WoXr83SnEA" actual="_BafMQFoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI8FoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+        superClass="_BafIrloHEeS2WoXr83SnEA" typedElement="_BafMQloHEeS2WoXr83SnEA" elementType="_BafMRVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI8VoHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI8loHEeS2WoXr83SnEA" actual="_BafMRVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafI81oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+        superClass="_BafJDloHEeS2WoXr83SnEA" typedElement="_BafKrVoHEeS2WoXr83SnEA" elementType="_BafHmloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI9FoHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI9VoHEeS2WoXr83SnEA" actual="_BafHmloHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafI9loHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+        superClass="_BafJEVoHEeS2WoXr83SnEA" typedElement="_BafKQloHEeS2WoXr83SnEA" elementType="_BafKIVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI91oHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI-FoHEeS2WoXr83SnEA" actual="_BafKIVoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafI-VoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+        superClass="_BafJFFoHEeS2WoXr83SnEA" typedElement="_BafKd1oHEeS2WoXr83SnEA _BafKoloHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI-loHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI-1oHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafI_FoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+        superClass="_BafJHVoHEeS2WoXr83SnEA" typedElement="_BafLVloHEeS2WoXr83SnEA" elementType="_BafLUFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafI_VoHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafI_loHEeS2WoXr83SnEA" actual="_BafLUFoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafI_1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+        superClass="_BafJIFoHEeS2WoXr83SnEA" typedElement="_BafJSloHEeS2WoXr83SnEA _BafLBVoHEeS2WoXr83SnEA _BafLGVoHEeS2WoXr83SnEA _BafLUloHEeS2WoXr83SnEA _BafLYFoHEeS2WoXr83SnEA _BafLZloHEeS2WoXr83SnEA _BafLpVoHEeS2WoXr83SnEA"
+        elementType="_BafLiVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJAFoHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJAVoHEeS2WoXr83SnEA" actual="_BafLiVoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafJAloHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+        superClass="_BafJMloHEeS2WoXr83SnEA" typedElement="_BafMeloHEeS2WoXr83SnEA" elementType="_BafMfloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJA1oHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJBFoHEeS2WoXr83SnEA" actual="_BafMfloHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafJBVoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+        superClass="_BafJNVoHEeS2WoXr83SnEA" typedElement="_BafMhVoHEeS2WoXr83SnEA" elementType="_BafMiFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJBloHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJB1oHEeS2WoXr83SnEA" actual="_BafMiFoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafJCFoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+        superClass="_BafJOFoHEeS2WoXr83SnEA" typedElement="_BafMiloHEeS2WoXr83SnEA" elementType="_BafMjVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJCVoHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJCloHEeS2WoXr83SnEA" actual="_BafMjVoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafJC1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+        superClass="_BafJPloHEeS2WoXr83SnEA" typedElement="_BafMtVoHEeS2WoXr83SnEA _BafMuFoHEeS2WoXr83SnEA _BafMu1oHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJDFoHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJDVoHEeS2WoXr83SnEA" actual="_BafMsVoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJDloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafHxFoHEeS2WoXr83SnEA" elementType="_BafHmloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJD1oHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJEFoHEeS2WoXr83SnEA" actual="_BafHmloHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJEVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafH1loHEeS2WoXr83SnEA" elementType="_BafKIVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJEloHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJE1oHEeS2WoXr83SnEA" actual="_BafKIVoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJFFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafH8VoHEeS2WoXr83SnEA" typedElement="_BafKpFoHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJFVoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJFloHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJF1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafH91oHEeS2WoXr83SnEA" elementType="_BafLB1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJGFoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJGVoHEeS2WoXr83SnEA" actual="_BafLB1oHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJGloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafIAFoHEeS2WoXr83SnEA" typedElement="_BafLxVoHEeS2WoXr83SnEA _BafMbloHEeS2WoXr83SnEA _BafMtFoHEeS2WoXr83SnEA _BafMuloHEeS2WoXr83SnEA"
+        elementType="_BafLEVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJG1oHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJHFoHEeS2WoXr83SnEA" actual="_BafLEVoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJHVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafIA1oHEeS2WoXr83SnEA" elementType="_BafLUFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJHloHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJH1oHEeS2WoXr83SnEA" actual="_BafLUFoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJIFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafIBloHEeS2WoXr83SnEA" elementType="_BafLiVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJIVoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJIloHEeS2WoXr83SnEA" actual="_BafLiVoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJI1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafIEloHEeS2WoXr83SnEA" elementType="_BafL2VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJJFoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJJVoHEeS2WoXr83SnEA" actual="_BafL2VoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJJloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafIFVoHEeS2WoXr83SnEA" elementType="_BafL7FoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJJ1oHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJKFoHEeS2WoXr83SnEA" actual="_BafL7FoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJKVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafIGFoHEeS2WoXr83SnEA" elementType="_BafL8VoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJKloHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJK1oHEeS2WoXr83SnEA" actual="_BafL8VoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJLFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafIG1oHEeS2WoXr83SnEA" elementType="_BafLwloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJLVoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJLloHEeS2WoXr83SnEA" actual="_BafLwloHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJL1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafILVoHEeS2WoXr83SnEA" elementType="_BafMF1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJMFoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJMVoHEeS2WoXr83SnEA" actual="_BafMF1oHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJMloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafINloHEeS2WoXr83SnEA" elementType="_BafMfloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJM1oHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJNFoHEeS2WoXr83SnEA" actual="_BafMfloHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJNVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafIOVoHEeS2WoXr83SnEA" elementType="_BafMiFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJNloHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJN1oHEeS2WoXr83SnEA" actual="_BafMiFoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJOFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafIPFoHEeS2WoXr83SnEA" elementType="_BafMjVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJOVoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJOloHEeS2WoXr83SnEA" actual="_BafMjVoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJO1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafIP1oHEeS2WoXr83SnEA" elementType="_BafMa1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJPFoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJPVoHEeS2WoXr83SnEA" actual="_BafMa1oHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJPloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+        superClass="_BafIQloHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafJP1oHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafJQFoHEeS2WoXr83SnEA" actual="_BafMsVoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="_BafJQVoHEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+    <ownedComment xmi:id="_BafJQloHEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.&#xA;This sub clause contains all standard types defined within OCL, including all the operations defined on those types.&#xA;For each operation the signature and a description of the semantics is given.&#xA;Within the description, the reserved word &#x2018;result&#x2019; is used to refer to the value that results from evaluating the operation.&#xA;In several places, post conditions are used to describe properties of the result.&#xA;When there is more than one postcondition, all postconditions must be true.&#xA;A similar thing is true for multiple preconditions.&#xA;If these are used, the operation is only defined if all preconditions evaluate to oclText[true].&#xA;&#xA;heading:1[Introduction]&#xA;&#xA;The structure, syntax, and semantics of the OCL is defined in Clauses 8 (&#x201c;Abstract Syntax&#x201d;), 9 (&#x201c;Concrete Syntax&#x201d;),&#xA;and 10 (&#x201c;Semantics Described using UML&#x201d;).&#xA;This sub clause adds another part to the OCL definition: a library of predefined types and operations.&#xA;Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,&#xA;where the language definition and the standard libraries are both mandatory parts of the complete language definition.&#xA;&#xA;The OCL standard library defines a number of types.&#xA;It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.&#xA;These are familiar from many other languages. The second part of the standard library consists of the collection types.&#xA;They are Bag, Set, Sequence, and Collection where Collection is an abstract type.&#xA;Note that all types defined in the OCL standard library are instances of an abstract syntax class.&#xA;The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.&#xA;&#xA;Next to definitions of types the OCL standard library defines a number of template expressions.&#xA;Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.&#xA;For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.&#xA;&#xA;The Standard Library may be extended with new types, new operations and new iterators.&#xA;In particular new operations can be defined for collections.&#xA;&#xA;Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted&#xA;in an appropriate fashion.&#xA;A locale is defined as a concatenation of up to three character sequences separated by underscores,&#xA;with the first sequence identifying the language and the second sequence identifying the country.&#xA;The third sequence is empty but may encode an implementation-specific variant.&#xA;Trailing empty strings and separators may be omitted.&#xA;&#xA;The character sequences for languages are defined by ISO 639.&#xA;&#xA;The character sequences for countries are defined by ISO 3166.&#xA;&#xA;&#x2018;fr_CA&#x2019; therefore identifies the locale for the French language in the Canada country.&#xA;&#xA;Comparison of strings and consequently the collation order of Collection::sortedBy()&#xA;conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.&#xA;&#xA;The locale is &#x2018;en_us&#x2019; by default but may be configured by a property constraint on OclAny::oclLocale.&#xA;&#xA;The prevailing locale is defined by the prevailing value of oclLocale within the current environment;&#xA;it may therefore be changed temporarily by using a Let expression.&#xA;let oclLocale : String = &#x2018;fr_CA&#x2019; in aString.toUpperCase()&#xA;&#xA;heading:1[Iterators]&#xA;&#xA;This sub clause defines the standard OCL iterator expressions.&#xA;In the abstract syntax these are all instances of IteratorExp.&#xA;These iterator expressions always have a collection expression as their source,&#xA;as is defined in the well-formedness rules in Clause 8 (&#x201c;Abstract Syntax&#x201d;).&#xA;The defined iterator expressions are shown per source collection type.&#xA;The semantics of each iterator expression is defined through a mapping from the iterator to the &#x2018;iterate&#x2019; construct.&#xA;This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.&#xA;&#xA;In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,&#xA;and the righthand side of the equals sign is the equivalent as an IterateExp.&#xA;The names source, body, and iterator refer to the role names in the abstract syntax:&#xA;&#xA;source&#x9;The source expression of the IteratorExp.&#xA;&#xA;body&#x9;The body expression of the IteratorExp.&#xA;&#xA;iterator&#x9;The iterator variable of the IteratorExp.&#xA;&#xA;result&#x9;The result variable of the IterateExp.&#xA;&#xA;heading:2[Extending the Standard Library with Iterator Expressions]&#xA;&#xA;It is possible to add new iterator expressions in the standard library.&#xA;If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,&#xA;in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_BafJQ1oHEeS2WoXr83SnEA" name="Boolean" superClass="_BafLEVoHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_BafJRFoHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJRVoHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_BafJRloHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJR1oHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJSFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_BafJSVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJSloHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+        <ownedComment xmi:id="_BafJS1oHEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJTFoHEeS2WoXr83SnEA" name="and" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isInvalidating="true" isValidating="true" precedence="_BafMyFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJTVoHEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[true]."/>
+        <bodyExpression xmi:id="_BafJTloHEeS2WoXr83SnEA" type="_BafJQ1oHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = false then false
+		        else self
+		        endif endif
+		      else if self = false then false
+		      else if b.oclIsInvalid() then b
+		      else if b = false then false
+		      else if self = null then null
+		      else if b = null then null
+		      else true
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_BafJT1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJUFoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isInvalidating="true" isValidating="true" precedence="_BafMy1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJUVoHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="_BafJUloHEeS2WoXr83SnEA" type="_BafJQ1oHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = true then true
+		        else self
+		        endif endif
+		      else if self = false then true
+		      else if b.oclIsInvalid() then b
+		      else if b = true then true
+		      else if self = null then null
+		      else if b = null then b
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_BafJU1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJVFoHEeS2WoXr83SnEA" name="not" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+          precedence="_BafMw1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJVVoHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].&#xA;oclText[false] if oclText[self] is oclText[true].&#xA;oclText[null] if oclText[self] is oclText[null].&#xA;Otherwise oclText[invalid]."/>
+        <bodyExpression xmi:id="_BafJVloHEeS2WoXr83SnEA" type="_BafJQ1oHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if self = null then null
+		      else self = false
+		      endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJV1oHEeS2WoXr83SnEA" name="or" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+          isInvalidating="true" isValidating="true" precedence="_BafMyVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJWFoHEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="_BafJWVoHEeS2WoXr83SnEA" type="_BafJQ1oHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+			    else if b = true then true
+		        else self
+		        endif endif
+		      else if self = true then true
+			  else if b.oclIsInvalid() then b
+			  else if b = true then true
+			  else if self = null then null
+			  else if b = null then null
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_BafJWloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJW1oHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_BafJXFoHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJXVoHEeS2WoXr83SnEA" name="xor" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+          precedence="_BafMyloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJXloHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].&#xA;oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null]."/>
+        <bodyExpression xmi:id="_BafJX1oHEeS2WoXr83SnEA" type="_BafJQ1oHEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if b.oclIsInvalid() then b
+		      else if self = null then null
+		      else if b = null then null
+		      else self &lt;> b
+		      endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_BafJYFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJRFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJR1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJTFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_BafJTloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJT1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJUFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_BafJUloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJU1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJVFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_BafJVloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJV1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_BafJWVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJWloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJXVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_BafJX1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJYFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJkloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJlVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJmFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJm1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJnloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJoVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJuVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJvFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJv1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJwVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJw1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJxloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ1FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ11oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ4FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ7VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ_FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafKFFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKIloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKJFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKa1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKbloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKfFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKf1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKkFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKk1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKpVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKq1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK1loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK2loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK3loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK4loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK5loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK8VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLE1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLFloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLIVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLJFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLJloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLLFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLLloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLNFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLQVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLRFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLR1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLSloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLWloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLXVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLYloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLY1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLZFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLZVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLbFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLbVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLcloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLd1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLeVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLeloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLgVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLg1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLhVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLlVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLl1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLm1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLoFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLoloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLp1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLqFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLqVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLqloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLq1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLrFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLrVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLrloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLxloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLyFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafMGFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafMGloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafMb1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafMcVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafM0loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafM1loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNF1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNHFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNIFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNM1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNOFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNPVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNZVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNaFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNcloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNj1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNl1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNrVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafN6VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafN7VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafN8VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafN9VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafN-1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafOB1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_BafJYVoHEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="_BafHwFoHEeS2WoXr83SnEA _BafIg1oHEeS2WoXr83SnEA _BafI1FoHEeS2WoXr83SnEA"
+        superClass="_BafJg1oHEeS2WoXr83SnEA" typedElement="_BafJYloHEeS2WoXr83SnEA _BafJZVoHEeS2WoXr83SnEA _BafJaFoHEeS2WoXr83SnEA _BafJaloHEeS2WoXr83SnEA _BafJcFoHEeS2WoXr83SnEA _BafJcloHEeS2WoXr83SnEA _BafJdVoHEeS2WoXr83SnEA _BafJd1oHEeS2WoXr83SnEA _BafJeFoHEeS2WoXr83SnEA _BafJe1oHEeS2WoXr83SnEA _BafJfloHEeS2WoXr83SnEA _BafJgFoHEeS2WoXr83SnEA _BafJploHEeS2WoXr83SnEA _BafJqVoHEeS2WoXr83SnEA _BafJsVoHEeS2WoXr83SnEA _BafJy1oHEeS2WoXr83SnEA _BafJzloHEeS2WoXr83SnEA _BafJ2loHEeS2WoXr83SnEA _BafJ3VoHEeS2WoXr83SnEA _BafJ61oHEeS2WoXr83SnEA _BafJ-loHEeS2WoXr83SnEA _BafJ-1oHEeS2WoXr83SnEA _BafJ_loHEeS2WoXr83SnEA _BafKZ1oHEeS2WoXr83SnEA _BafKaVoHEeS2WoXr83SnEA _BafKeVoHEeS2WoXr83SnEA _BafKvVoHEeS2WoXr83SnEA _BafLTVoHEeS2WoXr83SnEA _BafLt1oHEeS2WoXr83SnEA _BafLuloHEeS2WoXr83SnEA _BafL31oHEeS2WoXr83SnEA _BafL9VoHEeS2WoXr83SnEA _BafL9loHEeS2WoXr83SnEA _BafMM1oHEeS2WoXr83SnEA _BafMSVoHEeS2WoXr83SnEA _BafMSloHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_BafJYloHEeS2WoXr83SnEA" name="*" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="_BafMxFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJY1oHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+        <ownedParameter xmi:id="_BafJZFoHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJZVoHEeS2WoXr83SnEA" name="+" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="_BafMxVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJZloHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+        <ownedParameter xmi:id="_BafJZ1oHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJaFoHEeS2WoXr83SnEA" name="-" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="_BafMw1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJaVoHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJaloHEeS2WoXr83SnEA" name="-" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="_BafMxVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJa1oHEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+        <ownedParameter xmi:id="_BafJbFoHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJbVoHEeS2WoXr83SnEA" name="/" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="_BafMxFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJbloHEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.&#xA;Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="_BafJb1oHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJcFoHEeS2WoXr83SnEA" name="abs" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="_BafJcVoHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJcloHEeS2WoXr83SnEA" name="compareTo" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="_BafJc1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_BafJdFoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJdVoHEeS2WoXr83SnEA" name="div" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+        <ownedComment xmi:id="_BafJdloHEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+        <ownedParameter xmi:id="_BafJd1oHEeS2WoXr83SnEA" name="i" type="_BafJYVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJeFoHEeS2WoXr83SnEA" name="max" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="_BafJeVoHEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+        <ownedParameter xmi:id="_BafJeloHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJe1oHEeS2WoXr83SnEA" name="min" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="_BafJfFoHEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+        <ownedParameter xmi:id="_BafJfVoHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJfloHEeS2WoXr83SnEA" name="mod" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+        <ownedComment xmi:id="_BafJf1oHEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+        <ownedParameter xmi:id="_BafJgFoHEeS2WoXr83SnEA" name="i" type="_BafJYVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJgVoHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_BafJgloHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_BafJg1oHEeS2WoXr83SnEA" name="Real" superClass="_BafLP1oHEeS2WoXr83SnEA _BafLjFoHEeS2WoXr83SnEA"
+        typedElement="_BafJbVoHEeS2WoXr83SnEA _BafJhFoHEeS2WoXr83SnEA _BafJh1oHEeS2WoXr83SnEA _BafJiloHEeS2WoXr83SnEA _BafJjFoHEeS2WoXr83SnEA _BafJj1oHEeS2WoXr83SnEA _BafJpFoHEeS2WoXr83SnEA _BafJq1oHEeS2WoXr83SnEA _BafJrloHEeS2WoXr83SnEA _BafKBFoHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_BafJhFoHEeS2WoXr83SnEA" name="*" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="_BafMxFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJhVoHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+        <ownedParameter xmi:id="_BafJhloHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJh1oHEeS2WoXr83SnEA" name="+" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="_BafMxVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJiFoHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+        <ownedParameter xmi:id="_BafJiVoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJiloHEeS2WoXr83SnEA" name="-" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="_BafMw1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJi1oHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJjFoHEeS2WoXr83SnEA" name="-" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="_BafMxVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJjVoHEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+        <ownedParameter xmi:id="_BafJjloHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJj1oHEeS2WoXr83SnEA" name="/" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="_BafMxFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJkFoHEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="_BafJkVoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJkloHEeS2WoXr83SnEA" name="&lt;" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJk1oHEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+        <ownedParameter xmi:id="_BafJlFoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJlVoHEeS2WoXr83SnEA" name="&lt;=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJlloHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+        <ownedParameter xmi:id="_BafJl1oHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJmFoHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJmVoHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_BafJmloHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJm1oHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJnFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_BafJnVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJnloHEeS2WoXr83SnEA" name=">" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJn1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+        <ownedParameter xmi:id="_BafJoFoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJoVoHEeS2WoXr83SnEA" name=">=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJoloHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+        <ownedParameter xmi:id="_BafJo1oHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJpFoHEeS2WoXr83SnEA" name="abs" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="_BafJpVoHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJploHEeS2WoXr83SnEA" name="compareTo" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="_BafJp1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_BafJqFoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJqVoHEeS2WoXr83SnEA" name="floor" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+        <ownedComment xmi:id="_BafJqloHEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJq1oHEeS2WoXr83SnEA" name="max" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="_BafJrFoHEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+        <ownedParameter xmi:id="_BafJrVoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJrloHEeS2WoXr83SnEA" name="min" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="_BafJr1oHEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+        <ownedParameter xmi:id="_BafJsFoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJsVoHEeS2WoXr83SnEA" name="round" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+        <ownedComment xmi:id="_BafJsloHEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJs1oHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_BafJtFoHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_BafJtVoHEeS2WoXr83SnEA" name="String" templateParameterSubstitution="_BafHw1oHEeS2WoXr83SnEA _BafIhloHEeS2WoXr83SnEA _BafI11oHEeS2WoXr83SnEA"
+        superClass="_BafLP1oHEeS2WoXr83SnEA _BafLjFoHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_BafJtloHEeS2WoXr83SnEA" name="+" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+          precedence="_BafMxVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJt1oHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="_BafJuFoHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJuVoHEeS2WoXr83SnEA" name="&lt;" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJuloHEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_BafJu1oHEeS2WoXr83SnEA" name="s" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJvFoHEeS2WoXr83SnEA" name="&lt;=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJvVoHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_BafJvloHEeS2WoXr83SnEA" name="s" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJv1oHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafJwFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJwVoHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafJwloHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJw1oHEeS2WoXr83SnEA" name=">" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJxFoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_BafJxVoHEeS2WoXr83SnEA" name="s" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJxloHEeS2WoXr83SnEA" name=">=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafJx1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_BafJyFoHEeS2WoXr83SnEA" name="s" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJyVoHEeS2WoXr83SnEA" name="at" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafJyloHEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+        <ownedParameter xmi:id="_BafJy1oHEeS2WoXr83SnEA" name="i" type="_BafJYVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJzFoHEeS2WoXr83SnEA" name="characters" type="_BafI1VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+        <ownedComment xmi:id="_BafJzVoHEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJzloHEeS2WoXr83SnEA" name="compareTo" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+        <ownedComment xmi:id="_BafJz1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_BafJ0FoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ0VoHEeS2WoXr83SnEA" name="concat" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+        <ownedComment xmi:id="_BafJ0loHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="_BafJ01oHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ1FoHEeS2WoXr83SnEA" name="endsWith" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+        <ownedComment xmi:id="_BafJ1VoHEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.&#xA;Every string ends with the empty string."/>
+        <ownedParameter xmi:id="_BafJ1loHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ11oHEeS2WoXr83SnEA" name="equalsIgnoreCase" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+        <ownedComment xmi:id="_BafJ2FoHEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+        <ownedParameter xmi:id="_BafJ2VoHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ2loHEeS2WoXr83SnEA" name="indexOf" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+        <ownedComment xmi:id="_BafJ21oHEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="_BafJ3FoHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ3VoHEeS2WoXr83SnEA" name="lastIndexOf" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+        <ownedComment xmi:id="_BafJ3loHEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="_BafJ31oHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ4FoHEeS2WoXr83SnEA" name="matches" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+        <ownedComment xmi:id="_BafJ4VoHEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+        <ownedParameter xmi:id="_BafJ4loHEeS2WoXr83SnEA" name="regex" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ41oHEeS2WoXr83SnEA" name="replaceAll" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafJ5FoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+        <ownedParameter xmi:id="_BafJ5VoHEeS2WoXr83SnEA" name="regex" type="_BafJtVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_BafJ5loHEeS2WoXr83SnEA" name="replacement" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ51oHEeS2WoXr83SnEA" name="replaceFirst" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafJ6FoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+        <ownedParameter xmi:id="_BafJ6VoHEeS2WoXr83SnEA" name="regex" type="_BafJtVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_BafJ6loHEeS2WoXr83SnEA" name="replacement" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ61oHEeS2WoXr83SnEA" name="size" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+        <ownedComment xmi:id="_BafJ7FoHEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ7VoHEeS2WoXr83SnEA" name="startsWith" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+        <ownedComment xmi:id="_BafJ7loHEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.&#xA;Every string starts with the empty string."/>
+        <ownedParameter xmi:id="_BafJ71oHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ8FoHEeS2WoXr83SnEA" name="substituteAll" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+        <ownedComment xmi:id="_BafJ8VoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+        <ownedParameter xmi:id="_BafJ8loHEeS2WoXr83SnEA" name="oldSubstring" type="_BafJtVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_BafJ81oHEeS2WoXr83SnEA" name="newSubstring" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ9FoHEeS2WoXr83SnEA" name="substituteFirst" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+        <ownedComment xmi:id="_BafJ9VoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.&#xA;Returns invalid if there is no first occurrence."/>
+        <ownedParameter xmi:id="_BafJ9loHEeS2WoXr83SnEA" name="oldSubstring" type="_BafJtVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_BafJ91oHEeS2WoXr83SnEA" name="newSubstring" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ-FoHEeS2WoXr83SnEA" name="substring" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafJ-VoHEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+        <ownedParameter xmi:id="_BafJ-loHEeS2WoXr83SnEA" name="lower" type="_BafJYVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_BafJ-1oHEeS2WoXr83SnEA" name="upper" type="_BafJYVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ_FoHEeS2WoXr83SnEA" name="toBoolean" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafJ_VoHEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafJ_loHEeS2WoXr83SnEA" name="toInteger" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafJ_1oHEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKAFoHEeS2WoXr83SnEA" name="toLower" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="_BafKAVoHEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKAloHEeS2WoXr83SnEA" name="toLowerCase" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="_BafKA1oHEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKBFoHEeS2WoXr83SnEA" name="toReal" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafKBVoHEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKBloHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_BafKB1oHEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKCFoHEeS2WoXr83SnEA" name="toUpper" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="_BafKCVoHEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKCloHEeS2WoXr83SnEA" name="toUpperCase" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="_BafKC1oHEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKDFoHEeS2WoXr83SnEA" name="tokenize" type="_BafI1VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_BafKDVoHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.&#xA;The delimiters are omitted from the return."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKDloHEeS2WoXr83SnEA" name="tokenize" type="_BafI1VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_BafKD1oHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+        <ownedParameter xmi:id="_BafKEFoHEeS2WoXr83SnEA" name="delimiters" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKEVoHEeS2WoXr83SnEA" name="tokenize" type="_BafI1VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_BafKEloHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is&#xA;true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+        <ownedParameter xmi:id="_BafKE1oHEeS2WoXr83SnEA" name="delimiters" type="_BafJtVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_BafKFFoHEeS2WoXr83SnEA" name="returnDelimiters" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKFVoHEeS2WoXr83SnEA" name="trim" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+        <ownedComment xmi:id="_BafKFloHEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_BafOFloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_BafOG1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_BafOIloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_BafOJloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_BafOLFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJW1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJgVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJs1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJtloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJuFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJyVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ0VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ01oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ1loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ2VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ3FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ31oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ4loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ41oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ5VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ5loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ51oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ6VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ6loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ71oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ8FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ8loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ81oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ9FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ9loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ91oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ-FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKAFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKAloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKBloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKCFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKCloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafKEFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafKE1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKFVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLOloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLPVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLe1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLr1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHM1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHNFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHOloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHQFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHRVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHTFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Function" href="UmlToRdbms.xml#_BafMz1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="UmlToRdbms.xml#_BafM0FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRdbms.xml#_BafM0VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM01oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM1FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRdbms.xml#_BafM1VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM11oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM2FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM2VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM2loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM21oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM41oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM6FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafM6VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM81oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM9VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM_FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNAFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNAVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNAloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNBFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNCFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNCVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNCloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNDVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNDloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNHVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNHloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNI1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNMFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNNloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNO1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNQFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNSFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNTFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNU1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNVVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNWVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNWloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNW1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNXFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNYloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNZloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRdbms.xml#_BafNZ1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNaVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNaloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNa1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNbFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNbVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNbloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNb1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNcFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNc1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNdFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNdVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNfVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNhloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNh1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNjFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNkFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNkVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNkloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNk1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNlFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNlVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNmloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNqloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNsFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNuFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNvFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNvloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNwloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNxFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNy1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN0VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafN01oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN21oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN3FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN3VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN3loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN31oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN_FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafN_VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafN_loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafN_1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafOAFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafOAVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafOAloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafOA1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafOBFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafOBVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafOCFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafOCVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafOCloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafOC1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_BafKF1oHEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="_BafJYVoHEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_BafKGFoHEeS2WoXr83SnEA" name="oclAsType" type="_BafKHFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+        <ownedComment xmi:id="_BafKGVoHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to&#xA;Real or Integer, but the e[unlimited] value may not.&#xA;Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+        <ownedTemplateSignature xmi:id="_BafKGloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKG1oHEeS2WoXr83SnEA" parameteredElement="_BafKHFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKHFoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafKG1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIR1oHEeS2WoXr83SnEA" typedElement="_BafKGFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafKHVoHEeS2WoXr83SnEA" name="type" type="_BafIRVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafKHloHEeS2WoXr83SnEA" name="Bag" superClass="_BafH1loHEeS2WoXr83SnEA" typedElement="_BafKJ1oHEeS2WoXr83SnEA _BafKKloHEeS2WoXr83SnEA _BafKMloHEeS2WoXr83SnEA _BafKNVoHEeS2WoXr83SnEA _BafKU1oHEeS2WoXr83SnEA _BafKV1oHEeS2WoXr83SnEA"
+        elementType="_BafKIVoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_BafKH1oHEeS2WoXr83SnEA" templateBinding="_BafHnloHEeS2WoXr83SnEA _BafHoVoHEeS2WoXr83SnEA _BafHpFoHEeS2WoXr83SnEA _BafHp1oHEeS2WoXr83SnEA _BafHqloHEeS2WoXr83SnEA _BafHrVoHEeS2WoXr83SnEA _BafHsFoHEeS2WoXr83SnEA _BafHs1oHEeS2WoXr83SnEA _BafHtloHEeS2WoXr83SnEA _BafHuVoHEeS2WoXr83SnEA _BafHvFoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKIFoHEeS2WoXr83SnEA" parameteredElement="_BafKIVoHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_BafHn1oHEeS2WoXr83SnEA _BafHoloHEeS2WoXr83SnEA _BafHpVoHEeS2WoXr83SnEA _BafHqFoHEeS2WoXr83SnEA _BafHq1oHEeS2WoXr83SnEA _BafHrloHEeS2WoXr83SnEA _BafHsVoHEeS2WoXr83SnEA _BafHtFoHEeS2WoXr83SnEA _BafHt1oHEeS2WoXr83SnEA _BafHuloHEeS2WoXr83SnEA _BafHvVoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKIVoHEeS2WoXr83SnEA" name="T" templateParameter="_BafKIFoHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_BafH2FoHEeS2WoXr83SnEA _BafIiVoHEeS2WoXr83SnEA _BafI2loHEeS2WoXr83SnEA _BafI-FoHEeS2WoXr83SnEA _BafJE1oHEeS2WoXr83SnEA"
+              typedElement="_BafKNFoHEeS2WoXr83SnEA _BafKRVoHEeS2WoXr83SnEA _BafKTFoHEeS2WoXr83SnEA _BafKUloHEeS2WoXr83SnEA _BafKVloHEeS2WoXr83SnEA _BafKWloHEeS2WoXr83SnEA _BafKXloHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_BafKIloHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafKI1oHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKJFoHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafKJVoHEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+        <ownedParameter xmi:id="_BafKJloHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKJ1oHEeS2WoXr83SnEA" name="excluding" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_BafKKFoHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+        <ownedParameter xmi:id="_BafKKVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKKloHEeS2WoXr83SnEA" name="excludingAll" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_BafKK1oHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_BafKLFoHEeS2WoXr83SnEA" name="objects" type="_BafIAFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKLVoHEeS2WoXr83SnEA" name="flatten" type="_BafHo1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_BafKLloHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].&#xA;If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_BafKL1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKMFoHEeS2WoXr83SnEA" parameteredElement="_BafKMVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKMVoHEeS2WoXr83SnEA" name="T2" templateParameter="_BafKMFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafHpVoHEeS2WoXr83SnEA _BafHz1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKMloHEeS2WoXr83SnEA" name="including" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_BafKM1oHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_BafKNFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKNVoHEeS2WoXr83SnEA" name="includingAll" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_BafKNloHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_BafKN1oHEeS2WoXr83SnEA" name="objects" type="_BafH1loHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKOFoHEeS2WoXr83SnEA" name="selectByKind" type="_BafHploHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_BafKOVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKOloHEeS2WoXr83SnEA" parameteredElement="_BafKO1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKO1oHEeS2WoXr83SnEA" name="TT" templateParameter="_BafKOloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafHqFoHEeS2WoXr83SnEA _BafH0loHEeS2WoXr83SnEA _BafISloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafKPFoHEeS2WoXr83SnEA" name="type" type="_BafISFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKPVoHEeS2WoXr83SnEA" name="selectByType" type="_BafHqVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_BafKPloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKP1oHEeS2WoXr83SnEA" parameteredElement="_BafKQFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKQFoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafKP1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafHq1oHEeS2WoXr83SnEA _BafH1VoHEeS2WoXr83SnEA _BafITVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafKQVoHEeS2WoXr83SnEA" name="type" type="_BafIS1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKQloHEeS2WoXr83SnEA" name="closure" type="_BafI9loHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_BafKQ1oHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_BafKRFoHEeS2WoXr83SnEA" name="lambda" type="_BafHhFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafKRVoHEeS2WoXr83SnEA" name="i" type="_BafKIVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKRloHEeS2WoXr83SnEA" name="collectNested" type="_BafHnVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_BafKR1oHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="_BafKSFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKSVoHEeS2WoXr83SnEA" parameteredElement="_BafKSloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKSloHEeS2WoXr83SnEA" name="V" templateParameter="_BafKSVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafHn1oHEeS2WoXr83SnEA _BafHyVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafKS1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHgVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafKTFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKTVoHEeS2WoXr83SnEA" name="collect" type="_BafHoFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_BafKTloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKT1oHEeS2WoXr83SnEA" parameteredElement="_BafKUFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKUFoHEeS2WoXr83SnEA" name="V" templateParameter="_BafKT1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafHoloHEeS2WoXr83SnEA _BafHzFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafKUVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHgloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafKUloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKU1oHEeS2WoXr83SnEA" name="reject" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_BafKVFoHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].&#xA;&#xA;oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+        <ownedParameter xmi:id="_BafKVVoHEeS2WoXr83SnEA" name="lambda" type="_BafHgFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafKVloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKV1oHEeS2WoXr83SnEA" name="select" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_BafKWFoHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].&#xA;&#xA;oclCode[self->select(iterator | body) =&#xA;self->iterate(iterator; result : Bag(T) = Bag{} |&#xA;if body then result->including(iterator)&#xA;else result&#xA;endif)]"/>
+        <ownedParameter xmi:id="_BafKWVoHEeS2WoXr83SnEA" name="lambda" type="_BafHgFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafKWloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKW1oHEeS2WoXr83SnEA" name="sortedBy" type="_BafI2FoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_BafKXFoHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_BafKXVoHEeS2WoXr83SnEA" name="lambda" type="_BafHg1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafKXloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafKX1oHEeS2WoXr83SnEA" name="Class" superClass="_BafLEVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafKYFoHEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="_BafHsVoHEeS2WoXr83SnEA _BafH9loHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKhVoHEeS2WoXr83SnEA _BafKiFoHEeS2WoXr83SnEA _BafKmVoHEeS2WoXr83SnEA _BafKnFoHEeS2WoXr83SnEA _BafKnloHEeS2WoXr83SnEA _BafKoVoHEeS2WoXr83SnEA _BafKw1oHEeS2WoXr83SnEA _BafK9VoHEeS2WoXr83SnEA _BafK-VoHEeS2WoXr83SnEA"
+        elementType="_BafKY1oHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_BafKYVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKYloHEeS2WoXr83SnEA" parameteredElement="_BafKY1oHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKY1oHEeS2WoXr83SnEA" name="T" templateParameter="_BafKYloHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_BafHrloHEeS2WoXr83SnEA _BafH81oHEeS2WoXr83SnEA _BafIjFoHEeS2WoXr83SnEA _BafIvFoHEeS2WoXr83SnEA _BafI3VoHEeS2WoXr83SnEA _BafI-1oHEeS2WoXr83SnEA _BafJFloHEeS2WoXr83SnEA"
+              typedElement="_BafHm1oHEeS2WoXr83SnEA _BafKZVoHEeS2WoXr83SnEA _BafKm1oHEeS2WoXr83SnEA _BafKp1oHEeS2WoXr83SnEA _BafKqVoHEeS2WoXr83SnEA _BafKv1oHEeS2WoXr83SnEA _BafKxFoHEeS2WoXr83SnEA _BafKx1oHEeS2WoXr83SnEA _BafKzloHEeS2WoXr83SnEA _BafK1VoHEeS2WoXr83SnEA _BafK2FoHEeS2WoXr83SnEA _BafK2VoHEeS2WoXr83SnEA _BafK3VoHEeS2WoXr83SnEA _BafK4FoHEeS2WoXr83SnEA _BafK4VoHEeS2WoXr83SnEA _BafK5VoHEeS2WoXr83SnEA _BafK6VoHEeS2WoXr83SnEA _BafK8FoHEeS2WoXr83SnEA _BafK9FoHEeS2WoXr83SnEA _BafK-FoHEeS2WoXr83SnEA _BafK_FoHEeS2WoXr83SnEA _BafLAFoHEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="_BafKZFoHEeS2WoXr83SnEA" name="Collection" type="_BafHr1oHEeS2WoXr83SnEA" implicit="true" opposite="_BafKZVoHEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+          <templateParameterSubstitution href="umlMM.xml#_BafONFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafON1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOOloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOPVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOQFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafHwFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafHw1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafHxloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafHyVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafHzFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafHz1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH0loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH1VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH2FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH21oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH3loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH4VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH5FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH51oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH6loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH7VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH8FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH81oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH9loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH-VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH_FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafH_1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIAloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIBVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafICFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIC1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIDloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIEVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIFFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIF1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIGloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIHVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIIFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafII1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIJloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIKVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafILFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIL1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIMloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafINVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIOFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIO1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIPloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIQVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafIRFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHU1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHVloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHWVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHXFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHX1oHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="umlMM.xml#_BafOM1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafONloHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafOOVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafOPFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafOP1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafHv1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafHwloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafHxVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafHyFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafHy1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafHzloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH0VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH1FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH11oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH2loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH3VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH4FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH41oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH5loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH6VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH7FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH71oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH8loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH9VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH-FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH-1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafH_loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIAVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIBFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIB1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafICloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIDVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIEFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIE1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIFloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIGVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIHFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIH1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIIloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIJVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIKFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIK1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafILloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIMVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafINFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIN1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIOloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIPVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIQFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafIQ1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHUloHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHVVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHWFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHW1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHXloHEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="_BafKZVoHEeS2WoXr83SnEA" isStatic="true" name="elementType" type="_BafKY1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+          opposite="_BafKZFoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafKZloHEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafKZ1oHEeS2WoXr83SnEA" isStatic="true" name="lower" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+        <ownedComment xmi:id="_BafKaFoHEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafKaVoHEeS2WoXr83SnEA" isStatic="true" name="upper" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+        <ownedComment xmi:id="_BafKaloHEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="_BafKa1oHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafKbFoHEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+        <ownedParameter xmi:id="_BafKbVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKbloHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafKb1oHEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,&#xA;in the case of an ordered collection type."/>
+        <ownedParameter xmi:id="_BafKcFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKcVoHEeS2WoXr83SnEA" name="asBag" type="_BafHrFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+        <ownedComment xmi:id="_BafKcloHEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKc1oHEeS2WoXr83SnEA" name="asOrderedSet" type="_BafIuloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+        <ownedComment xmi:id="_BafKdFoHEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,&#xA;in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKdVoHEeS2WoXr83SnEA" name="asSequence" type="_BafI21oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+        <ownedComment xmi:id="_BafKdloHEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKd1oHEeS2WoXr83SnEA" name="asSet" type="_BafI-VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+        <ownedComment xmi:id="_BafKeFoHEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKeVoHEeS2WoXr83SnEA" name="count" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+        <ownedComment xmi:id="_BafKeloHEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+        <ownedParameter xmi:id="_BafKe1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKfFoHEeS2WoXr83SnEA" name="excludes" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+        <ownedComment xmi:id="_BafKfVoHEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_BafKfloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKf1oHEeS2WoXr83SnEA" name="excludesAll" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+        <ownedComment xmi:id="_BafKgFoHEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="_BafKgVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKgloHEeS2WoXr83SnEA" parameteredElement="_BafKg1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKg1oHEeS2WoXr83SnEA" name="T2" templateParameter="_BafKgloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafH4VoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafKhFoHEeS2WoXr83SnEA" name="c2" type="_BafH31oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKhVoHEeS2WoXr83SnEA" name="excluding" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_BafKhloHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+        <ownedParameter xmi:id="_BafKh1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKiFoHEeS2WoXr83SnEA" name="excludingAll" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_BafKiVoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_BafKiloHEeS2WoXr83SnEA" name="objects" type="_BafIAFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKi1oHEeS2WoXr83SnEA" name="flatten" type="_BafH4loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_BafKjFoHEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].&#xA;If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_BafKjVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKjloHEeS2WoXr83SnEA" parameteredElement="_BafKj1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKj1oHEeS2WoXr83SnEA" name="T2" templateParameter="_BafKjloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafH5FoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKkFoHEeS2WoXr83SnEA" name="includes" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+        <ownedComment xmi:id="_BafKkVoHEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_BafKkloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKk1oHEeS2WoXr83SnEA" name="includesAll" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+        <ownedComment xmi:id="_BafKlFoHEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="_BafKlVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKlloHEeS2WoXr83SnEA" parameteredElement="_BafKl1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKl1oHEeS2WoXr83SnEA" name="T2" templateParameter="_BafKlloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafH51oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafKmFoHEeS2WoXr83SnEA" name="c2" type="_BafH5VoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKmVoHEeS2WoXr83SnEA" name="including" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_BafKmloHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_BafKm1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKnFoHEeS2WoXr83SnEA" name="includingAll" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_BafKnVoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_BafKnloHEeS2WoXr83SnEA" name="objects" type="_BafKYFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKn1oHEeS2WoXr83SnEA" name="intersection" type="_BafHrFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_BafKoFoHEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+        <ownedParameter xmi:id="_BafKoVoHEeS2WoXr83SnEA" name="c" type="_BafKYFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKoloHEeS2WoXr83SnEA" name="intersection" type="_BafI-VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_BafKo1oHEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+        <ownedParameter xmi:id="_BafKpFoHEeS2WoXr83SnEA" name="u" type="_BafJFFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKpVoHEeS2WoXr83SnEA" name="isEmpty" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+        <ownedComment xmi:id="_BafKploHEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?&#xA;&#xA;Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKp1oHEeS2WoXr83SnEA" name="max" type="_BafKY1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+        <ownedComment xmi:id="_BafKqFoHEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the max operation.&#xA;The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKqVoHEeS2WoXr83SnEA" name="min" type="_BafKY1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+        <ownedComment xmi:id="_BafKqloHEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the min operation.&#xA;The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKq1oHEeS2WoXr83SnEA" name="notEmpty" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+        <ownedComment xmi:id="_BafKrFoHEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?&#xA;&#xA;oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKrVoHEeS2WoXr83SnEA" name="product" type="_BafI81oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+        <ownedComment xmi:id="_BafKrloHEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+        <ownedTemplateSignature xmi:id="_BafKr1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKsFoHEeS2WoXr83SnEA" parameteredElement="_BafKsVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKsVoHEeS2WoXr83SnEA" name="T2" templateParameter="_BafKsFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafH6loHEeS2WoXr83SnEA" typedElement="_BafHnFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafKsloHEeS2WoXr83SnEA" name="c2" type="_BafH6FoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKs1oHEeS2WoXr83SnEA" name="selectByKind" type="_BafH61oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_BafKtFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKtVoHEeS2WoXr83SnEA" parameteredElement="_BafKtloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKtloHEeS2WoXr83SnEA" name="TT" templateParameter="_BafKtVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafH7VoHEeS2WoXr83SnEA _BafIUFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafKt1oHEeS2WoXr83SnEA" name="type" type="_BafITloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKuFoHEeS2WoXr83SnEA" name="selectByType" type="_BafH7loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_BafKuVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKuloHEeS2WoXr83SnEA" parameteredElement="_BafKu1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKu1oHEeS2WoXr83SnEA" name="TT" templateParameter="_BafKuloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafH8FoHEeS2WoXr83SnEA _BafIU1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafKvFoHEeS2WoXr83SnEA" name="type" type="_BafIUVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKvVoHEeS2WoXr83SnEA" name="size" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+        <ownedComment xmi:id="_BafKvloHEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKv1oHEeS2WoXr83SnEA" name="sum" type="_BafKY1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+        <ownedComment xmi:id="_BafKwFoHEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].&#xA;Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.&#xA;The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).&#xA;UnlimitedNatural, Integer and Real fulfill this condition.&#xA;&#xA;If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,&#xA;which may result in unpredictable results during evaluation.&#xA;If an implementation is able to detect a lack of associativity or commutativity,&#xA;the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafKwVoHEeS2WoXr83SnEA" name="union" type="_BafHrFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="_BafKwloHEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+        <ownedParameter xmi:id="_BafKw1oHEeS2WoXr83SnEA" name="c" type="_BafKYFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKxFoHEeS2WoXr83SnEA" name="any" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+        <ownedComment xmi:id="_BafKxVoHEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].&#xA;If there is more than one element for which body is oclText[true], one of them is returned.&#xA;There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+        <ownedParameter xmi:id="_BafKxloHEeS2WoXr83SnEA" name="lambda" type="_BafHhVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafKx1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKyFoHEeS2WoXr83SnEA" name="collectNested" type="_BafH2VoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_BafKyVoHEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+        <ownedTemplateSignature xmi:id="_BafKyloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKy1oHEeS2WoXr83SnEA" parameteredElement="_BafKzFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKzFoHEeS2WoXr83SnEA" name="V" templateParameter="_BafKy1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafH21oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafKzVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHhloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafKzloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKz1oHEeS2WoXr83SnEA" name="collect" type="_BafH3FoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedComment xmi:id="_BafK0FoHEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.&#xA;The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.&#xA;collectNested is defined individually for each subclass of CollectionType."/>
+        <ownedTemplateSignature xmi:id="_BafK0VoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafK0loHEeS2WoXr83SnEA" parameteredElement="_BafK01oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafK01oHEeS2WoXr83SnEA" name="V" templateParameter="_BafK0loHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafH3loHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafK1FoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHh1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK1VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK1loHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedParameter xmi:id="_BafK11oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHhVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK2FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK2VoHEeS2WoXr83SnEA" name="j" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK2loHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedComment xmi:id="_BafK21oHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+        <ownedParameter xmi:id="_BafK3FoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHhVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK3VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK3loHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedParameter xmi:id="_BafK31oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHhVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK4FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK4VoHEeS2WoXr83SnEA" name="j" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK4loHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedComment xmi:id="_BafK41oHEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="_BafK5FoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHhVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK5VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK5loHEeS2WoXr83SnEA" name="isUnique" type="_BafJQ1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+        <ownedComment xmi:id="_BafK51oHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="_BafK6FoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHiVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK6VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK6loHEeS2WoXr83SnEA" name="iterate" isRequired="false" type="_BafK7VoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+        <ownedTemplateSignature xmi:id="_BafK61oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafK7FoHEeS2WoXr83SnEA" parameteredElement="_BafK7VoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafK7VoHEeS2WoXr83SnEA" name="Tacc" templateParameter="_BafK7FoHEeS2WoXr83SnEA"
+                typedElement="_BafK6loHEeS2WoXr83SnEA _BafK71oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafK7loHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHiFoHEeS2WoXr83SnEA"/>
+        <ownedAccumulator xmi:id="_BafK71oHEeS2WoXr83SnEA" name="acc" isRequired="false" type="_BafK7VoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK8FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK8VoHEeS2WoXr83SnEA" name="one" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+        <ownedComment xmi:id="_BafK8loHEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_BafK81oHEeS2WoXr83SnEA" name="lambda" type="_BafHhVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK9FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK9VoHEeS2WoXr83SnEA" name="reject" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_BafK9loHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_BafK91oHEeS2WoXr83SnEA" name="lambda" type="_BafHhVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK-FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK-VoHEeS2WoXr83SnEA" name="select" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_BafK-loHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_BafK-1oHEeS2WoXr83SnEA" name="lambda" type="_BafHhVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafK_FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK_VoHEeS2WoXr83SnEA" name="sortedBy" type="_BafI21oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_BafK_loHEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_BafK_1oHEeS2WoXr83SnEA" name="lambda" type="_BafHiVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafLAFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLAVoHEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="_BafHtFoHEeS2WoXr83SnEA _BafH_FoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLAloHEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+      <ownedAttribute xmi:id="_BafLA1oHEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="_BafIvVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+          opposite="_BafLCVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLBFoHEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="_BafLBVoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+        <ownedComment xmi:id="_BafLBloHEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLB1oHEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="_BafH-VoHEeS2WoXr83SnEA _BafIj1oHEeS2WoXr83SnEA _BafIv1oHEeS2WoXr83SnEA _BafJGVoHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLCFoHEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+      <ownedAttribute xmi:id="_BafLCVoHEeS2WoXr83SnEA" name="Enumeration" type="_BafHsloHEeS2WoXr83SnEA" implicit="true" opposite="_BafLA1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafLCloHEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="_BafHt1oHEeS2WoXr83SnEA _BafH_1oHEeS2WoXr83SnEA"
+        superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" instanceType="_BafLDVoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_BafLC1oHEeS2WoXr83SnEA" templateBinding="_BafIRloHEeS2WoXr83SnEA _BafISVoHEeS2WoXr83SnEA _BafITFoHEeS2WoXr83SnEA _BafIT1oHEeS2WoXr83SnEA _BafIUloHEeS2WoXr83SnEA _BafIVVoHEeS2WoXr83SnEA _BafIWFoHEeS2WoXr83SnEA _BafIW1oHEeS2WoXr83SnEA _BafIXloHEeS2WoXr83SnEA _BafIYVoHEeS2WoXr83SnEA _BafIZFoHEeS2WoXr83SnEA _BafIZ1oHEeS2WoXr83SnEA _BafIaloHEeS2WoXr83SnEA _BafIbVoHEeS2WoXr83SnEA _BafIcFoHEeS2WoXr83SnEA _BafIc1oHEeS2WoXr83SnEA _BafIdloHEeS2WoXr83SnEA _BafIeVoHEeS2WoXr83SnEA _BafIfFoHEeS2WoXr83SnEA _BafIf1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLDFoHEeS2WoXr83SnEA" parameteredElement="_BafLDVoHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_BafIR1oHEeS2WoXr83SnEA _BafISloHEeS2WoXr83SnEA _BafITVoHEeS2WoXr83SnEA _BafIUFoHEeS2WoXr83SnEA _BafIU1oHEeS2WoXr83SnEA _BafIVloHEeS2WoXr83SnEA _BafIWVoHEeS2WoXr83SnEA _BafIXFoHEeS2WoXr83SnEA _BafIX1oHEeS2WoXr83SnEA _BafIYloHEeS2WoXr83SnEA _BafIZVoHEeS2WoXr83SnEA _BafIaFoHEeS2WoXr83SnEA _BafIa1oHEeS2WoXr83SnEA _BafIbloHEeS2WoXr83SnEA _BafIcVoHEeS2WoXr83SnEA _BafIdFoHEeS2WoXr83SnEA _BafId1oHEeS2WoXr83SnEA _BafIeloHEeS2WoXr83SnEA _BafIfVoHEeS2WoXr83SnEA _BafIgFoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLDVoHEeS2WoXr83SnEA" name="T" templateParameter="_BafLDFoHEeS2WoXr83SnEA"
+              typedElement="_BafLD1oHEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="_BafLDloHEeS2WoXr83SnEA" name="Metaclass" type="_BafHtVoHEeS2WoXr83SnEA" implicit="true" opposite="_BafLD1oHEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="_BafLD1oHEeS2WoXr83SnEA" name="instanceType" type="_BafLDVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+          opposite="_BafLDloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLEFoHEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+      </ownedAttribute>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="_BafLEVoHEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="_BafIAloHEeS2WoXr83SnEA _BafJHFoHEeS2WoXr83SnEA"
+        typedElement="_BafKKVoHEeS2WoXr83SnEA _BafKe1oHEeS2WoXr83SnEA _BafKfloHEeS2WoXr83SnEA _BafKh1oHEeS2WoXr83SnEA _BafKkloHEeS2WoXr83SnEA _BafLh1oHEeS2WoXr83SnEA _BafLvFoHEeS2WoXr83SnEA _BafL0loHEeS2WoXr83SnEA _BafMJVoHEeS2WoXr83SnEA _BafMdloHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLEloHEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.&#xA;Conceptually, OclAny behaves as a supertype for all the types.&#xA;Features of OclAny are available on each object in all OCL expressions.&#xA;OclAny is itself an instance of the metatype AnyType.&#xA;&#xA;All classes in a UML model inherit all operations defined on OclAny.&#xA;To avoid name conflicts between properties in the model and the properties inherited from OclAny,&#xA;all names on the properties of OclAny start with &#x2018;ocl.&#x2019;&#xA;Although theoretically there may still be name conflicts, they can be avoided.&#xA;One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.&#xA;&#xA;Operations of OclAny, where the instance of OclAny is called object."/>
+      <ownedOperation xmi:id="_BafLE1oHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLFFoHEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+        <ownedParameter xmi:id="_BafLFVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLFloHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLF1oHEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+        <ownedParameter xmi:id="_BafLGFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLGVoHEeS2WoXr83SnEA" name="oclAsSet" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+        <ownedComment xmi:id="_BafLGloHEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLG1oHEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="_BafLH1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedComment xmi:id="_BafLHFoHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;In the case of feature redefinition, casting an object to a supertype of its actual type&#xA;does not access the supertype&#x2019;s definition of the feature;&#xA;according to the semantics of redefinition, the redefined feature simply does not exist for the object.&#xA;However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+        <ownedTemplateSignature xmi:id="_BafLHVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLHloHEeS2WoXr83SnEA" parameteredElement="_BafLH1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLH1oHEeS2WoXr83SnEA" name="TT" templateParameter="_BafLHloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIVloHEeS2WoXr83SnEA" typedElement="_BafLG1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafLIFoHEeS2WoXr83SnEA" name="type" type="_BafIVFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLIVoHEeS2WoXr83SnEA" name="oclIsInState" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+        <ownedComment xmi:id="_BafLIloHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+        <ownedParameter xmi:id="_BafLI1oHEeS2WoXr83SnEA" name="statespec" type="_BafLi1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLJFoHEeS2WoXr83SnEA" name="oclIsInvalid" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true">
+        <ownedComment xmi:id="_BafLJVoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLJloHEeS2WoXr83SnEA" name="oclIsKindOf" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedComment xmi:id="_BafLJ1oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.&#xA;That is, oclText[self] is of type t or a subtype of t."/>
+        <ownedTemplateSignature xmi:id="_BafLKFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLKVoHEeS2WoXr83SnEA" parameteredElement="_BafLKloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLKloHEeS2WoXr83SnEA" name="T" templateParameter="_BafLKVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIWVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafLK1oHEeS2WoXr83SnEA" name="type" type="_BafIV1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLLFoHEeS2WoXr83SnEA" name="oclIsNew" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_BafLLVoHEeS2WoXr83SnEA" body="Can only be used in a postcondition.&#xA;Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn&#x2019;t exist at precondition time)."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLLloHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedComment xmi:id="_BafLL1oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+        <ownedTemplateSignature xmi:id="_BafLMFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLMVoHEeS2WoXr83SnEA" parameteredElement="_BafLMloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLMloHEeS2WoXr83SnEA" name="T" templateParameter="_BafLMVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIXFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafLM1oHEeS2WoXr83SnEA" name="type" type="_BafIWloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLNFoHEeS2WoXr83SnEA" name="oclIsUndefined" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true">
+        <ownedComment xmi:id="_BafLNVoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLNloHEeS2WoXr83SnEA" name="oclLog" type="_BafLiVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="_BafLN1oHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLOFoHEeS2WoXr83SnEA" name="oclLog" type="_BafLiVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="_BafLOVoHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+        <ownedParameter xmi:id="_BafLOloHEeS2WoXr83SnEA" name="message" type="_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLO1oHEeS2WoXr83SnEA" name="oclType" type="_BafIaVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+        <ownedComment xmi:id="_BafLPFoHEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLPVoHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_BafLPloHEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLP1oHEeS2WoXr83SnEA" name="OclComparable" superClass="_BafLEVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLQFoHEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived&#xA;compareTo implementation may be sorted."/>
+      <ownedOperation xmi:id="_BafLQVoHEeS2WoXr83SnEA" name="&lt;" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLQloHEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+        <ownedParameter xmi:id="_BafLQ1oHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLRFoHEeS2WoXr83SnEA" name="&lt;=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLRVoHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="_BafLRloHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLR1oHEeS2WoXr83SnEA" name=">" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLSFoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+        <ownedParameter xmi:id="_BafLSVoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLSloHEeS2WoXr83SnEA" name=">=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+          precedence="_BafMxloHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLS1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="_BafLTFoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLTVoHEeS2WoXr83SnEA" name="compareTo" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+        <ownedComment xmi:id="_BafLTloHEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.&#xA;&#xA;The compareTo operation should be commutative."/>
+        <ownedParameter xmi:id="_BafLT1oHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLUFoHEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="_BafIBVoHEeS2WoXr83SnEA _BafI_loHEeS2WoXr83SnEA _BafJH1oHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafLVFoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLUVoHEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined&#xA;for OclElement are therefore applicable to all user-defined types."/>
+      <ownedOperation xmi:id="_BafLUloHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+        <ownedComment xmi:id="_BafLU1oHEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLVFoHEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="_BafLUFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+        <ownedComment xmi:id="_BafLVVoHEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLVloHEeS2WoXr83SnEA" name="oclContents" type="_BafI_FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+        <ownedComment xmi:id="_BafLV1oHEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="_BafLWFoHEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="_BafIaFoHEeS2WoXr83SnEA"
+        superClass="_BafLnloHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLWVoHEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.&#xA;It has one single instance, identified as  oclText[invalid].&#xA;Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().&#xA;OclInvalid is itself an instance of the metatype InvalidType."/>
+      <ownedOperation xmi:id="_BafLWloHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLW1oHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="_BafLXFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLXVoHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLXloHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="_BafLX1oHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLYFoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+        <ownedComment xmi:id="_BafLYVoHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLYloHEeS2WoXr83SnEA" name="and" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="_BafMyFoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafLY1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLZFoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isValidating="true" precedence="_BafMy1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafLZVoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLZloHEeS2WoXr83SnEA" name="oclAsSet" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+      <ownedOperation xmi:id="_BafLZ1oHEeS2WoXr83SnEA" name="oclAsType" type="_BafLaloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedTemplateSignature xmi:id="_BafLaFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLaVoHEeS2WoXr83SnEA" parameteredElement="_BafLaloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLaloHEeS2WoXr83SnEA" name="TT" templateParameter="_BafLaVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIX1oHEeS2WoXr83SnEA" typedElement="_BafLZ1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafLa1oHEeS2WoXr83SnEA" name="type" type="_BafIXVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLbFoHEeS2WoXr83SnEA" name="oclIsInvalid" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_BafLbVoHEeS2WoXr83SnEA" name="oclIsKindOf" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedTemplateSignature xmi:id="_BafLbloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLb1oHEeS2WoXr83SnEA" parameteredElement="_BafLcFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLcFoHEeS2WoXr83SnEA" name="T" templateParameter="_BafLb1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIYloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafLcVoHEeS2WoXr83SnEA" name="type" type="_BafIYFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLcloHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedTemplateSignature xmi:id="_BafLc1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLdFoHEeS2WoXr83SnEA" parameteredElement="_BafLdVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLdVoHEeS2WoXr83SnEA" name="T" templateParameter="_BafLdFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIZVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafLdloHEeS2WoXr83SnEA" name="type" type="_BafIY1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLd1oHEeS2WoXr83SnEA" name="oclIsUndefined" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_BafLeFoHEeS2WoXr83SnEA" name="oclType" type="_BafIaVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+      <ownedOperation xmi:id="_BafLeVoHEeS2WoXr83SnEA" name="or" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="_BafMyVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafLeloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLe1oHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_BafLfFoHEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLfVoHEeS2WoXr83SnEA" name="OclLambda" superClass="_BafLEVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLfloHEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda&#xA;therefore apply to all lambda expressions."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLf1oHEeS2WoXr83SnEA" name="OclMessage" superClass="_BafLEVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLgFoHEeS2WoXr83SnEA" body="OclMessage&#xA;This sub clause contains the definition of the standard type OclMessage.&#xA;As defined in this sub clause, each ocl message type is actually a template type with one parameter.&#xA;&#x2018;T&#x2019; denotes the parameter.&#xA;A concrete ocl message type is created by substituting an operation or signal for the T.&#xA;&#xA;The predefined type OclMessage is an instance of MessageType.&#xA;Every OclMessage is fully determined by either the operation, or signal given as parameter.&#xA;Note that there is conceptually an undefined (infinite) number of these types,&#xA;as each is determined by a different operation or signal.&#xA;These types are unnamed. Every type has as attributes the name of the operation or signal,&#xA;and either all formal parameters of the operation, or all attributes of the signal.&#xA;OclMessage is itself an instance of the metatype MessageType.&#xA;&#xA;OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+      <ownedOperation xmi:id="_BafLgVoHEeS2WoXr83SnEA" name="hasReturned" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_BafLgloHEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.&#xA;This implies the fact that the message has been sent. False in all other cases."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLg1oHEeS2WoXr83SnEA" name="isOperationCall" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_BafLhFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLhVoHEeS2WoXr83SnEA" name="isSignalSent" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_BafLhloHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLh1oHEeS2WoXr83SnEA" name="result" type="_BafLEVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_BafLiFoHEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,&#xA;and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="_BafLiVoHEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="_BafICFoHEeS2WoXr83SnEA _BafIa1oHEeS2WoXr83SnEA _BafJAVoHEeS2WoXr83SnEA _BafJIloHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafJRloHEeS2WoXr83SnEA _BafJSVoHEeS2WoXr83SnEA _BafJZFoHEeS2WoXr83SnEA _BafJZ1oHEeS2WoXr83SnEA _BafJbFoHEeS2WoXr83SnEA _BafJb1oHEeS2WoXr83SnEA _BafJdFoHEeS2WoXr83SnEA _BafJeloHEeS2WoXr83SnEA _BafJfVoHEeS2WoXr83SnEA _BafJhloHEeS2WoXr83SnEA _BafJiVoHEeS2WoXr83SnEA _BafJjloHEeS2WoXr83SnEA _BafJkVoHEeS2WoXr83SnEA _BafJlFoHEeS2WoXr83SnEA _BafJl1oHEeS2WoXr83SnEA _BafJmloHEeS2WoXr83SnEA _BafJnVoHEeS2WoXr83SnEA _BafJoFoHEeS2WoXr83SnEA _BafJo1oHEeS2WoXr83SnEA _BafJqFoHEeS2WoXr83SnEA _BafJrVoHEeS2WoXr83SnEA _BafJsFoHEeS2WoXr83SnEA _BafJu1oHEeS2WoXr83SnEA _BafJvloHEeS2WoXr83SnEA _BafJwFoHEeS2WoXr83SnEA _BafJwloHEeS2WoXr83SnEA _BafJxVoHEeS2WoXr83SnEA _BafJyFoHEeS2WoXr83SnEA _BafJ0FoHEeS2WoXr83SnEA _BafKI1oHEeS2WoXr83SnEA _BafKJloHEeS2WoXr83SnEA _BafKbVoHEeS2WoXr83SnEA _BafKcFoHEeS2WoXr83SnEA _BafLFVoHEeS2WoXr83SnEA _BafLGFoHEeS2WoXr83SnEA _BafLNloHEeS2WoXr83SnEA _BafLOFoHEeS2WoXr83SnEA _BafLQ1oHEeS2WoXr83SnEA _BafLRloHEeS2WoXr83SnEA _BafLSVoHEeS2WoXr83SnEA _BafLTFoHEeS2WoXr83SnEA _BafLT1oHEeS2WoXr83SnEA _BafLXFoHEeS2WoXr83SnEA _BafLX1oHEeS2WoXr83SnEA _BafLjloHEeS2WoXr83SnEA _BafLkFoHEeS2WoXr83SnEA _BafLkVoHEeS2WoXr83SnEA _BafLlloHEeS2WoXr83SnEA _BafLmFoHEeS2WoXr83SnEA _BafLoVoHEeS2WoXr83SnEA _BafLpFoHEeS2WoXr83SnEA _BafLx1oHEeS2WoXr83SnEA _BafLyVoHEeS2WoXr83SnEA _BafMGVoHEeS2WoXr83SnEA _BafMHFoHEeS2WoXr83SnEA _BafMcFoHEeS2WoXr83SnEA _BafMc1oHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLiloHEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation&#xA;and Iteration signatures. Instances of OclSelf are never created."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLi1oHEeS2WoXr83SnEA" name="OclState" superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafLI1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLjFoHEeS2WoXr83SnEA" name="OclSummable" superClass="_BafLEVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLjVoHEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived&#xA;sum and zero implementations may be summed."/>
+      <ownedOperation xmi:id="_BafLjloHEeS2WoXr83SnEA" name="sum" type="_BafLiVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLj1oHEeS2WoXr83SnEA" body="Return the sum of self and that.&#xA;&#xA;The sum operation should be associative."/>
+        <ownedParameter xmi:id="_BafLkFoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLkVoHEeS2WoXr83SnEA" name="zero" type="_BafLiVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLkloHEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.&#xA;&#xA;zero().sum(self) = self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLk1oHEeS2WoXr83SnEA" name="OclTuple" superClass="_BafLEVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLlFoHEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple&#xA;therefore apply to all tuples."/>
+      <ownedOperation xmi:id="_BafLlVoHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafLlloHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLl1oHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafLmFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLmVoHEeS2WoXr83SnEA" name="OclType" superClass="_BafLUFoHEeS2WoXr83SnEA" typedElement="_BafLnVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLmloHEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined&#xA;for OclType are therefore applicable to all UML types."/>
+      <ownedOperation xmi:id="_BafLm1oHEeS2WoXr83SnEA" name="conformsTo" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+        <ownedComment xmi:id="_BafLnFoHEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+        <ownedParameter xmi:id="_BafLnVoHEeS2WoXr83SnEA" name="type2" type="_BafLmVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="_BafLnloHEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="_BafIbloHEeS2WoXr83SnEA"
+        superClass="_BafLEVoHEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_BafLn1oHEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.&#xA;It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.&#xA;Any property call applied on oclText[null] results in oclText[invalid], except for the&#xA;oclIsUndefined(), oclIsInvalid(), =(OclAny) and &lt;>(OclAny) operations.&#xA;However, by virtue of the implicit conversion to a collection literal,&#xA;an expression evaluating to oclText[null] can be used as source of collection operations (such as &#x2018;isEmpty&#x2019;).&#xA;If the source is the oclText[null] literal, it is implicitly converted to Bag{}.&#xA;&#xA;OclVoid is itself an instance of the metatype VoidType."/>
+      <ownedOperation xmi:id="_BafLoFoHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafLoVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLoloHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLo1oHEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]&#xA;if object is oclText[invalid], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_BafLpFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLpVoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+        <ownedComment xmi:id="_BafLploHEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLp1oHEeS2WoXr83SnEA" name="and" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+          precedence="_BafMyFoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafLqFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLqVoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+          precedence="_BafMy1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafLqloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLq1oHEeS2WoXr83SnEA" name="oclIsInvalid" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_BafLrFoHEeS2WoXr83SnEA" name="oclIsUndefined" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_BafLrVoHEeS2WoXr83SnEA" name="or" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+          precedence="_BafMyVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafLrloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLr1oHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_BafLsFoHEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafLsVoHEeS2WoXr83SnEA" name="OrderedCollection" superClass="_BafICVoHEeS2WoXr83SnEA"
+        elementType="_BafLtFoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_BafLsloHEeS2WoXr83SnEA" templateBinding="_BafIgloHEeS2WoXr83SnEA _BafIhVoHEeS2WoXr83SnEA _BafIiFoHEeS2WoXr83SnEA _BafIi1oHEeS2WoXr83SnEA _BafIjloHEeS2WoXr83SnEA _BafIkVoHEeS2WoXr83SnEA _BafIlFoHEeS2WoXr83SnEA _BafIl1oHEeS2WoXr83SnEA _BafImloHEeS2WoXr83SnEA _BafInVoHEeS2WoXr83SnEA _BafIoFoHEeS2WoXr83SnEA _BafIo1oHEeS2WoXr83SnEA _BafIploHEeS2WoXr83SnEA _BafIqVoHEeS2WoXr83SnEA _BafIrFoHEeS2WoXr83SnEA _BafIr1oHEeS2WoXr83SnEA _BafIsloHEeS2WoXr83SnEA _BafItVoHEeS2WoXr83SnEA _BafIuFoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLs1oHEeS2WoXr83SnEA" parameteredElement="_BafLtFoHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_BafIg1oHEeS2WoXr83SnEA _BafIhloHEeS2WoXr83SnEA _BafIiVoHEeS2WoXr83SnEA _BafIjFoHEeS2WoXr83SnEA _BafIj1oHEeS2WoXr83SnEA _BafIkloHEeS2WoXr83SnEA _BafIlVoHEeS2WoXr83SnEA _BafImFoHEeS2WoXr83SnEA _BafIm1oHEeS2WoXr83SnEA _BafInloHEeS2WoXr83SnEA _BafIoVoHEeS2WoXr83SnEA _BafIpFoHEeS2WoXr83SnEA _BafIp1oHEeS2WoXr83SnEA _BafIqloHEeS2WoXr83SnEA _BafIrVoHEeS2WoXr83SnEA _BafIsFoHEeS2WoXr83SnEA _BafIs1oHEeS2WoXr83SnEA _BafItloHEeS2WoXr83SnEA _BafIuVoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLtFoHEeS2WoXr83SnEA" name="T" templateParameter="_BafLs1oHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_BafIC1oHEeS2WoXr83SnEA" typedElement="_BafLtVoHEeS2WoXr83SnEA _BafLuFoHEeS2WoXr83SnEA _BafLvVoHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_BafLtVoHEeS2WoXr83SnEA" name="at" isRequired="false" type="_BafLtFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafLtloHEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+        <ownedParameter xmi:id="_BafLt1oHEeS2WoXr83SnEA" name="index" type="_BafJYVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLuFoHEeS2WoXr83SnEA" name="first" isRequired="false" type="_BafLtFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafLuVoHEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLuloHEeS2WoXr83SnEA" name="indexOf" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+        <ownedComment xmi:id="_BafLu1oHEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+        <ownedParameter xmi:id="_BafLvFoHEeS2WoXr83SnEA" name="obj" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLvVoHEeS2WoXr83SnEA" name="last" isRequired="false" type="_BafLtFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafLvloHEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafLv1oHEeS2WoXr83SnEA" name="OrderedSet" superClass="_BafIn1oHEeS2WoXr83SnEA _BafJLFoHEeS2WoXr83SnEA"
+        typedElement="_BafLw1oHEeS2WoXr83SnEA _BafLyloHEeS2WoXr83SnEA _BafLzVoHEeS2WoXr83SnEA _BafL0FoHEeS2WoXr83SnEA _BafL01oHEeS2WoXr83SnEA _BafL2loHEeS2WoXr83SnEA _BafL3VoHEeS2WoXr83SnEA _BafL4VoHEeS2WoXr83SnEA _BafL5FoHEeS2WoXr83SnEA _BafL51oHEeS2WoXr83SnEA _BafL81oHEeS2WoXr83SnEA _BafL91oHEeS2WoXr83SnEA _BafMCFoHEeS2WoXr83SnEA _BafMDFoHEeS2WoXr83SnEA _BafMEFoHEeS2WoXr83SnEA"
+        elementType="_BafLwloHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_BafLwFoHEeS2WoXr83SnEA" templateBinding="_BafIu1oHEeS2WoXr83SnEA _BafIvloHEeS2WoXr83SnEA _BafIwVoHEeS2WoXr83SnEA _BafIxFoHEeS2WoXr83SnEA _BafIx1oHEeS2WoXr83SnEA _BafIyloHEeS2WoXr83SnEA _BafIzVoHEeS2WoXr83SnEA _BafI0FoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLwVoHEeS2WoXr83SnEA" parameteredElement="_BafLwloHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_BafIvFoHEeS2WoXr83SnEA _BafIv1oHEeS2WoXr83SnEA _BafIwloHEeS2WoXr83SnEA _BafIxVoHEeS2WoXr83SnEA _BafIyFoHEeS2WoXr83SnEA _BafIy1oHEeS2WoXr83SnEA _BafIzloHEeS2WoXr83SnEA _BafI0VoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLwloHEeS2WoXr83SnEA" name="T" templateParameter="_BafLwVoHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_BafIHVoHEeS2WoXr83SnEA _BafIoVoHEeS2WoXr83SnEA _BafJLloHEeS2WoXr83SnEA" typedElement="_BafLzFoHEeS2WoXr83SnEA _BafL3FoHEeS2WoXr83SnEA _BafL4FoHEeS2WoXr83SnEA _BafL41oHEeS2WoXr83SnEA _BafL-loHEeS2WoXr83SnEA _BafMAVoHEeS2WoXr83SnEA _BafMB1oHEeS2WoXr83SnEA _BafMC1oHEeS2WoXr83SnEA _BafMD1oHEeS2WoXr83SnEA _BafME1oHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_BafLw1oHEeS2WoXr83SnEA" name="-" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_BafMxVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafLxFoHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_BafLxVoHEeS2WoXr83SnEA" name="s" type="_BafJGloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLxloHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafLx1oHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLyFoHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafLyVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLyloHEeS2WoXr83SnEA" name="append" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="_BafLy1oHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="_BafLzFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafLzVoHEeS2WoXr83SnEA" name="appendAll" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="_BafLzloHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="_BafLz1oHEeS2WoXr83SnEA" name="objects" type="_BafIn1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafL0FoHEeS2WoXr83SnEA" name="excluding" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_BafL0VoHEeS2WoXr83SnEA" body="The ordered set  containing all elements of oclText[self] apart from object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="_BafL0loHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafL01oHEeS2WoXr83SnEA" name="excludingAll" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_BafL1FoHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_BafL1VoHEeS2WoXr83SnEA" name="objects" type="_BafIAFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafL1loHEeS2WoXr83SnEA" name="flatten" type="_BafIwFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedTemplateSignature xmi:id="_BafL11oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafL2FoHEeS2WoXr83SnEA" parameteredElement="_BafL2VoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafL2VoHEeS2WoXr83SnEA" name="T2" templateParameter="_BafL2FoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIFFoHEeS2WoXr83SnEA _BafImFoHEeS2WoXr83SnEA _BafIwloHEeS2WoXr83SnEA _BafJJVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafL2loHEeS2WoXr83SnEA" name="including" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_BafL21oHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+        <ownedParameter xmi:id="_BafL3FoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafL3VoHEeS2WoXr83SnEA" name="insertAt" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafL3loHEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+        <ownedParameter xmi:id="_BafL31oHEeS2WoXr83SnEA" name="index" type="_BafJYVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_BafL4FoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafL4VoHEeS2WoXr83SnEA" name="prepend" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="_BafL4loHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_BafL41oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafL5FoHEeS2WoXr83SnEA" name="prependAll" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="_BafL5VoHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_BafL5loHEeS2WoXr83SnEA" name="objects" type="_BafIn1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafL51oHEeS2WoXr83SnEA" name="reverse" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="_BafL6FoHEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafL6VoHEeS2WoXr83SnEA" name="selectByKind" type="_BafIw1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_BafL6loHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafL61oHEeS2WoXr83SnEA" parameteredElement="_BafL7FoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafL7FoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafL61oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIF1oHEeS2WoXr83SnEA _BafIcVoHEeS2WoXr83SnEA _BafIm1oHEeS2WoXr83SnEA _BafIxVoHEeS2WoXr83SnEA _BafJKFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafL7VoHEeS2WoXr83SnEA" name="type" type="_BafIb1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafL7loHEeS2WoXr83SnEA" name="selectByType" type="_BafIxloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_BafL71oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafL8FoHEeS2WoXr83SnEA" parameteredElement="_BafL8VoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafL8VoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafL8FoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIGloHEeS2WoXr83SnEA _BafIdFoHEeS2WoXr83SnEA _BafInloHEeS2WoXr83SnEA _BafIyFoHEeS2WoXr83SnEA _BafJK1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafL8loHEeS2WoXr83SnEA" name="type" type="_BafIcloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafL81oHEeS2WoXr83SnEA" name="subOrderedSet" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafL9FoHEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="_BafL9VoHEeS2WoXr83SnEA" name="lower" type="_BafJYVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_BafL9loHEeS2WoXr83SnEA" name="upper" type="_BafJYVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafL91oHEeS2WoXr83SnEA" name="closure" type="_BafLv1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_BafL-FoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_BafL-VoHEeS2WoXr83SnEA" name="lambda" type="_BafHjFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafL-loHEeS2WoXr83SnEA" name="i" type="_BafLwloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafL-1oHEeS2WoXr83SnEA" name="collectNested" type="_BafI3loHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_BafL_FoHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="_BafL_VoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafL_loHEeS2WoXr83SnEA" parameteredElement="_BafL_1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafL_1oHEeS2WoXr83SnEA" name="V" templateParameter="_BafL_loHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIDloHEeS2WoXr83SnEA _BafIkloHEeS2WoXr83SnEA _BafI4FoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafMAFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHjVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMAVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMAloHEeS2WoXr83SnEA" name="collect" type="_BafI4VoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_BafMA1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMBFoHEeS2WoXr83SnEA" parameteredElement="_BafMBVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMBVoHEeS2WoXr83SnEA" name="V" templateParameter="_BafMBFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIEVoHEeS2WoXr83SnEA _BafIlVoHEeS2WoXr83SnEA _BafI41oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafMBloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHjloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMB1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMCFoHEeS2WoXr83SnEA" name="reject" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_BafMCVoHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_BafMCloHEeS2WoXr83SnEA" name="lambda" type="_BafHiloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMC1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMDFoHEeS2WoXr83SnEA" name="select" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_BafMDVoHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+        <ownedParameter xmi:id="_BafMDloHEeS2WoXr83SnEA" name="lambda" type="_BafHiloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMD1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMEFoHEeS2WoXr83SnEA" name="sortedBy" type="_BafLv1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_BafMEVoHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_BafMEloHEeS2WoXr83SnEA" name="lambda" type="_BafHi1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafME1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafMFFoHEeS2WoXr83SnEA" name="Sequence" superClass="_BafIsVoHEeS2WoXr83SnEA"
+        typedElement="_BafMHVoHEeS2WoXr83SnEA _BafMIFoHEeS2WoXr83SnEA _BafMI1oHEeS2WoXr83SnEA _BafMJloHEeS2WoXr83SnEA _BafMLloHEeS2WoXr83SnEA _BafMMVoHEeS2WoXr83SnEA _BafMNVoHEeS2WoXr83SnEA _BafMOFoHEeS2WoXr83SnEA _BafMO1oHEeS2WoXr83SnEA _BafMR1oHEeS2WoXr83SnEA _BafMXFoHEeS2WoXr83SnEA _BafMYFoHEeS2WoXr83SnEA _BafMZFoHEeS2WoXr83SnEA"
+        elementType="_BafMF1oHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_BafMFVoHEeS2WoXr83SnEA" templateBinding="_BafI01oHEeS2WoXr83SnEA _BafI1loHEeS2WoXr83SnEA _BafI2VoHEeS2WoXr83SnEA _BafI3FoHEeS2WoXr83SnEA _BafI31oHEeS2WoXr83SnEA _BafI4loHEeS2WoXr83SnEA _BafI5VoHEeS2WoXr83SnEA _BafI6FoHEeS2WoXr83SnEA _BafI61oHEeS2WoXr83SnEA _BafI7loHEeS2WoXr83SnEA _BafI8VoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMFloHEeS2WoXr83SnEA" parameteredElement="_BafMF1oHEeS2WoXr83SnEA"
+            templateParameterSubstitution="_BafI1FoHEeS2WoXr83SnEA _BafI11oHEeS2WoXr83SnEA _BafI2loHEeS2WoXr83SnEA _BafI3VoHEeS2WoXr83SnEA _BafI4FoHEeS2WoXr83SnEA _BafI41oHEeS2WoXr83SnEA _BafI5loHEeS2WoXr83SnEA _BafI6VoHEeS2WoXr83SnEA _BafI7FoHEeS2WoXr83SnEA _BafI71oHEeS2WoXr83SnEA _BafI8loHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMF1oHEeS2WoXr83SnEA" name="T" templateParameter="_BafMFloHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_BafIL1oHEeS2WoXr83SnEA _BafIs1oHEeS2WoXr83SnEA _BafIy1oHEeS2WoXr83SnEA _BafJMVoHEeS2WoXr83SnEA"
+              typedElement="_BafMH1oHEeS2WoXr83SnEA _BafMMFoHEeS2WoXr83SnEA _BafMNFoHEeS2WoXr83SnEA _BafMN1oHEeS2WoXr83SnEA _BafMTloHEeS2WoXr83SnEA _BafMVVoHEeS2WoXr83SnEA _BafMW1oHEeS2WoXr83SnEA _BafMX1oHEeS2WoXr83SnEA _BafMY1oHEeS2WoXr83SnEA _BafMZ1oHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_BafMGFoHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafMGVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMGloHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafMG1oHEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+        <ownedParameter xmi:id="_BafMHFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMHVoHEeS2WoXr83SnEA" name="append" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="_BafMHloHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="_BafMH1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMIFoHEeS2WoXr83SnEA" name="appendAll" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="_BafMIVoHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="_BafMIloHEeS2WoXr83SnEA" name="objects" type="_BafIsVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMI1oHEeS2WoXr83SnEA" name="excluding" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_BafMJFoHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="_BafMJVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMJloHEeS2WoXr83SnEA" name="excludingAll" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_BafMJ1oHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_BafMKFoHEeS2WoXr83SnEA" name="objects" type="_BafIAFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMKVoHEeS2WoXr83SnEA" name="flatten" type="_BafI6loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_BafMKloHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].&#xA;If the element type is a collection type, the result is the sequence containing all the elements&#xA;of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+        <ownedTemplateSignature xmi:id="_BafMK1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMLFoHEeS2WoXr83SnEA" parameteredElement="_BafMLVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMLVoHEeS2WoXr83SnEA" name="T2" templateParameter="_BafMLFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIJloHEeS2WoXr83SnEA _BafIqloHEeS2WoXr83SnEA _BafI7FoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMLloHEeS2WoXr83SnEA" name="including" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_BafML1oHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+        <ownedParameter xmi:id="_BafMMFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMMVoHEeS2WoXr83SnEA" name="insertAt" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafMMloHEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+        <ownedParameter xmi:id="_BafMM1oHEeS2WoXr83SnEA" name="index" type="_BafJYVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_BafMNFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMNVoHEeS2WoXr83SnEA" name="prepend" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="_BafMNloHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_BafMN1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMOFoHEeS2WoXr83SnEA" name="prependAll" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="_BafMOVoHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_BafMOloHEeS2WoXr83SnEA" name="objects" type="_BafIsVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMO1oHEeS2WoXr83SnEA" name="reverse" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="_BafMPFoHEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMPVoHEeS2WoXr83SnEA" name="selectByKind" type="_BafI7VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_BafMPloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMP1oHEeS2WoXr83SnEA" parameteredElement="_BafMQFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMQFoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafMP1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIKVoHEeS2WoXr83SnEA _BafId1oHEeS2WoXr83SnEA _BafIrVoHEeS2WoXr83SnEA _BafI71oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafMQVoHEeS2WoXr83SnEA" name="type" type="_BafIdVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMQloHEeS2WoXr83SnEA" name="selectByType" type="_BafI8FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_BafMQ1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMRFoHEeS2WoXr83SnEA" parameteredElement="_BafMRVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMRVoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafMRFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafILFoHEeS2WoXr83SnEA _BafIeloHEeS2WoXr83SnEA _BafIsFoHEeS2WoXr83SnEA _BafI8loHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafMRloHEeS2WoXr83SnEA" name="type" type="_BafIeFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMR1oHEeS2WoXr83SnEA" name="subSequence" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_BafMSFoHEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="_BafMSVoHEeS2WoXr83SnEA" name="lower" type="_BafJYVoHEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_BafMSloHEeS2WoXr83SnEA" name="upper" type="_BafJYVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMS1oHEeS2WoXr83SnEA" name="closure" type="_BafIyVoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_BafMTFoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_BafMTVoHEeS2WoXr83SnEA" name="lambda" type="_BafHkVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMTloHEeS2WoXr83SnEA" name="i" type="_BafMF1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMT1oHEeS2WoXr83SnEA" name="collectNested" type="_BafI5FoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_BafMUFoHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="_BafMUVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMUloHEeS2WoXr83SnEA" parameteredElement="_BafMU1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMU1oHEeS2WoXr83SnEA" name="V" templateParameter="_BafMUloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIIFoHEeS2WoXr83SnEA _BafIpFoHEeS2WoXr83SnEA _BafI5loHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafMVFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHkloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMVVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMVloHEeS2WoXr83SnEA" name="collect" type="_BafI51oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_BafMV1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMWFoHEeS2WoXr83SnEA" parameteredElement="_BafMWVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMWVoHEeS2WoXr83SnEA" name="V" templateParameter="_BafMWFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafII1oHEeS2WoXr83SnEA _BafIp1oHEeS2WoXr83SnEA _BafI6VoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafMWloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHk1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMW1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMXFoHEeS2WoXr83SnEA" name="reject" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_BafMXVoHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_BafMXloHEeS2WoXr83SnEA" name="lambda" type="_BafHj1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMX1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMYFoHEeS2WoXr83SnEA" name="select" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_BafMYVoHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_BafMYloHEeS2WoXr83SnEA" name="lambda" type="_BafHj1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMY1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMZFoHEeS2WoXr83SnEA" name="sortedBy" type="_BafMFFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_BafMZVoHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_BafMZloHEeS2WoXr83SnEA" name="lambda" type="_BafHkFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMZ1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafMaFoHEeS2WoXr83SnEA" name="Set" superClass="_BafJO1oHEeS2WoXr83SnEA" typedElement="_BafMbFoHEeS2WoXr83SnEA _BafMdFoHEeS2WoXr83SnEA _BafMd1oHEeS2WoXr83SnEA _BafMf1oHEeS2WoXr83SnEA _BafMgloHEeS2WoXr83SnEA _BafMj1oHEeS2WoXr83SnEA _BafMoFoHEeS2WoXr83SnEA _BafMpFoHEeS2WoXr83SnEA"
+        elementType="_BafMa1oHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_BafMaVoHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMaloHEeS2WoXr83SnEA" parameteredElement="_BafMa1oHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMa1oHEeS2WoXr83SnEA" name="T" templateParameter="_BafMaloHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_BafIQVoHEeS2WoXr83SnEA _BafItloHEeS2WoXr83SnEA _BafIzloHEeS2WoXr83SnEA _BafJPVoHEeS2WoXr83SnEA"
+              typedElement="_BafMgVoHEeS2WoXr83SnEA _BafMkloHEeS2WoXr83SnEA _BafMmVoHEeS2WoXr83SnEA _BafMn1oHEeS2WoXr83SnEA _BafMo1oHEeS2WoXr83SnEA _BafMp1oHEeS2WoXr83SnEA _BafMq1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOQ1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafORloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOSVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOTFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOT1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafI9VoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafI-FoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafI-1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafI_loHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJAVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJBFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJB1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJCloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJDVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHYloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHZVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHaFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHa1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHbloHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="umlMM.xml#_BafOQloHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafORVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafOSFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafOS1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafOTloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafI9FoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafI91oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafI-loHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafI_VoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJAFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJA1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJBloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJCVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJDFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHYVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHZFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHZ1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHaloHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHbVoHEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_BafMbFoHEeS2WoXr83SnEA" name="-" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_BafMxVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafMbVoHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_BafMbloHEeS2WoXr83SnEA" name="s" type="_BafJGloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMb1oHEeS2WoXr83SnEA" name="&lt;>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_BafMcFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMcVoHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_BafMx1oHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafMcloHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+        <ownedParameter xmi:id="_BafMc1oHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMdFoHEeS2WoXr83SnEA" name="excluding" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_BafMdVoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+        <ownedParameter xmi:id="_BafMdloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMd1oHEeS2WoXr83SnEA" name="excludingAll" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_BafMeFoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_BafMeVoHEeS2WoXr83SnEA" name="objects" type="_BafIAFoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMeloHEeS2WoXr83SnEA" name="flatten" type="_BafJAloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_BafMe1oHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].&#xA;If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_BafMfFoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMfVoHEeS2WoXr83SnEA" parameteredElement="_BafMfloHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMfloHEeS2WoXr83SnEA" name="T2" templateParameter="_BafMfVoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIOFoHEeS2WoXr83SnEA _BafJBFoHEeS2WoXr83SnEA _BafJNFoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMf1oHEeS2WoXr83SnEA" name="including" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_BafMgFoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_BafMgVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMgloHEeS2WoXr83SnEA" name="includingAll" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_BafMg1oHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_BafMhFoHEeS2WoXr83SnEA" name="objects" type="_BafIP1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMhVoHEeS2WoXr83SnEA" name="selectByKind" type="_BafJBVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_BafMhloHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMh1oHEeS2WoXr83SnEA" parameteredElement="_BafMiFoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMiFoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafMh1oHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIO1oHEeS2WoXr83SnEA _BafIfVoHEeS2WoXr83SnEA _BafJB1oHEeS2WoXr83SnEA _BafJN1oHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafMiVoHEeS2WoXr83SnEA" name="type" type="_BafIe1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMiloHEeS2WoXr83SnEA" name="selectByType" type="_BafJCFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_BafMi1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMjFoHEeS2WoXr83SnEA" parameteredElement="_BafMjVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMjVoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafMjFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafIPloHEeS2WoXr83SnEA _BafIgFoHEeS2WoXr83SnEA _BafJCloHEeS2WoXr83SnEA _BafJOloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafMjloHEeS2WoXr83SnEA" name="type" type="_BafIfloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMj1oHEeS2WoXr83SnEA" name="closure" type="_BafMaFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_BafMkFoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_BafMkVoHEeS2WoXr83SnEA" name="lambda" type="_BafHlloHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMkloHEeS2WoXr83SnEA" name="i" type="_BafMa1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMk1oHEeS2WoXr83SnEA" name="collectNested" type="_BafHuFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_BafMlFoHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="_BafMlVoHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMlloHEeS2WoXr83SnEA" parameteredElement="_BafMl1oHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMl1oHEeS2WoXr83SnEA" name="V" templateParameter="_BafMlloHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafHuloHEeS2WoXr83SnEA _BafIMloHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafMmFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHl1oHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMmVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMmloHEeS2WoXr83SnEA" name="collect" type="_BafHu1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_BafMm1oHEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMnFoHEeS2WoXr83SnEA" parameteredElement="_BafMnVoHEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMnVoHEeS2WoXr83SnEA" name="V" templateParameter="_BafMnFoHEeS2WoXr83SnEA"
+                templateParameterSubstitution="_BafHvVoHEeS2WoXr83SnEA _BafINVoHEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_BafMnloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHmFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMn1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMoFoHEeS2WoXr83SnEA" name="reject" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_BafMoVoHEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_BafMoloHEeS2WoXr83SnEA" name="lambda" type="_BafHlFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMo1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMpFoHEeS2WoXr83SnEA" name="select" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_BafMpVoHEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+        <ownedParameter xmi:id="_BafMploHEeS2WoXr83SnEA" name="lambda" type="_BafHlFoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMp1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMqFoHEeS2WoXr83SnEA" name="sortedBy" type="_BafIzFoHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_BafMqVoHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_BafMqloHEeS2WoXr83SnEA" name="lambda" type="_BafHlVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMq1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafMrFoHEeS2WoXr83SnEA" name="State" superClass="_BafLi1oHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafMrVoHEeS2WoXr83SnEA" name="Type" superClass="_BafLmVoHEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafMrloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafIQloHEeS2WoXr83SnEA"
+        typedElement="_BafMsloHEeS2WoXr83SnEA _BafMvVoHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_BafMr1oHEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMsFoHEeS2WoXr83SnEA" parameteredElement="_BafMsVoHEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMsVoHEeS2WoXr83SnEA" name="T" templateParameter="_BafMsFoHEeS2WoXr83SnEA"
+              templateParameterSubstitution="_BafIRFoHEeS2WoXr83SnEA _BafIuVoHEeS2WoXr83SnEA _BafI0VoHEeS2WoXr83SnEA _BafJDVoHEeS2WoXr83SnEA _BafJQFoHEeS2WoXr83SnEA"
+              typedElement="_BafMwVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOUloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOVVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOWFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOW1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="umlMM.xml#_BafOXloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJEFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJE1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJFloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJGVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJHFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJH1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJIloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJJVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJKFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJK1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJLloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJMVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJNFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJN1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJOloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJPVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_BafJQFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHcVoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHdFoHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHd1oHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHeloHEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="rdbmsMM.xml#_BafHfVoHEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="umlMM.xml#_BafOUVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafOVFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafOV1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafOWloHEeS2WoXr83SnEA"/>
+        <templateBinding href="umlMM.xml#_BafOXVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJD1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJEloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJFVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJGFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJG1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJHloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJIVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJJFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJJ1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJKloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJLVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJMFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJM1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJNloHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJOVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJPFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="#_BafJP1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHcFoHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHc1oHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHdloHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHeVoHEeS2WoXr83SnEA"/>
+        <templateBinding href="rdbmsMM.xml#_BafHfFoHEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_BafMsloHEeS2WoXr83SnEA" name="-" type="_BafMrloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_BafMxVoHEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_BafMs1oHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_BafMtFoHEeS2WoXr83SnEA" name="s" type="_BafJGloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMtVoHEeS2WoXr83SnEA" name="intersection" type="_BafJC1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_BafMtloHEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+        <ownedParameter xmi:id="_BafMt1oHEeS2WoXr83SnEA" name="c" type="_BafIQloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMuFoHEeS2WoXr83SnEA" name="symmetricDifference" type="_BafJC1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+        <ownedComment xmi:id="_BafMuVoHEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+        <ownedParameter xmi:id="_BafMuloHEeS2WoXr83SnEA" name="s" type="_BafJGloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_BafMu1oHEeS2WoXr83SnEA" name="union" type="_BafJC1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="_BafMvFoHEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+        <ownedParameter xmi:id="_BafMvVoHEeS2WoXr83SnEA" name="s" type="_BafMrloHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMvloHEeS2WoXr83SnEA" name="sortedBy" type="_BafIz1oHEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_BafMv1oHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_BafMwFoHEeS2WoXr83SnEA" name="lambda" type="_BafHmVoHEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_BafMwVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMsVoHEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedPrecedence xmi:id="_BafMwloHEeS2WoXr83SnEA" name="NAVIGATION"/>
+    <ownedPrecedence xmi:id="_BafMw1oHEeS2WoXr83SnEA" name="UNARY" order="1"/>
+    <ownedPrecedence xmi:id="_BafMxFoHEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+    <ownedPrecedence xmi:id="_BafMxVoHEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+    <ownedPrecedence xmi:id="_BafMxloHEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+    <ownedPrecedence xmi:id="_BafMx1oHEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+    <ownedPrecedence xmi:id="_BafMyFoHEeS2WoXr83SnEA" name="AND" order="6"/>
+    <ownedPrecedence xmi:id="_BafMyVoHEeS2WoXr83SnEA" name="OR" order="7"/>
+    <ownedPrecedence xmi:id="_BafMyloHEeS2WoXr83SnEA" name="XOR" order="8"/>
+    <ownedPrecedence xmi:id="_BafMy1oHEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/UmlToRdbms.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/UmlToRdbms.xml
new file mode 100644
index 0000000..f5c2f1e
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/UmlToRdbms.xml
@@ -0,0 +1,984 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_BafMzFoHEeS2WoXr83SnEA" name="UmlToRdbms.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/UmlToRdbms.qvtr">
+  <ownedComment xmi:id="_BafMzVoHEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+  <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="_BafMzloHEeS2WoXr83SnEA" name="UmlToRdbms">
+    <ownedOperation xmi:type="flatemofqvt:Function" xmi:id="_BafMz1oHEeS2WoXr83SnEA" name="PrimitiveTypeToSqlType">
+      <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      <ownedParameter xmi:id="_BafM0FoHEeS2WoXr83SnEA" name="primitiveType">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </ownedParameter>
+      <queryExpression xmi:type="flatemofqvt:IfExp" xmi:id="_BafM0VoHEeS2WoXr83SnEA">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafM0loHEeS2WoXr83SnEA" name="=">
+          <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+          <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM01oHEeS2WoXr83SnEA" referredVariable="_BafM0FoHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+          </source>
+          <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM1FoHEeS2WoXr83SnEA" stringSymbol="INTEGER">
+            <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+          </argument>
+          <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+        </condition>
+        <elseExpression xmi:type="flatemofqvt:IfExp" xmi:id="_BafM1VoHEeS2WoXr83SnEA">
+          <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+          <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafM1loHEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM11oHEeS2WoXr83SnEA" referredVariable="_BafM0FoHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM2FoHEeS2WoXr83SnEA" stringSymbol="BOOLEAN">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </argument>
+            <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+          </condition>
+          <elseExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM2VoHEeS2WoXr83SnEA" stringSymbol="VARCHAR">
+            <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+          </elseExpression>
+          <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM2loHEeS2WoXr83SnEA" stringSymbol="BOOLEAN">
+            <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+          </thenExpression>
+        </elseExpression>
+        <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM21oHEeS2WoXr83SnEA" stringSymbol="NUMBER">
+          <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        </thenExpression>
+      </queryExpression>
+    </ownedOperation>
+    <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+    <modelParameter xmi:id="_BafM3FoHEeS2WoXr83SnEA" name="uml">
+      <usedPackage href="umlMM.xml#_BafOFFoHEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <modelParameter xmi:id="_BafM3VoHEeS2WoXr83SnEA" name="rdbms">
+      <usedPackage href="rdbmsMM.xml#_BafHMVoHEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafM3loHEeS2WoXr83SnEA" name="PackageToSchema" isTopLevel="true" relationCallExp="_BafNF1oHEeS2WoXr83SnEA _BafN6VoHEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafM31oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+          rootVariable="_BafM6loHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafM4FoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM4VoHEeS2WoXr83SnEA" bindsTo="_BafM6loHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+            <part xmi:id="_BafM4loHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_BafOLFoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM41oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafM6VoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafM5FoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+          rootVariable="_BafM61oHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafM5VoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM5loHEeS2WoXr83SnEA" bindsTo="_BafM61oHEeS2WoXr83SnEA">
+            <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+            <part xmi:id="_BafM51oHEeS2WoXr83SnEA">
+              <referredProperty href="rdbmsMM.xml#_BafHRVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM6FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafM6VoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_BafM6VoHEeS2WoXr83SnEA" name="pn" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafM6loHEeS2WoXr83SnEA" name="p" templateExp="_BafM4VoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafM61oHEeS2WoXr83SnEA" name="s" templateExp="_BafM5loHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+      </variable>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafM7FoHEeS2WoXr83SnEA" name="ClassToTable" isTopLevel="true" relationCallExp="_BafN7VoHEeS2WoXr83SnEA _BafN8VoHEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafM7VoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+          rootVariable="_BafND1oHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafM7loHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM71oHEeS2WoXr83SnEA" bindsTo="_BafND1oHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            <part xmi:id="_BafM8FoHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_BafOJ1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM8VoHEeS2WoXr83SnEA" bindsTo="_BafNEFoHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+                <referredClass href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafM8loHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_BafOIloHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM81oHEeS2WoXr83SnEA" stringSymbol="Persistent">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafM9FoHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_BafOJloHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM9VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDVoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafM9loHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+          rootVariable="_BafNEVoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafM91oHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM-FoHEeS2WoXr83SnEA" bindsTo="_BafNEVoHEeS2WoXr83SnEA">
+            <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            <part xmi:id="_BafM-VoHEeS2WoXr83SnEA">
+              <referredProperty href="rdbmsMM.xml#_BafHTVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM-loHEeS2WoXr83SnEA" bindsTo="_BafNEloHEeS2WoXr83SnEA">
+                <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+                <referredClass href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafM-1oHEeS2WoXr83SnEA">
+              <referredProperty href="rdbmsMM.xml#_BafHTFoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM_FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDVoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafM_VoHEeS2WoXr83SnEA">
+              <referredProperty href="rdbmsMM.xml#_BafHSVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM_loHEeS2WoXr83SnEA" bindsTo="_BafNE1oHEeS2WoXr83SnEA">
+                <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+                <part xmi:id="_BafM_1oHEeS2WoXr83SnEA">
+                  <referredProperty href="rdbmsMM.xml#_BafHM1oHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNAFoHEeS2WoXr83SnEA" name="+">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                    <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNAVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDVoHEeS2WoXr83SnEA">
+                      <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                    </source>
+                    <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNAloHEeS2WoXr83SnEA" stringSymbol="_tid">
+                      <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                    </argument>
+                    <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="_BafNA1oHEeS2WoXr83SnEA">
+                  <referredProperty href="rdbmsMM.xml#_BafHNFoHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNBFoHEeS2WoXr83SnEA" stringSymbol="NUMBER">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafNBVoHEeS2WoXr83SnEA">
+              <referredProperty href="rdbmsMM.xml#_BafHS1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNBloHEeS2WoXr83SnEA" bindsTo="_BafNFFoHEeS2WoXr83SnEA">
+                <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+                <part xmi:id="_BafNB1oHEeS2WoXr83SnEA">
+                  <referredProperty href="rdbmsMM.xml#_BafHQFoHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNCFoHEeS2WoXr83SnEA" name="+">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                    <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNCVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDVoHEeS2WoXr83SnEA">
+                      <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                    </source>
+                    <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNCloHEeS2WoXr83SnEA" stringSymbol="_pk">
+                      <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                    </argument>
+                    <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="_BafNC1oHEeS2WoXr83SnEA">
+                  <referredProperty href="rdbmsMM.xml#_BafHP1oHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNDFoHEeS2WoXr83SnEA" referredVariable="_BafNE1oHEeS2WoXr83SnEA">
+                    <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_BafNDVoHEeS2WoXr83SnEA" name="cn" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNDloHEeS2WoXr83SnEA" name="prefix" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafND1oHEeS2WoXr83SnEA" name="c" templateExp="_BafM71oHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNEFoHEeS2WoXr83SnEA" name="p" templateExp="_BafM8VoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNEVoHEeS2WoXr83SnEA" name="t" templateExp="_BafM-FoHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNEloHEeS2WoXr83SnEA" name="s" templateExp="_BafM-loHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNE1oHEeS2WoXr83SnEA" name="cl" templateExp="_BafM_loHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNFFoHEeS2WoXr83SnEA" name="k" templateExp="_BafNBloHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+      </variable>
+      <when xmi:id="_BafNFVoHEeS2WoXr83SnEA">
+        <predicate xmi:id="_BafNFloHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNF1oHEeS2WoXr83SnEA" referredRelation="_BafM3loHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNGFoHEeS2WoXr83SnEA" referredVariable="_BafNEFoHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNGVoHEeS2WoXr83SnEA" referredVariable="_BafNEloHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </when>
+      <where xmi:id="_BafNGloHEeS2WoXr83SnEA">
+        <predicate xmi:id="_BafNG1oHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNHFoHEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNHVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDloHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNHloHEeS2WoXr83SnEA" stringSymbol="">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </argument>
+            <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_BafNH1oHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNIFoHEeS2WoXr83SnEA" referredRelation="_BafNJFoHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNIVoHEeS2WoXr83SnEA" referredVariable="_BafND1oHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNIloHEeS2WoXr83SnEA" referredVariable="_BafNEVoHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNI1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDloHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafNJFoHEeS2WoXr83SnEA" name="AttributeToColumn" relationCallExp="_BafNIFoHEeS2WoXr83SnEA _BafNl1oHEeS2WoXr83SnEA _BafNrVoHEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNJVoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+          rootVariable="_BafNLloHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNJloHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNJ1oHEeS2WoXr83SnEA" bindsTo="_BafNLloHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNKFoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+          rootVariable="_BafNL1oHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNKVoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNKloHEeS2WoXr83SnEA" bindsTo="_BafNL1oHEeS2WoXr83SnEA">
+            <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            <referredClass href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNK1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" rootVariable="_BafNMFoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNLFoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNLVoHEeS2WoXr83SnEA" bindsTo="_BafNMFoHEeS2WoXr83SnEA">
+            <referredClass href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_BafNLloHEeS2WoXr83SnEA" name="c" templateExp="_BafNJ1oHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNL1oHEeS2WoXr83SnEA" name="t" templateExp="_BafNKloHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNMFoHEeS2WoXr83SnEA" name="prefix" templateExp="_BafNLVoHEeS2WoXr83SnEA">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <where xmi:id="_BafNMVoHEeS2WoXr83SnEA">
+        <predicate xmi:id="_BafNMloHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNM1oHEeS2WoXr83SnEA" referredRelation="_BafNQVoHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNNFoHEeS2WoXr83SnEA" referredVariable="_BafNLloHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNNVoHEeS2WoXr83SnEA" referredVariable="_BafNL1oHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNNloHEeS2WoXr83SnEA" referredVariable="_BafNMFoHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_BafNN1oHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNOFoHEeS2WoXr83SnEA" referredRelation="_BafNdloHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNOVoHEeS2WoXr83SnEA" referredVariable="_BafNLloHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNOloHEeS2WoXr83SnEA" referredVariable="_BafNL1oHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNO1oHEeS2WoXr83SnEA" referredVariable="_BafNMFoHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_BafNPFoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNPVoHEeS2WoXr83SnEA" referredRelation="_BafNm1oHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNPloHEeS2WoXr83SnEA" referredVariable="_BafNLloHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNP1oHEeS2WoXr83SnEA" referredVariable="_BafNL1oHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNQFoHEeS2WoXr83SnEA" referredVariable="_BafNMFoHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafNQVoHEeS2WoXr83SnEA" name="PrimitiveAttributeToColumn" relationCallExp="_BafNM1oHEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNQloHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+          rootVariable="_BafNXVoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNQ1oHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNRFoHEeS2WoXr83SnEA" bindsTo="_BafNXVoHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            <part xmi:id="_BafNRVoHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_BafOH1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNRloHEeS2WoXr83SnEA" bindsTo="_BafNXloHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+                <part xmi:id="_BafNR1oHEeS2WoXr83SnEA">
+                  <referredProperty href="umlMM.xml#_BafOG1oHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNSFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNWVoHEeS2WoXr83SnEA">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="_BafNSVoHEeS2WoXr83SnEA">
+                  <referredProperty href="umlMM.xml#_BafOHVoHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNSloHEeS2WoXr83SnEA" bindsTo="_BafNX1oHEeS2WoXr83SnEA">
+                    <type href="umlMM.xml#_BafOLloHEeS2WoXr83SnEA"/>
+                    <part xmi:id="_BafNS1oHEeS2WoXr83SnEA">
+                      <referredProperty href="umlMM.xml#_BafOJloHEeS2WoXr83SnEA"/>
+                      <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNTFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNWloHEeS2WoXr83SnEA">
+                        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                      </value>
+                    </part>
+                    <referredClass href="umlMM.xml#_BafOLloHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNTVoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+          rootVariable="_BafNYFoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNTloHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNT1oHEeS2WoXr83SnEA" bindsTo="_BafNYFoHEeS2WoXr83SnEA">
+            <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            <part xmi:id="_BafNUFoHEeS2WoXr83SnEA">
+              <referredProperty href="rdbmsMM.xml#_BafHSVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNUVoHEeS2WoXr83SnEA" bindsTo="_BafNYVoHEeS2WoXr83SnEA">
+                <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+                <part xmi:id="_BafNUloHEeS2WoXr83SnEA">
+                  <referredProperty href="rdbmsMM.xml#_BafHM1oHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNU1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNW1oHEeS2WoXr83SnEA">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="_BafNVFoHEeS2WoXr83SnEA">
+                  <referredProperty href="rdbmsMM.xml#_BafHNFoHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNVVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNXFoHEeS2WoXr83SnEA">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNVloHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" rootVariable="_BafNYloHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNV1oHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNWFoHEeS2WoXr83SnEA" bindsTo="_BafNYloHEeS2WoXr83SnEA">
+            <referredClass href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_BafNWVoHEeS2WoXr83SnEA" name="an" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNWloHEeS2WoXr83SnEA" name="pn" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNW1oHEeS2WoXr83SnEA" name="cn" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNXFoHEeS2WoXr83SnEA" name="sqltype" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNXVoHEeS2WoXr83SnEA" name="c" templateExp="_BafNRFoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNXloHEeS2WoXr83SnEA" name="a" templateExp="_BafNRloHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNX1oHEeS2WoXr83SnEA" name="p" templateExp="_BafNSloHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOLloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNYFoHEeS2WoXr83SnEA" name="t" templateExp="_BafNT1oHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNYVoHEeS2WoXr83SnEA" name="cl" templateExp="_BafNUVoHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNYloHEeS2WoXr83SnEA" name="prefix" templateExp="_BafNWFoHEeS2WoXr83SnEA">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <where xmi:id="_BafNY1oHEeS2WoXr83SnEA">
+        <predicate xmi:id="_BafNZFoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNZVoHEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNZloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNW1oHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:IfExp" xmi:id="_BafNZ1oHEeS2WoXr83SnEA" isRequired="false">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNaFoHEeS2WoXr83SnEA" name="=">
+                <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+                <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNaVoHEeS2WoXr83SnEA" referredVariable="_BafNYloHEeS2WoXr83SnEA">
+                  <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                </source>
+                <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNaloHEeS2WoXr83SnEA" stringSymbol="">
+                  <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                </argument>
+                <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+              </condition>
+              <elseExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNa1oHEeS2WoXr83SnEA" name="+">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNbFoHEeS2WoXr83SnEA" name="+">
+                  <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNbVoHEeS2WoXr83SnEA" referredVariable="_BafNYloHEeS2WoXr83SnEA">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </source>
+                  <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNbloHEeS2WoXr83SnEA" stringSymbol="_">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </argument>
+                  <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+                </source>
+                <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNb1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNWVoHEeS2WoXr83SnEA">
+                  <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                </argument>
+                <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+              </elseExpression>
+              <thenExpression xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNcFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNWVoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </thenExpression>
+            </argument>
+            <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_BafNcVoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNcloHEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNc1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNXFoHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNdFoHEeS2WoXr83SnEA" referredOperation="_BafMz1oHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNdVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNWloHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </argument>
+            </argument>
+            <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafNdloHEeS2WoXr83SnEA" name="ComplexAttributeToColumn" relationCallExp="_BafNOFoHEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNd1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+          rootVariable="_BafNiFoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNeFoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNeVoHEeS2WoXr83SnEA" bindsTo="_BafNiFoHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            <part xmi:id="_BafNeloHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_BafOH1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNe1oHEeS2WoXr83SnEA" bindsTo="_BafNiVoHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+                <part xmi:id="_BafNfFoHEeS2WoXr83SnEA">
+                  <referredProperty href="umlMM.xml#_BafOG1oHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNfVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNhloHEeS2WoXr83SnEA">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="_BafNfloHEeS2WoXr83SnEA">
+                  <referredProperty href="umlMM.xml#_BafOHVoHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNf1oHEeS2WoXr83SnEA" bindsTo="_BafNiloHEeS2WoXr83SnEA">
+                    <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+                    <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNgFoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+          rootVariable="_BafNi1oHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNgVoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNgloHEeS2WoXr83SnEA" bindsTo="_BafNi1oHEeS2WoXr83SnEA">
+            <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            <referredClass href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNg1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" rootVariable="_BafNjFoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNhFoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNhVoHEeS2WoXr83SnEA" bindsTo="_BafNjFoHEeS2WoXr83SnEA">
+            <referredClass href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_BafNhloHEeS2WoXr83SnEA" name="an" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNh1oHEeS2WoXr83SnEA" name="newPrefix" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNiFoHEeS2WoXr83SnEA" name="c" templateExp="_BafNeVoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNiVoHEeS2WoXr83SnEA" name="a" templateExp="_BafNe1oHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNiloHEeS2WoXr83SnEA" name="tc" templateExp="_BafNf1oHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNi1oHEeS2WoXr83SnEA" name="t" templateExp="_BafNgloHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNjFoHEeS2WoXr83SnEA" name="prefix" templateExp="_BafNhVoHEeS2WoXr83SnEA">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <where xmi:id="_BafNjVoHEeS2WoXr83SnEA">
+        <predicate xmi:id="_BafNjloHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNj1oHEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNkFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNh1oHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNkVoHEeS2WoXr83SnEA" name="+">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNkloHEeS2WoXr83SnEA" name="+">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNk1oHEeS2WoXr83SnEA" referredVariable="_BafNjFoHEeS2WoXr83SnEA">
+                  <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                </source>
+                <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNlFoHEeS2WoXr83SnEA" stringSymbol="_">
+                  <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                </argument>
+                <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+              </source>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNlVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNhloHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </argument>
+              <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+            </argument>
+            <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_BafNlloHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNl1oHEeS2WoXr83SnEA" referredRelation="_BafNJFoHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNmFoHEeS2WoXr83SnEA" referredVariable="_BafNiloHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNmVoHEeS2WoXr83SnEA" referredVariable="_BafNi1oHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNmloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNh1oHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafNm1oHEeS2WoXr83SnEA" name="SuperAttributeToColumn" relationCallExp="_BafNPVoHEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNnFoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+          rootVariable="_BafNp1oHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNnVoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNnloHEeS2WoXr83SnEA" bindsTo="_BafNp1oHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            <part xmi:id="_BafNn1oHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_BafOIVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNoFoHEeS2WoXr83SnEA" bindsTo="_BafNqFoHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+                <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNoVoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+          rootVariable="_BafNqVoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNoloHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNo1oHEeS2WoXr83SnEA" bindsTo="_BafNqVoHEeS2WoXr83SnEA">
+            <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            <referredClass href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNpFoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" rootVariable="_BafNqloHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNpVoHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNploHEeS2WoXr83SnEA" bindsTo="_BafNqloHEeS2WoXr83SnEA">
+            <referredClass href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_BafNp1oHEeS2WoXr83SnEA" name="c" templateExp="_BafNnloHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNqFoHEeS2WoXr83SnEA" name="sc" templateExp="_BafNoFoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNqVoHEeS2WoXr83SnEA" name="t" templateExp="_BafNo1oHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafNqloHEeS2WoXr83SnEA" name="prefix" templateExp="_BafNploHEeS2WoXr83SnEA">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <where xmi:id="_BafNq1oHEeS2WoXr83SnEA">
+        <predicate xmi:id="_BafNrFoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNrVoHEeS2WoXr83SnEA" referredRelation="_BafNJFoHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNrloHEeS2WoXr83SnEA" referredVariable="_BafNqFoHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNr1oHEeS2WoXr83SnEA" referredVariable="_BafNqVoHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNsFoHEeS2WoXr83SnEA" referredVariable="_BafNqloHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafNsVoHEeS2WoXr83SnEA" name="AssocToFKey" isTopLevel="true">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNsloHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+          rootVariable="_BafN4FoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNs1oHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNtFoHEeS2WoXr83SnEA" bindsTo="_BafN4FoHEeS2WoXr83SnEA">
+            <type href="umlMM.xml#_BafOFVoHEeS2WoXr83SnEA"/>
+            <part xmi:id="_BafNtVoHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_BafOF1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNtloHEeS2WoXr83SnEA" bindsTo="_BafN4VoHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+                <referredClass href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafNt1oHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_BafOFloHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNuFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN21oHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafNuVoHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_BafOGFoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNuloHEeS2WoXr83SnEA" bindsTo="_BafN4loHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+                <part xmi:id="_BafNu1oHEeS2WoXr83SnEA">
+                  <referredProperty href="umlMM.xml#_BafOIloHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNvFoHEeS2WoXr83SnEA" stringSymbol="Persistent">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="_BafNvVoHEeS2WoXr83SnEA">
+                  <referredProperty href="umlMM.xml#_BafOJloHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNvloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3FoHEeS2WoXr83SnEA">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafNv1oHEeS2WoXr83SnEA">
+              <referredProperty href="umlMM.xml#_BafOGVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNwFoHEeS2WoXr83SnEA" bindsTo="_BafN41oHEeS2WoXr83SnEA">
+                <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+                <part xmi:id="_BafNwVoHEeS2WoXr83SnEA">
+                  <referredProperty href="umlMM.xml#_BafOIloHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNwloHEeS2WoXr83SnEA" stringSymbol="Persistent">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="_BafNw1oHEeS2WoXr83SnEA">
+                  <referredProperty href="umlMM.xml#_BafOJloHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNxFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3VoHEeS2WoXr83SnEA">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="umlMM.xml#_BafOFVoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNxVoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+          rootVariable="_BafN5FoHEeS2WoXr83SnEA">
+        <pattern xmi:id="_BafNxloHEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNx1oHEeS2WoXr83SnEA" bindsTo="_BafN5FoHEeS2WoXr83SnEA">
+            <type href="rdbmsMM.xml#_BafHOFoHEeS2WoXr83SnEA"/>
+            <part xmi:id="_BafNyFoHEeS2WoXr83SnEA">
+              <referredProperty href="rdbmsMM.xml#_BafHPVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNyVoHEeS2WoXr83SnEA" bindsTo="_BafN5VoHEeS2WoXr83SnEA">
+                <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+                <referredClass href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafNyloHEeS2WoXr83SnEA">
+              <referredProperty href="rdbmsMM.xml#_BafHOloHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNy1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3loHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafNzFoHEeS2WoXr83SnEA">
+              <referredProperty href="rdbmsMM.xml#_BafHO1oHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNzVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2FoHEeS2WoXr83SnEA">
+                <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafNzloHEeS2WoXr83SnEA">
+              <referredProperty href="rdbmsMM.xml#_BafHOVoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNz1oHEeS2WoXr83SnEA" bindsTo="_BafN5loHEeS2WoXr83SnEA">
+                <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+                <part xmi:id="_BafN0FoHEeS2WoXr83SnEA">
+                  <referredProperty href="rdbmsMM.xml#_BafHM1oHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN0VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN31oHEeS2WoXr83SnEA">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="_BafN0loHEeS2WoXr83SnEA">
+                  <referredProperty href="rdbmsMM.xml#_BafHNFoHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafN01oHEeS2WoXr83SnEA" stringSymbol="NUMBER">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <part xmi:id="_BafN1FoHEeS2WoXr83SnEA">
+                  <referredProperty href="rdbmsMM.xml#_BafHNVoHEeS2WoXr83SnEA"/>
+                  <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN1VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2FoHEeS2WoXr83SnEA">
+                    <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+                  </value>
+                </part>
+                <referredClass href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_BafN1loHEeS2WoXr83SnEA">
+              <referredProperty href="rdbmsMM.xml#_BafHPFoHEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN11oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2loHEeS2WoXr83SnEA">
+                <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="rdbmsMM.xml#_BafHOFoHEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_BafN2FoHEeS2WoXr83SnEA" name="srcTbl" isRequired="false">
+        <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN2VoHEeS2WoXr83SnEA" name="destTbl" isRequired="false">
+        <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN2loHEeS2WoXr83SnEA" name="pKey" isRequired="false">
+        <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN21oHEeS2WoXr83SnEA" name="an" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN3FoHEeS2WoXr83SnEA" name="scn" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN3VoHEeS2WoXr83SnEA" name="dcn" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN3loHEeS2WoXr83SnEA" name="fkn" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN31oHEeS2WoXr83SnEA" name="fcn" isRequired="false">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN4FoHEeS2WoXr83SnEA" name="a" templateExp="_BafNtFoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOFVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN4VoHEeS2WoXr83SnEA" name="p" templateExp="_BafNtloHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN4loHEeS2WoXr83SnEA" name="sc" templateExp="_BafNuloHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN41oHEeS2WoXr83SnEA" name="dc" templateExp="_BafNwFoHEeS2WoXr83SnEA">
+        <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN5FoHEeS2WoXr83SnEA" name="fk" templateExp="_BafNx1oHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHOFoHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN5VoHEeS2WoXr83SnEA" name="s" templateExp="_BafNyVoHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_BafN5loHEeS2WoXr83SnEA" name="fc" templateExp="_BafNz1oHEeS2WoXr83SnEA">
+        <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+      </variable>
+      <when xmi:id="_BafN51oHEeS2WoXr83SnEA">
+        <predicate xmi:id="_BafN6FoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafN6VoHEeS2WoXr83SnEA" referredRelation="_BafM3loHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN6loHEeS2WoXr83SnEA" referredVariable="_BafN4VoHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN61oHEeS2WoXr83SnEA" referredVariable="_BafN5VoHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_BafN7FoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafN7VoHEeS2WoXr83SnEA" referredRelation="_BafM7FoHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN7loHEeS2WoXr83SnEA" referredVariable="_BafN4loHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN71oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2FoHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_BafN8FoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafN8VoHEeS2WoXr83SnEA" referredRelation="_BafM7FoHEeS2WoXr83SnEA">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN8loHEeS2WoXr83SnEA" referredVariable="_BafN41oHEeS2WoXr83SnEA">
+              <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN81oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2VoHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_BafN9FoHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafN9VoHEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN9loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2loHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_BafN91oHEeS2WoXr83SnEA">
+              <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+              <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN-FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2VoHEeS2WoXr83SnEA">
+                <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+              </source>
+              <referredProperty href="rdbmsMM.xml#_BafHS1oHEeS2WoXr83SnEA"/>
+            </argument>
+            <referredOperation href="OCL.xml#_BafLFloHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+      </when>
+      <where xmi:id="_BafN-VoHEeS2WoXr83SnEA">
+        <predicate xmi:id="_BafN-loHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafN-1oHEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN_FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3loHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafN_VoHEeS2WoXr83SnEA" name="+">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafN_loHEeS2WoXr83SnEA" name="+">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafN_1oHEeS2WoXr83SnEA" name="+">
+                  <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafOAFoHEeS2WoXr83SnEA" name="+">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                    <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafOAVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3FoHEeS2WoXr83SnEA">
+                      <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                    </source>
+                    <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafOAloHEeS2WoXr83SnEA" stringSymbol="_">
+                      <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                    </argument>
+                    <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+                  </source>
+                  <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafOA1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN21oHEeS2WoXr83SnEA">
+                    <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                  </argument>
+                  <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+                </source>
+                <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafOBFoHEeS2WoXr83SnEA" stringSymbol="_">
+                  <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+                </argument>
+                <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+              </source>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafOBVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3VoHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </argument>
+              <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+            </argument>
+            <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+        <predicate xmi:id="_BafOBloHEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafOB1oHEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafOCFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN31oHEeS2WoXr83SnEA">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafOCVoHEeS2WoXr83SnEA" name="+">
+              <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafOCloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3loHEeS2WoXr83SnEA">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </source>
+              <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafOC1oHEeS2WoXr83SnEA" stringSymbol="_tid">
+                <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+              </argument>
+              <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+            </argument>
+            <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+    <ownedKey xmi:id="_BafODFoHEeS2WoXr83SnEA">
+      <identifies href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+      <part href="rdbmsMM.xml#_BafHTFoHEeS2WoXr83SnEA"/>
+      <part href="rdbmsMM.xml#_BafHTVoHEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="_BafODVoHEeS2WoXr83SnEA">
+      <identifies href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+      <part href="rdbmsMM.xml#_BafHM1oHEeS2WoXr83SnEA"/>
+      <part href="rdbmsMM.xml#_BafHNVoHEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="_BafODloHEeS2WoXr83SnEA">
+      <identifies href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+      <part href="rdbmsMM.xml#_BafHQFoHEeS2WoXr83SnEA"/>
+      <part href="rdbmsMM.xml#_BafHQVoHEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="_BafOD1oHEeS2WoXr83SnEA">
+      <identifies href="rdbmsMM.xml#_BafHOFoHEeS2WoXr83SnEA"/>
+      <part href="rdbmsMM.xml#_BafHOloHEeS2WoXr83SnEA"/>
+      <part href="rdbmsMM.xml#_BafHO1oHEeS2WoXr83SnEA"/>
+    </ownedKey>
+  </nestedPackage>
+  <unit xmi:id="_BafOEFoHEeS2WoXr83SnEA" name="umlMM">
+    <ownedComment xmi:id="_BafOEVoHEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+    <usedPackage xmi:type="flatemofqvt:Package" href="umlMM.xml#_BafOFFoHEeS2WoXr83SnEA"/>
+  </unit>
+  <unit xmi:id="_BafOEloHEeS2WoXr83SnEA" name="rdbmsMM">
+    <usedPackage xmi:type="flatemofqvt:Package" href="rdbmsMM.xml#_BafHMVoHEeS2WoXr83SnEA"/>
+  </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/rdbmsMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/rdbmsMM.xml
new file mode 100644
index 0000000..27bb864
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/rdbmsMM.xml
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_BafHMFoHEeS2WoXr83SnEA" name="rdbmsMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/rdbmsMM.emof">
+  <nestedPackage xmi:id="_BafHMVoHEeS2WoXr83SnEA" name="rdbmsMM" nsURI="rdbmsMM">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHMloHEeS2WoXr83SnEA" name="Column" templateParameterSubstitution="_BafHU1oHEeS2WoXr83SnEA _BafHYloHEeS2WoXr83SnEA _BafHcVoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafHM1oHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <key href="UmlToRdbms.xml#_BafODVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafM_1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNUloHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafN0FoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHNFoHEeS2WoXr83SnEA" name="type">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNA1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNVFoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafN0loHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHNVoHEeS2WoXr83SnEA" name="owner" type="_BafHSFoHEeS2WoXr83SnEA" opposite="_BafHSVoHEeS2WoXr83SnEA">
+        <key href="UmlToRdbms.xml#_BafODVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafN1FoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHNloHEeS2WoXr83SnEA" name="hasKey" type="_BafHZloHEeS2WoXr83SnEA" opposite="_BafHP1oHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_BafHN1oHEeS2WoXr83SnEA" name="hasForeignKey" type="_BafHY1oHEeS2WoXr83SnEA" opposite="_BafHOVoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM_loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNDFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNE1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNUVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNYVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNz1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN5loHEeS2WoXr83SnEA"/>
+      <key href="UmlToRdbms.xml#_BafODVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHOFoHEeS2WoXr83SnEA" name="ForeignKey" templateParameterSubstitution="_BafHVloHEeS2WoXr83SnEA _BafHZVoHEeS2WoXr83SnEA _BafHdFoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafHOVoHEeS2WoXr83SnEA" name="column" type="_BafHYFoHEeS2WoXr83SnEA" opposite="_BafHN1oHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafNzloHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHOloHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <key href="UmlToRdbms.xml#_BafOD1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNyloHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHO1oHEeS2WoXr83SnEA" name="owner" type="_BafHSFoHEeS2WoXr83SnEA" opposite="_BafHSloHEeS2WoXr83SnEA">
+        <key href="UmlToRdbms.xml#_BafOD1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNzFoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHPFoHEeS2WoXr83SnEA" name="refersTo" type="_BafHPloHEeS2WoXr83SnEA" opposite="_BafHQloHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafN1loHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHPVoHEeS2WoXr83SnEA" name="schema" type="_BafHQ1oHEeS2WoXr83SnEA" opposite="_BafHRFoHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafNyFoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNx1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN5FoHEeS2WoXr83SnEA"/>
+      <key href="UmlToRdbms.xml#_BafOD1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHPloHEeS2WoXr83SnEA" name="Key" templateParameterSubstitution="_BafHWVoHEeS2WoXr83SnEA _BafHaFoHEeS2WoXr83SnEA _BafHd1oHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafHP1oHEeS2WoXr83SnEA" name="column" type="_BafHYFoHEeS2WoXr83SnEA" opposite="_BafHNloHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafNC1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHQFoHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <key href="UmlToRdbms.xml#_BafODloHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNB1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHQVoHEeS2WoXr83SnEA" name="owner" type="_BafHSFoHEeS2WoXr83SnEA" opposite="_BafHS1oHEeS2WoXr83SnEA">
+        <key href="UmlToRdbms.xml#_BafODloHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHQloHEeS2WoXr83SnEA" name="referedBy" type="_BafHY1oHEeS2WoXr83SnEA" opposite="_BafHPFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafHPFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafHS1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNBloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNFFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN11oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN2loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN9loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:PropertyCallExp" href="UmlToRdbms.xml#_BafN91oHEeS2WoXr83SnEA"/>
+      <key href="UmlToRdbms.xml#_BafODloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHQ1oHEeS2WoXr83SnEA" name="Schema" templateParameterSubstitution="_BafHXFoHEeS2WoXr83SnEA _BafHa1oHEeS2WoXr83SnEA _BafHeloHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafHRFoHEeS2WoXr83SnEA" name="foreignKey" type="_BafHY1oHEeS2WoXr83SnEA" isComposite="true" opposite="_BafHPVoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_BafHRVoHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafM51oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHRloHEeS2WoXr83SnEA" name="table" type="_BafHbFoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafHTVoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_BafHR1oHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_BafHTloHEeS2WoXr83SnEA" implicit="true"
+          opposite="_BafHT1oHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafHPVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafHTVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM5loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafM61oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM-loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNEloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNGVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNyVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN5VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN61oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHSFoHEeS2WoXr83SnEA" name="Table" templateParameterSubstitution="_BafHX1oHEeS2WoXr83SnEA _BafHbloHEeS2WoXr83SnEA _BafHfVoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafHSVoHEeS2WoXr83SnEA" name="column" type="_BafHYFoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafHNVoHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafM_VoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNUFoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHSloHEeS2WoXr83SnEA" name="hasForeignKey" type="_BafHY1oHEeS2WoXr83SnEA" opposite="_BafHO1oHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_BafHS1oHEeS2WoXr83SnEA" name="hasKey" type="_BafHPloHEeS2WoXr83SnEA" isComposite="true" opposite="_BafHQVoHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafNBVoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHTFoHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <key href="UmlToRdbms.xml#_BafODFoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafM-1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafHTVoHEeS2WoXr83SnEA" name="schema" type="_BafHQ1oHEeS2WoXr83SnEA" opposite="_BafHRloHEeS2WoXr83SnEA">
+        <key href="UmlToRdbms.xml#_BafODFoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafM-VoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafHNVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafHO1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafHQVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM-FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNEVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNIloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNKloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNL1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNNVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNOloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNP1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNT1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNYFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNgloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNi1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNmVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNo1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNqVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNr1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNzVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN1VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN2FoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN2VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN71oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN81oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN-FoHEeS2WoXr83SnEA"/>
+      <key href="UmlToRdbms.xml#_BafODFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHTloHEeS2WoXr83SnEA" name="dummy" typedElement="_BafHR1oHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafHT1oHEeS2WoXr83SnEA" name="containsSchema" type="_BafHaVoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafHR1oHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="_BafHUFoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHUVoHEeS2WoXr83SnEA" name="Collection" elementType="_BafHMloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHUloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHU1oHEeS2WoXr83SnEA" actual="_BafHMloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHVFoHEeS2WoXr83SnEA" name="Collection" elementType="_BafHOFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHVVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHVloHEeS2WoXr83SnEA" actual="_BafHOFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHV1oHEeS2WoXr83SnEA" name="Collection" elementType="_BafHPloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHWFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHWVoHEeS2WoXr83SnEA" actual="_BafHPloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHWloHEeS2WoXr83SnEA" name="Collection" elementType="_BafHQ1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHW1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHXFoHEeS2WoXr83SnEA" actual="_BafHQ1oHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHXVoHEeS2WoXr83SnEA" name="Collection" elementType="_BafHSFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHXloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHX1oHEeS2WoXr83SnEA" actual="_BafHSFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafHYFoHEeS2WoXr83SnEA" name="Set" superClass="_BafHb1oHEeS2WoXr83SnEA" typedElement="_BafHOVoHEeS2WoXr83SnEA _BafHP1oHEeS2WoXr83SnEA _BafHSVoHEeS2WoXr83SnEA"
+        elementType="_BafHMloHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_BafHYVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHYloHEeS2WoXr83SnEA" actual="_BafHMloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafHY1oHEeS2WoXr83SnEA" name="Set" superClass="_BafHcloHEeS2WoXr83SnEA" typedElement="_BafHN1oHEeS2WoXr83SnEA _BafHQloHEeS2WoXr83SnEA _BafHRFoHEeS2WoXr83SnEA _BafHSloHEeS2WoXr83SnEA"
+        elementType="_BafHOFoHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_BafHZFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHZVoHEeS2WoXr83SnEA" actual="_BafHOFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafHZloHEeS2WoXr83SnEA" name="Set" superClass="_BafHdVoHEeS2WoXr83SnEA" typedElement="_BafHNloHEeS2WoXr83SnEA"
+        elementType="_BafHPloHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_BafHZ1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHaFoHEeS2WoXr83SnEA" actual="_BafHPloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafHaVoHEeS2WoXr83SnEA" name="Set" superClass="_BafHeFoHEeS2WoXr83SnEA" typedElement="_BafHT1oHEeS2WoXr83SnEA"
+        elementType="_BafHQ1oHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_BafHaloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHa1oHEeS2WoXr83SnEA" actual="_BafHQ1oHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafHbFoHEeS2WoXr83SnEA" name="Set" superClass="_BafHe1oHEeS2WoXr83SnEA" typedElement="_BafHRloHEeS2WoXr83SnEA"
+        elementType="_BafHSFoHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_BafHbVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHbloHEeS2WoXr83SnEA" actual="_BafHSFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHb1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafHUVoHEeS2WoXr83SnEA"
+        elementType="_BafHMloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHcFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHcVoHEeS2WoXr83SnEA" actual="_BafHMloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHcloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafHVFoHEeS2WoXr83SnEA"
+        elementType="_BafHOFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHc1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHdFoHEeS2WoXr83SnEA" actual="_BafHOFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHdVoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafHV1oHEeS2WoXr83SnEA"
+        elementType="_BafHPloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHdloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHd1oHEeS2WoXr83SnEA" actual="_BafHPloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHeFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafHWloHEeS2WoXr83SnEA"
+        elementType="_BafHQ1oHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHeVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHeloHEeS2WoXr83SnEA" actual="_BafHQ1oHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHe1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafHXVoHEeS2WoXr83SnEA"
+        elementType="_BafHSFoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafHfFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafHfVoHEeS2WoXr83SnEA" actual="_BafHSFoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/umlMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/umlMM.xml
new file mode 100644
index 0000000..aeff49e
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/umlMM.xml
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_BafOE1oHEeS2WoXr83SnEA" name="umlMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/umlMM.emof">
+  <nestedPackage xmi:id="_BafOFFoHEeS2WoXr83SnEA" name="umlMM" nsURI="umlMM">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOFVoHEeS2WoXr83SnEA" name="Association" templateParameterSubstitution="_BafONFoHEeS2WoXr83SnEA _BafOQ1oHEeS2WoXr83SnEA _BafOUloHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafOFloHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNt1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafOF1oHEeS2WoXr83SnEA" name="namespace" type="_BafOKVoHEeS2WoXr83SnEA" opposite="_BafOKloHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafNtVoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafOGFoHEeS2WoXr83SnEA" name="source" type="_BafOHloHEeS2WoXr83SnEA" opposite="_BafOI1oHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafNuVoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafOGVoHEeS2WoXr83SnEA" name="destination" type="_BafOHloHEeS2WoXr83SnEA" opposite="_BafOIFoHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafNv1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNtFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN4FoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOGloHEeS2WoXr83SnEA" name="Attribute" templateParameterSubstitution="_BafON1oHEeS2WoXr83SnEA _BafORloHEeS2WoXr83SnEA _BafOVVoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafOG1oHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNR1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNfFoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafOHFoHEeS2WoXr83SnEA" name="owner" type="_BafOHloHEeS2WoXr83SnEA" opposite="_BafOH1oHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_BafOHVoHEeS2WoXr83SnEA" name="type" type="_BafOJVoHEeS2WoXr83SnEA" opposite="_BafOKFoHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafNSVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNfloHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNRloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNXloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNe1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNiVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOHloHEeS2WoXr83SnEA" name="Class" templateParameterSubstitution="_BafOOloHEeS2WoXr83SnEA _BafOSVoHEeS2WoXr83SnEA _BafOWFoHEeS2WoXr83SnEA"
+        superClass="_BafOJVoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafOH1oHEeS2WoXr83SnEA" name="attribute" type="_BafORFoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafOHFoHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafNRVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNeloHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafOIFoHEeS2WoXr83SnEA" name="destinationOf" type="_BafOQVoHEeS2WoXr83SnEA" opposite="_BafOGVoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_BafOIVoHEeS2WoXr83SnEA" name="general" type="_BafOHloHEeS2WoXr83SnEA" opposite="_BafOJFoHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafNn1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafOIloHEeS2WoXr83SnEA" name="kind">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafM8loHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNu1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNwVoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafOI1oHEeS2WoXr83SnEA" name="sourceOf" type="_BafOQVoHEeS2WoXr83SnEA" opposite="_BafOGFoHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_BafOJFoHEeS2WoXr83SnEA" name="subclass" type="_BafOR1oHEeS2WoXr83SnEA" opposite="_BafOIVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafOGFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafOGVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafOHFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafOIVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM71oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafND1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNIVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNJ1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNLloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNNFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNOVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNPloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNRFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNXVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNeVoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNf1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNiFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNiloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNmFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNnloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNoFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNp1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNqFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNrloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNuloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNwFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN4loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN41oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN7loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN8loHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOJVoHEeS2WoXr83SnEA" name="Classifier" templateParameterSubstitution="_BafOPVoHEeS2WoXr83SnEA _BafOTFoHEeS2WoXr83SnEA _BafOW1oHEeS2WoXr83SnEA"
+        typedElement="_BafOHVoHEeS2WoXr83SnEA" isAbstract="true">
+      <ownedAttribute xmi:id="_BafOJloHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafM9FoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNS1oHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNvVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafNw1oHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafOJ1oHEeS2WoXr83SnEA" name="namespace" type="_BafOKVoHEeS2WoXr83SnEA" opposite="_BafOK1oHEeS2WoXr83SnEA">
+        <propertyItem href="UmlToRdbms.xml#_BafM8FoHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafOKFoHEeS2WoXr83SnEA" name="typeOf" type="_BafORFoHEeS2WoXr83SnEA" opposite="_BafOHVoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOKVoHEeS2WoXr83SnEA" name="Package" templateParameterSubstitution="_BafOQFoHEeS2WoXr83SnEA _BafOT1oHEeS2WoXr83SnEA _BafOXloHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafOKloHEeS2WoXr83SnEA" name="association" type="_BafOQVoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafOF1oHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_BafOK1oHEeS2WoXr83SnEA" name="classifier" type="_BafOSloHEeS2WoXr83SnEA" isComposite="true" opposite="_BafOJ1oHEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_BafOLFoHEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRdbms.xml#_BafM4loHEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BafOLVoHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_BafOL1oHEeS2WoXr83SnEA" implicit="true"
+          opposite="_BafOMFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafOF1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_BafOJ1oHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM4VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafM6loHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM8VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNEFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNGFoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNtloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN4VoHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN6loHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOLloHEeS2WoXr83SnEA" name="PrimitiveDataType" superClass="_BafOJVoHEeS2WoXr83SnEA">
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNSloHEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNX1oHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOL1oHEeS2WoXr83SnEA" name="dummy" typedElement="_BafOLVoHEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_BafOMFoHEeS2WoXr83SnEA" name="containsPackage" type="_BafOTVoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafOLVoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="_BafOMVoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOMloHEeS2WoXr83SnEA" name="Collection" elementType="_BafOFVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafOM1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafONFoHEeS2WoXr83SnEA" actual="_BafOFVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafONVoHEeS2WoXr83SnEA" name="Collection" elementType="_BafOGloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafONloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafON1oHEeS2WoXr83SnEA" actual="_BafOGloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOOFoHEeS2WoXr83SnEA" name="Collection" elementType="_BafOHloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafOOVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOOloHEeS2WoXr83SnEA" actual="_BafOHloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOO1oHEeS2WoXr83SnEA" name="Collection" elementType="_BafOJVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafOPFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOPVoHEeS2WoXr83SnEA" actual="_BafOJVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOPloHEeS2WoXr83SnEA" name="Collection" elementType="_BafOKVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafOP1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOQFoHEeS2WoXr83SnEA" actual="_BafOKVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafOQVoHEeS2WoXr83SnEA" name="Set" superClass="_BafOUFoHEeS2WoXr83SnEA" typedElement="_BafOIFoHEeS2WoXr83SnEA _BafOI1oHEeS2WoXr83SnEA _BafOKloHEeS2WoXr83SnEA"
+        elementType="_BafOFVoHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_BafOQloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOQ1oHEeS2WoXr83SnEA" actual="_BafOFVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafORFoHEeS2WoXr83SnEA" name="Set" superClass="_BafOU1oHEeS2WoXr83SnEA" typedElement="_BafOH1oHEeS2WoXr83SnEA _BafOKFoHEeS2WoXr83SnEA"
+        elementType="_BafOGloHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_BafORVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafORloHEeS2WoXr83SnEA" actual="_BafOGloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafOR1oHEeS2WoXr83SnEA" name="Set" superClass="_BafOVloHEeS2WoXr83SnEA" typedElement="_BafOJFoHEeS2WoXr83SnEA"
+        elementType="_BafOHloHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_BafOSFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOSVoHEeS2WoXr83SnEA" actual="_BafOHloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafOSloHEeS2WoXr83SnEA" name="Set" superClass="_BafOWVoHEeS2WoXr83SnEA" typedElement="_BafOK1oHEeS2WoXr83SnEA"
+        elementType="_BafOJVoHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_BafOS1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOTFoHEeS2WoXr83SnEA" actual="_BafOJVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafOTVoHEeS2WoXr83SnEA" name="Set" superClass="_BafOXFoHEeS2WoXr83SnEA" typedElement="_BafOMFoHEeS2WoXr83SnEA"
+        elementType="_BafOKVoHEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_BafOTloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOT1oHEeS2WoXr83SnEA" actual="_BafOKVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOUFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafOMloHEeS2WoXr83SnEA"
+        elementType="_BafOFVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafOUVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOUloHEeS2WoXr83SnEA" actual="_BafOFVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOU1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafONVoHEeS2WoXr83SnEA"
+        elementType="_BafOGloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafOVFoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOVVoHEeS2WoXr83SnEA" actual="_BafOGloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOVloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafOOFoHEeS2WoXr83SnEA"
+        elementType="_BafOHloHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafOV1oHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOWFoHEeS2WoXr83SnEA" actual="_BafOHloHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOWVoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafOO1oHEeS2WoXr83SnEA"
+        elementType="_BafOJVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafOWloHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOW1oHEeS2WoXr83SnEA" actual="_BafOJVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOXFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafOPloHEeS2WoXr83SnEA"
+        elementType="_BafOKVoHEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_BafOXVoHEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_BafOXloHEeS2WoXr83SnEA" actual="_BafOKVoHEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/OCL.xml
new file mode 100644
index 0000000..ed4c2fe
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/OCL.xml
@@ -0,0 +1,2777 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_-sSbr1oGEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+  <nestedPackage xmi:id="_-sSbsFoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbsVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPCVoGEeS2WoXr83SnEA _-scPDVoGEeS2WoXr83SnEA"
+        contextType="_-scO1VoGEeS2WoXr83SnEA" resultType="_-scN91oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbsloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scO_1oGEeS2WoXr83SnEA"
+        contextType="_-scO1VoGEeS2WoXr83SnEA" resultType="_-scO_loGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbs1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPBVoGEeS2WoXr83SnEA"
+        contextType="_-scO1VoGEeS2WoXr83SnEA" resultType="_-scPBFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbtFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPEVoGEeS2WoXr83SnEA"
+        contextType="_-scO1VoGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbtVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scO-FoGEeS2WoXr83SnEA"
+        contextType="_-scO1VoGEeS2WoXr83SnEA" resultType="_-scNqloGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbtloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPeloGEeS2WoXr83SnEA _-scPi1oGEeS2WoXr83SnEA _-scPkFoGEeS2WoXr83SnEA _-scPk1oGEeS2WoXr83SnEA _-scPmFoGEeS2WoXr83SnEA _-scPp1oGEeS2WoXr83SnEA _-scPq1oGEeS2WoXr83SnEA _-scPr1oGEeS2WoXr83SnEA"
+        contextType="_-scPF1oGEeS2WoXr83SnEA" resultType="_-scN91oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbt1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPgVoGEeS2WoXr83SnEA"
+        contextType="_-scPF1oGEeS2WoXr83SnEA" resultType="_-scPgFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbuFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPiFoGEeS2WoXr83SnEA"
+        contextType="_-scPF1oGEeS2WoXr83SnEA" resultType="_-scPh1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbuVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPoloGEeS2WoXr83SnEA"
+        contextType="_-scPF1oGEeS2WoXr83SnEA" resultType="_-scPoVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbuloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPnFoGEeS2WoXr83SnEA _-scPs1oGEeS2WoXr83SnEA"
+        contextType="_-scPF1oGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbu1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scQvloGEeS2WoXr83SnEA _-scQwloGEeS2WoXr83SnEA"
+        contextType="_-scQdloGEeS2WoXr83SnEA" resultType="_-scN91oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbvFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scQxloGEeS2WoXr83SnEA"
+        contextType="_-scQdloGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbvVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scQrVoGEeS2WoXr83SnEA"
+        contextType="_-scQdloGEeS2WoXr83SnEA" resultType="_-scQc1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbvloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scQtFoGEeS2WoXr83SnEA"
+        contextType="_-scQdloGEeS2WoXr83SnEA" resultType="_-scQs1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbv1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scQuloGEeS2WoXr83SnEA"
+        contextType="_-scQdloGEeS2WoXr83SnEA" resultType="_-scQuVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbwFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scREloGEeS2WoXr83SnEA _-scRFloGEeS2WoXr83SnEA"
+        contextType="_-scQy1oGEeS2WoXr83SnEA" resultType="_-scN91oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbwVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRGloGEeS2WoXr83SnEA"
+        contextType="_-scQy1oGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbwloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRAVoGEeS2WoXr83SnEA"
+        contextType="_-scQy1oGEeS2WoXr83SnEA" resultType="_-scNfVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbw1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRCFoGEeS2WoXr83SnEA"
+        contextType="_-scQy1oGEeS2WoXr83SnEA" resultType="_-scRB1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbxFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRDloGEeS2WoXr83SnEA"
+        contextType="_-scQy1oGEeS2WoXr83SnEA" resultType="_-scRDVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbxVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRVloGEeS2WoXr83SnEA _-scRWloGEeS2WoXr83SnEA"
+        contextType="_-scRH1oGEeS2WoXr83SnEA" resultType="_-scN91oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbxloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRXloGEeS2WoXr83SnEA"
+        contextType="_-scRH1oGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbx1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRRVoGEeS2WoXr83SnEA"
+        contextType="_-scRH1oGEeS2WoXr83SnEA" resultType="_-scRHFoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbyFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRTFoGEeS2WoXr83SnEA"
+        contextType="_-scRH1oGEeS2WoXr83SnEA" resultType="_-scRS1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbyVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRUloGEeS2WoXr83SnEA"
+        contextType="_-scRH1oGEeS2WoXr83SnEA" resultType="_-scRUVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbyloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRdFoGEeS2WoXr83SnEA"
+        contextType="_-scRZVoGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="_-sSby1oGEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="_-sSb91oGEeS2WoXr83SnEA _-scNqVoGEeS2WoXr83SnEA _-scNxFoGEeS2WoXr83SnEA"
+        superClass="_-scQR1oGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_-sSbzFoGEeS2WoXr83SnEA" name="first" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_-sSbzVoGEeS2WoXr83SnEA" name="second" type="_-scPZVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSbzloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+        superClass="_-sSb-FoGEeS2WoXr83SnEA" typedElement="_-scO-loGEeS2WoXr83SnEA" elementType="_-scO_loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSbz1oGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb0FoGEeS2WoXr83SnEA" actual="_-scO_loGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb0VoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+        superClass="_-sSb-1oGEeS2WoXr83SnEA" typedElement="_-scPAVoGEeS2WoXr83SnEA" elementType="_-scPBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb0loGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb01oGEeS2WoXr83SnEA" actual="_-scPBFoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb1FoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+        superClass="_-sSb_loGEeS2WoXr83SnEA" typedElement="_-scO4VoGEeS2WoXr83SnEA" elementType="_-scO5VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb1VoGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb1loGEeS2WoXr83SnEA" actual="_-scO5VoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb11oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+        superClass="_-sScAVoGEeS2WoXr83SnEA" typedElement="_-scO7FoGEeS2WoXr83SnEA" elementType="_-scO71oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb2FoGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb2VoGEeS2WoXr83SnEA" actual="_-scO71oGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb2loGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+        superClass="_-sScBFoGEeS2WoXr83SnEA" typedElement="_-scO8VoGEeS2WoXr83SnEA" elementType="_-scO9FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb21oGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb3FoGEeS2WoXr83SnEA" actual="_-scO9FoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb3VoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+        superClass="_-scMpVoGEeS2WoXr83SnEA" typedElement="_-scPJVoGEeS2WoXr83SnEA _-scPU1oGEeS2WoXr83SnEA _-scPdVoGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb3loGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb31oGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb4FoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+        superClass="_-scMqFoGEeS2WoXr83SnEA" typedElement="_-scPGFoGEeS2WoXr83SnEA" elementType="_-scPFFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb4VoGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb4loGEeS2WoXr83SnEA" actual="_-scPFFoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb41oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+        superClass="_-scMrloGEeS2WoXr83SnEA" typedElement="_-scPvVoGEeS2WoXr83SnEA" elementType="_-scPtVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb5FoGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb5VoGEeS2WoXr83SnEA" actual="_-scPtVoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb5loGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+        superClass="_-scMsVoGEeS2WoXr83SnEA" typedElement="_-scPwloGEeS2WoXr83SnEA" elementType="_-scPvloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb51oGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb6FoGEeS2WoXr83SnEA" actual="_-scPvloGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb6VoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+        superClass="_-scM5FoGEeS2WoXr83SnEA" typedElement="_-scRR1oGEeS2WoXr83SnEA" elementType="_-scRS1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb6loGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb61oGEeS2WoXr83SnEA" actual="_-scRS1oGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb7FoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+        superClass="_-scM51oGEeS2WoXr83SnEA" typedElement="_-scRTloGEeS2WoXr83SnEA" elementType="_-scRUVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb7VoGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb7loGEeS2WoXr83SnEA" actual="_-scRUVoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb71oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scOFVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb8FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb8VoGEeS2WoXr83SnEA" actual="_-scOFVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb8loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scOaVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb81oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb9FoGEeS2WoXr83SnEA" actual="_-scOaVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb9VoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-sSby1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb9loGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb91oGEeS2WoXr83SnEA" actual="_-sSby1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb-FoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scO_loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb-VoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb-loGEeS2WoXr83SnEA" actual="_-scO_loGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb-1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb_FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSb_VoGEeS2WoXr83SnEA" actual="_-scPBFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb_loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scO5VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSb_1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sScAFoGEeS2WoXr83SnEA" actual="_-scO5VoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sScAVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scO71oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sScAloGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sScA1oGEeS2WoXr83SnEA" actual="_-scO71oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sScBFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scO9FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sScBVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sScBloGEeS2WoXr83SnEA" actual="_-scO9FoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sScB1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scO61oGEeS2WoXr83SnEA" elementType="_-scO1VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sScCFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sScCVoGEeS2WoXr83SnEA" actual="_-scO1VoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sScCloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPfFoGEeS2WoXr83SnEA" elementType="_-scPgFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sScC1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sScDFoGEeS2WoXr83SnEA" actual="_-scPgFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMkFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPg1oGEeS2WoXr83SnEA" elementType="_-scPh1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMkVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMkloGEeS2WoXr83SnEA" actual="_-scPh1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMk1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPOFoGEeS2WoXr83SnEA" elementType="_-scPN1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMlFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMlVoGEeS2WoXr83SnEA" actual="_-scPN1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMlloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPP1oGEeS2WoXr83SnEA" elementType="_-scPQ1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMl1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMmFoGEeS2WoXr83SnEA" actual="_-scPQ1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMmVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPTFoGEeS2WoXr83SnEA" elementType="_-scPS1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMmloGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMm1oGEeS2WoXr83SnEA" actual="_-scPS1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMnFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPZloGEeS2WoXr83SnEA" elementType="_-scPZVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMnVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMnloGEeS2WoXr83SnEA" actual="_-scPZVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMn1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPZ1oGEeS2WoXr83SnEA" elementType="_-scPaloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMoFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMoVoGEeS2WoXr83SnEA" actual="_-scPaloGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMoloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPbFoGEeS2WoXr83SnEA" elementType="_-scPb1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMo1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMpFoGEeS2WoXr83SnEA" actual="_-scPb1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMpVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMploGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMp1oGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMqFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPFFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMqVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMqloGEeS2WoXr83SnEA" actual="_-scPFFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMq1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPu1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMrFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMrVoGEeS2WoXr83SnEA" actual="_-scPu1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMrloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPtVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMr1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMsFoGEeS2WoXr83SnEA" actual="_-scPtVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMsVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPvloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMsloGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMs1oGEeS2WoXr83SnEA" actual="_-scPvloGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMtFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scO4FoGEeS2WoXr83SnEA _-scPPloGEeS2WoXr83SnEA _-scQiVoGEeS2WoXr83SnEA _-scQ3FoGEeS2WoXr83SnEA _-scRLVoGEeS2WoXr83SnEA"
+        elementType="_-scPxVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMtVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMtloGEeS2WoXr83SnEA" actual="_-scPxVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMt1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMuFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMuVoGEeS2WoXr83SnEA" actual="_-scQBFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMuloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQPVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMu1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMvFoGEeS2WoXr83SnEA" actual="_-scQPVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMvVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQaFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMvloGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMv1oGEeS2WoXr83SnEA" actual="_-scQaFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMwFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQs1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMwVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMwloGEeS2WoXr83SnEA" actual="_-scQs1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMw1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQuVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMxFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMxVoGEeS2WoXr83SnEA" actual="_-scQuVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMxloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQjVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMx1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMyFoGEeS2WoXr83SnEA" actual="_-scQjVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMyVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQoFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMyloGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMy1oGEeS2WoXr83SnEA" actual="_-scQoFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMzFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQpVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scMzVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scMzloGEeS2WoXr83SnEA" actual="_-scQpVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMz1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQdloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM0FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM0VoGEeS2WoXr83SnEA" actual="_-scQdloGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM0loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRB1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM01oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM1FoGEeS2WoXr83SnEA" actual="_-scRB1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM1VoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRDVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM1loGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM11oGEeS2WoXr83SnEA" actual="_-scRDVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM2FoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQ4VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM2VoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM2loGEeS2WoXr83SnEA" actual="_-scQ4VoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM21oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQ9FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM3FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM3VoGEeS2WoXr83SnEA" actual="_-scQ9FoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM3loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQ-VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM31oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM4FoGEeS2WoXr83SnEA" actual="_-scQ-VoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM4VoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQy1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM4loGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM41oGEeS2WoXr83SnEA" actual="_-scQy1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM5FoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRS1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM5VoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM5loGEeS2WoXr83SnEA" actual="_-scRS1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM51oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRUVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM6FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM6VoGEeS2WoXr83SnEA" actual="_-scRUVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM6loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRMloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM61oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM7FoGEeS2WoXr83SnEA" actual="_-scRMloGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM7VoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRPFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM7loGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM71oGEeS2WoXr83SnEA" actual="_-scRPFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM8FoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRQVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM8VoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM8loGEeS2WoXr83SnEA" actual="_-scRQVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM81oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scROFoGEeS2WoXr83SnEA" elementType="_-scRH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM9FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM9VoGEeS2WoXr83SnEA" actual="_-scRH1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM9loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scRa1oGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM91oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM-FoGEeS2WoXr83SnEA" actual="_-scRZVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scM-VoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scO0VoGEeS2WoXr83SnEA" instanceType="_-scO0FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM-loGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM-1oGEeS2WoXr83SnEA" actual="_-scO0FoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scM_FoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scO8FoGEeS2WoXr83SnEA" instanceType="_-scO71oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scM_VoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scM_loGEeS2WoXr83SnEA" actual="_-scO71oGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scM_1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scO9VoGEeS2WoXr83SnEA" instanceType="_-scO9FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNAFoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNAVoGEeS2WoXr83SnEA" actual="_-scO9FoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNAloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scPa1oGEeS2WoXr83SnEA" instanceType="_-scPaloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNA1oGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNBFoGEeS2WoXr83SnEA" actual="_-scPaloGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNBVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scPcFoGEeS2WoXr83SnEA" instanceType="_-scPb1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNBloGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNB1oGEeS2WoXr83SnEA" actual="_-scPb1oGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNCFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scP1FoGEeS2WoXr83SnEA" instanceType="_-scP01oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNCVoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNCloGEeS2WoXr83SnEA" actual="_-scP01oGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNC1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scP31oGEeS2WoXr83SnEA" instanceType="_-scP3loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNDFoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNDVoGEeS2WoXr83SnEA" actual="_-scP3loGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNDloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scP51oGEeS2WoXr83SnEA" instanceType="_-scP5loGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scND1oGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNEFoGEeS2WoXr83SnEA" actual="_-scP5loGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNEVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQH1oGEeS2WoXr83SnEA" instanceType="_-scQHloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNEloGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNE1oGEeS2WoXr83SnEA" actual="_-scQHloGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNFFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQJVoGEeS2WoXr83SnEA" instanceType="_-scQJFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNFVoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNFloGEeS2WoXr83SnEA" actual="_-scQJFoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNF1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQKloGEeS2WoXr83SnEA" instanceType="_-scQKVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNGFoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNGVoGEeS2WoXr83SnEA" actual="_-scQKVoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNGloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" instanceType="_-scQDFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNG1oGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNHFoGEeS2WoXr83SnEA" actual="_-scQDFoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNHVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scP71oGEeS2WoXr83SnEA _-scQLFoGEeS2WoXr83SnEA" instanceType="_-scQPVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNHloGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNH1oGEeS2WoXr83SnEA" actual="_-scQPVoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNIFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" instanceType="_-scQUloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNIVoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNIloGEeS2WoXr83SnEA" actual="_-scQUloGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNI1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQoVoGEeS2WoXr83SnEA" instanceType="_-scQoFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNJFoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNJVoGEeS2WoXr83SnEA" actual="_-scQoFoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNJloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQploGEeS2WoXr83SnEA" instanceType="_-scQpVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNJ1oGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNKFoGEeS2WoXr83SnEA" actual="_-scQpVoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNKVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQ9VoGEeS2WoXr83SnEA" instanceType="_-scQ9FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNKloGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNK1oGEeS2WoXr83SnEA" actual="_-scQ9FoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNLFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQ-loGEeS2WoXr83SnEA" instanceType="_-scQ-VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNLVoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNLloGEeS2WoXr83SnEA" actual="_-scQ-VoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNL1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scRPVoGEeS2WoXr83SnEA" instanceType="_-scRPFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNMFoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNMVoGEeS2WoXr83SnEA" actual="_-scRPFoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNMloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scRQloGEeS2WoXr83SnEA" instanceType="_-scRQVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNM1oGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNNFoGEeS2WoXr83SnEA" actual="_-scRQVoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNNVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-sSb71oGEeS2WoXr83SnEA" elementType="_-scOFVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNNloGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNN1oGEeS2WoXr83SnEA" actual="_-scOFVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNOFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-sSb8loGEeS2WoXr83SnEA" elementType="_-scOaVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNOVoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNOloGEeS2WoXr83SnEA" actual="_-scOaVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNO1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-sScB1oGEeS2WoXr83SnEA" elementType="_-scO1VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNPFoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNPVoGEeS2WoXr83SnEA" actual="_-scO1VoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNPloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scMpVoGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNP1oGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNQFoGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNQVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scMq1oGEeS2WoXr83SnEA" elementType="_-scPu1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNQloGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNQ1oGEeS2WoXr83SnEA" actual="_-scPu1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNRFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scMwFoGEeS2WoXr83SnEA" elementType="_-scQs1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNRVoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNRloGEeS2WoXr83SnEA" actual="_-scQs1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNR1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scMw1oGEeS2WoXr83SnEA" elementType="_-scQuVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNSFoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNSVoGEeS2WoXr83SnEA" actual="_-scQuVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNSloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scMxloGEeS2WoXr83SnEA" elementType="_-scQjVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNS1oGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNTFoGEeS2WoXr83SnEA" actual="_-scQjVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNTVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scMyVoGEeS2WoXr83SnEA" elementType="_-scQoFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNTloGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNT1oGEeS2WoXr83SnEA" actual="_-scQoFoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNUFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scMzFoGEeS2WoXr83SnEA" elementType="_-scQpVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNUVoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNUloGEeS2WoXr83SnEA" actual="_-scQpVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNU1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scMz1oGEeS2WoXr83SnEA" typedElement="_-scQg1oGEeS2WoXr83SnEA _-scQmloGEeS2WoXr83SnEA" elementType="_-scQdloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNVFoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNVVoGEeS2WoXr83SnEA" actual="_-scQdloGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNVloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scM0loGEeS2WoXr83SnEA" elementType="_-scRB1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNV1oGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNWFoGEeS2WoXr83SnEA" actual="_-scRB1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNWVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scM1VoGEeS2WoXr83SnEA" elementType="_-scRDVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNWloGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNW1oGEeS2WoXr83SnEA" actual="_-scRDVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNXFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scM2FoGEeS2WoXr83SnEA" elementType="_-scQ4VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNXVoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNXloGEeS2WoXr83SnEA" actual="_-scQ4VoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNX1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scM21oGEeS2WoXr83SnEA" elementType="_-scQ9FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNYFoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNYVoGEeS2WoXr83SnEA" actual="_-scQ9FoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNYloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scM3loGEeS2WoXr83SnEA" elementType="_-scQ-VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNY1oGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNZFoGEeS2WoXr83SnEA" actual="_-scQ-VoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNZVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scM4VoGEeS2WoXr83SnEA" typedElement="_-scQ1loGEeS2WoXr83SnEA _-scQ7loGEeS2WoXr83SnEA" elementType="_-scQy1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNZloGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNZ1oGEeS2WoXr83SnEA" actual="_-scQy1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNaFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scM81oGEeS2WoXr83SnEA" elementType="_-scRH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNaVoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNaloGEeS2WoXr83SnEA" actual="_-scRH1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNa1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+        superClass="_-scM9loGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNbFoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNbVoGEeS2WoXr83SnEA" actual="_-scRZVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNbloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+        superClass="_-scNPloGEeS2WoXr83SnEA _-scNyFoGEeS2WoXr83SnEA" typedElement="_-scPJ1oGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNb1oGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNcFoGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNcVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+        superClass="_-scNQVoGEeS2WoXr83SnEA _-scNy1oGEeS2WoXr83SnEA" typedElement="_-scPt1oGEeS2WoXr83SnEA" elementType="_-scPu1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNcloGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNc1oGEeS2WoXr83SnEA" actual="_-scPu1oGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNdFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+        superClass="_-scNSloGEeS2WoXr83SnEA _-scN11oGEeS2WoXr83SnEA" typedElement="_-scQiloGEeS2WoXr83SnEA" elementType="_-scQjVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNdVoGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNdloGEeS2WoXr83SnEA" actual="_-scQjVoGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNd1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+        superClass="_-scNTVoGEeS2WoXr83SnEA _-scN2loGEeS2WoXr83SnEA" typedElement="_-scQnVoGEeS2WoXr83SnEA" elementType="_-scQoFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNeFoGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNeVoGEeS2WoXr83SnEA" actual="_-scQoFoGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNeloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+        superClass="_-scNUFoGEeS2WoXr83SnEA _-scN3VoGEeS2WoXr83SnEA" typedElement="_-scQoloGEeS2WoXr83SnEA" elementType="_-scQpVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNe1oGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNfFoGEeS2WoXr83SnEA" actual="_-scQpVoGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNfVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+        superClass="_-scNZVoGEeS2WoXr83SnEA _-scN41oGEeS2WoXr83SnEA" typedElement="_-scQ_1oGEeS2WoXr83SnEA" elementType="_-scQy1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNfloGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNf1oGEeS2WoXr83SnEA" actual="_-scQy1oGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNgFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+        superClass="_-scNaFoGEeS2WoXr83SnEA _-scN71oGEeS2WoXr83SnEA" typedElement="_-scRXFoGEeS2WoXr83SnEA" elementType="_-scRH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNgVoGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNgloGEeS2WoXr83SnEA" actual="_-scRH1oGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNg1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+        superClass="_-scNa1oGEeS2WoXr83SnEA _-scN8loGEeS2WoXr83SnEA" typedElement="_-scRcloGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNhFoGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNhVoGEeS2WoXr83SnEA" actual="_-scRZVoGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNhloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+        superClass="_-scNNVoGEeS2WoXr83SnEA" elementType="_-scOFVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNh1oGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNiFoGEeS2WoXr83SnEA" actual="_-scOFVoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNiVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+        superClass="_-scNOFoGEeS2WoXr83SnEA" typedElement="_-scOgFoGEeS2WoXr83SnEA _-scOwFoGEeS2WoXr83SnEA _-scOwloGEeS2WoXr83SnEA _-scOxVoGEeS2WoXr83SnEA"
+        elementType="_-scOaVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNiloGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNi1oGEeS2WoXr83SnEA" actual="_-scOaVoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNjFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+        superClass="_-scNO1oGEeS2WoXr83SnEA" typedElement="_-scPD1oGEeS2WoXr83SnEA" elementType="_-scO1VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNjVoGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNjloGEeS2WoXr83SnEA" actual="_-scO1VoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNj1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+        superClass="_-scNPloGEeS2WoXr83SnEA" typedElement="_-scPKVoGEeS2WoXr83SnEA _-scPsVoGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNkFoGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNkVoGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNkloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+        superClass="_-scNRFoGEeS2WoXr83SnEA" typedElement="_-scQr1oGEeS2WoXr83SnEA" elementType="_-scQs1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNk1oGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNlFoGEeS2WoXr83SnEA" actual="_-scQs1oGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNlVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+        superClass="_-scNR1oGEeS2WoXr83SnEA" typedElement="_-scQtloGEeS2WoXr83SnEA" elementType="_-scQuVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNlloGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNl1oGEeS2WoXr83SnEA" actual="_-scQuVoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNmFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+        superClass="_-scNVloGEeS2WoXr83SnEA" typedElement="_-scRA1oGEeS2WoXr83SnEA" elementType="_-scRB1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNmVoGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNmloGEeS2WoXr83SnEA" actual="_-scRB1oGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNm1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+        superClass="_-scNWVoGEeS2WoXr83SnEA" typedElement="_-scRCloGEeS2WoXr83SnEA" elementType="_-scRDVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNnFoGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNnVoGEeS2WoXr83SnEA" actual="_-scRDVoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNnloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+        superClass="_-scNXFoGEeS2WoXr83SnEA" typedElement="_-scQ3VoGEeS2WoXr83SnEA" elementType="_-scQ4VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNn1oGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNoFoGEeS2WoXr83SnEA" actual="_-scQ4VoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNoVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+        superClass="_-scNX1oGEeS2WoXr83SnEA" typedElement="_-scQ8VoGEeS2WoXr83SnEA" elementType="_-scQ9FoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNoloGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNo1oGEeS2WoXr83SnEA" actual="_-scQ9FoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNpFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+        superClass="_-scNYloGEeS2WoXr83SnEA" typedElement="_-scQ9loGEeS2WoXr83SnEA" elementType="_-scQ-VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNpVoGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNploGEeS2WoXr83SnEA" actual="_-scQ-VoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNp1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+        superClass="_-scNwloGEeS2WoXr83SnEA" typedElement="_-scPYVoGEeS2WoXr83SnEA" elementType="_-sSby1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNqFoGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNqVoGEeS2WoXr83SnEA" actual="_-sSby1oGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNqloGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+        superClass="_-scNxVoGEeS2WoXr83SnEA" typedElement="_-scO9loGEeS2WoXr83SnEA" elementType="_-scO1VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNq1oGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNrFoGEeS2WoXr83SnEA" actual="_-scO1VoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNrVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+        superClass="_-scNyFoGEeS2WoXr83SnEA" typedElement="_-scPK1oGEeS2WoXr83SnEA _-scPVloGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNrloGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNr1oGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNsFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+        superClass="_-scN0VoGEeS2WoXr83SnEA" typedElement="_-scQCloGEeS2WoXr83SnEA" elementType="_-scQBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNsVoGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNsloGEeS2WoXr83SnEA" actual="_-scQBFoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNs1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+        superClass="_-scN1FoGEeS2WoXr83SnEA" typedElement="_-scN_loGEeS2WoXr83SnEA _-scPuVoGEeS2WoXr83SnEA _-scPzVoGEeS2WoXr83SnEA _-scQBloGEeS2WoXr83SnEA _-scQFFoGEeS2WoXr83SnEA _-scQGloGEeS2WoXr83SnEA _-scQWVoGEeS2WoXr83SnEA"
+        elementType="_-scQPVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNtFoGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNtVoGEeS2WoXr83SnEA" actual="_-scQPVoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNtloGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+        superClass="_-scN5loGEeS2WoXr83SnEA" typedElement="_-scRLloGEeS2WoXr83SnEA" elementType="_-scRMloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNt1oGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNuFoGEeS2WoXr83SnEA" actual="_-scRMloGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNuVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+        superClass="_-scN6VoGEeS2WoXr83SnEA" typedElement="_-scROVoGEeS2WoXr83SnEA" elementType="_-scRPFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNuloGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNu1oGEeS2WoXr83SnEA" actual="_-scRPFoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNvFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+        superClass="_-scN7FoGEeS2WoXr83SnEA" typedElement="_-scRPloGEeS2WoXr83SnEA" elementType="_-scRQVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNvVoGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNvloGEeS2WoXr83SnEA" actual="_-scRQVoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNv1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+        superClass="_-scN8loGEeS2WoXr83SnEA" typedElement="_-scRaVoGEeS2WoXr83SnEA _-scRbFoGEeS2WoXr83SnEA _-scRb1oGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNwFoGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNwVoGEeS2WoXr83SnEA" actual="_-scRZVoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNwloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-sSb9VoGEeS2WoXr83SnEA" elementType="_-sSby1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNw1oGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNxFoGEeS2WoXr83SnEA" actual="_-sSby1oGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNxVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-sScB1oGEeS2WoXr83SnEA" elementType="_-scO1VoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNxloGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNx1oGEeS2WoXr83SnEA" actual="_-scO1VoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNyFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scMpVoGEeS2WoXr83SnEA" typedElement="_-scPWFoGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNyVoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNyloGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNy1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scMq1oGEeS2WoXr83SnEA" elementType="_-scPu1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNzFoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scNzVoGEeS2WoXr83SnEA" actual="_-scPu1oGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNzloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scMtFoGEeS2WoXr83SnEA" typedElement="_-scQeVoGEeS2WoXr83SnEA _-scRIloGEeS2WoXr83SnEA _-scRaFoGEeS2WoXr83SnEA _-scRbloGEeS2WoXr83SnEA"
+        elementType="_-scPxVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scNz1oGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN0FoGEeS2WoXr83SnEA" actual="_-scPxVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN0VoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scMt1oGEeS2WoXr83SnEA" elementType="_-scQBFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN0loGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN01oGEeS2WoXr83SnEA" actual="_-scQBFoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN1FoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scMuloGEeS2WoXr83SnEA" elementType="_-scQPVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN1VoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN1loGEeS2WoXr83SnEA" actual="_-scQPVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN11oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scMxloGEeS2WoXr83SnEA" elementType="_-scQjVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN2FoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN2VoGEeS2WoXr83SnEA" actual="_-scQjVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN2loGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scMyVoGEeS2WoXr83SnEA" elementType="_-scQoFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN21oGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN3FoGEeS2WoXr83SnEA" actual="_-scQoFoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN3VoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scMzFoGEeS2WoXr83SnEA" elementType="_-scQpVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN3loGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN31oGEeS2WoXr83SnEA" actual="_-scQpVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN4FoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scMz1oGEeS2WoXr83SnEA" elementType="_-scQdloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN4VoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN4loGEeS2WoXr83SnEA" actual="_-scQdloGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN41oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scM4VoGEeS2WoXr83SnEA" elementType="_-scQy1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN5FoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN5VoGEeS2WoXr83SnEA" actual="_-scQy1oGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN5loGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scM6loGEeS2WoXr83SnEA" elementType="_-scRMloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN51oGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN6FoGEeS2WoXr83SnEA" actual="_-scRMloGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN6VoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scM7VoGEeS2WoXr83SnEA" elementType="_-scRPFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN6loGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN61oGEeS2WoXr83SnEA" actual="_-scRPFoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN7FoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scM8FoGEeS2WoXr83SnEA" elementType="_-scRQVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN7VoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN7loGEeS2WoXr83SnEA" actual="_-scRQVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN71oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scM81oGEeS2WoXr83SnEA" elementType="_-scRH1oGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN8FoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN8VoGEeS2WoXr83SnEA" actual="_-scRH1oGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN8loGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+        superClass="_-scM9loGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scN81oGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scN9FoGEeS2WoXr83SnEA" actual="_-scRZVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="_-scN9VoGEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+    <ownedComment xmi:id="_-scN9loGEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.&#xA;This sub clause contains all standard types defined within OCL, including all the operations defined on those types.&#xA;For each operation the signature and a description of the semantics is given.&#xA;Within the description, the reserved word &#x2018;result&#x2019; is used to refer to the value that results from evaluating the operation.&#xA;In several places, post conditions are used to describe properties of the result.&#xA;When there is more than one postcondition, all postconditions must be true.&#xA;A similar thing is true for multiple preconditions.&#xA;If these are used, the operation is only defined if all preconditions evaluate to oclText[true].&#xA;&#xA;heading:1[Introduction]&#xA;&#xA;The structure, syntax, and semantics of the OCL is defined in Clauses 8 (&#x201c;Abstract Syntax&#x201d;), 9 (&#x201c;Concrete Syntax&#x201d;),&#xA;and 10 (&#x201c;Semantics Described using UML&#x201d;).&#xA;This sub clause adds another part to the OCL definition: a library of predefined types and operations.&#xA;Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,&#xA;where the language definition and the standard libraries are both mandatory parts of the complete language definition.&#xA;&#xA;The OCL standard library defines a number of types.&#xA;It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.&#xA;These are familiar from many other languages. The second part of the standard library consists of the collection types.&#xA;They are Bag, Set, Sequence, and Collection where Collection is an abstract type.&#xA;Note that all types defined in the OCL standard library are instances of an abstract syntax class.&#xA;The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.&#xA;&#xA;Next to definitions of types the OCL standard library defines a number of template expressions.&#xA;Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.&#xA;For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.&#xA;&#xA;The Standard Library may be extended with new types, new operations and new iterators.&#xA;In particular new operations can be defined for collections.&#xA;&#xA;Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted&#xA;in an appropriate fashion.&#xA;A locale is defined as a concatenation of up to three character sequences separated by underscores,&#xA;with the first sequence identifying the language and the second sequence identifying the country.&#xA;The third sequence is empty but may encode an implementation-specific variant.&#xA;Trailing empty strings and separators may be omitted.&#xA;&#xA;The character sequences for languages are defined by ISO 639.&#xA;&#xA;The character sequences for countries are defined by ISO 3166.&#xA;&#xA;&#x2018;fr_CA&#x2019; therefore identifies the locale for the French language in the Canada country.&#xA;&#xA;Comparison of strings and consequently the collation order of Collection::sortedBy()&#xA;conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.&#xA;&#xA;The locale is &#x2018;en_us&#x2019; by default but may be configured by a property constraint on OclAny::oclLocale.&#xA;&#xA;The prevailing locale is defined by the prevailing value of oclLocale within the current environment;&#xA;it may therefore be changed temporarily by using a Let expression.&#xA;let oclLocale : String = &#x2018;fr_CA&#x2019; in aString.toUpperCase()&#xA;&#xA;heading:1[Iterators]&#xA;&#xA;This sub clause defines the standard OCL iterator expressions.&#xA;In the abstract syntax these are all instances of IteratorExp.&#xA;These iterator expressions always have a collection expression as their source,&#xA;as is defined in the well-formedness rules in Clause 8 (&#x201c;Abstract Syntax&#x201d;).&#xA;The defined iterator expressions are shown per source collection type.&#xA;The semantics of each iterator expression is defined through a mapping from the iterator to the &#x2018;iterate&#x2019; construct.&#xA;This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.&#xA;&#xA;In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,&#xA;and the righthand side of the equals sign is the equivalent as an IterateExp.&#xA;The names source, body, and iterator refer to the role names in the abstract syntax:&#xA;&#xA;source&#x9;The source expression of the IteratorExp.&#xA;&#xA;body&#x9;The body expression of the IteratorExp.&#xA;&#xA;iterator&#x9;The iterator variable of the IteratorExp.&#xA;&#xA;result&#x9;The result variable of the IterateExp.&#xA;&#xA;heading:2[Extending the Standard Library with Iterator Expressions]&#xA;&#xA;It is possible to add new iterator expressions in the standard library.&#xA;If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,&#xA;in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_-scN91oGEeS2WoXr83SnEA" name="Boolean" superClass="_-scPxVoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_-scN-FoGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scN-VoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_-scN-loGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scN-1oGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scN_FoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_-scN_VoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scN_loGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+        <ownedComment xmi:id="_-scN_1oGEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOAFoGEeS2WoXr83SnEA" name="and" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isInvalidating="true" isValidating="true" precedence="_-scRfFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOAVoGEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[true]."/>
+        <bodyExpression xmi:id="_-scOAloGEeS2WoXr83SnEA" type="_-scN91oGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = false then false
+		        else self
+		        endif endif
+		      else if self = false then false
+		      else if b.oclIsInvalid() then b
+		      else if b = false then false
+		      else if self = null then null
+		      else if b = null then null
+		      else true
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_-scOA1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOBFoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isInvalidating="true" isValidating="true" precedence="_-scRf1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOBVoGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="_-scOBloGEeS2WoXr83SnEA" type="_-scN91oGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+		        else if b = true then true
+		        else self
+		        endif endif
+		      else if self = false then true
+		      else if b.oclIsInvalid() then b
+		      else if b = true then true
+		      else if self = null then null
+		      else if b = null then b
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_-scOB1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOCFoGEeS2WoXr83SnEA" name="not" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+          precedence="_-scRd1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOCVoGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].&#xA;oclText[false] if oclText[self] is oclText[true].&#xA;oclText[null] if oclText[self] is oclText[null].&#xA;Otherwise oclText[invalid]."/>
+        <bodyExpression xmi:id="_-scOCloGEeS2WoXr83SnEA" type="_-scN91oGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if self = null then null
+		      else self = false
+		      endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOC1oGEeS2WoXr83SnEA" name="or" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+          isInvalidating="true" isValidating="true" precedence="_-scRfVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scODFoGEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].&#xA;Otherwise oclText[false]."/>
+        <bodyExpression xmi:id="_-scODVoGEeS2WoXr83SnEA" type="_-scN91oGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then
+		        if b.oclIsInvalid() then self
+			    else if b = true then true
+		        else self
+		        endif endif
+		      else if self = true then true
+			  else if b.oclIsInvalid() then b
+			  else if b = true then true
+			  else if self = null then null
+			  else if b = null then null
+		      else false
+		      endif endif endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_-scODloGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOD1oGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_-scOEFoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOEVoGEeS2WoXr83SnEA" name="xor" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+          precedence="_-scRfloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOEloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].&#xA;oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].&#xA;Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].&#xA;Otherwise oclText[null]."/>
+        <bodyExpression xmi:id="_-scOE1oGEeS2WoXr83SnEA" type="_-scN91oGEeS2WoXr83SnEA">
+          <body>if self.oclIsInvalid() then self
+		      else if b.oclIsInvalid() then b
+		      else if self = null then null
+		      else if b = null then null
+		      else self &lt;> b
+		      endif endif endif endif</body>
+          <language>OCL</language>
+        </bodyExpression>
+        <ownedParameter xmi:id="_-scOFFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scN-FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scN-1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOAFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_-scOAloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOA1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOBFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_-scOBloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOB1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOCFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_-scOCloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOC1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_-scODVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scODloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOEVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_-scOE1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOFFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scORloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOSVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOTFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOT1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOUloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOVVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scObVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOcFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOc1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOdVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOd1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOeloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOiFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOi1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOlFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOoVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOsFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOyFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scO1loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scO2FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPH1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPIloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPMFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPM1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPRFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPR1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPWVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPX1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPiloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPjloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPkloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPlloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPmloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPpVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPx1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPyloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP1VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP2FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP2loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP4FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP4loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP6FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP9VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP-FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP-1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP_loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQDloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQEVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQFloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQF1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQGFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQGVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQIFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQIVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQJloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQK1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQLVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQLloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQNVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQN1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQOVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQSVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQS1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQT1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQVFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQVloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQW1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQXFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQXVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQXloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQX1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQYFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQYVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQYloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQeloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQfFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQzFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQzloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scRI1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scRJVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scRpVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scRqVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scRsloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scRtloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRel.xml#_-scR61oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scR8FoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_-scOFVoGEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="_-sSb8VoGEeS2WoXr83SnEA _-scNN1oGEeS2WoXr83SnEA _-scNiFoGEeS2WoXr83SnEA"
+        superClass="_-scON1oGEeS2WoXr83SnEA" typedElement="_-scOFloGEeS2WoXr83SnEA _-scOGVoGEeS2WoXr83SnEA _-scOHFoGEeS2WoXr83SnEA _-scOHloGEeS2WoXr83SnEA _-scOJFoGEeS2WoXr83SnEA _-scOJloGEeS2WoXr83SnEA _-scOKVoGEeS2WoXr83SnEA _-scOK1oGEeS2WoXr83SnEA _-scOLFoGEeS2WoXr83SnEA _-scOL1oGEeS2WoXr83SnEA _-scOMloGEeS2WoXr83SnEA _-scONFoGEeS2WoXr83SnEA _-scOWloGEeS2WoXr83SnEA _-scOXVoGEeS2WoXr83SnEA _-scOZVoGEeS2WoXr83SnEA _-scOf1oGEeS2WoXr83SnEA _-scOgloGEeS2WoXr83SnEA _-scOjloGEeS2WoXr83SnEA _-scOkVoGEeS2WoXr83SnEA _-scOn1oGEeS2WoXr83SnEA _-scOrloGEeS2WoXr83SnEA _-scOr1oGEeS2WoXr83SnEA _-scOsloGEeS2WoXr83SnEA _-scPG1oGEeS2WoXr83SnEA _-scPHVoGEeS2WoXr83SnEA _-scPLVoGEeS2WoXr83SnEA _-scPcVoGEeS2WoXr83SnEA _-scQAVoGEeS2WoXr83SnEA _-scQa1oGEeS2WoXr83SnEA _-scQbloGEeS2WoXr83SnEA _-scQk1oGEeS2WoXr83SnEA _-scQqVoGEeS2WoXr83SnEA _-scQqloGEeS2WoXr83SnEA _-scQ51oGEeS2WoXr83SnEA _-scQ_VoGEeS2WoXr83SnEA _-scQ_loGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_-scOFloGEeS2WoXr83SnEA" name="*" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="_-scReFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOF1oGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+        <ownedParameter xmi:id="_-scOGFoGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOGVoGEeS2WoXr83SnEA" name="+" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="_-scReVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOGloGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+        <ownedParameter xmi:id="_-scOG1oGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOHFoGEeS2WoXr83SnEA" name="-" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="_-scRd1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOHVoGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOHloGEeS2WoXr83SnEA" name="-" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="_-scReVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOH1oGEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+        <ownedParameter xmi:id="_-scOIFoGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOIVoGEeS2WoXr83SnEA" name="/" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="_-scReFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOIloGEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.&#xA;Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="_-scOI1oGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOJFoGEeS2WoXr83SnEA" name="abs" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="_-scOJVoGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOJloGEeS2WoXr83SnEA" name="compareTo" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="_-scOJ1oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_-scOKFoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOKVoGEeS2WoXr83SnEA" name="div" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+        <ownedComment xmi:id="_-scOKloGEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+        <ownedParameter xmi:id="_-scOK1oGEeS2WoXr83SnEA" name="i" type="_-scOFVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOLFoGEeS2WoXr83SnEA" name="max" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="_-scOLVoGEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+        <ownedParameter xmi:id="_-scOLloGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOL1oGEeS2WoXr83SnEA" name="min" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="_-scOMFoGEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+        <ownedParameter xmi:id="_-scOMVoGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOMloGEeS2WoXr83SnEA" name="mod" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+        <ownedComment xmi:id="_-scOM1oGEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+        <ownedParameter xmi:id="_-scONFoGEeS2WoXr83SnEA" name="i" type="_-scOFVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scONVoGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_-scONloGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_-scON1oGEeS2WoXr83SnEA" name="Real" superClass="_-scP81oGEeS2WoXr83SnEA _-scQQFoGEeS2WoXr83SnEA"
+        typedElement="_-scOIVoGEeS2WoXr83SnEA _-scOOFoGEeS2WoXr83SnEA _-scOO1oGEeS2WoXr83SnEA _-scOPloGEeS2WoXr83SnEA _-scOQFoGEeS2WoXr83SnEA _-scOQ1oGEeS2WoXr83SnEA _-scOWFoGEeS2WoXr83SnEA _-scOX1oGEeS2WoXr83SnEA _-scOYloGEeS2WoXr83SnEA _-scOuFoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_-scOOFoGEeS2WoXr83SnEA" name="*" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+          precedence="_-scReFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOOVoGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+        <ownedParameter xmi:id="_-scOOloGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOO1oGEeS2WoXr83SnEA" name="+" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+          precedence="_-scReVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOPFoGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+        <ownedParameter xmi:id="_-scOPVoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOPloGEeS2WoXr83SnEA" name="-" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+          precedence="_-scRd1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOP1oGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOQFoGEeS2WoXr83SnEA" name="-" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+          precedence="_-scReVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOQVoGEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+        <ownedParameter xmi:id="_-scOQloGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOQ1oGEeS2WoXr83SnEA" name="/" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+          precedence="_-scReFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scORFoGEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+        <ownedParameter xmi:id="_-scORVoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scORloGEeS2WoXr83SnEA" name="&lt;" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOR1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+        <ownedParameter xmi:id="_-scOSFoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOSVoGEeS2WoXr83SnEA" name="&lt;=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOSloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+        <ownedParameter xmi:id="_-scOS1oGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOTFoGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOTVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_-scOTloGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOT1oGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOUFoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_-scOUVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOUloGEeS2WoXr83SnEA" name=">" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOU1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+        <ownedParameter xmi:id="_-scOVFoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOVVoGEeS2WoXr83SnEA" name=">=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOVloGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+        <ownedParameter xmi:id="_-scOV1oGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOWFoGEeS2WoXr83SnEA" name="abs" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+        <ownedComment xmi:id="_-scOWVoGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOWloGEeS2WoXr83SnEA" name="compareTo" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+        <ownedComment xmi:id="_-scOW1oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_-scOXFoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOXVoGEeS2WoXr83SnEA" name="floor" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+        <ownedComment xmi:id="_-scOXloGEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOX1oGEeS2WoXr83SnEA" name="max" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+        <ownedComment xmi:id="_-scOYFoGEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+        <ownedParameter xmi:id="_-scOYVoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOYloGEeS2WoXr83SnEA" name="min" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+        <ownedComment xmi:id="_-scOY1oGEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+        <ownedParameter xmi:id="_-scOZFoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOZVoGEeS2WoXr83SnEA" name="round" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+        <ownedComment xmi:id="_-scOZloGEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOZ1oGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_-scOaFoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_-scOaVoGEeS2WoXr83SnEA" name="String" templateParameterSubstitution="_-sSb9FoGEeS2WoXr83SnEA _-scNOloGEeS2WoXr83SnEA _-scNi1oGEeS2WoXr83SnEA"
+        superClass="_-scP81oGEeS2WoXr83SnEA _-scQQFoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_-scOaloGEeS2WoXr83SnEA" name="+" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+          precedence="_-scReVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOa1oGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="_-scObFoGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scObVoGEeS2WoXr83SnEA" name="&lt;" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scObloGEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_-scOb1oGEeS2WoXr83SnEA" name="s" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOcFoGEeS2WoXr83SnEA" name="&lt;=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOcVoGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_-scOcloGEeS2WoXr83SnEA" name="s" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOc1oGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scOdFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOdVoGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scOdloGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOd1oGEeS2WoXr83SnEA" name=">" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOeFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_-scOeVoGEeS2WoXr83SnEA" name="s" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOeloGEeS2WoXr83SnEA" name=">=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scOe1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+        <ownedParameter xmi:id="_-scOfFoGEeS2WoXr83SnEA" name="s" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOfVoGEeS2WoXr83SnEA" name="at" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scOfloGEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+        <ownedParameter xmi:id="_-scOf1oGEeS2WoXr83SnEA" name="i" type="_-scOFVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOgFoGEeS2WoXr83SnEA" name="characters" type="_-scNiVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+        <ownedComment xmi:id="_-scOgVoGEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOgloGEeS2WoXr83SnEA" name="compareTo" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+        <ownedComment xmi:id="_-scOg1oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+        <ownedParameter xmi:id="_-scOhFoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOhVoGEeS2WoXr83SnEA" name="concat" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+        <ownedComment xmi:id="_-scOhloGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+        <ownedParameter xmi:id="_-scOh1oGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOiFoGEeS2WoXr83SnEA" name="endsWith" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+        <ownedComment xmi:id="_-scOiVoGEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.&#xA;Every string ends with the empty string."/>
+        <ownedParameter xmi:id="_-scOiloGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOi1oGEeS2WoXr83SnEA" name="equalsIgnoreCase" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+        <ownedComment xmi:id="_-scOjFoGEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+        <ownedParameter xmi:id="_-scOjVoGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOjloGEeS2WoXr83SnEA" name="indexOf" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+        <ownedComment xmi:id="_-scOj1oGEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="_-scOkFoGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOkVoGEeS2WoXr83SnEA" name="lastIndexOf" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+        <ownedComment xmi:id="_-scOkloGEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].&#xA;The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+        <ownedParameter xmi:id="_-scOk1oGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOlFoGEeS2WoXr83SnEA" name="matches" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+        <ownedComment xmi:id="_-scOlVoGEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+        <ownedParameter xmi:id="_-scOlloGEeS2WoXr83SnEA" name="regex" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOl1oGEeS2WoXr83SnEA" name="replaceAll" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scOmFoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+        <ownedParameter xmi:id="_-scOmVoGEeS2WoXr83SnEA" name="regex" type="_-scOaVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_-scOmloGEeS2WoXr83SnEA" name="replacement" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOm1oGEeS2WoXr83SnEA" name="replaceFirst" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scOnFoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+        <ownedParameter xmi:id="_-scOnVoGEeS2WoXr83SnEA" name="regex" type="_-scOaVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_-scOnloGEeS2WoXr83SnEA" name="replacement" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOn1oGEeS2WoXr83SnEA" name="size" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+        <ownedComment xmi:id="_-scOoFoGEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOoVoGEeS2WoXr83SnEA" name="startsWith" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+        <ownedComment xmi:id="_-scOoloGEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.&#xA;Every string starts with the empty string."/>
+        <ownedParameter xmi:id="_-scOo1oGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOpFoGEeS2WoXr83SnEA" name="substituteAll" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+        <ownedComment xmi:id="_-scOpVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+        <ownedParameter xmi:id="_-scOploGEeS2WoXr83SnEA" name="oldSubstring" type="_-scOaVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_-scOp1oGEeS2WoXr83SnEA" name="newSubstring" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOqFoGEeS2WoXr83SnEA" name="substituteFirst" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+        <ownedComment xmi:id="_-scOqVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.&#xA;Returns invalid if there is no first occurrence."/>
+        <ownedParameter xmi:id="_-scOqloGEeS2WoXr83SnEA" name="oldSubstring" type="_-scOaVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_-scOq1oGEeS2WoXr83SnEA" name="newSubstring" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOrFoGEeS2WoXr83SnEA" name="substring" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scOrVoGEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+        <ownedParameter xmi:id="_-scOrloGEeS2WoXr83SnEA" name="lower" type="_-scOFVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_-scOr1oGEeS2WoXr83SnEA" name="upper" type="_-scOFVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOsFoGEeS2WoXr83SnEA" name="toBoolean" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scOsVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOsloGEeS2WoXr83SnEA" name="toInteger" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scOs1oGEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOtFoGEeS2WoXr83SnEA" name="toLower" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="_-scOtVoGEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOtloGEeS2WoXr83SnEA" name="toLowerCase" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+        <ownedComment xmi:id="_-scOt1oGEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOuFoGEeS2WoXr83SnEA" name="toReal" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scOuVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOuloGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_-scOu1oGEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOvFoGEeS2WoXr83SnEA" name="toUpper" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="_-scOvVoGEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOvloGEeS2WoXr83SnEA" name="toUpperCase" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+        <ownedComment xmi:id="_-scOv1oGEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.&#xA;Otherwise, returns the same string as oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOwFoGEeS2WoXr83SnEA" name="tokenize" type="_-scNiVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_-scOwVoGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.&#xA;The delimiters are omitted from the return."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOwloGEeS2WoXr83SnEA" name="tokenize" type="_-scNiVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_-scOw1oGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+        <ownedParameter xmi:id="_-scOxFoGEeS2WoXr83SnEA" name="delimiters" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOxVoGEeS2WoXr83SnEA" name="tokenize" type="_-scNiVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+        <ownedComment xmi:id="_-scOxloGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is&#xA;true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+        <ownedParameter xmi:id="_-scOx1oGEeS2WoXr83SnEA" name="delimiters" type="_-scOaVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_-scOyFoGEeS2WoXr83SnEA" name="returnDelimiters" type="_-scN91oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scOyVoGEeS2WoXr83SnEA" name="trim" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+        <ownedComment xmi:id="_-scOyloGEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+      </ownedOperation>
+      <typedElement xmi:type="flatemofqvt:Property" href="RelMM.xml#_-scRg1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="RelMM.xml#_-scRhFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="RelMM.xml#_-scRiloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOD1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scONVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOZ1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOaloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scObFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOfVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOhVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOh1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOiloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOjVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOkFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOk1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOlloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOl1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOmVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOmloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOm1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOnVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOnloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOo1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOpFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOploGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOp1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOqFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOqloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOq1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOrFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOtFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOtloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOuloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOvFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOvloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOxFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOx1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOyVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scP7loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP8VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQL1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQY1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Function" href="UmlToRel.xml#_-scRoloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="UmlToRel.xml#_-scRo1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRel.xml#_-scRpFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRploGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRp1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRel.xml#_-scRqFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRqloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRq1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRrFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRrVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRrloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Function" href="UmlToRel.xml#_-scRr1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Parameter" href="UmlToRel.xml#_-scRsFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRel.xml#_-scRsVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRs1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRtFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRel.xml#_-scRtVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRt1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRuFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRuVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRuloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRu1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRw1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRyFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scRyVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scRz1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR0FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR1FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR1loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR3VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR31oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR4loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR41oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR5FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR8VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scR8loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR81oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="UmlMM.xml#_-sSbk1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="UmlMM.xml#_-sSblFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="UmlMM.xml#_-sSbmFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_-scOy1oGEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="_-scOFVoGEeS2WoXr83SnEA">
+      <ownedOperation xmi:id="_-scOzFoGEeS2WoXr83SnEA" name="oclAsType" type="_-scO0FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+        <ownedComment xmi:id="_-scOzVoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to&#xA;Real or Integer, but the e[unlimited] value may not.&#xA;Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+        <ownedTemplateSignature xmi:id="_-scOzloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scOz1oGEeS2WoXr83SnEA" parameteredElement="_-scO0FoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO0FoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scOz1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scM-1oGEeS2WoXr83SnEA" typedElement="_-scOzFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scO0VoGEeS2WoXr83SnEA" name="type" type="_-scM-VoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-scO0loGEeS2WoXr83SnEA" name="Bag" superClass="_-sScB1oGEeS2WoXr83SnEA" typedElement="_-scO21oGEeS2WoXr83SnEA _-scO3loGEeS2WoXr83SnEA _-scO5loGEeS2WoXr83SnEA _-scO6VoGEeS2WoXr83SnEA _-scPB1oGEeS2WoXr83SnEA _-scPC1oGEeS2WoXr83SnEA"
+        elementType="_-scO1VoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_-scO01oGEeS2WoXr83SnEA" templateBinding="_-sSbz1oGEeS2WoXr83SnEA _-sSb0loGEeS2WoXr83SnEA _-sSb1VoGEeS2WoXr83SnEA _-sSb2FoGEeS2WoXr83SnEA _-sSb21oGEeS2WoXr83SnEA _-sSb3loGEeS2WoXr83SnEA _-sSb4VoGEeS2WoXr83SnEA _-sSb5FoGEeS2WoXr83SnEA _-sSb51oGEeS2WoXr83SnEA _-sSb6loGEeS2WoXr83SnEA _-sSb7VoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scO1FoGEeS2WoXr83SnEA" parameteredElement="_-scO1VoGEeS2WoXr83SnEA"
+            templateParameterSubstitution="_-sSb0FoGEeS2WoXr83SnEA _-sSb01oGEeS2WoXr83SnEA _-sSb1loGEeS2WoXr83SnEA _-sSb2VoGEeS2WoXr83SnEA _-sSb3FoGEeS2WoXr83SnEA _-sSb31oGEeS2WoXr83SnEA _-sSb4loGEeS2WoXr83SnEA _-sSb5VoGEeS2WoXr83SnEA _-sSb6FoGEeS2WoXr83SnEA _-sSb61oGEeS2WoXr83SnEA _-sSb7loGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO1VoGEeS2WoXr83SnEA" name="T" templateParameter="_-scO1FoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="_-sScCVoGEeS2WoXr83SnEA _-scNPVoGEeS2WoXr83SnEA _-scNjloGEeS2WoXr83SnEA _-scNrFoGEeS2WoXr83SnEA _-scNx1oGEeS2WoXr83SnEA"
+              typedElement="_-scO6FoGEeS2WoXr83SnEA _-scO-VoGEeS2WoXr83SnEA _-scPAFoGEeS2WoXr83SnEA _-scPBloGEeS2WoXr83SnEA _-scPCloGEeS2WoXr83SnEA _-scPDloGEeS2WoXr83SnEA _-scPEloGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_-scO1loGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scO11oGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scO2FoGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scO2VoGEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+        <ownedParameter xmi:id="_-scO2loGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scO21oGEeS2WoXr83SnEA" name="excluding" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_-scO3FoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+        <ownedParameter xmi:id="_-scO3VoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scO3loGEeS2WoXr83SnEA" name="excludingAll" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_-scO31oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_-scO4FoGEeS2WoXr83SnEA" name="objects" type="_-scMtFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scO4VoGEeS2WoXr83SnEA" name="flatten" type="_-sSb1FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_-scO4loGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].&#xA;If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_-scO41oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scO5FoGEeS2WoXr83SnEA" parameteredElement="_-scO5VoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO5VoGEeS2WoXr83SnEA" name="T2" templateParameter="_-scO5FoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-sSb1loGEeS2WoXr83SnEA _-sScAFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scO5loGEeS2WoXr83SnEA" name="including" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_-scO51oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_-scO6FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scO6VoGEeS2WoXr83SnEA" name="includingAll" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_-scO6loGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_-scO61oGEeS2WoXr83SnEA" name="objects" type="_-sScB1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scO7FoGEeS2WoXr83SnEA" name="selectByKind" type="_-sSb11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_-scO7VoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scO7loGEeS2WoXr83SnEA" parameteredElement="_-scO71oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO71oGEeS2WoXr83SnEA" name="TT" templateParameter="_-scO7loGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-sSb2VoGEeS2WoXr83SnEA _-sScA1oGEeS2WoXr83SnEA _-scM_loGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scO8FoGEeS2WoXr83SnEA" name="type" type="_-scM_FoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scO8VoGEeS2WoXr83SnEA" name="selectByType" type="_-sSb2loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_-scO8loGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scO81oGEeS2WoXr83SnEA" parameteredElement="_-scO9FoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO9FoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scO81oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-sSb3FoGEeS2WoXr83SnEA _-sScBloGEeS2WoXr83SnEA _-scNAVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scO9VoGEeS2WoXr83SnEA" name="type" type="_-scM_1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scO9loGEeS2WoXr83SnEA" name="closure" type="_-scNqloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_-scO91oGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_-scO-FoGEeS2WoXr83SnEA" name="lambda" type="_-sSbtVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scO-VoGEeS2WoXr83SnEA" name="i" type="_-scO1VoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scO-loGEeS2WoXr83SnEA" name="collectNested" type="_-sSbzloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_-scO-1oGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="_-scO_FoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scO_VoGEeS2WoXr83SnEA" parameteredElement="_-scO_loGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO_loGEeS2WoXr83SnEA" name="V" templateParameter="_-scO_VoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-sSb0FoGEeS2WoXr83SnEA _-sSb-loGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scO_1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbsloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPAFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPAVoGEeS2WoXr83SnEA" name="collect" type="_-sSb0VoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_-scPAloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPA1oGEeS2WoXr83SnEA" parameteredElement="_-scPBFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPBFoGEeS2WoXr83SnEA" name="V" templateParameter="_-scPA1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-sSb01oGEeS2WoXr83SnEA _-sSb_VoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scPBVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbs1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPBloGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPB1oGEeS2WoXr83SnEA" name="reject" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_-scPCFoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].&#xA;&#xA;oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+        <ownedParameter xmi:id="_-scPCVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbsVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPCloGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPC1oGEeS2WoXr83SnEA" name="select" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_-scPDFoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].&#xA;&#xA;oclCode[self->select(iterator | body) =&#xA;self->iterate(iterator; result : Bag(T) = Bag{} |&#xA;if body then result->including(iterator)&#xA;else result&#xA;endif)]"/>
+        <ownedParameter xmi:id="_-scPDVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbsVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPDloGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPD1oGEeS2WoXr83SnEA" name="sortedBy" type="_-scNjFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_-scPEFoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_-scPEVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbtFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPEloGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scPE1oGEeS2WoXr83SnEA" name="Class" superClass="_-scPxVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scPFFoGEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="_-sSb4loGEeS2WoXr83SnEA _-scMqloGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPOVoGEeS2WoXr83SnEA _-scPPFoGEeS2WoXr83SnEA _-scPTVoGEeS2WoXr83SnEA _-scPUFoGEeS2WoXr83SnEA _-scPUloGEeS2WoXr83SnEA _-scPVVoGEeS2WoXr83SnEA _-scPd1oGEeS2WoXr83SnEA _-scPqVoGEeS2WoXr83SnEA _-scPrVoGEeS2WoXr83SnEA"
+        elementType="_-scPF1oGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_-scPFVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPFloGEeS2WoXr83SnEA" parameteredElement="_-scPF1oGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPF1oGEeS2WoXr83SnEA" name="T" templateParameter="_-scPFloGEeS2WoXr83SnEA"
+              templateParameterSubstitution="_-sSb31oGEeS2WoXr83SnEA _-scMp1oGEeS2WoXr83SnEA _-scNQFoGEeS2WoXr83SnEA _-scNcFoGEeS2WoXr83SnEA _-scNkVoGEeS2WoXr83SnEA _-scNr1oGEeS2WoXr83SnEA _-scNyloGEeS2WoXr83SnEA"
+              typedElement="_-sSbzFoGEeS2WoXr83SnEA _-scPGVoGEeS2WoXr83SnEA _-scPT1oGEeS2WoXr83SnEA _-scPW1oGEeS2WoXr83SnEA _-scPXVoGEeS2WoXr83SnEA _-scPc1oGEeS2WoXr83SnEA _-scPeFoGEeS2WoXr83SnEA _-scPe1oGEeS2WoXr83SnEA _-scPgloGEeS2WoXr83SnEA _-scPiVoGEeS2WoXr83SnEA _-scPjFoGEeS2WoXr83SnEA _-scPjVoGEeS2WoXr83SnEA _-scPkVoGEeS2WoXr83SnEA _-scPlFoGEeS2WoXr83SnEA _-scPlVoGEeS2WoXr83SnEA _-scPmVoGEeS2WoXr83SnEA _-scPnVoGEeS2WoXr83SnEA _-scPpFoGEeS2WoXr83SnEA _-scPqFoGEeS2WoXr83SnEA _-scPrFoGEeS2WoXr83SnEA _-scPsFoGEeS2WoXr83SnEA _-scPtFoGEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="_-scPGFoGEeS2WoXr83SnEA" name="Collection" type="_-sSb4FoGEeS2WoXr83SnEA" implicit="true" opposite="_-scPGVoGEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+          <templateParameterSubstitution href="RelMM.xml#_-scRj1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="RelMM.xml#_-scRkloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-sSb8VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-sSb9FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-sSb91oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-sSb-loGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-sSb_VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-sScAFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-sScA1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-sScBloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-sScCVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-sScDFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMkloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMlVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMmFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMm1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMnloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMoVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMpFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMp1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMqloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMrVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMsFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMs1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMtloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMuVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMvFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMv1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMwloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMxVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMyFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMy1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scMzloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM0VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM1FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM11oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM2loGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM3VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM4FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM41oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM5loGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM6VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM7FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM71oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM8loGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM9VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scM-FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="UmlMM.xml#_-sSbn1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="UmlMM.xml#_-sSboloGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="RelMM.xml#_-scRjloGEeS2WoXr83SnEA"/>
+        <templateBinding href="RelMM.xml#_-scRkVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-sSb8FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-sSb81oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-sSb9loGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-sSb-VoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-sSb_FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-sSb_1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-sScAloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-sScBVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-sScCFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-sScC1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMkVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMlFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMl1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMmloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMnVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMoFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMo1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMploGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMqVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMrFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMr1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMsloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMtVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMuFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMu1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMvloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMwVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMxFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMx1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMyloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scMzVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM0FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM01oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM1loGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM2VoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM3FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM31oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM4loGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM5VoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM6FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM61oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM7loGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM8VoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM9FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scM91oGEeS2WoXr83SnEA"/>
+        <templateBinding href="UmlMM.xml#_-sSbnloGEeS2WoXr83SnEA"/>
+        <templateBinding href="UmlMM.xml#_-sSboVoGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="_-scPGVoGEeS2WoXr83SnEA" isStatic="true" name="elementType" type="_-scPF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+          opposite="_-scPGFoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scPGloGEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_-scPG1oGEeS2WoXr83SnEA" isStatic="true" name="lower" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+        <ownedComment xmi:id="_-scPHFoGEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_-scPHVoGEeS2WoXr83SnEA" isStatic="true" name="upper" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+        <ownedComment xmi:id="_-scPHloGEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="_-scPH1oGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scPIFoGEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+        <ownedParameter xmi:id="_-scPIVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPIloGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scPI1oGEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,&#xA;in the case of an ordered collection type."/>
+        <ownedParameter xmi:id="_-scPJFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPJVoGEeS2WoXr83SnEA" name="asBag" type="_-sSb3VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+        <ownedComment xmi:id="_-scPJloGEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPJ1oGEeS2WoXr83SnEA" name="asOrderedSet" type="_-scNbloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+        <ownedComment xmi:id="_-scPKFoGEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,&#xA;in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPKVoGEeS2WoXr83SnEA" name="asSequence" type="_-scNj1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+        <ownedComment xmi:id="_-scPKloGEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPK1oGEeS2WoXr83SnEA" name="asSet" type="_-scNrVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+        <ownedComment xmi:id="_-scPLFoGEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPLVoGEeS2WoXr83SnEA" name="count" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+        <ownedComment xmi:id="_-scPLloGEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+        <ownedParameter xmi:id="_-scPL1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPMFoGEeS2WoXr83SnEA" name="excludes" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+        <ownedComment xmi:id="_-scPMVoGEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_-scPMloGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPM1oGEeS2WoXr83SnEA" name="excludesAll" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+        <ownedComment xmi:id="_-scPNFoGEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="_-scPNVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPNloGEeS2WoXr83SnEA" parameteredElement="_-scPN1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPN1oGEeS2WoXr83SnEA" name="T2" templateParameter="_-scPNloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMlVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scPOFoGEeS2WoXr83SnEA" name="c2" type="_-scMk1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPOVoGEeS2WoXr83SnEA" name="excluding" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_-scPOloGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+        <ownedParameter xmi:id="_-scPO1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPPFoGEeS2WoXr83SnEA" name="excludingAll" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_-scPPVoGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_-scPPloGEeS2WoXr83SnEA" name="objects" type="_-scMtFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPP1oGEeS2WoXr83SnEA" name="flatten" type="_-scMlloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_-scPQFoGEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].&#xA;If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_-scPQVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPQloGEeS2WoXr83SnEA" parameteredElement="_-scPQ1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPQ1oGEeS2WoXr83SnEA" name="T2" templateParameter="_-scPQloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMmFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPRFoGEeS2WoXr83SnEA" name="includes" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+        <ownedComment xmi:id="_-scPRVoGEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_-scPRloGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPR1oGEeS2WoXr83SnEA" name="includesAll" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+        <ownedComment xmi:id="_-scPSFoGEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+        <ownedTemplateSignature xmi:id="_-scPSVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPSloGEeS2WoXr83SnEA" parameteredElement="_-scPS1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPS1oGEeS2WoXr83SnEA" name="T2" templateParameter="_-scPSloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMm1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scPTFoGEeS2WoXr83SnEA" name="c2" type="_-scMmVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPTVoGEeS2WoXr83SnEA" name="including" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_-scPTloGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_-scPT1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPUFoGEeS2WoXr83SnEA" name="includingAll" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_-scPUVoGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_-scPUloGEeS2WoXr83SnEA" name="objects" type="_-scPFFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPU1oGEeS2WoXr83SnEA" name="intersection" type="_-sSb3VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_-scPVFoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+        <ownedParameter xmi:id="_-scPVVoGEeS2WoXr83SnEA" name="c" type="_-scPFFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPVloGEeS2WoXr83SnEA" name="intersection" type="_-scNrVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_-scPV1oGEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+        <ownedParameter xmi:id="_-scPWFoGEeS2WoXr83SnEA" name="u" type="_-scNyFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPWVoGEeS2WoXr83SnEA" name="isEmpty" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+        <ownedComment xmi:id="_-scPWloGEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?&#xA;&#xA;Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPW1oGEeS2WoXr83SnEA" name="max" type="_-scPF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+        <ownedComment xmi:id="_-scPXFoGEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the max operation.&#xA;The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPXVoGEeS2WoXr83SnEA" name="min" type="_-scPF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+        <ownedComment xmi:id="_-scPXloGEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].&#xA;Elements must be of a type supporting the min operation.&#xA;The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.&#xA;UnlimitedNatural, Integer and Real fulfill this condition."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPX1oGEeS2WoXr83SnEA" name="notEmpty" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+        <ownedComment xmi:id="_-scPYFoGEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?&#xA;&#xA;oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPYVoGEeS2WoXr83SnEA" name="product" type="_-scNp1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+        <ownedComment xmi:id="_-scPYloGEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+        <ownedTemplateSignature xmi:id="_-scPY1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPZFoGEeS2WoXr83SnEA" parameteredElement="_-scPZVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPZVoGEeS2WoXr83SnEA" name="T2" templateParameter="_-scPZFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMnloGEeS2WoXr83SnEA" typedElement="_-sSbzVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scPZloGEeS2WoXr83SnEA" name="c2" type="_-scMnFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPZ1oGEeS2WoXr83SnEA" name="selectByKind" type="_-scMn1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_-scPaFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPaVoGEeS2WoXr83SnEA" parameteredElement="_-scPaloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPaloGEeS2WoXr83SnEA" name="TT" templateParameter="_-scPaVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMoVoGEeS2WoXr83SnEA _-scNBFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scPa1oGEeS2WoXr83SnEA" name="type" type="_-scNAloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPbFoGEeS2WoXr83SnEA" name="selectByType" type="_-scMoloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_-scPbVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPbloGEeS2WoXr83SnEA" parameteredElement="_-scPb1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPb1oGEeS2WoXr83SnEA" name="TT" templateParameter="_-scPbloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMpFoGEeS2WoXr83SnEA _-scNB1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scPcFoGEeS2WoXr83SnEA" name="type" type="_-scNBVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPcVoGEeS2WoXr83SnEA" name="size" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+        <ownedComment xmi:id="_-scPcloGEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPc1oGEeS2WoXr83SnEA" name="sum" type="_-scPF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+        <ownedComment xmi:id="_-scPdFoGEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].&#xA;Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.&#xA;The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).&#xA;UnlimitedNatural, Integer and Real fulfill this condition.&#xA;&#xA;If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,&#xA;which may result in unpredictable results during evaluation.&#xA;If an implementation is able to detect a lack of associativity or commutativity,&#xA;the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPdVoGEeS2WoXr83SnEA" name="union" type="_-sSb3VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="_-scPdloGEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+        <ownedParameter xmi:id="_-scPd1oGEeS2WoXr83SnEA" name="c" type="_-scPFFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPeFoGEeS2WoXr83SnEA" name="any" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+        <ownedComment xmi:id="_-scPeVoGEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].&#xA;If there is more than one element for which body is oclText[true], one of them is returned.&#xA;There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+        <ownedParameter xmi:id="_-scPeloGEeS2WoXr83SnEA" name="lambda" type="_-sSbtloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPe1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPfFoGEeS2WoXr83SnEA" name="collectNested" type="_-sScCloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_-scPfVoGEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+        <ownedTemplateSignature xmi:id="_-scPfloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPf1oGEeS2WoXr83SnEA" parameteredElement="_-scPgFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPgFoGEeS2WoXr83SnEA" name="V" templateParameter="_-scPf1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-sScDFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scPgVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbt1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPgloGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPg1oGEeS2WoXr83SnEA" name="collect" type="_-scMkFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedComment xmi:id="_-scPhFoGEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.&#xA;The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.&#xA;collectNested is defined individually for each subclass of CollectionType."/>
+        <ownedTemplateSignature xmi:id="_-scPhVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPhloGEeS2WoXr83SnEA" parameteredElement="_-scPh1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPh1oGEeS2WoXr83SnEA" name="V" templateParameter="_-scPhloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMkloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scPiFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbuFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPiVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPiloGEeS2WoXr83SnEA" name="exists" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedParameter xmi:id="_-scPi1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbtloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPjFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPjVoGEeS2WoXr83SnEA" name="j" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPjloGEeS2WoXr83SnEA" name="exists" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+        <ownedComment xmi:id="_-scPj1oGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+        <ownedParameter xmi:id="_-scPkFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbtloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPkVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPkloGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedParameter xmi:id="_-scPk1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbtloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPlFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPlVoGEeS2WoXr83SnEA" name="j" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPlloGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+        <ownedComment xmi:id="_-scPl1oGEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="_-scPmFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbtloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPmVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPmloGEeS2WoXr83SnEA" name="isUnique" type="_-scN91oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+        <ownedComment xmi:id="_-scPm1oGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+        <ownedParameter xmi:id="_-scPnFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbuloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPnVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPnloGEeS2WoXr83SnEA" name="iterate" isRequired="false" type="_-scPoVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+        <ownedTemplateSignature xmi:id="_-scPn1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPoFoGEeS2WoXr83SnEA" parameteredElement="_-scPoVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPoVoGEeS2WoXr83SnEA" name="Tacc" templateParameter="_-scPoFoGEeS2WoXr83SnEA"
+                typedElement="_-scPnloGEeS2WoXr83SnEA _-scPo1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scPoloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbuVoGEeS2WoXr83SnEA"/>
+        <ownedAccumulator xmi:id="_-scPo1oGEeS2WoXr83SnEA" name="acc" isRequired="false" type="_-scPoVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPpFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPpVoGEeS2WoXr83SnEA" name="one" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+        <ownedComment xmi:id="_-scPploGEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_-scPp1oGEeS2WoXr83SnEA" name="lambda" type="_-sSbtloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPqFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPqVoGEeS2WoXr83SnEA" name="reject" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_-scPqloGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_-scPq1oGEeS2WoXr83SnEA" name="lambda" type="_-sSbtloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPrFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPrVoGEeS2WoXr83SnEA" name="select" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_-scPrloGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_-scPr1oGEeS2WoXr83SnEA" name="lambda" type="_-sSbtloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPsFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPsVoGEeS2WoXr83SnEA" name="sortedBy" type="_-scNj1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_-scPsloGEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_-scPs1oGEeS2WoXr83SnEA" name="lambda" type="_-sSbuloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scPtFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scPtVoGEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="_-sSb5VoGEeS2WoXr83SnEA _-scMsFoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scPtloGEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+      <ownedAttribute xmi:id="_-scPt1oGEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="_-scNcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+          opposite="_-scPvVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scPuFoGEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+      </ownedAttribute>
+      <ownedOperation xmi:id="_-scPuVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+        <ownedComment xmi:id="_-scPuloGEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scPu1oGEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="_-scMrVoGEeS2WoXr83SnEA _-scNQ1oGEeS2WoXr83SnEA _-scNc1oGEeS2WoXr83SnEA _-scNzVoGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scPvFoGEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+      <ownedAttribute xmi:id="_-scPvVoGEeS2WoXr83SnEA" name="Enumeration" type="_-sSb41oGEeS2WoXr83SnEA" implicit="true" opposite="_-scPt1oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scPvloGEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="_-sSb6FoGEeS2WoXr83SnEA _-scMs1oGEeS2WoXr83SnEA"
+        superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" instanceType="_-scPwVoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_-scPv1oGEeS2WoXr83SnEA" templateBinding="_-scM-loGEeS2WoXr83SnEA _-scM_VoGEeS2WoXr83SnEA _-scNAFoGEeS2WoXr83SnEA _-scNA1oGEeS2WoXr83SnEA _-scNBloGEeS2WoXr83SnEA _-scNCVoGEeS2WoXr83SnEA _-scNDFoGEeS2WoXr83SnEA _-scND1oGEeS2WoXr83SnEA _-scNEloGEeS2WoXr83SnEA _-scNFVoGEeS2WoXr83SnEA _-scNGFoGEeS2WoXr83SnEA _-scNG1oGEeS2WoXr83SnEA _-scNHloGEeS2WoXr83SnEA _-scNIVoGEeS2WoXr83SnEA _-scNJFoGEeS2WoXr83SnEA _-scNJ1oGEeS2WoXr83SnEA _-scNKloGEeS2WoXr83SnEA _-scNLVoGEeS2WoXr83SnEA _-scNMFoGEeS2WoXr83SnEA _-scNM1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPwFoGEeS2WoXr83SnEA" parameteredElement="_-scPwVoGEeS2WoXr83SnEA"
+            templateParameterSubstitution="_-scM-1oGEeS2WoXr83SnEA _-scM_loGEeS2WoXr83SnEA _-scNAVoGEeS2WoXr83SnEA _-scNBFoGEeS2WoXr83SnEA _-scNB1oGEeS2WoXr83SnEA _-scNCloGEeS2WoXr83SnEA _-scNDVoGEeS2WoXr83SnEA _-scNEFoGEeS2WoXr83SnEA _-scNE1oGEeS2WoXr83SnEA _-scNFloGEeS2WoXr83SnEA _-scNGVoGEeS2WoXr83SnEA _-scNHFoGEeS2WoXr83SnEA _-scNH1oGEeS2WoXr83SnEA _-scNIloGEeS2WoXr83SnEA _-scNJVoGEeS2WoXr83SnEA _-scNKFoGEeS2WoXr83SnEA _-scNK1oGEeS2WoXr83SnEA _-scNLloGEeS2WoXr83SnEA _-scNMVoGEeS2WoXr83SnEA _-scNNFoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPwVoGEeS2WoXr83SnEA" name="T" templateParameter="_-scPwFoGEeS2WoXr83SnEA"
+              typedElement="_-scPw1oGEeS2WoXr83SnEA">
+            <ownedAttribute xmi:id="_-scPwloGEeS2WoXr83SnEA" name="Metaclass" type="_-sSb5loGEeS2WoXr83SnEA" implicit="true" opposite="_-scPw1oGEeS2WoXr83SnEA"/>
+          </ownedParameteredElement>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedAttribute xmi:id="_-scPw1oGEeS2WoXr83SnEA" name="instanceType" type="_-scPwVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+          opposite="_-scPwloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scPxFoGEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+      </ownedAttribute>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="_-scPxVoGEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="_-scMtloGEeS2WoXr83SnEA _-scN0FoGEeS2WoXr83SnEA"
+        typedElement="_-scO3VoGEeS2WoXr83SnEA _-scPL1oGEeS2WoXr83SnEA _-scPMloGEeS2WoXr83SnEA _-scPO1oGEeS2WoXr83SnEA _-scPRloGEeS2WoXr83SnEA _-scQO1oGEeS2WoXr83SnEA _-scQcFoGEeS2WoXr83SnEA _-scQhloGEeS2WoXr83SnEA _-scQ2VoGEeS2WoXr83SnEA _-scRKloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scPxloGEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.&#xA;Conceptually, OclAny behaves as a supertype for all the types.&#xA;Features of OclAny are available on each object in all OCL expressions.&#xA;OclAny is itself an instance of the metatype AnyType.&#xA;&#xA;All classes in a UML model inherit all operations defined on OclAny.&#xA;To avoid name conflicts between properties in the model and the properties inherited from OclAny,&#xA;all names on the properties of OclAny start with &#x2018;ocl.&#x2019;&#xA;Although theoretically there may still be name conflicts, they can be avoided.&#xA;One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.&#xA;&#xA;Operations of OclAny, where the instance of OclAny is called object."/>
+      <ownedOperation xmi:id="_-scPx1oGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scPyFoGEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+        <ownedParameter xmi:id="_-scPyVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPyloGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scPy1oGEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+        <ownedParameter xmi:id="_-scPzFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPzVoGEeS2WoXr83SnEA" name="oclAsSet" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+        <ownedComment xmi:id="_-scPzloGEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scPz1oGEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="_-scP01oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedComment xmi:id="_-scP0FoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.&#xA;The type T may be any classifier defined in the UML model;&#xA;if the actual type of oclText[self] at evaluation time does not conform to T,&#xA;then the oclAsType operation evaluates to oclText[invalid].&#xA;&#xA;In the case of feature redefinition, casting an object to a supertype of its actual type&#xA;does not access the supertype&#x2019;s definition of the feature;&#xA;according to the semantics of redefinition, the redefined feature simply does not exist for the object.&#xA;However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+        <ownedTemplateSignature xmi:id="_-scP0VoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scP0loGEeS2WoXr83SnEA" parameteredElement="_-scP01oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scP01oGEeS2WoXr83SnEA" name="TT" templateParameter="_-scP0loGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scNCloGEeS2WoXr83SnEA" typedElement="_-scPz1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scP1FoGEeS2WoXr83SnEA" name="type" type="_-scNCFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP1VoGEeS2WoXr83SnEA" name="oclIsInState" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+        <ownedComment xmi:id="_-scP1loGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+        <ownedParameter xmi:id="_-scP11oGEeS2WoXr83SnEA" name="statespec" type="_-scQP1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP2FoGEeS2WoXr83SnEA" name="oclIsInvalid" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true">
+        <ownedComment xmi:id="_-scP2VoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP2loGEeS2WoXr83SnEA" name="oclIsKindOf" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedComment xmi:id="_-scP21oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.&#xA;That is, oclText[self] is of type t or a subtype of t."/>
+        <ownedTemplateSignature xmi:id="_-scP3FoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scP3VoGEeS2WoXr83SnEA" parameteredElement="_-scP3loGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scP3loGEeS2WoXr83SnEA" name="T" templateParameter="_-scP3VoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scNDVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scP31oGEeS2WoXr83SnEA" name="type" type="_-scNC1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP4FoGEeS2WoXr83SnEA" name="oclIsNew" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_-scP4VoGEeS2WoXr83SnEA" body="Can only be used in a postcondition.&#xA;Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn&#x2019;t exist at precondition time)."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP4loGEeS2WoXr83SnEA" name="oclIsTypeOf" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedComment xmi:id="_-scP41oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+        <ownedTemplateSignature xmi:id="_-scP5FoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scP5VoGEeS2WoXr83SnEA" parameteredElement="_-scP5loGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scP5loGEeS2WoXr83SnEA" name="T" templateParameter="_-scP5VoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scNEFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scP51oGEeS2WoXr83SnEA" name="type" type="_-scNDloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP6FoGEeS2WoXr83SnEA" name="oclIsUndefined" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true">
+        <ownedComment xmi:id="_-scP6VoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP6loGEeS2WoXr83SnEA" name="oclLog" type="_-scQPVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="_-scP61oGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP7FoGEeS2WoXr83SnEA" name="oclLog" type="_-scQPVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+        <ownedComment xmi:id="_-scP7VoGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+        <ownedParameter xmi:id="_-scP7loGEeS2WoXr83SnEA" name="message" type="_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP71oGEeS2WoXr83SnEA" name="oclType" type="_-scNHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+        <ownedComment xmi:id="_-scP8FoGEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP8VoGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_-scP8loGEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scP81oGEeS2WoXr83SnEA" name="OclComparable" superClass="_-scPxVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scP9FoGEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived&#xA;compareTo implementation may be sorted."/>
+      <ownedOperation xmi:id="_-scP9VoGEeS2WoXr83SnEA" name="&lt;" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scP9loGEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+        <ownedParameter xmi:id="_-scP91oGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP-FoGEeS2WoXr83SnEA" name="&lt;=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scP-VoGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="_-scP-loGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP-1oGEeS2WoXr83SnEA" name=">" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scP_FoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+        <ownedParameter xmi:id="_-scP_VoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scP_loGEeS2WoXr83SnEA" name=">=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+          precedence="_-scReloGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scP_1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+        <ownedParameter xmi:id="_-scQAFoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQAVoGEeS2WoXr83SnEA" name="compareTo" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+        <ownedComment xmi:id="_-scQAloGEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.&#xA;&#xA;The compareTo operation should be commutative."/>
+        <ownedParameter xmi:id="_-scQA1oGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQBFoGEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="_-scMuVoGEeS2WoXr83SnEA _-scNsloGEeS2WoXr83SnEA _-scN01oGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scQCFoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scQBVoGEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined&#xA;for OclElement are therefore applicable to all user-defined types."/>
+      <ownedOperation xmi:id="_-scQBloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+        <ownedComment xmi:id="_-scQB1oGEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQCFoGEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="_-scQBFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+        <ownedComment xmi:id="_-scQCVoGEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQCloGEeS2WoXr83SnEA" name="oclContents" type="_-scNsFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+        <ownedComment xmi:id="_-scQC1oGEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="_-scQDFoGEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="_-scNHFoGEeS2WoXr83SnEA"
+        superClass="_-scQUloGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scQDVoGEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.&#xA;It has one single instance, identified as  oclText[invalid].&#xA;Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().&#xA;OclInvalid is itself an instance of the metatype InvalidType."/>
+      <ownedOperation xmi:id="_-scQDloGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scQD1oGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="_-scQEFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQEVoGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scQEloGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+        <ownedParameter xmi:id="_-scQE1oGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQFFoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+        <ownedComment xmi:id="_-scQFVoGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQFloGEeS2WoXr83SnEA" name="and" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="_-scRfFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQF1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQGFoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+          isValidating="true" precedence="_-scRf1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQGVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQGloGEeS2WoXr83SnEA" name="oclAsSet" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+      <ownedOperation xmi:id="_-scQG1oGEeS2WoXr83SnEA" name="oclAsType" type="_-scQHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+        <ownedTemplateSignature xmi:id="_-scQHFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQHVoGEeS2WoXr83SnEA" parameteredElement="_-scQHloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQHloGEeS2WoXr83SnEA" name="TT" templateParameter="_-scQHVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scNE1oGEeS2WoXr83SnEA" typedElement="_-scQG1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scQH1oGEeS2WoXr83SnEA" name="type" type="_-scNEVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQIFoGEeS2WoXr83SnEA" name="oclIsInvalid" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_-scQIVoGEeS2WoXr83SnEA" name="oclIsKindOf" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+        <ownedTemplateSignature xmi:id="_-scQIloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQI1oGEeS2WoXr83SnEA" parameteredElement="_-scQJFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQJFoGEeS2WoXr83SnEA" name="T" templateParameter="_-scQI1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scNFloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scQJVoGEeS2WoXr83SnEA" name="type" type="_-scNFFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQJloGEeS2WoXr83SnEA" name="oclIsTypeOf" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+        <ownedTemplateSignature xmi:id="_-scQJ1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQKFoGEeS2WoXr83SnEA" parameteredElement="_-scQKVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQKVoGEeS2WoXr83SnEA" name="T" templateParameter="_-scQKFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scNGVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scQKloGEeS2WoXr83SnEA" name="type" type="_-scNF1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQK1oGEeS2WoXr83SnEA" name="oclIsUndefined" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_-scQLFoGEeS2WoXr83SnEA" name="oclType" type="_-scNHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+      <ownedOperation xmi:id="_-scQLVoGEeS2WoXr83SnEA" name="or" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+          isValidating="true" precedence="_-scRfVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQLloGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQL1oGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_-scQMFoGEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQMVoGEeS2WoXr83SnEA" name="OclLambda" superClass="_-scPxVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scQMloGEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda&#xA;therefore apply to all lambda expressions."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQM1oGEeS2WoXr83SnEA" name="OclMessage" superClass="_-scPxVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scQNFoGEeS2WoXr83SnEA" body="OclMessage&#xA;This sub clause contains the definition of the standard type OclMessage.&#xA;As defined in this sub clause, each ocl message type is actually a template type with one parameter.&#xA;&#x2018;T&#x2019; denotes the parameter.&#xA;A concrete ocl message type is created by substituting an operation or signal for the T.&#xA;&#xA;The predefined type OclMessage is an instance of MessageType.&#xA;Every OclMessage is fully determined by either the operation, or signal given as parameter.&#xA;Note that there is conceptually an undefined (infinite) number of these types,&#xA;as each is determined by a different operation or signal.&#xA;These types are unnamed. Every type has as attributes the name of the operation or signal,&#xA;and either all formal parameters of the operation, or all attributes of the signal.&#xA;OclMessage is itself an instance of the metatype MessageType.&#xA;&#xA;OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+      <ownedOperation xmi:id="_-scQNVoGEeS2WoXr83SnEA" name="hasReturned" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_-scQNloGEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.&#xA;This implies the fact that the message has been sent. False in all other cases."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQN1oGEeS2WoXr83SnEA" name="isOperationCall" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_-scQOFoGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQOVoGEeS2WoXr83SnEA" name="isSignalSent" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_-scQOloGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQO1oGEeS2WoXr83SnEA" name="result" type="_-scPxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+        <ownedComment xmi:id="_-scQPFoGEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,&#xA;and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="_-scQPVoGEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="_-scMvFoGEeS2WoXr83SnEA _-scNH1oGEeS2WoXr83SnEA _-scNtVoGEeS2WoXr83SnEA _-scN1loGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scN-loGEeS2WoXr83SnEA _-scN_VoGEeS2WoXr83SnEA _-scOGFoGEeS2WoXr83SnEA _-scOG1oGEeS2WoXr83SnEA _-scOIFoGEeS2WoXr83SnEA _-scOI1oGEeS2WoXr83SnEA _-scOKFoGEeS2WoXr83SnEA _-scOLloGEeS2WoXr83SnEA _-scOMVoGEeS2WoXr83SnEA _-scOOloGEeS2WoXr83SnEA _-scOPVoGEeS2WoXr83SnEA _-scOQloGEeS2WoXr83SnEA _-scORVoGEeS2WoXr83SnEA _-scOSFoGEeS2WoXr83SnEA _-scOS1oGEeS2WoXr83SnEA _-scOTloGEeS2WoXr83SnEA _-scOUVoGEeS2WoXr83SnEA _-scOVFoGEeS2WoXr83SnEA _-scOV1oGEeS2WoXr83SnEA _-scOXFoGEeS2WoXr83SnEA _-scOYVoGEeS2WoXr83SnEA _-scOZFoGEeS2WoXr83SnEA _-scOb1oGEeS2WoXr83SnEA _-scOcloGEeS2WoXr83SnEA _-scOdFoGEeS2WoXr83SnEA _-scOdloGEeS2WoXr83SnEA _-scOeVoGEeS2WoXr83SnEA _-scOfFoGEeS2WoXr83SnEA _-scOhFoGEeS2WoXr83SnEA _-scO11oGEeS2WoXr83SnEA _-scO2loGEeS2WoXr83SnEA _-scPIVoGEeS2WoXr83SnEA _-scPJFoGEeS2WoXr83SnEA _-scPyVoGEeS2WoXr83SnEA _-scPzFoGEeS2WoXr83SnEA _-scP6loGEeS2WoXr83SnEA _-scP7FoGEeS2WoXr83SnEA _-scP91oGEeS2WoXr83SnEA _-scP-loGEeS2WoXr83SnEA _-scP_VoGEeS2WoXr83SnEA _-scQAFoGEeS2WoXr83SnEA _-scQA1oGEeS2WoXr83SnEA _-scQEFoGEeS2WoXr83SnEA _-scQE1oGEeS2WoXr83SnEA _-scQQloGEeS2WoXr83SnEA _-scQRFoGEeS2WoXr83SnEA _-scQRVoGEeS2WoXr83SnEA _-scQSloGEeS2WoXr83SnEA _-scQTFoGEeS2WoXr83SnEA _-scQVVoGEeS2WoXr83SnEA _-scQWFoGEeS2WoXr83SnEA _-scQe1oGEeS2WoXr83SnEA _-scQfVoGEeS2WoXr83SnEA _-scQzVoGEeS2WoXr83SnEA _-scQ0FoGEeS2WoXr83SnEA _-scRJFoGEeS2WoXr83SnEA _-scRJ1oGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scQPloGEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation&#xA;and Iteration signatures. Instances of OclSelf are never created."/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQP1oGEeS2WoXr83SnEA" name="OclState" superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scP11oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQQFoGEeS2WoXr83SnEA" name="OclSummable" superClass="_-scPxVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scQQVoGEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived&#xA;sum and zero implementations may be summed."/>
+      <ownedOperation xmi:id="_-scQQloGEeS2WoXr83SnEA" name="sum" type="_-scQPVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scQQ1oGEeS2WoXr83SnEA" body="Return the sum of self and that.&#xA;&#xA;The sum operation should be associative."/>
+        <ownedParameter xmi:id="_-scQRFoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQRVoGEeS2WoXr83SnEA" name="zero" type="_-scQPVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scQRloGEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.&#xA;&#xA;zero().sum(self) = self."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQR1oGEeS2WoXr83SnEA" name="OclTuple" superClass="_-scPxVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scQSFoGEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple&#xA;therefore apply to all tuples."/>
+      <ownedOperation xmi:id="_-scQSVoGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQSloGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQS1oGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQTFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQTVoGEeS2WoXr83SnEA" name="OclType" superClass="_-scQBFoGEeS2WoXr83SnEA" typedElement="_-scQUVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scQTloGEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined&#xA;for OclType are therefore applicable to all UML types."/>
+      <ownedOperation xmi:id="_-scQT1oGEeS2WoXr83SnEA" name="conformsTo" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+        <ownedComment xmi:id="_-scQUFoGEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+        <ownedParameter xmi:id="_-scQUVoGEeS2WoXr83SnEA" name="type2" type="_-scQTVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="_-scQUloGEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="_-scNIloGEeS2WoXr83SnEA"
+        superClass="_-scPxVoGEeS2WoXr83SnEA">
+      <ownedComment xmi:id="_-scQU1oGEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.&#xA;It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.&#xA;Any property call applied on oclText[null] results in oclText[invalid], except for the&#xA;oclIsUndefined(), oclIsInvalid(), =(OclAny) and &lt;>(OclAny) operations.&#xA;However, by virtue of the implicit conversion to a collection literal,&#xA;an expression evaluating to oclText[null] can be used as source of collection operations (such as &#x2018;isEmpty&#x2019;).&#xA;If the source is the oclText[null] literal, it is implicitly converted to Bag{}.&#xA;&#xA;OclVoid is itself an instance of the metatype VoidType."/>
+      <ownedOperation xmi:id="_-scQVFoGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQVVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQVloGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scQV1oGEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]&#xA;if object is oclText[invalid], oclText[false] otherwise."/>
+        <ownedParameter xmi:id="_-scQWFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQWVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+        <ownedComment xmi:id="_-scQWloGEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQW1oGEeS2WoXr83SnEA" name="and" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+          precedence="_-scRfFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQXFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQXVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+          precedence="_-scRf1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQXloGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQX1oGEeS2WoXr83SnEA" name="oclIsInvalid" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_-scQYFoGEeS2WoXr83SnEA" name="oclIsUndefined" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+          isValidating="true"/>
+      <ownedOperation xmi:id="_-scQYVoGEeS2WoXr83SnEA" name="or" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+          precedence="_-scRfVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQYloGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQY1oGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+        <ownedComment xmi:id="_-scQZFoGEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scQZVoGEeS2WoXr83SnEA" name="OrderedCollection" superClass="_-scMvVoGEeS2WoXr83SnEA"
+        elementType="_-scQaFoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_-scQZloGEeS2WoXr83SnEA" templateBinding="_-scNNloGEeS2WoXr83SnEA _-scNOVoGEeS2WoXr83SnEA _-scNPFoGEeS2WoXr83SnEA _-scNP1oGEeS2WoXr83SnEA _-scNQloGEeS2WoXr83SnEA _-scNRVoGEeS2WoXr83SnEA _-scNSFoGEeS2WoXr83SnEA _-scNS1oGEeS2WoXr83SnEA _-scNTloGEeS2WoXr83SnEA _-scNUVoGEeS2WoXr83SnEA _-scNVFoGEeS2WoXr83SnEA _-scNV1oGEeS2WoXr83SnEA _-scNWloGEeS2WoXr83SnEA _-scNXVoGEeS2WoXr83SnEA _-scNYFoGEeS2WoXr83SnEA _-scNY1oGEeS2WoXr83SnEA _-scNZloGEeS2WoXr83SnEA _-scNaVoGEeS2WoXr83SnEA _-scNbFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQZ1oGEeS2WoXr83SnEA" parameteredElement="_-scQaFoGEeS2WoXr83SnEA"
+            templateParameterSubstitution="_-scNN1oGEeS2WoXr83SnEA _-scNOloGEeS2WoXr83SnEA _-scNPVoGEeS2WoXr83SnEA _-scNQFoGEeS2WoXr83SnEA _-scNQ1oGEeS2WoXr83SnEA _-scNRloGEeS2WoXr83SnEA _-scNSVoGEeS2WoXr83SnEA _-scNTFoGEeS2WoXr83SnEA _-scNT1oGEeS2WoXr83SnEA _-scNUloGEeS2WoXr83SnEA _-scNVVoGEeS2WoXr83SnEA _-scNWFoGEeS2WoXr83SnEA _-scNW1oGEeS2WoXr83SnEA _-scNXloGEeS2WoXr83SnEA _-scNYVoGEeS2WoXr83SnEA _-scNZFoGEeS2WoXr83SnEA _-scNZ1oGEeS2WoXr83SnEA _-scNaloGEeS2WoXr83SnEA _-scNbVoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQaFoGEeS2WoXr83SnEA" name="T" templateParameter="_-scQZ1oGEeS2WoXr83SnEA"
+              templateParameterSubstitution="_-scMv1oGEeS2WoXr83SnEA" typedElement="_-scQaVoGEeS2WoXr83SnEA _-scQbFoGEeS2WoXr83SnEA _-scQcVoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_-scQaVoGEeS2WoXr83SnEA" name="at" isRequired="false" type="_-scQaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scQaloGEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+        <ownedParameter xmi:id="_-scQa1oGEeS2WoXr83SnEA" name="index" type="_-scOFVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQbFoGEeS2WoXr83SnEA" name="first" isRequired="false" type="_-scQaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scQbVoGEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQbloGEeS2WoXr83SnEA" name="indexOf" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+        <ownedComment xmi:id="_-scQb1oGEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+        <ownedParameter xmi:id="_-scQcFoGEeS2WoXr83SnEA" name="obj" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQcVoGEeS2WoXr83SnEA" name="last" isRequired="false" type="_-scQaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scQcloGEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scQc1oGEeS2WoXr83SnEA" name="OrderedSet" superClass="_-scNU1oGEeS2WoXr83SnEA _-scN4FoGEeS2WoXr83SnEA"
+        typedElement="_-scQd1oGEeS2WoXr83SnEA _-scQfloGEeS2WoXr83SnEA _-scQgVoGEeS2WoXr83SnEA _-scQhFoGEeS2WoXr83SnEA _-scQh1oGEeS2WoXr83SnEA _-scQjloGEeS2WoXr83SnEA _-scQkVoGEeS2WoXr83SnEA _-scQlVoGEeS2WoXr83SnEA _-scQmFoGEeS2WoXr83SnEA _-scQm1oGEeS2WoXr83SnEA _-scQp1oGEeS2WoXr83SnEA _-scQq1oGEeS2WoXr83SnEA _-scQvFoGEeS2WoXr83SnEA _-scQwFoGEeS2WoXr83SnEA _-scQxFoGEeS2WoXr83SnEA"
+        elementType="_-scQdloGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_-scQdFoGEeS2WoXr83SnEA" templateBinding="_-scNb1oGEeS2WoXr83SnEA _-scNcloGEeS2WoXr83SnEA _-scNdVoGEeS2WoXr83SnEA _-scNeFoGEeS2WoXr83SnEA _-scNe1oGEeS2WoXr83SnEA _-scNfloGEeS2WoXr83SnEA _-scNgVoGEeS2WoXr83SnEA _-scNhFoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQdVoGEeS2WoXr83SnEA" parameteredElement="_-scQdloGEeS2WoXr83SnEA"
+            templateParameterSubstitution="_-scNcFoGEeS2WoXr83SnEA _-scNc1oGEeS2WoXr83SnEA _-scNdloGEeS2WoXr83SnEA _-scNeVoGEeS2WoXr83SnEA _-scNfFoGEeS2WoXr83SnEA _-scNf1oGEeS2WoXr83SnEA _-scNgloGEeS2WoXr83SnEA _-scNhVoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQdloGEeS2WoXr83SnEA" name="T" templateParameter="_-scQdVoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="_-scM0VoGEeS2WoXr83SnEA _-scNVVoGEeS2WoXr83SnEA _-scN4loGEeS2WoXr83SnEA" typedElement="_-scQgFoGEeS2WoXr83SnEA _-scQkFoGEeS2WoXr83SnEA _-scQlFoGEeS2WoXr83SnEA _-scQl1oGEeS2WoXr83SnEA _-scQrloGEeS2WoXr83SnEA _-scQtVoGEeS2WoXr83SnEA _-scQu1oGEeS2WoXr83SnEA _-scQv1oGEeS2WoXr83SnEA _-scQw1oGEeS2WoXr83SnEA _-scQx1oGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_-scQd1oGEeS2WoXr83SnEA" name="-" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_-scReVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scQeFoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_-scQeVoGEeS2WoXr83SnEA" name="s" type="_-scNzloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQeloGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQe1oGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQfFoGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQfVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQfloGEeS2WoXr83SnEA" name="append" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="_-scQf1oGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="_-scQgFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQgVoGEeS2WoXr83SnEA" name="appendAll" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="_-scQgloGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="_-scQg1oGEeS2WoXr83SnEA" name="objects" type="_-scNU1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQhFoGEeS2WoXr83SnEA" name="excluding" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_-scQhVoGEeS2WoXr83SnEA" body="The ordered set  containing all elements of oclText[self] apart from object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="_-scQhloGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQh1oGEeS2WoXr83SnEA" name="excludingAll" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_-scQiFoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_-scQiVoGEeS2WoXr83SnEA" name="objects" type="_-scMtFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQiloGEeS2WoXr83SnEA" name="flatten" type="_-scNdFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedTemplateSignature xmi:id="_-scQi1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQjFoGEeS2WoXr83SnEA" parameteredElement="_-scQjVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQjVoGEeS2WoXr83SnEA" name="T2" templateParameter="_-scQjFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMyFoGEeS2WoXr83SnEA _-scNTFoGEeS2WoXr83SnEA _-scNdloGEeS2WoXr83SnEA _-scN2VoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQjloGEeS2WoXr83SnEA" name="including" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_-scQj1oGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+        <ownedParameter xmi:id="_-scQkFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQkVoGEeS2WoXr83SnEA" name="insertAt" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scQkloGEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+        <ownedParameter xmi:id="_-scQk1oGEeS2WoXr83SnEA" name="index" type="_-scOFVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_-scQlFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQlVoGEeS2WoXr83SnEA" name="prepend" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="_-scQlloGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_-scQl1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQmFoGEeS2WoXr83SnEA" name="prependAll" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="_-scQmVoGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_-scQmloGEeS2WoXr83SnEA" name="objects" type="_-scNU1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQm1oGEeS2WoXr83SnEA" name="reverse" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="_-scQnFoGEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQnVoGEeS2WoXr83SnEA" name="selectByKind" type="_-scNd1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_-scQnloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQn1oGEeS2WoXr83SnEA" parameteredElement="_-scQoFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQoFoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scQn1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMy1oGEeS2WoXr83SnEA _-scNJVoGEeS2WoXr83SnEA _-scNT1oGEeS2WoXr83SnEA _-scNeVoGEeS2WoXr83SnEA _-scN3FoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scQoVoGEeS2WoXr83SnEA" name="type" type="_-scNI1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQoloGEeS2WoXr83SnEA" name="selectByType" type="_-scNeloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_-scQo1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQpFoGEeS2WoXr83SnEA" parameteredElement="_-scQpVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQpVoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scQpFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMzloGEeS2WoXr83SnEA _-scNKFoGEeS2WoXr83SnEA _-scNUloGEeS2WoXr83SnEA _-scNfFoGEeS2WoXr83SnEA _-scN31oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scQploGEeS2WoXr83SnEA" name="type" type="_-scNJloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQp1oGEeS2WoXr83SnEA" name="subOrderedSet" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scQqFoGEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="_-scQqVoGEeS2WoXr83SnEA" name="lower" type="_-scOFVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_-scQqloGEeS2WoXr83SnEA" name="upper" type="_-scOFVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQq1oGEeS2WoXr83SnEA" name="closure" type="_-scQc1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_-scQrFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_-scQrVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbvVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scQrloGEeS2WoXr83SnEA" name="i" type="_-scQdloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQr1oGEeS2WoXr83SnEA" name="collectNested" type="_-scNkloGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_-scQsFoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="_-scQsVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQsloGEeS2WoXr83SnEA" parameteredElement="_-scQs1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQs1oGEeS2WoXr83SnEA" name="V" templateParameter="_-scQsloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMwloGEeS2WoXr83SnEA _-scNRloGEeS2WoXr83SnEA _-scNlFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scQtFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbvloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scQtVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQtloGEeS2WoXr83SnEA" name="collect" type="_-scNlVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_-scQt1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQuFoGEeS2WoXr83SnEA" parameteredElement="_-scQuVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQuVoGEeS2WoXr83SnEA" name="V" templateParameter="_-scQuFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scMxVoGEeS2WoXr83SnEA _-scNSVoGEeS2WoXr83SnEA _-scNl1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scQuloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbv1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scQu1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQvFoGEeS2WoXr83SnEA" name="reject" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_-scQvVoGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_-scQvloGEeS2WoXr83SnEA" name="lambda" type="_-sSbu1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scQv1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQwFoGEeS2WoXr83SnEA" name="select" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_-scQwVoGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+        <ownedParameter xmi:id="_-scQwloGEeS2WoXr83SnEA" name="lambda" type="_-sSbu1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scQw1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQxFoGEeS2WoXr83SnEA" name="sortedBy" type="_-scQc1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_-scQxVoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_-scQxloGEeS2WoXr83SnEA" name="lambda" type="_-sSbvFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scQx1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scQyFoGEeS2WoXr83SnEA" name="Sequence" superClass="_-scNZVoGEeS2WoXr83SnEA"
+        typedElement="_-scQ0VoGEeS2WoXr83SnEA _-scQ1FoGEeS2WoXr83SnEA _-scQ11oGEeS2WoXr83SnEA _-scQ2loGEeS2WoXr83SnEA _-scQ4loGEeS2WoXr83SnEA _-scQ5VoGEeS2WoXr83SnEA _-scQ6VoGEeS2WoXr83SnEA _-scQ7FoGEeS2WoXr83SnEA _-scQ71oGEeS2WoXr83SnEA _-scQ-1oGEeS2WoXr83SnEA _-scREFoGEeS2WoXr83SnEA _-scRFFoGEeS2WoXr83SnEA _-scRGFoGEeS2WoXr83SnEA"
+        elementType="_-scQy1oGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_-scQyVoGEeS2WoXr83SnEA" templateBinding="_-scNh1oGEeS2WoXr83SnEA _-scNiloGEeS2WoXr83SnEA _-scNjVoGEeS2WoXr83SnEA _-scNkFoGEeS2WoXr83SnEA _-scNk1oGEeS2WoXr83SnEA _-scNlloGEeS2WoXr83SnEA _-scNmVoGEeS2WoXr83SnEA _-scNnFoGEeS2WoXr83SnEA _-scNn1oGEeS2WoXr83SnEA _-scNoloGEeS2WoXr83SnEA _-scNpVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQyloGEeS2WoXr83SnEA" parameteredElement="_-scQy1oGEeS2WoXr83SnEA"
+            templateParameterSubstitution="_-scNiFoGEeS2WoXr83SnEA _-scNi1oGEeS2WoXr83SnEA _-scNjloGEeS2WoXr83SnEA _-scNkVoGEeS2WoXr83SnEA _-scNlFoGEeS2WoXr83SnEA _-scNl1oGEeS2WoXr83SnEA _-scNmloGEeS2WoXr83SnEA _-scNnVoGEeS2WoXr83SnEA _-scNoFoGEeS2WoXr83SnEA _-scNo1oGEeS2WoXr83SnEA _-scNploGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQy1oGEeS2WoXr83SnEA" name="T" templateParameter="_-scQyloGEeS2WoXr83SnEA"
+              templateParameterSubstitution="_-scM41oGEeS2WoXr83SnEA _-scNZ1oGEeS2WoXr83SnEA _-scNf1oGEeS2WoXr83SnEA _-scN5VoGEeS2WoXr83SnEA"
+              typedElement="_-scQ01oGEeS2WoXr83SnEA _-scQ5FoGEeS2WoXr83SnEA _-scQ6FoGEeS2WoXr83SnEA _-scQ61oGEeS2WoXr83SnEA _-scRAloGEeS2WoXr83SnEA _-scRCVoGEeS2WoXr83SnEA _-scRD1oGEeS2WoXr83SnEA _-scRE1oGEeS2WoXr83SnEA _-scRF1oGEeS2WoXr83SnEA _-scRG1oGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_-scQzFoGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scQzVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQzloGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scQz1oGEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+        <ownedParameter xmi:id="_-scQ0FoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ0VoGEeS2WoXr83SnEA" name="append" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+        <ownedComment xmi:id="_-scQ0loGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+        <ownedParameter xmi:id="_-scQ01oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ1FoGEeS2WoXr83SnEA" name="appendAll" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+        <ownedComment xmi:id="_-scQ1VoGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+        <ownedParameter xmi:id="_-scQ1loGEeS2WoXr83SnEA" name="objects" type="_-scNZVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ11oGEeS2WoXr83SnEA" name="excluding" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_-scQ2FoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.&#xA;&#xA;The order of the remaining elements is not changed."/>
+        <ownedParameter xmi:id="_-scQ2VoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ2loGEeS2WoXr83SnEA" name="excludingAll" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_-scQ21oGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_-scQ3FoGEeS2WoXr83SnEA" name="objects" type="_-scMtFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ3VoGEeS2WoXr83SnEA" name="flatten" type="_-scNnloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_-scQ3loGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].&#xA;If the element type is a collection type, the result is the sequence containing all the elements&#xA;of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+        <ownedTemplateSignature xmi:id="_-scQ31oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQ4FoGEeS2WoXr83SnEA" parameteredElement="_-scQ4VoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQ4VoGEeS2WoXr83SnEA" name="T2" templateParameter="_-scQ4FoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scM2loGEeS2WoXr83SnEA _-scNXloGEeS2WoXr83SnEA _-scNoFoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ4loGEeS2WoXr83SnEA" name="including" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_-scQ41oGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+        <ownedParameter xmi:id="_-scQ5FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ5VoGEeS2WoXr83SnEA" name="insertAt" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scQ5loGEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+        <ownedParameter xmi:id="_-scQ51oGEeS2WoXr83SnEA" name="index" type="_-scOFVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_-scQ6FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ6VoGEeS2WoXr83SnEA" name="prepend" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+        <ownedComment xmi:id="_-scQ6loGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_-scQ61oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ7FoGEeS2WoXr83SnEA" name="prependAll" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+        <ownedComment xmi:id="_-scQ7VoGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+        <ownedParameter xmi:id="_-scQ7loGEeS2WoXr83SnEA" name="objects" type="_-scNZVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ71oGEeS2WoXr83SnEA" name="reverse" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+        <ownedComment xmi:id="_-scQ8FoGEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ8VoGEeS2WoXr83SnEA" name="selectByKind" type="_-scNoVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_-scQ8loGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQ81oGEeS2WoXr83SnEA" parameteredElement="_-scQ9FoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQ9FoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scQ81oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scM3VoGEeS2WoXr83SnEA _-scNK1oGEeS2WoXr83SnEA _-scNYVoGEeS2WoXr83SnEA _-scNo1oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scQ9VoGEeS2WoXr83SnEA" name="type" type="_-scNKVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ9loGEeS2WoXr83SnEA" name="selectByType" type="_-scNpFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_-scQ91oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQ-FoGEeS2WoXr83SnEA" parameteredElement="_-scQ-VoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQ-VoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scQ-FoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scM4FoGEeS2WoXr83SnEA _-scNLloGEeS2WoXr83SnEA _-scNZFoGEeS2WoXr83SnEA _-scNploGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scQ-loGEeS2WoXr83SnEA" name="type" type="_-scNLFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scQ-1oGEeS2WoXr83SnEA" name="subSequence" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+          isInvalidating="true">
+        <ownedComment xmi:id="_-scQ_FoGEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+        <ownedParameter xmi:id="_-scQ_VoGEeS2WoXr83SnEA" name="lower" type="_-scOFVoGEeS2WoXr83SnEA"/>
+        <ownedParameter xmi:id="_-scQ_loGEeS2WoXr83SnEA" name="upper" type="_-scOFVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQ_1oGEeS2WoXr83SnEA" name="closure" type="_-scNfVoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_-scRAFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_-scRAVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbwloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRAloGEeS2WoXr83SnEA" name="i" type="_-scQy1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRA1oGEeS2WoXr83SnEA" name="collectNested" type="_-scNmFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_-scRBFoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+        <ownedTemplateSignature xmi:id="_-scRBVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRBloGEeS2WoXr83SnEA" parameteredElement="_-scRB1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRB1oGEeS2WoXr83SnEA" name="V" templateParameter="_-scRBloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scM1FoGEeS2WoXr83SnEA _-scNWFoGEeS2WoXr83SnEA _-scNmloGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scRCFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbw1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRCVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRCloGEeS2WoXr83SnEA" name="collect" type="_-scNm1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_-scRC1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRDFoGEeS2WoXr83SnEA" parameteredElement="_-scRDVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRDVoGEeS2WoXr83SnEA" name="V" templateParameter="_-scRDFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scM11oGEeS2WoXr83SnEA _-scNW1oGEeS2WoXr83SnEA _-scNnVoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scRDloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbxFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRD1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scREFoGEeS2WoXr83SnEA" name="reject" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_-scREVoGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_-scREloGEeS2WoXr83SnEA" name="lambda" type="_-sSbwFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRE1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRFFoGEeS2WoXr83SnEA" name="select" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_-scRFVoGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+        <ownedParameter xmi:id="_-scRFloGEeS2WoXr83SnEA" name="lambda" type="_-sSbwFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRF1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRGFoGEeS2WoXr83SnEA" name="sortedBy" type="_-scQyFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_-scRGVoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c then a &lt; c)."/>
+        <ownedParameter xmi:id="_-scRGloGEeS2WoXr83SnEA" name="lambda" type="_-sSbwVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRG1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scRHFoGEeS2WoXr83SnEA" name="Set" superClass="_-scN71oGEeS2WoXr83SnEA" typedElement="_-scRIFoGEeS2WoXr83SnEA _-scRKFoGEeS2WoXr83SnEA _-scRK1oGEeS2WoXr83SnEA _-scRM1oGEeS2WoXr83SnEA _-scRNloGEeS2WoXr83SnEA _-scRQ1oGEeS2WoXr83SnEA _-scRVFoGEeS2WoXr83SnEA _-scRWFoGEeS2WoXr83SnEA"
+        elementType="_-scRH1oGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_-scRHVoGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRHloGEeS2WoXr83SnEA" parameteredElement="_-scRH1oGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRH1oGEeS2WoXr83SnEA" name="T" templateParameter="_-scRHloGEeS2WoXr83SnEA"
+              templateParameterSubstitution="_-scM9VoGEeS2WoXr83SnEA _-scNaloGEeS2WoXr83SnEA _-scNgloGEeS2WoXr83SnEA _-scN8VoGEeS2WoXr83SnEA"
+              typedElement="_-scRNVoGEeS2WoXr83SnEA _-scRRloGEeS2WoXr83SnEA _-scRTVoGEeS2WoXr83SnEA _-scRU1oGEeS2WoXr83SnEA _-scRV1oGEeS2WoXr83SnEA _-scRW1oGEeS2WoXr83SnEA _-scRX1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="RelMM.xml#_-scRlVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="RelMM.xml#_-scRmFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNqVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNrFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNr1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNsloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNtVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNuFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNu1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNvloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNwVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="UmlMM.xml#_-sSbpVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="UmlMM.xml#_-sSbqFoGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="RelMM.xml#_-scRlFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="RelMM.xml#_-scRl1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNqFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNq1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNrloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNsVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNtFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNt1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNuloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNvVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNwFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="UmlMM.xml#_-sSbpFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="UmlMM.xml#_-sSbp1oGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_-scRIFoGEeS2WoXr83SnEA" name="-" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_-scReVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scRIVoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_-scRIloGEeS2WoXr83SnEA" name="s" type="_-scNzloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scRI1oGEeS2WoXr83SnEA" name="&lt;>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:id="_-scRJFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scRJVoGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+          precedence="_-scRe1oGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scRJloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+        <ownedParameter xmi:id="_-scRJ1oGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scRKFoGEeS2WoXr83SnEA" name="excluding" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+        <ownedComment xmi:id="_-scRKVoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+        <ownedParameter xmi:id="_-scRKloGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scRK1oGEeS2WoXr83SnEA" name="excludingAll" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+        <ownedComment xmi:id="_-scRLFoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+        <ownedParameter xmi:id="_-scRLVoGEeS2WoXr83SnEA" name="objects" type="_-scMtFoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scRLloGEeS2WoXr83SnEA" name="flatten" type="_-scNtloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+        <ownedComment xmi:id="_-scRL1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].&#xA;If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+        <ownedTemplateSignature xmi:id="_-scRMFoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRMVoGEeS2WoXr83SnEA" parameteredElement="_-scRMloGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRMloGEeS2WoXr83SnEA" name="T2" templateParameter="_-scRMVoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scM7FoGEeS2WoXr83SnEA _-scNuFoGEeS2WoXr83SnEA _-scN6FoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scRM1oGEeS2WoXr83SnEA" name="including" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+        <ownedComment xmi:id="_-scRNFoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+        <ownedParameter xmi:id="_-scRNVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scRNloGEeS2WoXr83SnEA" name="includingAll" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+        <ownedComment xmi:id="_-scRN1oGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+        <ownedParameter xmi:id="_-scROFoGEeS2WoXr83SnEA" name="objects" type="_-scM81oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scROVoGEeS2WoXr83SnEA" name="selectByKind" type="_-scNuVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+        <ownedTemplateSignature xmi:id="_-scROloGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRO1oGEeS2WoXr83SnEA" parameteredElement="_-scRPFoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRPFoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scRO1oGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scM71oGEeS2WoXr83SnEA _-scNMVoGEeS2WoXr83SnEA _-scNu1oGEeS2WoXr83SnEA _-scN61oGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scRPVoGEeS2WoXr83SnEA" name="type" type="_-scNL1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scRPloGEeS2WoXr83SnEA" name="selectByType" type="_-scNvFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+        <ownedTemplateSignature xmi:id="_-scRP1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRQFoGEeS2WoXr83SnEA" parameteredElement="_-scRQVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRQVoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scRQFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-scM8loGEeS2WoXr83SnEA _-scNNFoGEeS2WoXr83SnEA _-scNvloGEeS2WoXr83SnEA _-scN7loGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scRQloGEeS2WoXr83SnEA" name="type" type="_-scNMloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRQ1oGEeS2WoXr83SnEA" name="closure" type="_-scRHFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+        <ownedComment xmi:id="_-scRRFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+        <ownedParameter xmi:id="_-scRRVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbx1oGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRRloGEeS2WoXr83SnEA" name="i" type="_-scRH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRR1oGEeS2WoXr83SnEA" name="collectNested" type="_-sSb6VoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+        <ownedComment xmi:id="_-scRSFoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+        <ownedTemplateSignature xmi:id="_-scRSVoGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRSloGEeS2WoXr83SnEA" parameteredElement="_-scRS1oGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRS1oGEeS2WoXr83SnEA" name="V" templateParameter="_-scRSloGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-sSb61oGEeS2WoXr83SnEA _-scM5loGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scRTFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbyFoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRTVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRTloGEeS2WoXr83SnEA" name="collect" type="_-sSb7FoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+        <ownedTemplateSignature xmi:id="_-scRT1oGEeS2WoXr83SnEA">
+          <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRUFoGEeS2WoXr83SnEA" parameteredElement="_-scRUVoGEeS2WoXr83SnEA">
+            <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRUVoGEeS2WoXr83SnEA" name="V" templateParameter="_-scRUFoGEeS2WoXr83SnEA"
+                templateParameterSubstitution="_-sSb7loGEeS2WoXr83SnEA _-scM6VoGEeS2WoXr83SnEA"/>
+          </ownedParameter>
+        </ownedTemplateSignature>
+        <ownedParameter xmi:id="_-scRUloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbyVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRU1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRVFoGEeS2WoXr83SnEA" name="reject" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+        <ownedComment xmi:id="_-scRVVoGEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+        <ownedParameter xmi:id="_-scRVloGEeS2WoXr83SnEA" name="lambda" type="_-sSbxVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRV1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRWFoGEeS2WoXr83SnEA" name="select" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+        <ownedComment xmi:id="_-scRWVoGEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+        <ownedParameter xmi:id="_-scRWloGEeS2WoXr83SnEA" name="lambda" type="_-sSbxVoGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRW1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRXFoGEeS2WoXr83SnEA" name="sortedBy" type="_-scNgFoGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_-scRXVoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_-scRXloGEeS2WoXr83SnEA" name="lambda" type="_-sSbxloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRX1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scRYFoGEeS2WoXr83SnEA" name="State" superClass="_-scQP1oGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scRYVoGEeS2WoXr83SnEA" name="Type" superClass="_-scQTVoGEeS2WoXr83SnEA"/>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scRYloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="_-scM9loGEeS2WoXr83SnEA"
+        typedElement="_-scRZloGEeS2WoXr83SnEA _-scRcVoGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+      <ownedTemplateSignature xmi:id="_-scRY1oGEeS2WoXr83SnEA">
+        <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRZFoGEeS2WoXr83SnEA" parameteredElement="_-scRZVoGEeS2WoXr83SnEA">
+          <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRZVoGEeS2WoXr83SnEA" name="T" templateParameter="_-scRZFoGEeS2WoXr83SnEA"
+              templateParameterSubstitution="_-scM-FoGEeS2WoXr83SnEA _-scNbVoGEeS2WoXr83SnEA _-scNhVoGEeS2WoXr83SnEA _-scNwVoGEeS2WoXr83SnEA _-scN9FoGEeS2WoXr83SnEA"
+              typedElement="_-scRdVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="RelMM.xml#_-scRm1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="RelMM.xml#_-scRnloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNxFoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNx1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNyloGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scNzVoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN0FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN01oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN1loGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN2VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN3FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN31oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN4loGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN5VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN6FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN61oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN7loGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN8VoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="#_-scN9FoGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="UmlMM.xml#_-sSbq1oGEeS2WoXr83SnEA"/>
+          <templateParameterSubstitution href="UmlMM.xml#_-sSbrloGEeS2WoXr83SnEA"/>
+        </ownedParameter>
+        <templateBinding href="RelMM.xml#_-scRmloGEeS2WoXr83SnEA"/>
+        <templateBinding href="RelMM.xml#_-scRnVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNw1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNxloGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNyVoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNzFoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scNz1oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN0loGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN1VoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN2FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN21oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN3loGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN4VoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN5FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN51oGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN6loGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN7VoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN8FoGEeS2WoXr83SnEA"/>
+        <templateBinding href="#_-scN81oGEeS2WoXr83SnEA"/>
+        <templateBinding href="UmlMM.xml#_-sSbqloGEeS2WoXr83SnEA"/>
+        <templateBinding href="UmlMM.xml#_-sSbrVoGEeS2WoXr83SnEA"/>
+      </ownedTemplateSignature>
+      <ownedOperation xmi:id="_-scRZloGEeS2WoXr83SnEA" name="-" type="_-scRYloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+          precedence="_-scReVoGEeS2WoXr83SnEA">
+        <ownedComment xmi:id="_-scRZ1oGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+        <ownedParameter xmi:id="_-scRaFoGEeS2WoXr83SnEA" name="s" type="_-scNzloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scRaVoGEeS2WoXr83SnEA" name="intersection" type="_-scNv1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+        <ownedComment xmi:id="_-scRaloGEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+        <ownedParameter xmi:id="_-scRa1oGEeS2WoXr83SnEA" name="c" type="_-scM9loGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scRbFoGEeS2WoXr83SnEA" name="symmetricDifference" type="_-scNv1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+        <ownedComment xmi:id="_-scRbVoGEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+        <ownedParameter xmi:id="_-scRbloGEeS2WoXr83SnEA" name="s" type="_-scNzloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:id="_-scRb1oGEeS2WoXr83SnEA" name="union" type="_-scNv1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+        <ownedComment xmi:id="_-scRcFoGEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+        <ownedParameter xmi:id="_-scRcVoGEeS2WoXr83SnEA" name="s" type="_-scRYloGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+      <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRcloGEeS2WoXr83SnEA" name="sortedBy" type="_-scNg1oGEeS2WoXr83SnEA"
+          implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+        <ownedComment xmi:id="_-scRc1oGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.&#xA;The element for which body has the lowest value comes first, and so on.&#xA;The type of the body expression must have the &lt; operation defined.&#xA;The &lt; operation must return a Boolean value and must be transitive (i.e., if a &lt; b and b &lt; c, then a &lt; c)."/>
+        <ownedParameter xmi:id="_-scRdFoGEeS2WoXr83SnEA" name="lambda" type="_-sSbyloGEeS2WoXr83SnEA"/>
+        <ownedIterator xmi:id="_-scRdVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRZVoGEeS2WoXr83SnEA"/>
+      </ownedOperation>
+    </ownedType>
+    <ownedPrecedence xmi:id="_-scRdloGEeS2WoXr83SnEA" name="NAVIGATION"/>
+    <ownedPrecedence xmi:id="_-scRd1oGEeS2WoXr83SnEA" name="UNARY" order="1"/>
+    <ownedPrecedence xmi:id="_-scReFoGEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+    <ownedPrecedence xmi:id="_-scReVoGEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+    <ownedPrecedence xmi:id="_-scReloGEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+    <ownedPrecedence xmi:id="_-scRe1oGEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+    <ownedPrecedence xmi:id="_-scRfFoGEeS2WoXr83SnEA" name="AND" order="6"/>
+    <ownedPrecedence xmi:id="_-scRfVoGEeS2WoXr83SnEA" name="OR" order="7"/>
+    <ownedPrecedence xmi:id="_-scRfloGEeS2WoXr83SnEA" name="XOR" order="8"/>
+    <ownedPrecedence xmi:id="_-scRf1oGEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/RelMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/RelMM.xml
new file mode 100644
index 0000000..97fc9c5
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/RelMM.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_-scRgFoGEeS2WoXr83SnEA" name="RelMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/RelMM.emof">
+  <nestedPackage xmi:id="_-scRgVoGEeS2WoXr83SnEA" name="relMM2" nsURI="relMM2">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scRgloGEeS2WoXr83SnEA" name="Column" templateParameterSubstitution="_-scRj1oGEeS2WoXr83SnEA _-scRlVoGEeS2WoXr83SnEA _-scRm1oGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_-scRg1oGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+        <key href="UmlToRel.xml#_-scR91oGEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRel.xml#_-scR3FoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_-scRhFoGEeS2WoXr83SnEA" name="dataType">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRel.xml#_-scR3loGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_-scRhVoGEeS2WoXr83SnEA" name="table" isRequired="false" type="_-scRiFoGEeS2WoXr83SnEA" opposite="_-scRiVoGEeS2WoXr83SnEA">
+        <key href="UmlToRel.xml#_-scR91oGEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRel.xml#_-scR4FoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scR21oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR51oGEeS2WoXr83SnEA"/>
+      <key href="UmlToRel.xml#_-scR91oGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scRhloGEeS2WoXr83SnEA" name="Dummy" typedElement="_-scRi1oGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_-scRh1oGEeS2WoXr83SnEA" name="hasTable" type="_-scRlloGEeS2WoXr83SnEA" isComposite="true" opposite="_-scRi1oGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scRiFoGEeS2WoXr83SnEA" name="Table" templateParameterSubstitution="_-scRkloGEeS2WoXr83SnEA _-scRmFoGEeS2WoXr83SnEA _-scRnloGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_-scRiVoGEeS2WoXr83SnEA" name="column" type="_-scRk1oGEeS2WoXr83SnEA" isComposite="true" opposite="_-scRhVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_-scRiloGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+        <key href="UmlToRel.xml#_-scR9loGEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRel.xml#_-scRx1oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_-scRi1oGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="_-scRhloGEeS2WoXr83SnEA" implicit="true"
+          opposite="_-scRh1oGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_-scRhVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scRxloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scRy1oGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scR4VoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR6FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR7VoGEeS2WoXr83SnEA"/>
+      <key href="UmlToRel.xml#_-scR9loGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="_-scRjFoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scRjVoGEeS2WoXr83SnEA" name="Collection" elementType="_-scRgloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scRjloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scRj1oGEeS2WoXr83SnEA" actual="_-scRgloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scPFloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scPFVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scPFFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_-scPxVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scRkFoGEeS2WoXr83SnEA" name="Collection" elementType="_-scRiFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scRkVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scRkloGEeS2WoXr83SnEA" actual="_-scRiFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scPFloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scPFVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scPFFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_-scPxVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scRk1oGEeS2WoXr83SnEA" name="Set" superClass="_-scRmVoGEeS2WoXr83SnEA" typedElement="_-scRiVoGEeS2WoXr83SnEA"
+        elementType="_-scRgloGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_-scRlFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scRlVoGEeS2WoXr83SnEA" actual="_-scRgloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scRHloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scRHVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_-scRHFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scRlloGEeS2WoXr83SnEA" name="Set" superClass="_-scRnFoGEeS2WoXr83SnEA" typedElement="_-scRh1oGEeS2WoXr83SnEA"
+        elementType="_-scRiFoGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_-scRl1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scRmFoGEeS2WoXr83SnEA" actual="_-scRiFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scRHloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scRHVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_-scRHFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scRmVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="_-scRjVoGEeS2WoXr83SnEA"
+        elementType="_-scRgloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scRmloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scRm1oGEeS2WoXr83SnEA" actual="_-scRgloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scRZFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scRY1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scRYloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scRnFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="_-scRkFoGEeS2WoXr83SnEA"
+        elementType="_-scRiFoGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-scRnVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-scRnloGEeS2WoXr83SnEA" actual="_-scRiFoGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scRZFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scRY1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scRYloGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlMM.xml
new file mode 100644
index 0000000..7391a75
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlMM.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_-sSbkFoGEeS2WoXr83SnEA" name="UmlMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlMM.emof">
+  <nestedPackage xmi:id="_-sSbkVoGEeS2WoXr83SnEA" name="umlMM2" nsURI="umlMM2">
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-sSbkloGEeS2WoXr83SnEA" name="Attribute" templateParameterSubstitution="_-sSbn1oGEeS2WoXr83SnEA _-sSbpVoGEeS2WoXr83SnEA _-sSbq1oGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_-sSbk1oGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+        <key href="UmlToRel.xml#_-scR9VoGEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRel.xml#_-scR01oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_-sSblFoGEeS2WoXr83SnEA" name="type">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRel.xml#_-scR1VoGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_-sSblVoGEeS2WoXr83SnEA" name="class" isRequired="false" type="_-sSblloGEeS2WoXr83SnEA" opposite="_-sSbl1oGEeS2WoXr83SnEA">
+        <key href="UmlToRel.xml#_-scR9VoGEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRel.xml#_-scR11oGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scR0loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR5VoGEeS2WoXr83SnEA"/>
+      <key href="UmlToRel.xml#_-scR9VoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-sSblloGEeS2WoXr83SnEA" name="Class" templateParameterSubstitution="_-sSboloGEeS2WoXr83SnEA _-sSbqFoGEeS2WoXr83SnEA _-sSbrloGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_-sSbl1oGEeS2WoXr83SnEA" name="attribute" type="_-sSbo1oGEeS2WoXr83SnEA" isComposite="true" opposite="_-sSblVoGEeS2WoXr83SnEA"/>
+      <ownedAttribute xmi:id="_-sSbmFoGEeS2WoXr83SnEA" name="name">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+        <key href="UmlToRel.xml#_-scR9FoGEeS2WoXr83SnEA"/>
+        <propertyItem href="UmlToRel.xml#_-scRwloGEeS2WoXr83SnEA"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_-sSbmVoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="_-sSbmloGEeS2WoXr83SnEA" implicit="true"
+          opposite="_-sSbm1oGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scRwVoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scRyloGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scR2FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR5loGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR7FoGEeS2WoXr83SnEA"/>
+      <typedElement xmi:type="flatemofqvt:Property" href="#_-sSblVoGEeS2WoXr83SnEA"/>
+      <key href="UmlToRel.xml#_-scR9FoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-sSbmloGEeS2WoXr83SnEA" name="Dummy" typedElement="_-sSbmVoGEeS2WoXr83SnEA">
+      <ownedAttribute xmi:id="_-sSbm1oGEeS2WoXr83SnEA" name="hasClass" type="_-sSbploGEeS2WoXr83SnEA" isComposite="true" opposite="_-sSbmVoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+  <nestedPackage xmi:id="_-sSbnFoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSbnVoGEeS2WoXr83SnEA" name="Collection" elementType="_-sSbkloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSbnloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSbn1oGEeS2WoXr83SnEA" actual="_-sSbkloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scPFloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scPFVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scPFFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_-scPxVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSboFoGEeS2WoXr83SnEA" name="Collection" elementType="_-sSblloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSboVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSboloGEeS2WoXr83SnEA" actual="_-sSblloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scPFloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scPFVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scPFFoGEeS2WoXr83SnEA"/>
+      <superClass href="OCL.xml#_-scPxVoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-sSbo1oGEeS2WoXr83SnEA" name="Set" superClass="_-sSbqVoGEeS2WoXr83SnEA" typedElement="_-sSbl1oGEeS2WoXr83SnEA"
+        elementType="_-sSbkloGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_-sSbpFoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSbpVoGEeS2WoXr83SnEA" actual="_-sSbkloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scRHloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scRHVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_-scRHFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-sSbploGEeS2WoXr83SnEA" name="Set" superClass="_-sSbrFoGEeS2WoXr83SnEA" typedElement="_-sSbm1oGEeS2WoXr83SnEA"
+        elementType="_-sSblloGEeS2WoXr83SnEA" lower="1">
+      <templateBinding xmi:id="_-sSbp1oGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSbqFoGEeS2WoXr83SnEA" actual="_-sSblloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scRHloGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scRHVoGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_-scRHFoGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSbqVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="_-sSbnVoGEeS2WoXr83SnEA"
+        elementType="_-sSbkloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSbqloGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSbq1oGEeS2WoXr83SnEA" actual="_-sSbkloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scRZFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scRY1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scRYloGEeS2WoXr83SnEA"/>
+    </ownedType>
+    <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSbrFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="_-sSboFoGEeS2WoXr83SnEA"
+        elementType="_-sSblloGEeS2WoXr83SnEA">
+      <templateBinding xmi:id="_-sSbrVoGEeS2WoXr83SnEA">
+        <parameterSubstitution xmi:id="_-sSbrloGEeS2WoXr83SnEA" actual="_-sSblloGEeS2WoXr83SnEA">
+          <formal href="OCL.xml#_-scRZFoGEeS2WoXr83SnEA"/>
+        </parameterSubstitution>
+        <signature href="OCL.xml#_-scRY1oGEeS2WoXr83SnEA"/>
+      </templateBinding>
+      <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scRYloGEeS2WoXr83SnEA"/>
+    </ownedType>
+  </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlToRel.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlToRel.xml
new file mode 100644
index 0000000..e621724
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlToRel.xml
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+    xmi:id="_-scRn1oGEeS2WoXr83SnEA" name="UmlToRel.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlToRel.qvtr">
+  <ownedComment xmi:id="_-scRoFoGEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+  <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="_-scRoVoGEeS2WoXr83SnEA" name="UmlToRel">
+    <ownedOperation xmi:type="flatemofqvt:Function" xmi:id="_-scRoloGEeS2WoXr83SnEA" name="UmlToSqlDataType">
+      <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+      <ownedParameter xmi:id="_-scRo1oGEeS2WoXr83SnEA" name="utyp">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedParameter>
+      <queryExpression xmi:type="flatemofqvt:IfExp" xmi:id="_-scRpFoGEeS2WoXr83SnEA">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+        <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scRpVoGEeS2WoXr83SnEA" name="=">
+          <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+          <source xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRploGEeS2WoXr83SnEA" referredVariable="_-scRo1oGEeS2WoXr83SnEA">
+            <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+          </source>
+          <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRp1oGEeS2WoXr83SnEA" stringSymbol="Int">
+            <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+          </argument>
+          <referredOperation href="OCL.xml#_-scOdVoGEeS2WoXr83SnEA"/>
+        </condition>
+        <elseExpression xmi:type="flatemofqvt:IfExp" xmi:id="_-scRqFoGEeS2WoXr83SnEA">
+          <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+          <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scRqVoGEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRqloGEeS2WoXr83SnEA" referredVariable="_-scRo1oGEeS2WoXr83SnEA">
+              <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRq1oGEeS2WoXr83SnEA" stringSymbol="Binary">
+              <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+            </argument>
+            <referredOperation href="OCL.xml#_-scOdVoGEeS2WoXr83SnEA"/>
+          </condition>
+          <elseExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRrFoGEeS2WoXr83SnEA" stringSymbol="Varchar">
+            <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+          </elseExpression>
+          <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRrVoGEeS2WoXr83SnEA" stringSymbol="Raw">
+            <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+          </thenExpression>
+        </elseExpression>
+        <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRrloGEeS2WoXr83SnEA" stringSymbol="Number">
+          <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+        </thenExpression>
+      </queryExpression>
+    </ownedOperation>
+    <ownedOperation xmi:type="flatemofqvt:Function" xmi:id="_-scRr1oGEeS2WoXr83SnEA" name="SqlToUmlDataType">
+      <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+      <ownedParameter xmi:id="_-scRsFoGEeS2WoXr83SnEA" name="styp">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+      </ownedParameter>
+      <queryExpression xmi:type="flatemofqvt:IfExp" xmi:id="_-scRsVoGEeS2WoXr83SnEA">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+        <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scRsloGEeS2WoXr83SnEA" name="=">
+          <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+          <source xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRs1oGEeS2WoXr83SnEA" referredVariable="_-scRsFoGEeS2WoXr83SnEA">
+            <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+          </source>
+          <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRtFoGEeS2WoXr83SnEA" stringSymbol="Number">
+            <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+          </argument>
+          <referredOperation href="OCL.xml#_-scOdVoGEeS2WoXr83SnEA"/>
+        </condition>
+        <elseExpression xmi:type="flatemofqvt:IfExp" xmi:id="_-scRtVoGEeS2WoXr83SnEA">
+          <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+          <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scRtloGEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRt1oGEeS2WoXr83SnEA" referredVariable="_-scRsFoGEeS2WoXr83SnEA">
+              <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRuFoGEeS2WoXr83SnEA" stringSymbol="Raw">
+              <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+            </argument>
+            <referredOperation href="OCL.xml#_-scOdVoGEeS2WoXr83SnEA"/>
+          </condition>
+          <elseExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRuVoGEeS2WoXr83SnEA" stringSymbol="String">
+            <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+          </elseExpression>
+          <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRuloGEeS2WoXr83SnEA" stringSymbol="Binary">
+            <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+          </thenExpression>
+        </elseExpression>
+        <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRu1oGEeS2WoXr83SnEA" stringSymbol="Int">
+          <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+        </thenExpression>
+      </queryExpression>
+    </ownedOperation>
+    <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+    <modelParameter xmi:id="_-scRvFoGEeS2WoXr83SnEA" name="uml">
+      <usedPackage href="UmlMM.xml#_-sSbkVoGEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <modelParameter xmi:id="_-scRvVoGEeS2WoXr83SnEA" name="rdbms">
+      <usedPackage href="RelMM.xml#_-scRgVoGEeS2WoXr83SnEA"/>
+    </modelParameter>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_-scRvloGEeS2WoXr83SnEA" name="ClassToTable" isTopLevel="true" relationCallExp="_-scR61oGEeS2WoXr83SnEA">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_-scRv1oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_-scRvFoGEeS2WoXr83SnEA"
+          rootVariable="_-scRyloGEeS2WoXr83SnEA">
+        <pattern xmi:id="_-scRwFoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scRwVoGEeS2WoXr83SnEA" bindsTo="_-scRyloGEeS2WoXr83SnEA">
+            <type href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+            <part xmi:id="_-scRwloGEeS2WoXr83SnEA">
+              <referredProperty href="UmlMM.xml#_-sSbmFoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRw1oGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scRyVoGEeS2WoXr83SnEA">
+                <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_-scRxFoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_-scRvVoGEeS2WoXr83SnEA"
+          rootVariable="_-scRy1oGEeS2WoXr83SnEA">
+        <pattern xmi:id="_-scRxVoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scRxloGEeS2WoXr83SnEA" bindsTo="_-scRy1oGEeS2WoXr83SnEA">
+            <type href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+            <part xmi:id="_-scRx1oGEeS2WoXr83SnEA">
+              <referredProperty href="RelMM.xml#_-scRiloGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRyFoGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scRyVoGEeS2WoXr83SnEA">
+                <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_-scRyVoGEeS2WoXr83SnEA" name="n" isRequired="false">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_-scRyloGEeS2WoXr83SnEA" name="c" templateExp="_-scRwVoGEeS2WoXr83SnEA">
+        <type href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_-scRy1oGEeS2WoXr83SnEA" name="t" templateExp="_-scRxloGEeS2WoXr83SnEA">
+        <type href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+      </variable>
+    </rule>
+    <rule xmi:type="flatemofqvt:Relation" xmi:id="_-scRzFoGEeS2WoXr83SnEA" name="AttributeToColumn" isTopLevel="true">
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_-scRzVoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_-scRvFoGEeS2WoXr83SnEA"
+          rootVariable="_-scR5VoGEeS2WoXr83SnEA">
+        <defaultAssignment xmi:id="_-scRzloGEeS2WoXr83SnEA" variable="_-scR41oGEeS2WoXr83SnEA">
+          <valueExp xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scRz1oGEeS2WoXr83SnEA" referredOperation="_-scRr1oGEeS2WoXr83SnEA">
+            <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR0FoGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR5FoGEeS2WoXr83SnEA">
+              <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+            </argument>
+          </valueExp>
+        </defaultAssignment>
+        <pattern xmi:id="_-scR0VoGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scR0loGEeS2WoXr83SnEA" bindsTo="_-scR5VoGEeS2WoXr83SnEA">
+            <type href="UmlMM.xml#_-sSbkloGEeS2WoXr83SnEA"/>
+            <part xmi:id="_-scR01oGEeS2WoXr83SnEA">
+              <referredProperty href="UmlMM.xml#_-sSbk1oGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR1FoGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR4loGEeS2WoXr83SnEA">
+                <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_-scR1VoGEeS2WoXr83SnEA">
+              <referredProperty href="UmlMM.xml#_-sSblFoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR1loGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR41oGEeS2WoXr83SnEA">
+                <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_-scR11oGEeS2WoXr83SnEA">
+              <referredProperty href="UmlMM.xml#_-sSblVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scR2FoGEeS2WoXr83SnEA" bindsTo="_-scR5loGEeS2WoXr83SnEA">
+                <type href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+                <referredClass href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="UmlMM.xml#_-sSbkloGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_-scR2VoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_-scRvVoGEeS2WoXr83SnEA"
+          rootVariable="_-scR51oGEeS2WoXr83SnEA">
+        <pattern xmi:id="_-scR2loGEeS2WoXr83SnEA">
+          <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scR21oGEeS2WoXr83SnEA" bindsTo="_-scR51oGEeS2WoXr83SnEA">
+            <type href="RelMM.xml#_-scRgloGEeS2WoXr83SnEA"/>
+            <part xmi:id="_-scR3FoGEeS2WoXr83SnEA">
+              <referredProperty href="RelMM.xml#_-scRg1oGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR3VoGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR4loGEeS2WoXr83SnEA">
+                <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_-scR3loGEeS2WoXr83SnEA">
+              <referredProperty href="RelMM.xml#_-scRhFoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR31oGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR5FoGEeS2WoXr83SnEA">
+                <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <part xmi:id="_-scR4FoGEeS2WoXr83SnEA">
+              <referredProperty href="RelMM.xml#_-scRhVoGEeS2WoXr83SnEA"/>
+              <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scR4VoGEeS2WoXr83SnEA" bindsTo="_-scR6FoGEeS2WoXr83SnEA">
+                <type href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+                <referredClass href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+              </value>
+            </part>
+            <referredClass href="RelMM.xml#_-scRgloGEeS2WoXr83SnEA"/>
+          </templateExpression>
+        </pattern>
+      </domain>
+      <variable xmi:id="_-scR4loGEeS2WoXr83SnEA" name="n" isRequired="false">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_-scR41oGEeS2WoXr83SnEA" name="utyp" isRequired="false" domainAssignment="_-scRzloGEeS2WoXr83SnEA">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_-scR5FoGEeS2WoXr83SnEA" name="rtyp" isRequired="false">
+        <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_-scR5VoGEeS2WoXr83SnEA" name="a" templateExp="_-scR0loGEeS2WoXr83SnEA">
+        <type href="UmlMM.xml#_-sSbkloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_-scR5loGEeS2WoXr83SnEA" name="c" templateExp="_-scR2FoGEeS2WoXr83SnEA">
+        <type href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_-scR51oGEeS2WoXr83SnEA" name="cl" templateExp="_-scR21oGEeS2WoXr83SnEA">
+        <type href="RelMM.xml#_-scRgloGEeS2WoXr83SnEA"/>
+      </variable>
+      <variable xmi:id="_-scR6FoGEeS2WoXr83SnEA" name="t" templateExp="_-scR4VoGEeS2WoXr83SnEA">
+        <type href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+      </variable>
+      <when xmi:id="_-scR6VoGEeS2WoXr83SnEA">
+        <predicate xmi:id="_-scR6loGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_-scR61oGEeS2WoXr83SnEA" referredRelation="_-scRvloGEeS2WoXr83SnEA">
+            <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR7FoGEeS2WoXr83SnEA" referredVariable="_-scR5loGEeS2WoXr83SnEA">
+              <type href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+            </argument>
+            <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR7VoGEeS2WoXr83SnEA" referredVariable="_-scR6FoGEeS2WoXr83SnEA">
+              <type href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+            </argument>
+          </conditionExpression>
+        </predicate>
+      </when>
+      <where xmi:id="_-scR7loGEeS2WoXr83SnEA">
+        <predicate xmi:id="_-scR71oGEeS2WoXr83SnEA">
+          <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scR8FoGEeS2WoXr83SnEA" name="=">
+            <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+            <source xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR8VoGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR5FoGEeS2WoXr83SnEA">
+              <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+            </source>
+            <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scR8loGEeS2WoXr83SnEA" referredOperation="_-scRoloGEeS2WoXr83SnEA">
+              <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+              <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR81oGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR41oGEeS2WoXr83SnEA">
+                <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+              </argument>
+            </argument>
+            <referredOperation href="OCL.xml#_-scOdVoGEeS2WoXr83SnEA"/>
+          </conditionExpression>
+        </predicate>
+      </where>
+    </rule>
+    <ownedKey xmi:id="_-scR9FoGEeS2WoXr83SnEA">
+      <identifies href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+      <part href="UmlMM.xml#_-sSbmFoGEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="_-scR9VoGEeS2WoXr83SnEA">
+      <identifies href="UmlMM.xml#_-sSbkloGEeS2WoXr83SnEA"/>
+      <part href="UmlMM.xml#_-sSbk1oGEeS2WoXr83SnEA"/>
+      <part href="UmlMM.xml#_-sSblVoGEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="_-scR9loGEeS2WoXr83SnEA">
+      <identifies href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+      <part href="RelMM.xml#_-scRiloGEeS2WoXr83SnEA"/>
+    </ownedKey>
+    <ownedKey xmi:id="_-scR91oGEeS2WoXr83SnEA">
+      <identifies href="RelMM.xml#_-scRgloGEeS2WoXr83SnEA"/>
+      <part href="RelMM.xml#_-scRg1oGEeS2WoXr83SnEA"/>
+      <part href="RelMM.xml#_-scRhVoGEeS2WoXr83SnEA"/>
+    </ownedKey>
+  </nestedPackage>
+  <unit xmi:id="_-scR-FoGEeS2WoXr83SnEA" name="umlmm">
+    <ownedComment xmi:id="_-scR-VoGEeS2WoXr83SnEA" body="*****************************************************************************&#xA;Copyright (c) 2007,2008 Tata Consultancy Services and others.&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA;TCS - initial implementation for ModelMorf&#xA;E.D.Willink - alignment with evolved specification&#xA;*****************************************************************************"/>
+    <usedPackage xmi:type="flatemofqvt:Package" href="UmlMM.xml#_-sSbkVoGEeS2WoXr83SnEA"/>
+  </unit>
+  <unit xmi:id="_-scR-loGEeS2WoXr83SnEA" name="relmm">
+    <usedPackage xmi:type="flatemofqvt:Package" href="RelMM.xml#_-scRgVoGEeS2WoXr83SnEA"/>
+  </unit>
+</flatemofqvt:RelationModel>