diff --git a/.mps/modules.xml b/.mps/modules.xml
index 99976db7..74cec25c 100644
--- a/.mps/modules.xml
+++ b/.mps/modules.xml
@@ -6,10 +6,15 @@
+
+
+
+
+
+
-
@@ -18,14 +23,11 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/jchr/languages/jetbrains.mps.logic_jchr/generator/template/main@generator.mps b/jchr/languages/jetbrains.mps.logic_jchr/generator/template/main@generator.mps
new file mode 100644
index 00000000..795f503a
--- /dev/null
+++ b/jchr/languages/jetbrains.mps.logic_jchr/generator/template/main@generator.mps
@@ -0,0 +1,1187 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jchr/languages/jetbrains.mps.logic_jchr/jetbrains.mps.logic_jchr.mpl b/jchr/languages/jetbrains.mps.logic_jchr/jetbrains.mps.logic_jchr.mpl
new file mode 100644
index 00000000..0f9ffb2b
--- /dev/null
+++ b/jchr/languages/jetbrains.mps.logic_jchr/jetbrains.mps.logic_jchr.mpl
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)
+ 7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.logic.atom)
+ 85f64970-3326-4ea7-966e-1ac904686424(jetbrains.mps.logic#6626732309150416985)
+ 35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)
+ f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)
+ a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)
+ bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)
+
+
+ fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)
+ fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)
+ 894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)
+
+
+
diff --git a/jchr/languages/jetbrains.mps.logic_jchr/models/behavior.mps b/jchr/languages/jetbrains.mps.logic_jchr/models/behavior.mps
new file mode 100644
index 00000000..ebd9bc78
--- /dev/null
+++ b/jchr/languages/jetbrains.mps.logic_jchr/models/behavior.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jchr/languages/jetbrains.mps.logic_jchr/models/constraints.mps b/jchr/languages/jetbrains.mps.logic_jchr/models/constraints.mps
new file mode 100644
index 00000000..477ba238
--- /dev/null
+++ b/jchr/languages/jetbrains.mps.logic_jchr/models/constraints.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jchr/languages/jetbrains.mps.logic_jchr/models/editor.mps b/jchr/languages/jetbrains.mps.logic_jchr/models/editor.mps
new file mode 100644
index 00000000..980d59e8
--- /dev/null
+++ b/jchr/languages/jetbrains.mps.logic_jchr/models/editor.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jchr/languages/jetbrains.mps.logic_jchr/models/structure.mps b/jchr/languages/jetbrains.mps.logic_jchr/models/structure.mps
new file mode 100644
index 00000000..ab8b9f2e
--- /dev/null
+++ b/jchr/languages/jetbrains.mps.logic_jchr/models/structure.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jchr/languages/jetbrains.mps.logic_jchr/models/typesystem.mps b/jchr/languages/jetbrains.mps.logic_jchr/models/typesystem.mps
new file mode 100644
index 00000000..3e4ba6c4
--- /dev/null
+++ b/jchr/languages/jetbrains.mps.logic_jchr/models/typesystem.mps
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jchr/languages/jetbrains.mps.logic_jchr/runtime/jetbrains.mps.logic_jchr.runtime.msd b/jchr/languages/jetbrains.mps.logic_jchr/runtime/jetbrains.mps.logic_jchr.runtime.msd
new file mode 100644
index 00000000..f13eaecd
--- /dev/null
+++ b/jchr/languages/jetbrains.mps.logic_jchr/runtime/jetbrains.mps.logic_jchr.runtime.msd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ b984ee52-f34d-4b6d-8812-866c1d3eae31(jetbrains.mps.jchr.runtime)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jchr/languages/jetbrains.mps.logic_jchr/runtime/models/jetbrains/mps/logic_jchr/runtime.mps b/jchr/languages/jetbrains.mps.logic_jchr/runtime/models/jetbrains/mps/logic_jchr/runtime.mps
new file mode 100644
index 00000000..e941c347
--- /dev/null
+++ b/jchr/languages/jetbrains.mps.logic_jchr/runtime/models/jetbrains/mps/logic_jchr/runtime.mps
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/logic/languages/jetbrains.mps.logic/runtime/source/runtime/ConstraintSystemUtil.java b/jchr/languages/jetbrains.mps.logic_jchr/runtime/source/runtime/ConstraintSystemUtil.java
similarity index 100%
rename from logic/languages/jetbrains.mps.logic/runtime/source/runtime/ConstraintSystemUtil.java
rename to jchr/languages/jetbrains.mps.logic_jchr/runtime/source/runtime/ConstraintSystemUtil.java
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/classes_jchr/.keep b/jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/classes_jchr/.keep
similarity index 100%
rename from typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/classes_jchr/.keep
rename to jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/classes_jchr/.keep
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/jetbrains.mps.lang.typesystem2.samplechecker.handler.msd b/jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/jetbrains.mps.lang.typesystem2.samplechecker.handler.msd
similarity index 100%
rename from typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/jetbrains.mps.lang.typesystem2.samplechecker.handler.msd
rename to jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/jetbrains.mps.lang.typesystem2.samplechecker.handler.msd
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/models/jetbrains/mps/lang/typesystem2/samplechecker/chr.mps b/jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/models/jetbrains/mps/lang/typesystem2/samplechecker/chr.mps
similarity index 100%
rename from typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/models/jetbrains/mps/lang/typesystem2/samplechecker/chr.mps
rename to jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/models/jetbrains/mps/lang/typesystem2/samplechecker/chr.mps
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/samplechecker.handler.iml b/jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/samplechecker.handler.iml
similarity index 100%
rename from typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/samplechecker.handler.iml
rename to jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler/samplechecker.handler.iml
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/jetbrains.mps.lang.typesystem2.samplechecker.runner.msd b/jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/jetbrains.mps.lang.typesystem2.samplechecker.runner.msd
similarity index 82%
rename from typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/jetbrains.mps.lang.typesystem2.samplechecker.runner.msd
rename to jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/jetbrains.mps.lang.typesystem2.samplechecker.runner.msd
index 8732696c..d413f213 100644
--- a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/jetbrains.mps.lang.typesystem2.samplechecker.runner.msd
+++ b/jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/jetbrains.mps.lang.typesystem2.samplechecker.runner.msd
@@ -16,14 +16,15 @@
bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)
9c4ae21e-62e0-4110-95b7-191b357a42d2(jetbrains.mps.lang.typesystem2.samplechecker.handler.util)
b984ee52-f34d-4b6d-8812-866c1d3eae31(jetbrains.mps.jchr.runtime)
+ 760652ad-c01a-495e-9510-ed51532f617b(jetbrains.mps.logic.jchr)
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/models/jetbrains/mps/lang/typesystem2/samplechecker/runner.mps b/jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/models/jetbrains/mps/lang/typesystem2/samplechecker/runner.mps
similarity index 99%
rename from typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/models/jetbrains/mps/lang/typesystem2/samplechecker/runner.mps
rename to jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/models/jetbrains/mps/lang/typesystem2/samplechecker/runner.mps
index 2aeacbe5..07ecaf00 100644
--- a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/models/jetbrains/mps/lang/typesystem2/samplechecker/runner.mps
+++ b/jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/models/jetbrains/mps/lang/typesystem2/samplechecker/runner.mps
@@ -3,12 +3,10 @@
-
-
@@ -23,10 +21,8 @@
-
-
@@ -1013,8 +1009,8 @@
-
-
+
+
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/models/jetbrains/mps/lang/typesystem2/samplechecker/util.mps b/jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/models/jetbrains/mps/lang/typesystem2/samplechecker/util.mps
similarity index 100%
rename from typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/models/jetbrains/mps/lang/typesystem2/samplechecker/util.mps
rename to jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/models/jetbrains/mps/lang/typesystem2/samplechecker/util.mps
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/samplechecker.runner.iml b/jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/samplechecker.runner.iml
similarity index 100%
rename from typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/samplechecker.runner.iml
rename to jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/samplechecker.runner.iml
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/source_copy/jetbrains/mps/lang/typesystem2/samplechecker/template/ExpressionSolver.java b/jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/source_copy/jetbrains/mps/lang/typesystem2/samplechecker/template/ExpressionSolver.java
similarity index 100%
rename from typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/source_copy/jetbrains/mps/lang/typesystem2/samplechecker/template/ExpressionSolver.java
rename to jchr/solutions/jetbrains.mps.lang.typesystem2.samplechecker.runner/source_copy/jetbrains/mps/lang/typesystem2/samplechecker/template/ExpressionSolver.java
diff --git a/jchr/solutions/jetbrains.mps.lang.typesystem2.sampleplugin.jchr/jetbrains.mps.lang.typesystem2.sampleplugin.jchr.msd b/jchr/solutions/jetbrains.mps.lang.typesystem2.sampleplugin.jchr/jetbrains.mps.lang.typesystem2.sampleplugin.jchr.msd
new file mode 100644
index 00000000..67488624
--- /dev/null
+++ b/jchr/solutions/jetbrains.mps.lang.typesystem2.sampleplugin.jchr/jetbrains.mps.lang.typesystem2.sampleplugin.jchr.msd
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+ 7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.logic.atom)
+ 35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)
+ 26e8f4ce-2a35-4f44-8065-e5ba154b18e9(jetbrains.mps.lang.typesystem2.runtime)
+ a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)
+ 35e2a720-13d8-4eda-88d3-ff9d78d5a3ae(jetbrains.mps.lang.typesystem2.sampleplugin)
+ a1250a4d-c090-42c3-ad7c-d298a3357dd4(jetbrains.mps.make.runtime)
+ b984ee52-f34d-4b6d-8812-866c1d3eae31(jetbrains.mps.jchr.runtime)
+ 760652ad-c01a-495e-9510-ed51532f617b(jetbrains.mps.logic.jchr)
+ 894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/models/jetbrains/mps/typechecking/handler/producer.mps b/jchr/solutions/jetbrains.mps.lang.typesystem2.sampleplugin.jchr/models/jetbrains/mps/lang/typesystem2/sampleplugin/jchr/plugin.mps
similarity index 74%
rename from typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/models/jetbrains/mps/typechecking/handler/producer.mps
rename to jchr/solutions/jetbrains.mps.lang.typesystem2.sampleplugin.jchr/models/jetbrains/mps/lang/typesystem2/sampleplugin/jchr/plugin.mps
index 7ce6dab0..7fa82299 100644
--- a/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/models/jetbrains/mps/typechecking/handler/producer.mps
+++ b/jchr/solutions/jetbrains.mps.lang.typesystem2.sampleplugin.jchr/models/jetbrains/mps/lang/typesystem2/sampleplugin/jchr/plugin.mps
@@ -1,43 +1,98 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -45,6 +100,7 @@
+
@@ -77,13 +133,30 @@
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -100,6 +173,10 @@
+
+
+
+
@@ -110,6 +187,7 @@
+
@@ -155,6 +233,9 @@
+
+
+
@@ -179,10 +260,16 @@
+
+
+
+
+
+
@@ -219,6 +306,7 @@
+
@@ -227,12 +315,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -250,6 +356,14 @@
+
+
+
+
+
+
+
+
@@ -258,8 +372,10 @@
+
+
@@ -285,6 +401,10 @@
+
+
+
+
@@ -366,6 +486,7 @@
+
@@ -375,17 +496,2009 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -773,7 +2886,7 @@
-
+
@@ -1300,7 +3413,7 @@
-
+
@@ -3868,1863 +5981,1514 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -5732,120 +7496,320 @@
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/logic/solutions/jetbrains.mps.logic.jchr/Logic.jchr.iml b/jchr/solutions/jetbrains.mps.logic.jchr/Logic.jchr.iml
similarity index 100%
rename from logic/solutions/jetbrains.mps.logic.jchr/Logic.jchr.iml
rename to jchr/solutions/jetbrains.mps.logic.jchr/Logic.jchr.iml
diff --git a/logic/solutions/jetbrains.mps.logic.jchr/jetbrains.mps.logic.jchr.msd b/jchr/solutions/jetbrains.mps.logic.jchr/jetbrains.mps.logic.jchr.msd
similarity index 57%
rename from logic/solutions/jetbrains.mps.logic.jchr/jetbrains.mps.logic.jchr.msd
rename to jchr/solutions/jetbrains.mps.logic.jchr/jetbrains.mps.logic.jchr.msd
index 14046ac5..0c337525 100644
--- a/logic/solutions/jetbrains.mps.logic.jchr/jetbrains.mps.logic.jchr.msd
+++ b/jchr/solutions/jetbrains.mps.logic.jchr/jetbrains.mps.logic.jchr.msd
@@ -11,16 +11,17 @@
b984ee52-f34d-4b6d-8812-866c1d3eae31(jetbrains.mps.jchr.runtime)
bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)
7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.logic.atom)
+ c3941617-f429-4b63-b06e-42126b247dcb(jetbrains.mps.logic_jchr.runtime)
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -29,6 +30,7 @@
+
diff --git a/logic/solutions/jetbrains.mps.logic.jchr/models/jetbrains/mps/logic/jchr/predicate.mps b/jchr/solutions/jetbrains.mps.logic.jchr/models/jetbrains/mps/logic/jchr/predicate.mps
similarity index 92%
rename from logic/solutions/jetbrains.mps.logic.jchr/models/jetbrains/mps/logic/jchr/predicate.mps
rename to jchr/solutions/jetbrains.mps.logic.jchr/models/jetbrains/mps/logic/jchr/predicate.mps
index dd801686..f982fc3a 100644
--- a/logic/solutions/jetbrains.mps.logic.jchr/models/jetbrains/mps/logic/jchr/predicate.mps
+++ b/jchr/solutions/jetbrains.mps.logic.jchr/models/jetbrains/mps/logic/jchr/predicate.mps
@@ -8,20 +8,18 @@
-
-
-
+
@@ -215,6 +213,11 @@
+
+
+
+
+
@@ -246,6 +249,7 @@
+
@@ -449,7 +453,7 @@
-
+
@@ -473,7 +477,7 @@
-
+
@@ -503,13 +507,13 @@
-
+
-
+
@@ -569,7 +573,7 @@
-
+
@@ -593,7 +597,7 @@
-
+
@@ -623,13 +627,13 @@
-
+
-
+
@@ -4506,7 +4510,7 @@
-
+
@@ -4545,7 +4549,7 @@
-
+
@@ -4590,13 +4594,13 @@
-
+
-
+
@@ -4686,7 +4690,7 @@
-
+
@@ -4725,7 +4729,7 @@
-
+
@@ -4770,13 +4774,13 @@
-
+
-
+
@@ -5220,5 +5224,413 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/logic/solutions/jetbrains.mps.logic.jchr/models/jetbrains/mps/logic/jchr/program.mps b/jchr/solutions/jetbrains.mps.logic.jchr/models/jetbrains/mps/logic/jchr/program.mps
similarity index 100%
rename from logic/solutions/jetbrains.mps.logic.jchr/models/jetbrains/mps/logic/jchr/program.mps
rename to jchr/solutions/jetbrains.mps.logic.jchr/models/jetbrains/mps/logic/jchr/program.mps
diff --git a/logic/languages/jetbrains.mps.logic/generator/template/main@generator.mps b/logic/languages/jetbrains.mps.logic/generator/template/main@generator.mps
index d3ac4377..9b5bad87 100644
--- a/logic/languages/jetbrains.mps.logic/generator/template/main@generator.mps
+++ b/logic/languages/jetbrains.mps.logic/generator/template/main@generator.mps
@@ -14,9 +14,7 @@
-
-
@@ -24,13 +22,8 @@
-
-
-
-
-
@@ -44,33 +37,22 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -93,9 +75,6 @@
-
-
-
@@ -103,16 +82,12 @@
-
-
-
-
@@ -134,7 +109,6 @@
-
@@ -147,9 +121,6 @@
-
-
-
@@ -159,9 +130,6 @@
-
-
-
@@ -169,7 +137,6 @@
-
@@ -188,16 +155,9 @@
-
-
-
-
-
-
-
@@ -209,7 +169,6 @@
-
@@ -219,9 +178,6 @@
-
-
-
@@ -233,10 +189,6 @@
-
-
-
-
@@ -262,12 +214,6 @@
-
-
-
-
-
-
@@ -275,21 +221,11 @@
-
-
-
-
-
-
-
-
-
-
@@ -336,13 +272,6 @@
-
-
-
-
-
-
-
@@ -360,112 +289,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -989,297 +816,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/logic/languages/jetbrains.mps.logic/jetbrains.mps.logic.mpl b/logic/languages/jetbrains.mps.logic/jetbrains.mps.logic.mpl
index bc2031f1..eb44a740 100644
--- a/logic/languages/jetbrains.mps.logic/jetbrains.mps.logic.mpl
+++ b/logic/languages/jetbrains.mps.logic/jetbrains.mps.logic.mpl
@@ -16,9 +16,7 @@
7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.logic.atom)
- 3805ea9c-bac0-45ea-9157-1b3b93c1c0cc(jetbrains.mps.jchr#456733934405380506)
6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
- 894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)
bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)
@@ -49,9 +47,6 @@
-
-
-
@@ -59,7 +54,6 @@
-
@@ -93,7 +87,6 @@
e39e4a59-8cb6-498e-860e-8fa8361c0d90(jetbrains.mps.baseLanguage.scopes)
ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)
a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)
- 894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)
35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)
bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)
@@ -138,8 +131,6 @@
-
-
@@ -147,7 +138,6 @@
-
@@ -156,7 +146,6 @@
f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)
- 894463aa-8754-49c0-bf4b-6a32af66b376(jetbrains.mps.jchr)
diff --git a/logic/languages/jetbrains.mps.logic/runtime/jetbrains.mps.logic.runtime.msd b/logic/languages/jetbrains.mps.logic/runtime/jetbrains.mps.logic.runtime.msd
index 7b10aa2f..d1bb1c60 100644
--- a/logic/languages/jetbrains.mps.logic/runtime/jetbrains.mps.logic.runtime.msd
+++ b/logic/languages/jetbrains.mps.logic/runtime/jetbrains.mps.logic.runtime.msd
@@ -4,19 +4,13 @@
-
-
-
+
-
-
-
+
6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
- b984ee52-f34d-4b6d-8812-866c1d3eae31(jetbrains.mps.jchr.runtime)
7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.logic.atom)
bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)
- 760652ad-c01a-495e-9510-ed51532f617b(jetbrains.mps.logic.jchr)
fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)
@@ -36,9 +30,7 @@
-
-
diff --git a/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin.mps b/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin.mps
index 6fb7c99a..1762193c 100644
--- a/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin.mps
+++ b/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin.mps
@@ -11,11 +11,9 @@
-
-
diff --git a/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/predicate.mps b/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/predicate.mps
index 3809cb71..a424d4a6 100644
--- a/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/predicate.mps
+++ b/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/predicate.mps
@@ -12,7 +12,6 @@
-
@@ -20,6 +19,9 @@
+
+
+
@@ -58,6 +60,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -104,8 +116,10 @@
+
+
@@ -126,6 +140,10 @@
+
+
+
+
@@ -141,6 +159,9 @@
+
+
+
@@ -170,6 +191,10 @@
+
+
+
+
@@ -256,7 +281,7 @@
-
+
@@ -1075,5 +1100,574 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/solver.mps b/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/solver.mps
index a788a116..f803b413 100644
--- a/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/solver.mps
+++ b/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/solver.mps
@@ -2070,7 +2070,7 @@
-
+
@@ -3319,7 +3319,7 @@
-
+
@@ -3599,7 +3599,7 @@
-
+
diff --git a/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/unification.mps b/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/unification.mps
index f0ec359e..72e8387c 100644
--- a/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/unification.mps
+++ b/logic/languages/jetbrains.mps.logic/runtime/models/jetbrains/mps/logic/builtin/unification.mps
@@ -7,14 +7,10 @@
-
-
-
-
@@ -47,17 +43,8 @@
-
-
-
-
-
-
-
-
-
@@ -76,7 +63,6 @@
-
@@ -131,10 +117,6 @@
-
-
-
-
@@ -146,7 +128,6 @@
-
@@ -157,7 +138,6 @@
-
@@ -170,11 +150,6 @@
-
-
-
-
-
@@ -184,435 +159,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/logic/solutions/jetbrains.mps.logic.reactor/jetbrains.mps.logic.reactor.msd b/logic/solutions/jetbrains.mps.logic.reactor/jetbrains.mps.logic.reactor.msd
index 2de626cc..9254f3a6 100644
--- a/logic/solutions/jetbrains.mps.logic.reactor/jetbrains.mps.logic.reactor.msd
+++ b/logic/solutions/jetbrains.mps.logic.reactor/jetbrains.mps.logic.reactor.msd
@@ -24,12 +24,12 @@
498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)
-
-
-
-
-
-
+
+
+
+
+
+
@@ -37,9 +37,7 @@
-
-
diff --git a/logic/solutions/jetbrains.mps.logic.reactor/models/jetbrains/mps/logic/reactor/logical.mps b/logic/solutions/jetbrains.mps.logic.reactor/models/jetbrains/mps/logic/reactor/logical.mps
index a65b704e..b98532de 100644
--- a/logic/solutions/jetbrains.mps.logic.reactor/models/jetbrains/mps/logic/reactor/logical.mps
+++ b/logic/solutions/jetbrains.mps.logic.reactor/models/jetbrains/mps/logic/reactor/logical.mps
@@ -8,6 +8,7 @@
+
@@ -52,6 +53,10 @@
+
+
+
+
@@ -60,11 +65,16 @@
+
+
+
+
+
@@ -1116,6 +1126,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/logic/solutions/jetbrains.mps.logic.test/jetbrains.mps.logic.test.msd b/logic/solutions/jetbrains.mps.logic.test/jetbrains.mps.logic.test.msd
index f71fc171..451333a2 100644
--- a/logic/solutions/jetbrains.mps.logic.test/jetbrains.mps.logic.test.msd
+++ b/logic/solutions/jetbrains.mps.logic.test/jetbrains.mps.logic.test.msd
@@ -16,10 +16,8 @@
35320f26-77cb-4c55-be9f-a97a27770af1(jetbrains.mps.logic)
a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)
- b984ee52-f34d-4b6d-8812-866c1d3eae31(jetbrains.mps.jchr.runtime)
6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)
- 760652ad-c01a-495e-9510-ed51532f617b(jetbrains.mps.logic.jchr)
e4a4c488-aaf8-4c5b-bc98-e65c5dd9acb9(jetbrains.mps.lang.typesystem2.samplechecker.handler.test)
@@ -35,7 +33,6 @@
-
@@ -50,8 +47,6 @@
-
-
@@ -59,7 +54,6 @@
-
diff --git a/logic/solutions/jetbrains.mps.logic.test/models/jetbrains/mps/logic/test/logical.mps b/logic/solutions/jetbrains.mps.logic.test/models/jetbrains/mps/logic/test/logical.mps
index a616ef94..8b43746f 100644
--- a/logic/solutions/jetbrains.mps.logic.test/models/jetbrains/mps/logic/test/logical.mps
+++ b/logic/solutions/jetbrains.mps.logic.test/models/jetbrains/mps/logic/test/logical.mps
@@ -15,6 +15,7 @@
+
@@ -38,6 +39,7 @@
+
@@ -86,9 +88,6 @@
-
-
-
@@ -98,7 +97,9 @@
-
+
+
+
@@ -124,6 +125,7 @@
+
@@ -629,6 +631,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -637,22 +668,23 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -698,7 +730,7 @@
-
+
@@ -728,22 +760,23 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -752,30 +785,31 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -846,7 +880,7 @@
-
+
@@ -876,35 +910,23 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -969,7 +991,7 @@
-
+
@@ -1000,45 +1022,33 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
@@ -1094,7 +1104,7 @@
-
+
@@ -1124,18 +1134,19 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
@@ -1171,7 +1182,7 @@
-
+
@@ -1201,28 +1212,28 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
@@ -1266,7 +1277,7 @@
-
+
@@ -1295,26 +1306,26 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
@@ -1344,7 +1355,7 @@
-
+
@@ -3372,12 +3383,18 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3405,19 +3422,23 @@
-
-
-
-
-
+
+
+
+
+
-
+
+
+
+
+
diff --git a/logic/solutions/jetbrains.mps.logic.test/models/jetbrains/mps/logic/test/unification.mps b/logic/solutions/jetbrains.mps.logic.test/models/jetbrains/mps/logic/test/unification.mps
index 3312b299..fec72a1c 100644
--- a/logic/solutions/jetbrains.mps.logic.test/models/jetbrains/mps/logic/test/unification.mps
+++ b/logic/solutions/jetbrains.mps.logic.test/models/jetbrains/mps/logic/test/unification.mps
@@ -8,19 +8,17 @@
-
-
-
+
@@ -51,6 +49,7 @@
+
@@ -62,6 +61,7 @@
+
@@ -103,9 +103,6 @@
-
-
-
@@ -122,7 +119,9 @@
-
+
+
+
@@ -225,18 +224,11 @@
-
-
-
-
-
-
-
-
-
+
+
@@ -256,22 +248,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -303,22 +289,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -350,10 +330,18 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -399,7 +387,7 @@
-
+
@@ -460,7 +448,7 @@
-
+
@@ -529,7 +517,7 @@
-
+
@@ -620,7 +608,7 @@
-
+
@@ -709,7 +697,7 @@
-
+
@@ -804,7 +792,7 @@
-
+
@@ -909,7 +897,7 @@
-
+
@@ -1019,7 +1007,7 @@
-
+
@@ -1096,7 +1084,7 @@
-
+
@@ -1268,7 +1256,7 @@
-
+
@@ -1284,7 +1272,7 @@
-
+
@@ -1337,7 +1325,7 @@
-
+
@@ -1459,7 +1447,7 @@
-
+
@@ -1475,7 +1463,7 @@
-
+
@@ -1503,7 +1491,7 @@
-
+
@@ -1603,7 +1591,7 @@
-
+
@@ -1619,43 +1607,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
+
@@ -1687,7 +1648,12 @@
-
+
+
+
+
+
+
@@ -1711,71 +1677,74 @@
-
+
+
-
+
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -1783,34 +1752,42 @@
-
+
-
-
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1837,12 +1814,14 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -1904,7 +1883,7 @@
-
+
@@ -1946,7 +1925,7 @@
-
+
@@ -2048,7 +2027,7 @@
-
+
@@ -2184,7 +2163,7 @@
-
+
@@ -2454,7 +2433,7 @@
-
+
@@ -2496,7 +2475,7 @@
-
+
@@ -2756,7 +2735,7 @@
-
+
@@ -2799,7 +2778,7 @@
-
+
@@ -3069,7 +3048,7 @@
-
+
@@ -3284,7 +3263,7 @@
-
+
@@ -3298,7 +3277,7 @@
-
+
@@ -3760,7 +3739,7 @@
-
+
@@ -3925,7 +3904,7 @@
-
+
@@ -4084,7 +4063,7 @@
-
+
@@ -4098,7 +4077,7 @@
-
+
@@ -4303,7 +4282,7 @@
-
+
@@ -4317,7 +4296,7 @@
-
+
@@ -4335,7 +4314,7 @@
-
+
@@ -4361,7 +4340,7 @@
-
+
@@ -4552,25 +4531,19 @@
-
-
-
-
-
-
-
+
-
-
+
+
-
-
+
+
@@ -4595,7 +4568,7 @@
-
+
@@ -4609,18 +4582,24 @@
-
-
+
+
+
+
+
-
-
+
+
+
+
+
@@ -4630,6 +4609,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -4641,8 +4660,11 @@
-
-
+
+
+
+
+
@@ -4655,15 +4677,18 @@
-
-
-
+
+
+
+
+
+
@@ -4691,7 +4716,7 @@
-
+
@@ -4708,7 +4733,7 @@
-
+
@@ -4722,24 +4747,22 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -4753,7 +4776,7 @@
-
+
@@ -4767,15 +4790,18 @@
-
-
-
+
+
+
+
+
+
@@ -4815,7 +4841,7 @@
-
+
@@ -4838,11 +4864,11 @@
-
+
-
+
@@ -4982,7 +5008,7 @@
-
+
@@ -4990,29 +5016,35 @@
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
@@ -5040,7 +5072,7 @@
-
+
@@ -5053,28 +5085,26 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5084,7 +5114,7 @@
-
+
@@ -5098,15 +5128,18 @@
-
-
-
+
+
+
+
+
+
@@ -5147,7 +5180,7 @@
-
+
@@ -5164,7 +5197,7 @@
-
+
@@ -5187,11 +5220,11 @@
-
+
-
+
@@ -5333,51 +5366,29 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
+
+
@@ -5392,34 +5403,37 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
@@ -5720,16 +5734,13 @@
-
-
+
+
-
-
-
-
-
+
+
@@ -5848,5 +5859,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/typechecking/languages/jetbrains.mps.lang.typesystem2.sampleLang/jetbrains.mps.lang.typesystem2.sampleLang.mpl b/typechecking/languages/jetbrains.mps.lang.typesystem2.sampleLang/jetbrains.mps.lang.typesystem2.sampleLang.mpl
index db036eb2..48714531 100644
--- a/typechecking/languages/jetbrains.mps.lang.typesystem2.sampleLang/jetbrains.mps.lang.typesystem2.sampleLang.mpl
+++ b/typechecking/languages/jetbrains.mps.lang.typesystem2.sampleLang/jetbrains.mps.lang.typesystem2.sampleLang.mpl
@@ -72,7 +72,6 @@
-
@@ -97,7 +96,6 @@
-
@@ -107,7 +105,6 @@
-
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.sample.test/jetbrains.mps.lang.typesystem2.sample.test.msd b/typechecking/solutions/jetbrains.mps.lang.typesystem2.sample.test/jetbrains.mps.lang.typesystem2.sample.test.msd
index f08fa329..7b3503c6 100644
--- a/typechecking/solutions/jetbrains.mps.lang.typesystem2.sample.test/jetbrains.mps.lang.typesystem2.sample.test.msd
+++ b/typechecking/solutions/jetbrains.mps.lang.typesystem2.sample.test/jetbrains.mps.lang.typesystem2.sample.test.msd
@@ -10,9 +10,7 @@
3ddddf69-9ff0-426b-9365-51ae7356fb82(jetbrains.mps.lang.typesystem2.sample)
f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)
35e2a720-13d8-4eda-88d3-ff9d78d5a3ae(jetbrains.mps.lang.typesystem2.sampleplugin)
- 760652ad-c01a-495e-9510-ed51532f617b(jetbrains.mps.logic.jchr)
ff6372a2-2f45-4ec3-952b-02581666015f(jetbrains.mps.lang.typesystem2.template)
- b984ee52-f34d-4b6d-8812-866c1d3eae31(jetbrains.mps.jchr.runtime)
a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)
498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)
6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)
@@ -46,7 +44,6 @@
-
@@ -57,7 +54,6 @@
-
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler.test/jetbrains.mps.lang.typesystem2.samplechecker.handler.test.msd b/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler.test/jetbrains.mps.lang.typesystem2.samplechecker.handler.test.msd
index 76ca25e6..ead2c35d 100644
--- a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler.test/jetbrains.mps.lang.typesystem2.samplechecker.handler.test.msd
+++ b/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler.test/jetbrains.mps.lang.typesystem2.samplechecker.handler.test.msd
@@ -10,7 +10,6 @@
9c4ae21e-62e0-4110-95b7-191b357a42d2(jetbrains.mps.lang.typesystem2.samplechecker.handler.util)
a5478664-6b44-4c62-a9f7-434f8aa57eee(jetbrains.mps.logic.runtime)
7526e0cf-1ce7-46f8-a555-9eca1e06c23b(jetbrains.mps.logic.atom)
- 760652ad-c01a-495e-9510-ed51532f617b(jetbrains.mps.logic.jchr)
bbf5c548-7111-4a53-a117-cdefc664cf34(jetbrains.mps.logic.reactor)
b189d6c6-9397-4d64-88af-1ac73760a4f5(jetbrains.mps.logic.test)
@@ -18,18 +17,14 @@
-
-
-
-
diff --git a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler.test/models/jetbrains/mps/lang/typesystem2/samplechecker/handle/test/util.mps b/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler.test/models/jetbrains/mps/lang/typesystem2/samplechecker/handle/test/util.mps
index ac4c6267..6dd28d8e 100644
--- a/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler.test/models/jetbrains/mps/lang/typesystem2/samplechecker/handle/test/util.mps
+++ b/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler.test/models/jetbrains/mps/lang/typesystem2/samplechecker/handle/test/util.mps
@@ -7,16 +7,12 @@
-
-
-
-
-
+
@@ -71,9 +67,12 @@
-
+
+
+
+
@@ -254,15 +253,21 @@
-
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
@@ -279,7 +284,7 @@
-
+
@@ -287,7 +292,7 @@
-
+
@@ -308,7 +313,7 @@
-
+
@@ -500,44 +505,50 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -548,16 +559,16 @@
-
+
-
+
-
+
@@ -612,7 +623,7 @@
-
+
@@ -735,44 +746,50 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -783,16 +800,16 @@
-
+
-
+
-
+
@@ -847,7 +864,7 @@
-
+
@@ -998,44 +1015,50 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -1046,16 +1069,16 @@
-
+
-
+
-
+
@@ -1110,7 +1133,7 @@
-
+
@@ -1402,44 +1425,50 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -1447,19 +1476,19 @@
-
+
-
+
-
+
-
+
@@ -1528,7 +1557,7 @@
-
+
@@ -1899,44 +1928,50 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -1947,16 +1982,16 @@
-
+
-
+
-
+
@@ -2005,7 +2040,7 @@
-
+
@@ -2433,44 +2468,50 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -2481,16 +2522,16 @@
-
+
-
+
-
+
@@ -2539,7 +2580,7 @@
-
+
@@ -2888,44 +2929,50 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -2936,16 +2983,16 @@
-
+
-
+
-
+
@@ -2994,7 +3041,7 @@
-
+
@@ -3347,44 +3394,50 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -3395,16 +3448,16 @@
-
+
-
+
-
+
@@ -3473,7 +3526,7 @@
-
+
@@ -3702,44 +3755,50 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
@@ -3750,16 +3809,16 @@
-
+
-
+
-
+
@@ -3814,7 +3873,7 @@
-
+
@@ -4072,18 +4131,24 @@
-
-
+
+
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
@@ -4095,21 +4160,21 @@
-
-
+
+
-
-
-
-
+