diff --git a/.github/dependabot.yml b/.github/dependabot.yml
deleted file mode 100644
index bafc22b164..0000000000
--- a/.github/dependabot.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: 2
-updates:
- - package-ecosystem: gradle
- directory: /
- schedule:
- interval: weekly
- registries: "*"
-
-registries:
- itemis:
- type: maven-repository
- url: https://artifacts.itemis.cloud/repository/maven-mps
diff --git a/.github/renovate.json5 b/.github/renovate.json5
new file mode 100644
index 0000000000..a111e90275
--- /dev/null
+++ b/.github/renovate.json5
@@ -0,0 +1,18 @@
+{
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+ "extends": [
+ "config:best-practices"
+ ],
+
+ "packageRules": [
+ {
+ "matchPackageNames": ["download-jbr:download-jbr.gradle.plugin", "de.itemis.mps.gradle.common:de.itemis.mps.gradle.common.gradle.plugin"],
+ "groupName": "mps-gradle-plugin",
+ "allowedVersions": "< 2.0"
+ },
+ {
+ "matchPackageNames": ["org.eclipse*"],
+ "groupName": "eclipse"
+ },
+ ]
+}
diff --git a/.github/workflows/vulnerability-scanning.yml b/.github/workflows/vulnerability-scanning.yml
new file mode 100644
index 0000000000..51f8eadd03
--- /dev/null
+++ b/.github/workflows/vulnerability-scanning.yml
@@ -0,0 +1,35 @@
+on: [pull_request]
+
+jobs:
+ depchecktest:
+ runs-on: ubuntu-latest
+ name: depecheck_test
+ steps:
+ - name: Checkout
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
+ - name: Setup Java
+ uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4
+ with:
+ distribution: temurin
+ java-version: 17
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@cc4fc85e6b35bafd578d5ffbc76a5518407e1af0 # v4
+ - name: Call setup
+ run: ./gradlew dependencies
+ - name: Depcheck
+ uses: dependency-check/Dependency-Check_Action@3102a65fd5f36d0000297576acc56a475b0de98d
+ env:
+ # actions/setup-java changes JAVA_HOME, so it needs to be reset to match the depcheck image
+ JAVA_HOME: /opt/jdk
+ id: Depcheck
+ with:
+ project: 'MPS-extensions'
+ format: 'HTML'
+ out: 'reports'
+ args: >
+ --exclude ${{github.workspace}}/build/mps/**
+ - name: Upload Test results
+ uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
+ with:
+ name: Depcheck report
+ path: ${{github.workspace}}/reports
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e7f965c460..5afff955d9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,17 @@ All notable changes to this project are documented in this file.
The format is *loosely* based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) .The project does *not* follow Semantic Versioning and the changes are documented in reverse chronological order, grouped by calendar month.
+## November 2024
+
+### Changed
+
+- The project was migrated to 2024.1.
+
+### Removed
+
+- *de.itemis.mps.nativelibs* : This unmaintained language was removed.
+- *de.itemis.mps.hacks.xmodelgen* : This unmaintained (and broken) language was removed.
+
## October 2024
### Added
diff --git a/README.md b/README.md
index d9cc971408..75eca50290 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# MPS Extensions
-
+
[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
@@ -17,7 +17,9 @@ To use MPS Extensions in your project, add one of the following dependencies to
| MPS version | nexus status |
| --------------- | --------------- |
-| 2023.2 | [](https://artifacts.itemis.cloud/#browse/browse:maven-mps:de%2Fitemis%2Fmps%2Fextensions) |
+| Master | [](https://artifacts.itemis.cloud/#browse/browse:maven-mps:de%2Fitemis%2Fmps%2Fextensions) |
+| 2024.1 | [,'2024.1')][last()])](https://artifacts.itemis.cloud/#browse/browse:maven-mps:de%2Fitemis%2Fmps%2Fextensions) |
+| 2023.2 | [,'2023.2')][last()])](https://artifacts.itemis.cloud/#browse/browse:maven-mps:de%2Fitemis%2Fmps%2Fextensions) |
| 2022.3 | [,'2022.3')][last()])](https://artifacts.itemis.cloud/#browse/browse:maven-mps:de%2Fitemis%2Fmps%2Fextensions) |
| 2022.2 | [,'2022.2')][last()])](https://artifacts.itemis.cloud/#browse/browse:maven-mps:de%2Fitemis%2Fmps%2Fextensions) |
| 2021.3 | [,'2021.3')][last()])](https://artifacts.itemis.cloud/#browse/browse:maven-mps:de%2Fitemis%2Fmps%2Fextensions) |
diff --git a/build.gradle b/build.gradle
index 9ad5ce53bd..c06c5524de 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@ plugins {
id "com.github.breadmoirai.github-release" version "2.5.2"
id 'maven-publish'
id 'base'
- id 'de.itemis.mps.gradle.launcher' version '2.4.2.+'
+ id 'de.itemis.mps.gradle.launcher' version '2.5.2.+'
}
import de.itemis.mps.gradle.*
@@ -17,7 +17,7 @@ import java.time.LocalDateTime
apply plugin: 'download-jbr'
downloadJbr {
- jbrVersion = '17.0.8.1-b1000.32'
+ jbrVersion = '21.0.5-b631.8'
}
// detect if we are in a CI build
@@ -42,9 +42,9 @@ logger.info 'Repository username: {}', project.nexusUsername
// Dependency versions
// major version, e.g. '2021.1', '2021.2'
-ext.mpsMajor = '2023.2'
+ext.mpsMajor = '9999.9'
// optional minor/bugfix number (not added to the final build version)
-ext.mpsMinor = '1'
+ext.mpsMinor = ''
// e.g. Beta, EAP, RC
ext.mpsReleaseType = ''
@@ -60,8 +60,7 @@ if (ciBuild) {
if (branch.matches(/(maintenance|mps)[\/-](mps)?\d+(\.\d+)*/)) {
version = "$buildMajor.$buildMinor.$buildNumber.${GitBasedVersioning.gitShortCommitHash}"
} else {
- def isSnapshot = !(branch.equals("master"))
- version = GitBasedVersioning.getVersionWithCount(buildMajor, buildMinor, buildNumber) + (isSnapshot ? "-SNAPSHOT" : "")
+ version = GitBasedVersioning.getVersionWithCount(buildMajor, buildMinor, buildNumber) + "-SNAPSHOT"
}
println "##teamcity[buildNumber '${version}']"
@@ -94,7 +93,9 @@ configurations {
}
dependencies {
- mps "com.jetbrains:mps:$mpsVersion"
+ // For published releases adjust ext.mpsMajor and ext.mpsMinor above and use this dependency:
+ // mps "com.jetbrains:mps:$mpsVersion"
+ mps "com.jetbrains.mps:mps-prerelease:243.21565.10033"
}
repositories {
@@ -170,15 +171,18 @@ configurations {
exclude(group: 'com.google.guava')
attributes.attribute(Attribute.of('org.gradle.jvm.environment', String), 'standard-jvm')
}
+ xml_lib {
+ exclude(group: 'system')
+ exclude(module: 'xml-apis')
+ }
batik {
- exclude(group: 'xml-apis')
exclude(group: 'commons-io')
exclude(group: 'commons-logging')
}
}
dependencies {
- ant_lib "org.apache.ant:ant-junit:1.10.14"
+ ant_lib "org.apache.ant:ant-junit:1.10.15"
def elkVersion = "0.9.1"
diagram_lib ("org.eclipse.elk:org.eclipse.elk.alg.common:$elkVersion")
@@ -192,12 +196,14 @@ dependencies {
diagram_lib ("org.eclipse.elk:org.eclipse.elk.alg.topdownpacking:$elkVersion")
diagram_lib ("org.eclipse.elk:org.eclipse.elk.core:$elkVersion")
diagram_lib ("org.eclipse.elk:org.eclipse.elk.graph:$elkVersion")
- diagram_lib ("org.eclipse.emf:org.eclipse.emf.common:2.30.0")
- diagram_lib ("org.eclipse.emf:org.eclipse.emf.ecore:2.36.0")
- diagram_lib ("org.eclipse.emf:org.eclipse.emf.ecore.xmi:2.37.0")
+ diagram_lib ("org.eclipse.emf:org.eclipse.emf.common:2.40.0")
+ diagram_lib ("org.eclipse.emf:org.eclipse.emf.ecore:2.38.0")
+ diagram_lib ("org.eclipse.emf:org.eclipse.emf.ecore.xmi:2.38.0")
+
+ xml_lib("xerces:xercesImpl:2.12.2")
+ xml_lib("xml-apis:xml-apis-ext:1.3.04")
- batik ("org.apache.xmlgraphics:batik-svggen:1.17")
- batik ("org.apache.xmlgraphics:batik-dom:1.17")
+ batik ("org.apache.xmlgraphics:batik-all:1.18")
}
@@ -225,19 +231,6 @@ def defaultScriptArgs = [mps_home, build_dir, artifacts_dir, ext.buildDate, ext.
afterEvaluate {
project.ext["itemis.mps.gradle.ant.defaultJavaExecutable"] = tasks.getByName('downloadJbr').javaExecutable
- def jdk_home = null
- if (ext.has('java17_home')) {
- jdk_home = ext.get('java17_home')
- } else if (System.getenv('JB_JAVA17_HOME') != null) {
- jdk_home = System.getenv('JB_JAVA17_HOME')
- }
- if(jdk_home != null) {
- if (!new File(jdk_home, "lib").exists()) {
- throw new GradleException("Unable to locate JDK home folder. Detected folder is: $jdk_home")
- } else {
- ext["itemis.mps.gradle.ant.defaultJavaExecutable"] = new File(jdk_home, 'bin/java')
- }
- }
}
// enables https://github.com/mbeddr/mps-gradle-plugin#providing-global-defaults
@@ -278,8 +271,25 @@ task resolved_batik_dependencies(type: Sync) {
}
}
+task resolved_xml_dependencies(type: Sync) {
+ from configurations.xml_lib
+ into file('code/xml/solutions/lib')
+
+ // Strip version numbers from file names
+ rename { filename ->
+ def ra = configurations.xml_lib.resolvedConfiguration.resolvedArtifacts.find { ResolvedArtifact ra -> ra.file.name == filename }
+ String finalName
+ if (ra.classifier != null) {
+ finalName = "${ra.name}-${ra.classifier}.${ra.extension}"
+ } else {
+ finalName = "${ra.name}.${ra.extension}"
+ }
+ return finalName
+ }
+}
+
tasks.register('build_allScripts', BuildLanguages) {
- dependsOn 'downloadJbr', resolveMps, copyModelApi, resolved_diagram_dependencies, resolved_batik_dependencies
+ dependsOn 'downloadJbr', resolveMps, copyModelApi, resolved_diagram_dependencies, resolved_batik_dependencies, resolved_xml_dependencies
script "$rootDir/scripts/build.xml"
}
@@ -365,10 +375,10 @@ configurations {
}
dependencies {
junitAnt 'junit:junit:4.13.2'
- junitAnt('org.apache.ant:ant-junit:1.10.14') {
+ junitAnt('org.apache.ant:ant-junit:1.10.15') {
transitive = false
}
- junitAnt('org.apache.ant:ant-junit4:1.10.14') {
+ junitAnt('org.apache.ant:ant-junit4:1.10.15') {
transitive = false
}
}
@@ -526,6 +536,7 @@ def usedPluginRoots = [
new File(mpsHomeDir, 'plugins/mps-vcs'),
new File(mpsHomeDir, 'plugins/mps-git4idea'),
new File(mpsHomeDir, 'plugins/mps-httpsupport'),
+ new File(mpsHomeDir, 'plugins/mps-testing'),
new File(mpsHomeDir, 'plugins/mps-spellcheck')
]
diff --git a/code/.mps/migration.xml b/code/.mps/migration.xml
index a2e96ad573..3fa862a78a 100644
--- a/code/.mps/migration.xml
+++ b/code/.mps/migration.xml
@@ -12,6 +12,7 @@
-
+
+
\ No newline at end of file
diff --git a/code/.mps/modules.xml b/code/.mps/modules.xml
index e1bde166de..ab685df487 100644
--- a/code/.mps/modules.xml
+++ b/code/.mps/modules.xml
@@ -57,10 +57,7 @@
-
-
-
@@ -80,6 +77,7 @@
+
@@ -203,7 +201,6 @@
-
@@ -231,6 +228,7 @@
+
-
\ No newline at end of file
+
diff --git a/code/batik/solutions/de.itemis.stubs.batik.msd b/code/batik/solutions/de.itemis.stubs.batik.msd
index 61ae94e318..abaea64c86 100644
--- a/code/batik/solutions/de.itemis.stubs.batik.msd
+++ b/code/batik/solutions/de.itemis.stubs.batik.msd
@@ -1,38 +1,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
+ 124d077c-270f-42ca-8bf8-bee488dc96dc(de.itemis.stubs.xml)
@@ -43,6 +26,7 @@
+
diff --git a/code/blutil/languages/com.mbeddr.mpsutil.blutil.genutil/com.mbeddr.mpsutil.blutil.genutil.mpl b/code/blutil/languages/com.mbeddr.mpsutil.blutil.genutil/com.mbeddr.mpsutil.blutil.genutil.mpl
index 4a14896c46..35579ed785 100644
--- a/code/blutil/languages/com.mbeddr.mpsutil.blutil.genutil/com.mbeddr.mpsutil.blutil.genutil.mpl
+++ b/code/blutil/languages/com.mbeddr.mpsutil.blutil.genutil/com.mbeddr.mpsutil.blutil.genutil.mpl
@@ -115,7 +115,7 @@
-
+
diff --git a/code/blutil/languages/com.mbeddr.mpsutil.blutil.genutil/models/structure.mps b/code/blutil/languages/com.mbeddr.mpsutil.blutil.genutil/models/structure.mps
index 2f7017a37d..5bccb1da36 100644
--- a/code/blutil/languages/com.mbeddr.mpsutil.blutil.genutil/models/structure.mps
+++ b/code/blutil/languages/com.mbeddr.mpsutil.blutil.genutil/models/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/blutil/languages/com.mbeddr.mpsutil.blutil/blutil.mpl b/code/blutil/languages/com.mbeddr.mpsutil.blutil/blutil.mpl
index d83d3303db..2b59bcd223 100644
--- a/code/blutil/languages/com.mbeddr.mpsutil.blutil/blutil.mpl
+++ b/code/blutil/languages/com.mbeddr.mpsutil.blutil/blutil.mpl
@@ -174,7 +174,7 @@
-
+
@@ -197,7 +197,6 @@
-
diff --git a/code/blutil/languages/com.mbeddr.mpsutil.blutil/generator/template/main@generator.mps b/code/blutil/languages/com.mbeddr.mpsutil.blutil/generator/template/main@generator.mps
index acffe31523..a19064414a 100644
--- a/code/blutil/languages/com.mbeddr.mpsutil.blutil/generator/template/main@generator.mps
+++ b/code/blutil/languages/com.mbeddr.mpsutil.blutil/generator/template/main@generator.mps
@@ -7586,14 +7586,19 @@
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/code/blutil/languages/com.mbeddr.mpsutil.blutil/languageModels/structure.mps b/code/blutil/languages/com.mbeddr.mpsutil.blutil/languageModels/structure.mps
index b90c4309b0..7adab028e7 100644
--- a/code/blutil/languages/com.mbeddr.mpsutil.blutil/languageModels/structure.mps
+++ b/code/blutil/languages/com.mbeddr.mpsutil.blutil/languageModels/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/blutil/languages/com.mbeddr.mpsutil.blutil/solutions/com.mbeddr.mpsutil.blutil.rt.msd b/code/blutil/languages/com.mbeddr.mpsutil.blutil/solutions/com.mbeddr.mpsutil.blutil.rt.msd
index 9a4df51ca3..c3037aa061 100644
--- a/code/blutil/languages/com.mbeddr.mpsutil.blutil/solutions/com.mbeddr.mpsutil.blutil.rt.msd
+++ b/code/blutil/languages/com.mbeddr.mpsutil.blutil/solutions/com.mbeddr.mpsutil.blutil.rt.msd
@@ -1,7 +1,7 @@
-
+
diff --git a/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.doc/models/test.com.mbeddr.mpsutil.blutil.doc@tests.mps b/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.doc/models/test.com.mbeddr.mpsutil.blutil.doc@tests.mps
index a7debf6bf4..07f0967789 100644
--- a/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.doc/models/test.com.mbeddr.mpsutil.blutil.doc@tests.mps
+++ b/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.doc/models/test.com.mbeddr.mpsutil.blutil.doc@tests.mps
@@ -16,9 +16,7 @@
-
-
-
+
@@ -127,9 +125,6 @@
-
-
-
diff --git a/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.genutil.lang/models/structure.mps b/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.genutil.lang/models/structure.mps
index a8fa7e6ded..43e21283d7 100644
--- a/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.genutil.lang/models/structure.mps
+++ b/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.genutil.lang/models/structure.mps
@@ -3,7 +3,7 @@
-
+
diff --git a/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.genutil.lang/test.com.mbeddr.mpsutil.blutil.genutil.lang.mpl b/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.genutil.lang/test.com.mbeddr.mpsutil.blutil.genutil.lang.mpl
index e9094d8d5c..d825dc1622 100644
--- a/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.genutil.lang/test.com.mbeddr.mpsutil.blutil.genutil.lang.mpl
+++ b/code/blutil/tests/test.com.mbeddr.mpsutil.blutil.genutil.lang/test.com.mbeddr.mpsutil.blutil.genutil.lang.mpl
@@ -96,7 +96,7 @@
-
+
diff --git a/code/blutil/tests/test.com.mbeddr.mpsutil.blutil/models/test.com.mbeddr.mpsutil.blutil.ifInstanceOf@tests.mps b/code/blutil/tests/test.com.mbeddr.mpsutil.blutil/models/test.com.mbeddr.mpsutil.blutil.ifInstanceOf@tests.mps
index 9acd035d06..4b8cf359d8 100644
--- a/code/blutil/tests/test.com.mbeddr.mpsutil.blutil/models/test.com.mbeddr.mpsutil.blutil.ifInstanceOf@tests.mps
+++ b/code/blutil/tests/test.com.mbeddr.mpsutil.blutil/models/test.com.mbeddr.mpsutil.blutil.ifInstanceOf@tests.mps
@@ -12,9 +12,6 @@
-
-
-
@@ -536,8 +533,5 @@
-
-
-
diff --git a/code/blutil/tests/test.com.mbeddr.mpsutil.blutil/models/test.com.mbeddr.mpsutil.blutil.scoping@tests.mps b/code/blutil/tests/test.com.mbeddr.mpsutil.blutil/models/test.com.mbeddr.mpsutil.blutil.scoping@tests.mps
index b18896e162..814ee9d456 100644
--- a/code/blutil/tests/test.com.mbeddr.mpsutil.blutil/models/test.com.mbeddr.mpsutil.blutil.scoping@tests.mps
+++ b/code/blutil/tests/test.com.mbeddr.mpsutil.blutil/models/test.com.mbeddr.mpsutil.blutil.scoping@tests.mps
@@ -15,9 +15,6 @@
-
-
-
@@ -805,8 +802,5 @@
-
-
-
diff --git a/code/blutil/tests/test.ts.conceptswitch/models/test.ts.conceptswitch@tests.mps b/code/blutil/tests/test.ts.conceptswitch/models/test.ts.conceptswitch@tests.mps
index 2568a075a2..295b20145d 100644
--- a/code/blutil/tests/test.ts.conceptswitch/models/test.ts.conceptswitch@tests.mps
+++ b/code/blutil/tests/test.ts.conceptswitch/models/test.ts.conceptswitch@tests.mps
@@ -27,9 +27,6 @@
-
-
-
@@ -307,8 +304,5 @@
-
-
-
diff --git a/code/blutil/tests/test.ts.match/models/main@tests.mps b/code/blutil/tests/test.ts.match/models/main@tests.mps
index ca1355256d..a964b93857 100644
--- a/code/blutil/tests/test.ts.match/models/main@tests.mps
+++ b/code/blutil/tests/test.ts.match/models/main@tests.mps
@@ -24,9 +24,6 @@
-
-
-
@@ -1547,9 +1544,6 @@
-
-
-
diff --git a/code/build/solutions/allScripts/allScripts.msd b/code/build/solutions/allScripts/allScripts.msd
index 37c2e55f5e..bfa78d045d 100644
--- a/code/build/solutions/allScripts/allScripts.msd
+++ b/code/build/solutions/allScripts/allScripts.msd
@@ -15,7 +15,7 @@
-
+
diff --git a/code/build/solutions/allScripts/models/build.mps b/code/build/solutions/allScripts/models/build.mps
index 1763a2364f..c7ecf7e25b 100644
--- a/code/build/solutions/allScripts/models/build.mps
+++ b/code/build/solutions/allScripts/models/build.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/build/solutions/de.itemis.mps.extensions.build/de.itemis.mps.extensions.build.msd b/code/build/solutions/de.itemis.mps.extensions.build/de.itemis.mps.extensions.build.msd
index ca3031bc11..ff89e11265 100644
--- a/code/build/solutions/de.itemis.mps.extensions.build/de.itemis.mps.extensions.build.msd
+++ b/code/build/solutions/de.itemis.mps.extensions.build/de.itemis.mps.extensions.build.msd
@@ -15,7 +15,7 @@
-
+
diff --git a/code/build/solutions/de.itemis.mps.extensions.build/models/de.itemis.mps.extensions.build.mps b/code/build/solutions/de.itemis.mps.extensions.build/models/de.itemis.mps.extensions.build.mps
index 042ed05f22..eac0fa27e2 100644
--- a/code/build/solutions/de.itemis.mps.extensions.build/models/de.itemis.mps.extensions.build.mps
+++ b/code/build/solutions/de.itemis.mps.extensions.build/models/de.itemis.mps.extensions.build.mps
@@ -35,6 +35,7 @@
+
@@ -75,9 +76,6 @@
-
-
-
@@ -94,10 +92,6 @@
-
-
-
-
@@ -183,7 +177,7 @@
-
+
@@ -363,272 +357,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -932,8 +660,8 @@
-
+
@@ -1000,6 +728,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1060,8 +801,8 @@
-
+
@@ -1118,28 +859,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1151,7 +870,7 @@
-
+
@@ -1173,7 +892,7 @@
-
+
@@ -2520,11 +2239,6 @@
-
-
-
-
-
@@ -4822,100 +4536,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -6569,12 +6189,6 @@
-
-
-
-
-
-
@@ -10364,6 +9978,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -13199,37 +12849,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
@@ -13237,56 +12868,34 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
@@ -13294,75 +12903,48 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
-
+
+
@@ -13370,18 +12952,18 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
-
+
+
@@ -13389,38 +12971,19 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -13432,8 +12995,8 @@
-
+
@@ -16556,6 +16119,15 @@
+
+
+
+
+
+
+
+
+
@@ -16639,85 +16211,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -16930,15 +16423,35 @@
-
-
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -16947,6 +16460,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -17679,67 +17217,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -18876,6 +18353,11 @@
+
+
+
+
+
@@ -19275,6 +18757,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -23219,9 +22790,6 @@
-
-
-
@@ -23279,6 +22847,9 @@
+
+
+
@@ -23356,9 +22927,6 @@
-
-
-
@@ -23388,6 +22956,9 @@
+
+
+
diff --git a/code/celllayout/languages/de.itemis.mps.celllayout/de.itemis.mps.editor.celllayout.styles.mpl b/code/celllayout/languages/de.itemis.mps.celllayout/de.itemis.mps.editor.celllayout.styles.mpl
index 9cbf91f94b..fe2e5c15e1 100644
--- a/code/celllayout/languages/de.itemis.mps.celllayout/de.itemis.mps.editor.celllayout.styles.mpl
+++ b/code/celllayout/languages/de.itemis.mps.celllayout/de.itemis.mps.editor.celllayout.styles.mpl
@@ -38,7 +38,7 @@
-
+
diff --git a/code/celllayout/languages/de.itemis.mps.celllayout/models/styles/structure.mps b/code/celllayout/languages/de.itemis.mps.celllayout/models/styles/structure.mps
index 5115f89086..7e2e212b52 100644
--- a/code/celllayout/languages/de.itemis.mps.celllayout/models/styles/structure.mps
+++ b/code/celllayout/languages/de.itemis.mps.celllayout/models/styles/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/celllayout/languages/de.itemis.mps.editor.celllayout.sandboxlang/de.itemis.mps.editor.celllayout.sandboxlang.mpl b/code/celllayout/languages/de.itemis.mps.editor.celllayout.sandboxlang/de.itemis.mps.editor.celllayout.sandboxlang.mpl
index a59b1fc61c..cbe9bdaa66 100644
--- a/code/celllayout/languages/de.itemis.mps.editor.celllayout.sandboxlang/de.itemis.mps.editor.celllayout.sandboxlang.mpl
+++ b/code/celllayout/languages/de.itemis.mps.editor.celllayout.sandboxlang/de.itemis.mps.editor.celllayout.sandboxlang.mpl
@@ -38,7 +38,7 @@
-
+
diff --git a/code/celllayout/languages/de.itemis.mps.editor.celllayout.sandboxlang/models/structure.mps b/code/celllayout/languages/de.itemis.mps.editor.celllayout.sandboxlang/models/structure.mps
index 0b6b4b10c1..ac2c73a73e 100644
--- a/code/celllayout/languages/de.itemis.mps.editor.celllayout.sandboxlang/models/structure.mps
+++ b/code/celllayout/languages/de.itemis.mps.editor.celllayout.sandboxlang/models/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/celllayout/languages/de.itemis.mps.editor.celllayout/de.itemis.mps.editor.celllayout.mpl b/code/celllayout/languages/de.itemis.mps.editor.celllayout/de.itemis.mps.editor.celllayout.mpl
index b5959c95c4..4ebaa9c831 100644
--- a/code/celllayout/languages/de.itemis.mps.editor.celllayout/de.itemis.mps.editor.celllayout.mpl
+++ b/code/celllayout/languages/de.itemis.mps.editor.celllayout/de.itemis.mps.editor.celllayout.mpl
@@ -41,7 +41,6 @@
-
@@ -49,7 +48,6 @@
-
@@ -66,7 +64,6 @@
-
@@ -138,7 +135,7 @@
-
+
@@ -159,7 +156,6 @@
-
diff --git a/code/celllayout/languages/de.itemis.mps.editor.celllayout/generator/template/main@generator.mps b/code/celllayout/languages/de.itemis.mps.editor.celllayout/generator/template/main@generator.mps
index 3f548f552e..2d5d58b4a2 100644
--- a/code/celllayout/languages/de.itemis.mps.editor.celllayout/generator/template/main@generator.mps
+++ b/code/celllayout/languages/de.itemis.mps.editor.celllayout/generator/template/main@generator.mps
@@ -5,7 +5,6 @@
-
diff --git a/code/celllayout/languages/test.de.itemis.mps.editor.celllayout.lang/models/structure.mps b/code/celllayout/languages/test.de.itemis.mps.editor.celllayout.lang/models/structure.mps
index 4b8594868c..ca236a849b 100644
--- a/code/celllayout/languages/test.de.itemis.mps.editor.celllayout.lang/models/structure.mps
+++ b/code/celllayout/languages/test.de.itemis.mps.editor.celllayout.lang/models/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/celllayout/languages/test.de.itemis.mps.editor.celllayout.lang/test.de.itemis.mps.editor.celllayout.lang.mpl b/code/celllayout/languages/test.de.itemis.mps.editor.celllayout.lang/test.de.itemis.mps.editor.celllayout.lang.mpl
index 80267d8cc2..f64bf6015a 100644
--- a/code/celllayout/languages/test.de.itemis.mps.editor.celllayout.lang/test.de.itemis.mps.editor.celllayout.lang.mpl
+++ b/code/celllayout/languages/test.de.itemis.mps.editor.celllayout.lang/test.de.itemis.mps.editor.celllayout.lang.mpl
@@ -45,7 +45,7 @@
-
+
@@ -66,7 +66,6 @@
-
diff --git a/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/de.itemis.mps.editor.celllayout.runtime.msd b/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/de.itemis.mps.editor.celllayout.runtime.msd
index e31332429a..5b3e985dea 100644
--- a/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/de.itemis.mps.editor.celllayout.runtime.msd
+++ b/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/de.itemis.mps.editor.celllayout.runtime.msd
@@ -13,7 +13,6 @@
1ed103c3-3aa6-49b7-9c21-6765ee11f224(MPS.Editor)
6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
- f0fff802-6d26-4d2e-b89d-391357265626(de.slisson.mps.hacks.editor)
24c96a96-b7a1-4f30-82da-0f8e279a2661(de.itemis.mps.editor.celllayout.styles)
@@ -48,7 +47,6 @@
-
diff --git a/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/models/de/itemis/mps/editor/celllayout/layout.mps b/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/models/de/itemis/mps/editor/celllayout/layout.mps
index 55374d8edc..1c7f5a5cc0 100644
--- a/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/models/de/itemis/mps/editor/celllayout/layout.mps
+++ b/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/models/de/itemis/mps/editor/celllayout/layout.mps
@@ -3068,7 +3068,9 @@
-
+
+
+
@@ -9402,6 +9404,9 @@
+
+
+
@@ -9418,9 +9423,6 @@
-
-
-
@@ -11118,14 +11120,6 @@
-
-
-
-
-
-
-
-
@@ -11137,6 +11131,14 @@
+
+
+
+
+
+
+
+
diff --git a/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/models/de/itemis/mps/editor/celllayout/runtime/plugin.mps b/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/models/de/itemis/mps/editor/celllayout/runtime/plugin.mps
index 82457d47df..146c956b1a 100644
--- a/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/models/de/itemis/mps/editor/celllayout/runtime/plugin.mps
+++ b/code/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/models/de/itemis/mps/editor/celllayout/runtime/plugin.mps
@@ -9,13 +9,15 @@
-
+
+
+
@@ -53,6 +55,7 @@
+
@@ -79,11 +82,21 @@
+
+
+
+
+
+
+
+
+
+
@@ -138,6 +151,9 @@
+
+
+
@@ -202,10 +218,10 @@
-
+
-
+
@@ -330,26 +346,75 @@
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -382,14 +447,14 @@
-
+
-
+
@@ -412,7 +477,7 @@
-
+
@@ -425,7 +490,7 @@
-
+
@@ -439,7 +504,7 @@
-
+
@@ -449,23 +514,45 @@
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -483,7 +570,7 @@
-
+
@@ -502,7 +589,7 @@
-
+
@@ -526,36 +613,44 @@
-
+
+
+
+
-
-
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
@@ -564,17 +659,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
-
+
-
-
-
diff --git a/code/celllayout/solutions/test.de.itemis.mps.editor.celllayout.runtime/models/test/de/itemis/mps/editor/celllayout/editor@tests.mps b/code/celllayout/solutions/test.de.itemis.mps.editor.celllayout.runtime/models/test/de/itemis/mps/editor/celllayout/editor@tests.mps
index 25979112b7..c1ec162182 100644
--- a/code/celllayout/solutions/test.de.itemis.mps.editor.celllayout.runtime/models/test/de/itemis/mps/editor/celllayout/editor@tests.mps
+++ b/code/celllayout/solutions/test.de.itemis.mps.editor.celllayout.runtime/models/test/de/itemis/mps/editor/celllayout/editor@tests.mps
@@ -39,9 +39,6 @@
-
-
-
@@ -847,9 +844,6 @@
-
-
-
diff --git a/code/celllayout/solutions/test.de.itemis.mps.editor.celllayout.runtime/test.de.itemis.mps.editor.celllayout.msd b/code/celllayout/solutions/test.de.itemis.mps.editor.celllayout.runtime/test.de.itemis.mps.editor.celllayout.msd
index 8253031375..e6741349bb 100644
--- a/code/celllayout/solutions/test.de.itemis.mps.editor.celllayout.runtime/test.de.itemis.mps.editor.celllayout.msd
+++ b/code/celllayout/solutions/test.de.itemis.mps.editor.celllayout.runtime/test.de.itemis.mps.editor.celllayout.msd
@@ -38,7 +38,6 @@
-
diff --git a/code/changelog/de.itemis.mps.changelog.sandbox/de.itemis.mps.changelog.sandbox.msd b/code/changelog/de.itemis.mps.changelog.sandbox/de.itemis.mps.changelog.sandbox.msd
index 2ffa559973..5f67b05169 100644
--- a/code/changelog/de.itemis.mps.changelog.sandbox/de.itemis.mps.changelog.sandbox.msd
+++ b/code/changelog/de.itemis.mps.changelog.sandbox/de.itemis.mps.changelog.sandbox.msd
@@ -6,7 +6,7 @@
-
+
diff --git a/code/changelog/de.itemis.mps.changelog/de.itemis.mps.changelog.mpl b/code/changelog/de.itemis.mps.changelog/de.itemis.mps.changelog.mpl
index cbfc75ed71..63703a8dcb 100644
--- a/code/changelog/de.itemis.mps.changelog/de.itemis.mps.changelog.mpl
+++ b/code/changelog/de.itemis.mps.changelog/de.itemis.mps.changelog.mpl
@@ -136,7 +136,7 @@
-
+
diff --git a/code/changelog/de.itemis.mps.changelog/models/de.itemis.mps.changelog.behavior.mps b/code/changelog/de.itemis.mps.changelog/models/de.itemis.mps.changelog.behavior.mps
index 2979bf3006..c9342f5cf0 100644
--- a/code/changelog/de.itemis.mps.changelog/models/de.itemis.mps.changelog.behavior.mps
+++ b/code/changelog/de.itemis.mps.changelog/models/de.itemis.mps.changelog.behavior.mps
@@ -42,6 +42,7 @@
+
@@ -253,6 +254,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -371,20 +398,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
+
+
diff --git a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.demolang/de.slisson.mps.conditionalEditor.demolang.mpl b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.demolang/de.slisson.mps.conditionalEditor.demolang.mpl
index c005aee148..d55d51f276 100644
--- a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.demolang/de.slisson.mps.conditionalEditor.demolang.mpl
+++ b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.demolang/de.slisson.mps.conditionalEditor.demolang.mpl
@@ -40,7 +40,7 @@
-
+
diff --git a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.demolang/languageModels/structure.mps b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.demolang/languageModels/structure.mps
index 931c3c5f2b..e916c0dd27 100644
--- a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.demolang/languageModels/structure.mps
+++ b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.demolang/languageModels/structure.mps
@@ -3,7 +3,7 @@
-
+
diff --git a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.hints/de.slisson.mps.conditionalEditor.hints.mpl b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.hints/de.slisson.mps.conditionalEditor.hints.mpl
index 418ae634ff..12984f7f36 100644
--- a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.hints/de.slisson.mps.conditionalEditor.hints.mpl
+++ b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.hints/de.slisson.mps.conditionalEditor.hints.mpl
@@ -34,7 +34,7 @@
-
+
diff --git a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.hints/models/structure.mps b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.hints/models/structure.mps
index 839517924e..caa7a809fe 100644
--- a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.hints/models/structure.mps
+++ b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor.hints/models/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor/de.slisson.mps.conditionalEditor.mpl b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor/de.slisson.mps.conditionalEditor.mpl
index 9eded7a7d0..890a30499d 100644
--- a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor/de.slisson.mps.conditionalEditor.mpl
+++ b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor/de.slisson.mps.conditionalEditor.mpl
@@ -157,7 +157,7 @@
-
+
diff --git a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor/languageModels/structure.mps b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor/languageModels/structure.mps
index 88c9b7b74d..486f9a8b15 100644
--- a/code/conditional-editor/languages/de.slisson.mps.conditionalEditor/languageModels/structure.mps
+++ b/code/conditional-editor/languages/de.slisson.mps.conditionalEditor/languageModels/structure.mps
@@ -3,7 +3,7 @@
-
+
diff --git a/code/debug/languages/de.itemis.mps.debug/de.itemis.mps.debug.mpl b/code/debug/languages/de.itemis.mps.debug/de.itemis.mps.debug.mpl
index a56f6c2c6c..5651d573f9 100644
--- a/code/debug/languages/de.itemis.mps.debug/de.itemis.mps.debug.mpl
+++ b/code/debug/languages/de.itemis.mps.debug/de.itemis.mps.debug.mpl
@@ -62,7 +62,6 @@
-
@@ -105,7 +104,7 @@
-
+
@@ -127,7 +126,6 @@
-
diff --git a/code/debug/solutions/de.itemis.mps.debug.runtime/de.itemis.mps.debug.runtime.msd b/code/debug/solutions/de.itemis.mps.debug.runtime/de.itemis.mps.debug.runtime.msd
index fda258c572..bd43705faf 100644
--- a/code/debug/solutions/de.itemis.mps.debug.runtime/de.itemis.mps.debug.runtime.msd
+++ b/code/debug/solutions/de.itemis.mps.debug.runtime/de.itemis.mps.debug.runtime.msd
@@ -1,7 +1,7 @@
-
+
@@ -46,7 +46,6 @@
-
diff --git a/code/debug/solutions/de.itemis.mps.debug.runtime/models/de.itemis.mps.debug.runtime.plugin.mps b/code/debug/solutions/de.itemis.mps.debug.runtime/models/de.itemis.mps.debug.runtime.plugin.mps
index 15cd0c7f45..8a61894e04 100644
--- a/code/debug/solutions/de.itemis.mps.debug.runtime/models/de.itemis.mps.debug.runtime.plugin.mps
+++ b/code/debug/solutions/de.itemis.mps.debug.runtime/models/de.itemis.mps.debug.runtime.plugin.mps
@@ -23,6 +23,8 @@
+
+
@@ -64,6 +66,9 @@
+
+
+
@@ -74,6 +79,9 @@
+
+
+
@@ -145,6 +153,7 @@
+
@@ -246,21 +255,22 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
@@ -275,8 +285,8 @@
-
-
+
+
@@ -464,24 +474,25 @@
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
@@ -494,10 +505,10 @@
-
+
-
-
+
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/de.itemis.mps.editor.diagram.demo.activity.mpl b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/de.itemis.mps.editor.diagram.demo.activity.mpl
index 88a308eb0a..69066a01d2 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/de.itemis.mps.editor.diagram.demo.activity.mpl
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/de.itemis.mps.editor.diagram.demo.activity.mpl
@@ -43,7 +43,7 @@
-
+
@@ -70,7 +70,6 @@
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/languageModels/structure.mps b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/languageModels/structure.mps
index 511867ea9c..1dce3a9ad9 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/languageModels/structure.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.activity/languageModels/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.callgraph/de.itemis.mps.editor.diagram.demo.callgraph.mpl b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.callgraph/de.itemis.mps.editor.diagram.demo.callgraph.mpl
index 190c4a7e6a..8e7dbab932 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.callgraph/de.itemis.mps.editor.diagram.demo.callgraph.mpl
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.callgraph/de.itemis.mps.editor.diagram.demo.callgraph.mpl
@@ -43,7 +43,7 @@
-
+
@@ -68,7 +68,6 @@
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.callgraph/languageModels/structure.mps b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.callgraph/languageModels/structure.mps
index 101dc98832..4e70bf9e96 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.callgraph/languageModels/structure.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.callgraph/languageModels/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/de.itemis.mps.editor.diagram.demo.elk.mpl b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/de.itemis.mps.editor.diagram.demo.elk.mpl
index d78eb7074a..979235d12b 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/de.itemis.mps.editor.diagram.demo.elk.mpl
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/de.itemis.mps.editor.diagram.demo.elk.mpl
@@ -1,7 +1,7 @@
-
+
@@ -60,7 +60,6 @@
-
@@ -112,7 +111,7 @@
-
+
@@ -140,7 +139,6 @@
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.editor.mps b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.editor.mps
index 333a8d5a43..f4cb65bb70 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.editor.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.editor.mps
@@ -33,8 +33,8 @@
-
+
@@ -371,6 +371,15 @@
+
+
+
+
+
+
+
+
+
@@ -396,15 +405,6 @@
-
-
-
-
-
-
-
-
-
@@ -2729,6 +2729,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3223,33 +3250,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3265,6 +3265,9 @@
+
+
+
@@ -3759,9 +3762,6 @@
-
-
-
@@ -4572,6 +4572,13 @@
+
+
+
+
+
+
+
@@ -4597,13 +4604,6 @@
-
-
-
-
-
-
-
@@ -5054,6 +5054,13 @@
+
+
+
+
+
+
+
@@ -5079,13 +5086,6 @@
-
-
-
-
-
-
-
@@ -5831,6 +5831,13 @@
+
+
+
+
+
+
+
@@ -5856,13 +5863,6 @@
-
-
-
-
-
-
-
@@ -7236,62 +7236,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -7318,150 +7262,43 @@
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
@@ -7477,30 +7314,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
@@ -7552,43 +7376,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
@@ -7604,6 +7402,152 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7617,6 +7561,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -7630,18 +7643,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.structure.mps b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.structure.mps
index 43c6d6ed74..eb4826e00c 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.structure.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demo.elk/models/de.itemis.mps.editor.diagram.demo.elk.structure.mps
@@ -95,21 +95,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -143,6 +128,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -351,6 +351,14 @@
+
+
+
+
+
+
+
+
@@ -375,13 +383,5 @@
-
-
-
-
-
-
-
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/de.itemis.mps.editor.diagram.demoentities.mpl b/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/de.itemis.mps.editor.diagram.demoentities.mpl
index ca0bf249df..a7974caf31 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/de.itemis.mps.editor.diagram.demoentities.mpl
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/de.itemis.mps.editor.diagram.demoentities.mpl
@@ -50,7 +50,7 @@
-
+
@@ -82,7 +82,6 @@
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/languageModels/structure.mps b/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/languageModels/structure.mps
index c10c5f4804..3f3de6995f 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/languageModels/structure.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demoentities/languageModels/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demolang/de.itemis.mps.editor.diagram.demolang.mpl b/code/diagram/languages/de.itemis.mps.editor.diagram.demolang/de.itemis.mps.editor.diagram.demolang.mpl
index 26c1846c11..3f59d05a7d 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demolang/de.itemis.mps.editor.diagram.demolang.mpl
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demolang/de.itemis.mps.editor.diagram.demolang.mpl
@@ -80,7 +80,7 @@
-
+
@@ -106,7 +106,6 @@
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.demolang/languageModels/structure.mps b/code/diagram/languages/de.itemis.mps.editor.diagram.demolang/languageModels/structure.mps
index ae98923af1..9b2cbf539f 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.demolang/languageModels/structure.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.demolang/languageModels/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.layout/de.itemis.mps.editor.diagram.layout.mpl b/code/diagram/languages/de.itemis.mps.editor.diagram.layout/de.itemis.mps.editor.diagram.layout.mpl
index af9a1e25df..b2fa434a6b 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.layout/de.itemis.mps.editor.diagram.layout.mpl
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.layout/de.itemis.mps.editor.diagram.layout.mpl
@@ -39,7 +39,7 @@
-
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.layout/languageModels/structure.mps b/code/diagram/languages/de.itemis.mps.editor.diagram.layout/languageModels/structure.mps
index d7fc8a6a39..680902fde0 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.layout/languageModels/structure.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.layout/languageModels/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.styles/de.itemis.mps.editor.diagram.styles.mpl b/code/diagram/languages/de.itemis.mps.editor.diagram.styles/de.itemis.mps.editor.diagram.styles.mpl
index 4d5efe1cbd..58d53d65cb 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.styles/de.itemis.mps.editor.diagram.styles.mpl
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.styles/de.itemis.mps.editor.diagram.styles.mpl
@@ -38,7 +38,7 @@
-
+
@@ -62,7 +62,6 @@
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram.styles/languageModels/structure.mps b/code/diagram/languages/de.itemis.mps.editor.diagram.styles/languageModels/structure.mps
index b5301f5b2f..7c124a7600 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram.styles/languageModels/structure.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram.styles/languageModels/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/de.itemis.mps.editor.diagram.mpl b/code/diagram/languages/de.itemis.mps.editor.diagram/de.itemis.mps.editor.diagram.mpl
index 0cac29a4e0..84bc4a6b20 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/de.itemis.mps.editor.diagram.mpl
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/de.itemis.mps.editor.diagram.mpl
@@ -14,7 +14,7 @@
-
+
@@ -84,7 +84,6 @@
-
@@ -210,7 +209,7 @@
-
+
@@ -237,7 +236,6 @@
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/generator/template/main@generator.mps b/code/diagram/languages/de.itemis.mps.editor.diagram/generator/template/main@generator.mps
index a47c262005..d82418929b 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/generator/template/main@generator.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/generator/template/main@generator.mps
@@ -61,12 +61,12 @@
-
+
-
-
+
+
@@ -7209,9 +7209,6 @@
-
-
-
@@ -7226,6 +7223,9 @@
+
+
+
@@ -7424,9 +7424,6 @@
-
-
-
@@ -7441,6 +7438,9 @@
+
+
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/behavior.mps b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/behavior.mps
index e9e74c1dc4..2b67b3c0ef 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/behavior.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/behavior.mps
@@ -4224,7 +4224,7 @@
-
+
@@ -5169,7 +5169,7 @@
-
+
@@ -7970,7 +7970,7 @@
-
+
@@ -10025,6 +10025,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -10123,32 +10149,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/constraints.mps b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/constraints.mps
index 356f3065c0..52e9de29b8 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/constraints.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/constraints.mps
@@ -522,39 +522,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -563,39 +563,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -604,39 +604,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -645,39 +645,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -686,39 +686,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -727,39 +727,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -768,39 +768,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -809,39 +809,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -850,39 +850,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -932,39 +932,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/editor.mps b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/editor.mps
index 621afbd933..022daa474c 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/editor.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/editor.mps
@@ -822,6 +822,7 @@
+
@@ -973,7 +974,6 @@
-
@@ -5949,6 +5949,7 @@
+
@@ -5987,7 +5988,6 @@
-
@@ -14927,40 +14927,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
@@ -15022,48 +14992,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -15331,5 +15259,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/structure.mps b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/structure.mps
index bc0b689ceb..ab1fc649aa 100644
--- a/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/structure.mps
+++ b/code/diagram/languages/de.itemis.mps.editor.diagram/languageModels/structure.mps
@@ -3,7 +3,7 @@
-
+
@@ -499,6 +499,11 @@
+
+
+
+
+
@@ -2544,12 +2549,6 @@
-
-
-
-
-
-
@@ -2976,6 +2975,12 @@
+
+
+
+
+
+
@@ -3229,12 +3234,6 @@
-
-
-
-
-
-
@@ -3263,6 +3262,12 @@
+
+
+
+
+
+
@@ -3296,12 +3301,6 @@
-
-
-
-
-
-
@@ -3370,6 +3369,12 @@
+
+
+
+
+
+
@@ -3493,12 +3498,6 @@
-
-
-
-
-
-
@@ -3577,6 +3576,12 @@
+
+
+
+
+
+
@@ -3815,12 +3820,6 @@
-
-
-
-
-
-
@@ -3892,6 +3891,12 @@
+
+
+
+
+
+
@@ -5028,16 +5033,20 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5080,25 +5089,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/structure.mps b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/structure.mps
index d7a4494404..91943d4283 100644
--- a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/structure.mps
+++ b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/languageModels/structure.mps
@@ -2,7 +2,7 @@
-
+
diff --git a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/test.de.itemis.mps.editor.diagram.lang.mpl b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/test.de.itemis.mps.editor.diagram.lang.mpl
index b25b478584..390b3bb73f 100644
--- a/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/test.de.itemis.mps.editor.diagram.lang.mpl
+++ b/code/diagram/languages/test.de.itemis.mps.editor.diagram.lang/test.de.itemis.mps.editor.diagram.lang.mpl
@@ -45,7 +45,7 @@
-
+
@@ -72,7 +72,6 @@
-
diff --git a/code/diagram/solutions/de.itemis.mps.editor.diagram.demo.elk.sandbox/de.itemis.mps.editor.diagram.demo.elk.sandbox.msd b/code/diagram/solutions/de.itemis.mps.editor.diagram.demo.elk.sandbox/de.itemis.mps.editor.diagram.demo.elk.sandbox.msd
index e7ac71f26d..4e44547cd1 100644
--- a/code/diagram/solutions/de.itemis.mps.editor.diagram.demo.elk.sandbox/de.itemis.mps.editor.diagram.demo.elk.sandbox.msd
+++ b/code/diagram/solutions/de.itemis.mps.editor.diagram.demo.elk.sandbox/de.itemis.mps.editor.diagram.demo.elk.sandbox.msd
@@ -46,7 +46,6 @@
-
diff --git a/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/jgraph.mps b/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/jgraph.mps
index e879f85356..6bc2b78117 100644
--- a/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/jgraph.mps
+++ b/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/jgraph.mps
@@ -733,7 +733,6 @@
-
@@ -6043,17 +6042,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -30325,6 +30313,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -89562,14 +89573,14 @@
-
+
-
+
-
+
@@ -89608,14 +89619,14 @@
-
+
-
+
-
+
@@ -95523,6 +95534,7 @@
+
@@ -95542,6 +95554,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/plugin.mps b/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/plugin.mps
index dd70e08c26..52f12330e0 100644
--- a/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/plugin.mps
+++ b/code/diagram/solutions/de.itemis.mps.editor.diagram.runtime/models/de/itemis/mps/editor/diagram/runtime/plugin.mps
@@ -51,6 +51,7 @@
+
@@ -3099,19 +3100,19 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -3129,6 +3130,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/code/diagram/solutions/test.de.itemis.mps.editor.diagram.solution/models/test/de/itemis/mps/editor/diagram/solution@tests.mps b/code/diagram/solutions/test.de.itemis.mps.editor.diagram.solution/models/test/de/itemis/mps/editor/diagram/solution@tests.mps
index f7541503d9..20679245aa 100644
--- a/code/diagram/solutions/test.de.itemis.mps.editor.diagram.solution/models/test/de/itemis/mps/editor/diagram/solution@tests.mps
+++ b/code/diagram/solutions/test.de.itemis.mps.editor.diagram.solution/models/test/de/itemis/mps/editor/diagram/solution@tests.mps
@@ -16,10 +16,10 @@
-
-
+
+
-
+
@@ -92,9 +92,6 @@
-
-
-
@@ -789,9 +786,6 @@
-
-
-
@@ -8513,6855 +8507,1683 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
+
+
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
-