occam-verify-cli 1.0.427 → 1.0.436

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/lib/context/file.js +1 -1
  2. package/lib/element/assertion.js +115 -24
  3. package/lib/element/assumption.js +120 -20
  4. package/lib/element/axiomLemmaTheoremConjecture.js +118 -30
  5. package/lib/element/conclusion.js +113 -25
  6. package/lib/element/declaration.js +112 -37
  7. package/lib/element/deduction.js +112 -66
  8. package/lib/element/derivation.js +114 -5
  9. package/lib/element/equality.js +119 -26
  10. package/lib/element/equivalence.js +129 -40
  11. package/lib/element/equivalences.js +122 -7
  12. package/lib/element/error.js +115 -32
  13. package/lib/element/frame.js +119 -59
  14. package/lib/element/hypothesis.js +115 -27
  15. package/lib/element/judgement.js +120 -33
  16. package/lib/element/label.js +116 -63
  17. package/lib/element/lemma.js +1 -9
  18. package/lib/element/metaLemma.js +1 -8
  19. package/lib/element/metaLemmaMetatheorem.js +117 -29
  20. package/lib/element/metaType.js +68 -61
  21. package/lib/element/metatheorem.js +1 -8
  22. package/lib/element/metavariable.js +122 -93
  23. package/lib/element/parameter.js +120 -20
  24. package/lib/element/premise.js +114 -35
  25. package/lib/element/procedureCall.js +117 -99
  26. package/lib/element/procedureReference.js +120 -20
  27. package/lib/element/proof.js +111 -55
  28. package/lib/element/property.js +121 -35
  29. package/lib/element/propertyRelation.js +116 -72
  30. package/lib/element/reference.js +120 -70
  31. package/lib/element/rule.js +116 -41
  32. package/lib/element/section.js +114 -133
  33. package/lib/element/signature.js +120 -20
  34. package/lib/element/statement/combinator/bracketed.js +4 -9
  35. package/lib/element/statement.js +110 -125
  36. package/lib/element/step.js +115 -27
  37. package/lib/element/subDerivation.js +111 -43
  38. package/lib/element/subproof.js +115 -20
  39. package/lib/element/substitution.js +115 -31
  40. package/lib/element/substitutions.js +120 -6
  41. package/lib/element/supposition.js +114 -35
  42. package/lib/element/term/constructor/bracketed.js +4 -8
  43. package/lib/element/term.js +111 -98
  44. package/lib/element/theorem.js +1 -8
  45. package/lib/element/type.js +71 -91
  46. package/lib/element/typePrefix.js +120 -20
  47. package/lib/element/variable.js +116 -111
  48. package/lib/element.js +67 -0
  49. package/lib/node/equivalence.js +116 -0
  50. package/lib/node/{nonsense.js → equivalences.js} +10 -10
  51. package/lib/node/frame.js +11 -5
  52. package/lib/node/procedureReference.js +6 -6
  53. package/lib/node/statement.js +11 -5
  54. package/lib/node/term.js +8 -1
  55. package/lib/nonTerminalNodeMap.js +5 -4
  56. package/lib/process/instantiate.js +13 -38
  57. package/lib/process/verify.js +22 -29
  58. package/lib/ruleNames.js +9 -5
  59. package/lib/utilities/brackets.js +11 -11
  60. package/lib/utilities/element.js +606 -99
  61. package/lib/utilities/instance.js +61 -0
  62. package/lib/utilities/string.js +87 -34
  63. package/package.json +6 -6
  64. package/src/context/file.js +1 -1
  65. package/src/element/assertion.js +4 -16
  66. package/src/element/assumption.js +5 -12
  67. package/src/element/axiomLemmaTheoremConjecture.js +4 -16
  68. package/src/element/conclusion.js +4 -16
  69. package/src/element/declaration.js +4 -16
  70. package/src/element/deduction.js +5 -19
  71. package/src/element/derivation.js +5 -2
  72. package/src/element/equality.js +4 -16
  73. package/src/element/equivalence.js +25 -37
  74. package/src/element/equivalences.js +12 -6
  75. package/src/element/error.js +4 -24
  76. package/src/element/frame.js +5 -56
  77. package/src/element/hypothesis.js +6 -23
  78. package/src/element/judgement.js +5 -30
  79. package/src/element/label.js +8 -19
  80. package/src/element/lemma.js +0 -7
  81. package/src/element/metaLemma.js +0 -7
  82. package/src/element/metaLemmaMetatheorem.js +4 -16
  83. package/src/element/metaType.js +23 -64
  84. package/src/element/metatheorem.js +0 -7
  85. package/src/element/metavariable.js +6 -94
  86. package/src/element/parameter.js +10 -18
  87. package/src/element/premise.js +4 -31
  88. package/src/element/procedureCall.js +5 -77
  89. package/src/element/procedureReference.js +7 -17
  90. package/src/element/proof.js +5 -17
  91. package/src/element/property.js +8 -30
  92. package/src/element/propertyRelation.js +5 -33
  93. package/src/element/reference.js +8 -72
  94. package/src/element/rule.js +4 -41
  95. package/src/element/section.js +4 -129
  96. package/src/element/signature.js +7 -13
  97. package/src/element/statement/combinator/bracketed.js +3 -9
  98. package/src/element/statement.js +3 -126
  99. package/src/element/step.js +4 -16
  100. package/src/element/subDerivation.js +5 -3
  101. package/src/element/subproof.js +5 -12
  102. package/src/element/substitution.js +4 -24
  103. package/src/element/substitutions.js +6 -2
  104. package/src/element/supposition.js +4 -31
  105. package/src/element/term/constructor/bracketed.js +4 -9
  106. package/src/element/term.js +6 -59
  107. package/src/element/theorem.js +0 -7
  108. package/src/element/type.js +9 -104
  109. package/src/element/typePrefix.js +8 -13
  110. package/src/element/variable.js +6 -109
  111. package/src/element.js +29 -0
  112. package/src/node/equivalence.js +16 -0
  113. package/src/node/{nonsense.js → equivalences.js} +2 -2
  114. package/src/node/frame.js +10 -5
  115. package/src/node/procedureReference.js +4 -4
  116. package/src/node/statement.js +10 -5
  117. package/src/node/term.js +7 -0
  118. package/src/nonTerminalNodeMap.js +7 -4
  119. package/src/process/instantiate.js +8 -36
  120. package/src/process/verify.js +42 -47
  121. package/src/ruleNames.js +2 -1
  122. package/src/utilities/brackets.js +13 -13
  123. package/src/utilities/element.js +760 -139
  124. package/src/utilities/instance.js +53 -0
  125. package/src/utilities/string.js +118 -59
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get bracketedCombinatorStatementFromNothing () {
13
+ return bracketedCombinatorStatementFromNothing;
14
+ },
15
+ get bracketedConstructorTermFromNothing () {
16
+ return bracketedConstructorTermFromNothing;
17
+ }
18
+ });
19
+ var _nominal = /*#__PURE__*/ _interop_require_default(require("../context/nominal"));
20
+ var _constants = require("../constants");
21
+ var _metaTypeNames = require("../metaTypeNames");
22
+ var _instantiate = require("../process/instantiate");
23
+ var _element = require("../utilities/element");
24
+ function _interop_require_default(obj) {
25
+ return obj && obj.__esModule ? obj : {
26
+ default: obj
27
+ };
28
+ }
29
+ var bracketedConstructorTerm = null, bracketedCombinatorStatement = null;
30
+ function bracketedConstructorTermFromNothing() {
31
+ if (bracketedConstructorTerm === null) {
32
+ var context;
33
+ var string = "(".concat(_constants.BASE_TYPE_SYMBOL, ")");
34
+ context = _nominal.default; ///
35
+ var node = (0, _instantiate.instantiateTerm)(string, context), bracketedConstructorTermNode = node; ///
36
+ context = {
37
+ nodeAsString: function() {
38
+ return string;
39
+ }
40
+ };
41
+ bracketedConstructorTerm = (0, _element.termFromTermNode)(bracketedConstructorTermNode, context);
42
+ }
43
+ return bracketedConstructorTerm;
44
+ }
45
+ function bracketedCombinatorStatementFromNothing() {
46
+ if (bracketedCombinatorStatement === null) {
47
+ var context;
48
+ var string = "(".concat(_metaTypeNames.STATEMENT_META_TYPE_NAME, ")");
49
+ context = _nominal.default; ///
50
+ var node = (0, _instantiate.instantiateStatement)(string, context), bracketedCombinatorStatementNode = node; ///
51
+ context = {
52
+ nodeAsString: function() {
53
+ return string;
54
+ }
55
+ };
56
+ bracketedCombinatorStatement = (0, _element.statementFromStatementNode)(bracketedCombinatorStatementNode, context);
57
+ }
58
+ return bracketedCombinatorStatement;
59
+ }
60
+
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5zdGFuY2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBub21pbmFsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9ub21pbmFsXCI7XG5cbmltcG9ydCB7IEJBU0VfVFlQRV9TWU1CT0wgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBTVEFURU1FTlRfTUVUQV9UWVBFX05BTUUgfSBmcm9tIFwiLi4vbWV0YVR5cGVOYW1lc1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVUZXJtLCBpbnN0YW50aWF0ZVN0YXRlbWVudCB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyB0ZXJtRnJvbVRlcm1Ob2RlLCBzdGF0ZW1lbnRGcm9tU3RhdGVtZW50Tm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5sZXQgYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtID0gbnVsbCxcbiAgICBicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50ID0gbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybUZyb21Ob3RoaW5nKCkge1xuICBpZiAoYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtID09PSBudWxsKSB7XG4gICAgbGV0IGNvbnRleHQ7XG5cbiAgICBjb25zdCBzdHJpbmcgPSBgKCR7QkFTRV9UWVBFX1NZTUJPTH0pYDtcblxuICAgIGNvbnRleHQgPSBub21pbmFsQ29udGV4dDsgLy8vXG5cbiAgICBjb25zdCBub2RlID0gaW5zdGFudGlhdGVUZXJtKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIGNvbnRleHQgPSB7XG4gICAgICBub2RlQXNTdHJpbmc6ICgpID0+IHN0cmluZ1xuICAgIH07XG5cbiAgICBicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm0gPSB0ZXJtRnJvbVRlcm1Ob2RlKGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGUsIGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnRGcm9tTm90aGluZygpIHtcbiAgaWYgKGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnQgPT09IG51bGwpIHtcbiAgICBsZXQgY29udGV4dDtcblxuICAgIGNvbnN0IHN0cmluZyA9IGAoJHtTVEFURU1FTlRfTUVUQV9UWVBFX05BTUV9KWA7XG5cbiAgICBjb250ZXh0ID0gbm9taW5hbENvbnRleHQ7IC8vL1xuXG4gICAgY29uc3Qgbm9kZSA9IGluc3RhbnRpYXRlU3RhdGVtZW50KHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICBjb250ZXh0ID0ge1xuICAgICAgbm9kZUFzU3RyaW5nOiAoKSA9PiBzdHJpbmdcbiAgICB9O1xuXG4gICAgYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudCA9IHN0YXRlbWVudEZyb21TdGF0ZW1lbnROb2RlKGJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWRDb21iaW5hdG9yU3RhdGVtZW50O1xufVxuIl0sIm5hbWVzIjpbImJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnRGcm9tTm90aGluZyIsImJyYWNrZXRlZENvbnN0cnVjdG9yVGVybUZyb21Ob3RoaW5nIiwiYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtIiwiYnJhY2tldGVkQ29tYmluYXRvclN0YXRlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJCQVNFX1RZUEVfU1lNQk9MIiwibm9taW5hbENvbnRleHQiLCJub2RlIiwiaW5zdGFudGlhdGVUZXJtIiwiYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtTm9kZSIsIm5vZGVBc1N0cmluZyIsInRlcm1Gcm9tVGVybU5vZGUiLCJTVEFURU1FTlRfTUVUQV9UWVBFX05BTUUiLCJpbnN0YW50aWF0ZVN0YXRlbWVudCIsImJyYWNrZXRlZENvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50RnJvbVN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWlDZ0JBO2VBQUFBOztRQXJCQUM7ZUFBQUE7Ozs4REFWVzt5QkFFTTs2QkFDUTsyQkFDYTt1QkFDTzs7Ozs7O0FBRTdELElBQUlDLDJCQUEyQixNQUMzQkMsK0JBQStCO0FBRTVCLFNBQVNGO0lBQ2QsSUFBSUMsNkJBQTZCLE1BQU07UUFDckMsSUFBSUU7UUFFSixJQUFNQyxTQUFTLEFBQUMsSUFBb0IsT0FBakJDLDJCQUFnQixFQUFDO1FBRXBDRixVQUFVRyxnQkFBYyxFQUFFLEdBQUc7UUFFN0IsSUFBTUMsT0FBT0MsSUFBQUEsNEJBQWUsRUFBQ0osUUFBUUQsVUFDL0JNLCtCQUErQkYsTUFBTyxHQUFHO1FBRS9DSixVQUFVO1lBQ1JPLGNBQWM7dUJBQU1OOztRQUN0QjtRQUVBSCwyQkFBMkJVLElBQUFBLHlCQUFnQixFQUFDRiw4QkFBOEJOO0lBQzVFO0lBRUEsT0FBT0Y7QUFDVDtBQUVPLFNBQVNGO0lBQ2QsSUFBSUcsaUNBQWlDLE1BQU07UUFDekMsSUFBSUM7UUFFSixJQUFNQyxTQUFTLEFBQUMsSUFBNEIsT0FBekJRLHVDQUF3QixFQUFDO1FBRTVDVCxVQUFVRyxnQkFBYyxFQUFFLEdBQUc7UUFFN0IsSUFBTUMsT0FBT00sSUFBQUEsaUNBQW9CLEVBQUNULFFBQVFELFVBQ3BDVyxtQ0FBbUNQLE1BQU8sR0FBRztRQUVuREosVUFBVTtZQUNSTyxjQUFjO3VCQUFNTjs7UUFDdEI7UUFFQUYsK0JBQStCYSxJQUFBQSxtQ0FBMEIsRUFBQ0Qsa0NBQWtDWDtJQUM5RjtJQUVBLE9BQU9EO0FBQ1QifQ==
@@ -9,12 +9,39 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
+ get assumptionsStringFromAssumptions () {
13
+ return assumptionsStringFromAssumptions;
14
+ },
12
15
  get axiomLemmaTheoremConjectureStringFromLabelsSuppositionsAndDeduction () {
13
16
  return axiomLemmaTheoremConjectureStringFromLabelsSuppositionsAndDeduction;
14
17
  },
18
+ get equivalenceStringFromTerms () {
19
+ return equivalenceStringFromTerms;
20
+ },
21
+ get hypothesesStringFromHypotheses () {
22
+ return hypothesesStringFromHypotheses;
23
+ },
15
24
  get labelsStringFromLabels () {
16
25
  return labelsStringFromLabels;
17
26
  },
27
+ get metaLemmaMetatheoremStringFromLabelSuppositionsAndDeduction () {
28
+ return metaLemmaMetatheoremStringFromLabelSuppositionsAndDeduction;
29
+ },
30
+ get parametersStringFromParameters () {
31
+ return parametersStringFromParameters;
32
+ },
33
+ get premisesStringFromPremises () {
34
+ return premisesStringFromPremises;
35
+ },
36
+ get procedureCallStringFromProcedureReferenceAndParameters () {
37
+ return procedureCallStringFromProcedureReferenceAndParameters;
38
+ },
39
+ get rulsStringFromLabelsPremisesAndConclusion () {
40
+ return rulsStringFromLabelsPremisesAndConclusion;
41
+ },
42
+ get sectionStringFromHypothesesAxiomLemmaTheoremAndConjecture () {
43
+ return sectionStringFromHypothesesAxiomLemmaTheoremAndConjecture;
44
+ },
18
45
  get signatureStringFromTerms () {
19
46
  return signatureStringFromTerms;
20
47
  },
@@ -51,13 +78,21 @@ function labelsStringFromLabels(labels) {
51
78
  }, null);
52
79
  return labelsString;
53
80
  }
54
- function signatureStringFromTerms(terms) {
55
- var termsString = termsStringFromTerms(terms), signatureString = "[".concat(termsString, "]");
56
- return signatureString;
81
+ function premisesStringFromPremises(premises) {
82
+ var premisesString = premises.reduce(function(premisesString, premise) {
83
+ var premiseString = premise.getString();
84
+ premisesString = premisesString !== null ? "".concat(premisesString, ", ").concat(premiseString) : premiseString; ///
85
+ return premisesString;
86
+ }, null);
87
+ return premisesString;
57
88
  }
58
- function subproofStringFromSubproof(subproof) {
59
- var suppositionStatementsOrNonsenseString = suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode, context), lastStatementOrNonsenseString = lastStatementOrNonsenseStringFromSubproofNode(subproofNode, context), subproofString = "[".concat(suppositionStatementsOrNonsenseString, "] ... ").concat(lastStatementOrNonsenseString);
60
- return subproofString;
89
+ function hypothesesStringFromHypotheses(hypotheses, context) {
90
+ var hypothesesString = hypotheses.reduce(function(hypothesesString, hypothesis) {
91
+ var hypothesisString = hypothesis.getString();
92
+ hypothesesString = hypothesesString !== null ? "".concat(hypothesesString, ", ").concat(hypothesisString) : hypothesisString; ///
93
+ return hypothesesString;
94
+ }, null);
95
+ return hypothesesString;
61
96
  }
62
97
  function superTypesStringFromSuperTypes(superTypes) {
63
98
  var superTypesString = superTypes.reduce(function(superTypesString, superType) {
@@ -69,14 +104,46 @@ function superTypesStringFromSuperTypes(superTypes) {
69
104
  }, null);
70
105
  return superTypesString;
71
106
  }
107
+ function parametersStringFromParameters(parameters) {
108
+ var parametersString = parameters.reduce(function(parametersString, parameter) {
109
+ var parameterString = parameter.getString();
110
+ parametersString = parametersString === null ? parameterString : "".concat(parametersString, ", ").concat(parameterString);
111
+ return parametersString;
112
+ }, null);
113
+ return parametersString;
114
+ }
115
+ function assumptionsStringFromAssumptions(assumptions) {
116
+ var assumptionsString = assumptions.reduce(function(assumptionsString, assumption) {
117
+ var assumptionString = assumption.getString();
118
+ assumptionsString = assumptionsString === null ? assumptionString : "".concat(assumptionsString, ", ").concat(assumptionString);
119
+ return assumptionsString;
120
+ }, null);
121
+ return assumptionsString;
122
+ }
72
123
  function suppositionsStringFromSuppositions(suppositions) {
73
124
  var suppositionsString = suppositions.reduce(function(suppositionsString, supposition) {
74
125
  var suppositionString = supposition.getString();
75
- suppositionsString = suppositionsString !== null ? "".concat(suppositionsString, ", ").concat(suppositionString) : suppositionString; ///
126
+ suppositionsString = suppositionsString === null ? suppositionString : "".concat(suppositionsString, ", ").concat(suppositionString);
76
127
  return suppositionsString;
77
128
  }, null);
78
129
  return suppositionsString;
79
130
  }
131
+ function signatureStringFromTerms(terms) {
132
+ var termsString = termsStringFromTerms(terms), signatureString = "[".concat(termsString, "]");
133
+ return signatureString;
134
+ }
135
+ function equivalenceStringFromTerms(terms) {
136
+ var termsString = termsStringFromTerms(terms), equivalenceString = termsString; ///
137
+ return equivalenceString;
138
+ }
139
+ function subproofStringFromSubproof(subproof) {
140
+ var lastStep = subproof.getLastStep(), suppositions = subproof.getSuppositions(), lastStepString = lastStep.getString(), suppositionsString = suppositionsStringFromSuppositions(suppositions), subproofString = "[".concat(suppositionsString, "] ... ").concat(lastStepString);
141
+ return subproofString;
142
+ }
143
+ function rulsStringFromLabelsPremisesAndConclusion(labels, premises, conclusion) {
144
+ var premisesString = premisesStringFromPremises(premises), conclusionString = conclusion.getString(), labelsString = labelsStringFromLabels(labels), ruleString = premisesString !== null ? "".concat(labelsString, " :: [").concat(premisesString, "] ... ").concat(conclusionString) : "".concat(labelsString, " :: ").concat(conclusionString);
145
+ return ruleString;
146
+ }
80
147
  function typeStringFromTypeNameTypePrefixNameAndSuperTypes(typeName, typePrefixName, superTypes) {
81
148
  var typeString;
82
149
  typeString = typePrefixName !== null ? "".concat(typePrefixName).concat(typeName) : typeName;
@@ -86,6 +153,18 @@ function typeStringFromTypeNameTypePrefixNameAndSuperTypes(typeName, typePrefixN
86
153
  }
87
154
  return typeString;
88
155
  }
156
+ function procedureCallStringFromProcedureReferenceAndParameters(procedureReference, parameters) {
157
+ var procedureReferenceName = procedureReference.getName(), parametersString = parametersStringFromParameters(parameters), procedureCallString = "".concat(procedureReferenceName, "(").concat(parametersString, ")");
158
+ return procedureCallString;
159
+ }
160
+ function sectionStringFromHypothesesAxiomLemmaTheoremAndConjecture(hypotheses, axiom, lemma, theorem, conjecture, context) {
161
+ var axiomLemmaTheoremOrConjecture = axiom || lemma || theorem || conjecture, axiomLemmaTheoremOrConjectureString = axiomLemmaTheoremOrConjecture.getString(), hypothesesString = hypothesesStringFromHypotheses(hypotheses, context), sectionString = axiomLemmaTheoremOrConjectureString !== null ? "[".concat(hypothesesString, "]::: ").concat(axiomLemmaTheoremOrConjectureString) : "[".concat(hypothesesString, "]::: ");
162
+ return sectionString;
163
+ }
164
+ function metaLemmaMetatheoremStringFromLabelSuppositionsAndDeduction(label, suppositions, deduction) {
165
+ var suppositionsString = suppositionsStringFromSuppositions(suppositions), deductionString = deduction.getString(), labelString = label.getString(), metaLemmaMetatheoremString = suppositionsString !== null ? "".concat(labelString, " :: [").concat(suppositionsString, "] ... ").concat(deductionString) : "".concat(labelString, " :: ").concat(deductionString);
166
+ return metaLemmaMetatheoremString;
167
+ }
89
168
  function axiomLemmaTheoremConjectureStringFromLabelsSuppositionsAndDeduction(labels, suppositions, deduction) {
90
169
  var axiomLemmaTheoremConjectureString;
91
170
  var suppositionsString = suppositionsStringFromSuppositions(suppositions), deductionString = deduction.getString(), labelsString = labelsStringFromLabels(labels);
@@ -96,31 +175,5 @@ function axiomLemmaTheoremConjectureStringFromLabelsSuppositionsAndDeduction(lab
96
175
  }
97
176
  return axiomLemmaTheoremConjectureString;
98
177
  }
99
- function suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode1, context1) {
100
- var suppositionNodes = subproofNode1.getSuppositionNodes(), suppositionStatementsOrNonsenseString = suppositionNodes.reduce(function(suppositionStatementsOrNonsenseString, suppositionNode) {
101
- var suppositionOrStepNode = suppositionNode, statementOrNonsenseString = statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context1), suppositionStatementOrNonsenseString = statementOrNonsenseString; ///
102
- suppositionStatementsOrNonsenseString = suppositionStatementsOrNonsenseString !== null ? "".concat(suppositionStatementsOrNonsenseString, ", ").concat(suppositionStatementOrNonsenseString) : suppositionStatementOrNonsenseString; ///
103
- return suppositionStatementsOrNonsenseString;
104
- }, null);
105
- return suppositionStatementsOrNonsenseString;
106
- }
107
- function statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context1) {
108
- var statementOrNonsenseString;
109
- var nonsenseNode = suppositionOrStepNode.getNonsenseNode(), statementNode = suppositionOrStepNode.getStatementNode();
110
- if (false) {
111
- ///
112
- } else if (nonsenseNode !== null) {
113
- var nonsenseString = context1.nodeAsString(nonsenseNode);
114
- statementOrNonsenseString = nonsenseString; ///
115
- } else if (statementNode !== null) {
116
- var statementString = context1.nodeAsString(statementNode);
117
- statementOrNonsenseString = statementString; ///
118
- }
119
- return statementOrNonsenseString;
120
- }
121
- function lastStatementOrNonsenseStringFromSubproofNode(subproofNode1, context1) {
122
- var lastStepNode = subproofNode1.getLastStepNode(), suppositionOrStepNode = lastStepNode, statementOrNonsenseString = statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context1), lastStatementOrNonsenseString = statementOrNonsenseString; ///
123
- return lastStatementOrNonsenseString;
124
- }
125
178
 
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBiYXNlVHlwZSB9IGZyb20gXCIuLi9lbGVtZW50L3R5cGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zU3RyaW5nRnJvbVRlcm1zKHRlcm1zKSB7XG4gIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXMucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICBgJHt0ZXJtc1N0cmluZ30sICR7dGVybVN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICB0ZXJtU3RyaW5nO1xuXG4gICAgcmV0dXJuIHRlcm1zU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gdGVybXNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYWJlbHNTdHJpbmdGcm9tTGFiZWxzKGxhYmVscykge1xuICBjb25zdCBsYWJlbHNTdHJpbmcgPSBsYWJlbHMucmVkdWNlKChsYWJlbHNTdHJpbmcsIGxhYmVsKSA9PiB7XG4gICAgY29uc3QgbGFiZWxTdHJpbmcgPSBsYWJlbC5nZXRTdHJpbmcoKTtcblxuICAgIGxhYmVsc1N0cmluZyA9IChsYWJlbHNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiAvLy9cbiAgICAgICAgICAgICAgICAgICAgICBgJHtsYWJlbHNTdHJpbmd9LCAke2xhYmVsU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gbGFiZWxzU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gbGFiZWxzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmF0dXJlU3RyaW5nRnJvbVRlcm1zKHRlcm1zKSB7XG4gIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXNTdHJpbmdGcm9tVGVybXModGVybXMpLFxuICAgICAgICBzaWduYXR1cmVTdHJpbmcgPSBgWyR7dGVybXNTdHJpbmd9XWA7XG5cbiAgcmV0dXJuIHNpZ25hdHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YnByb29mU3RyaW5nRnJvbVN1YnByb29mKHN1YnByb29mKSB7XG4gIGNvbnN0IHN1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmcgPSBzdXBwb3NpdGlvblN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmdGcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSwgY29udGV4dCksXG4gICAgICAgIGxhc3RTdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nID0gbGFzdFN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmdGcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSwgY29udGV4dCksXG4gICAgICAgIHN1YnByb29mU3RyaW5nID0gYFske3N1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmd9XSAuLi4gJHtsYXN0U3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ31gO1xuXG4gIHJldHVybiBzdWJwcm9vZlN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cGVyVHlwZXNTdHJpbmdGcm9tU3VwZXJUeXBlcyhzdXBlclR5cGVzKSB7XG4gIGNvbnN0IHN1cGVyVHlwZXNTdHJpbmcgPSBzdXBlclR5cGVzLnJlZHVjZSgoc3VwZXJUeXBlc1N0cmluZywgc3VwZXJUeXBlKSA9PiB7XG4gICAgaWYgKHN1cGVyVHlwZSAhPT0gYmFzZVR5cGUpIHtcbiAgICAgIGNvbnN0IHN1cGVyVHlwZVN0cmluZyA9IHN1cGVyVHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgc3VwZXJUeXBlc1N0cmluZyA9IChzdXBlclR5cGVzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBgJyR7c3VwZXJUeXBlU3RyaW5nfSdgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7c3VwZXJUeXBlc1N0cmluZ30sICcke3N1cGVyVHlwZVN0cmluZ30nYDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXJUeXBlc1N0cmluZztcbiAgfSwgbnVsbCk7XG5cbiAgcmV0dXJuIHN1cGVyVHlwZXNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3NpdGlvbnNTdHJpbmdGcm9tU3VwcG9zaXRpb25zKHN1cHBvc2l0aW9ucykge1xuICBjb25zdCBzdXBwb3NpdGlvbnNTdHJpbmcgPSBzdXBwb3NpdGlvbnMucmVkdWNlKChzdXBwb3NpdGlvbnNTdHJpbmcsIHN1cHBvc2l0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3VwcG9zaXRpb25TdHJpbmcgPSBzdXBwb3NpdGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIHN1cHBvc2l0aW9uc1N0cmluZyA9IChzdXBwb3NpdGlvbnNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7c3VwcG9zaXRpb25zU3RyaW5nfSwgJHtzdXBwb3NpdGlvblN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3NpdGlvblN0cmluZzsgIC8vL1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uc1N0cmluZztcbiAgfSwgbnVsbCk7XG5cbiAgcmV0dXJuIHN1cHBvc2l0aW9uc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVTdHJpbmdGcm9tVHlwZU5hbWVUeXBlUHJlZml4TmFtZUFuZFN1cGVyVHlwZXModHlwZU5hbWUsIHR5cGVQcmVmaXhOYW1lLCBzdXBlclR5cGVzKSB7XG4gIGxldCB0eXBlU3RyaW5nO1xuXG4gIHR5cGVTdHJpbmcgPSAodHlwZVByZWZpeE5hbWUgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgYCR7dHlwZVByZWZpeE5hbWV9JHt0eXBlTmFtZX1gOlxuICAgICAgICAgICAgICAgICAgIHR5cGVOYW1lO1xuXG4gIGNvbnN0IHN1cGVyVHlwZXNTdHJpbmcgPSBzdXBlclR5cGVzU3RyaW5nRnJvbVN1cGVyVHlwZXMoc3VwZXJUeXBlcyk7XG5cbiAgaWYgKHN1cGVyVHlwZXNTdHJpbmcgIT09IG51bGwpIHtcbiAgICB0eXBlU3RyaW5nID0gYCR7dHlwZVN0cmluZ306JHtzdXBlclR5cGVzU3RyaW5nfWA7XG4gIH1cblxuICByZXR1cm4gdHlwZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZVN0cmluZ0Zyb21MYWJlbHNTdXBwb3NpdGlvbnNBbmREZWR1Y3Rpb24obGFiZWxzLCBzdXBwb3NpdGlvbnMsIGRlZHVjdGlvbikge1xuICBsZXQgYXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlU3RyaW5nO1xuXG4gIGNvbnN0IHN1cHBvc2l0aW9uc1N0cmluZyA9IHN1cHBvc2l0aW9uc1N0cmluZ0Zyb21TdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25zKSxcbiAgICAgICAgZGVkdWN0aW9uU3RyaW5nID0gZGVkdWN0aW9uLmdldFN0cmluZygpLFxuICAgICAgICBsYWJlbHNTdHJpbmcgPSBsYWJlbHNTdHJpbmdGcm9tTGFiZWxzKGxhYmVscyk7XG5cbiAgaWYgKGxhYmVsc1N0cmluZyAhPT0gbnVsbCkge1xuICAgIGF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZVN0cmluZyA9IChzdXBwb3NpdGlvbnNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2xhYmVsc1N0cmluZ30gOjogWyR7c3VwcG9zaXRpb25zU3RyaW5nfV0gLi4uICR7ZGVkdWN0aW9uU3RyaW5nfWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtsYWJlbHNTdHJpbmd9IDo6ICR7ZGVkdWN0aW9uU3RyaW5nfWA7XG4gIH0gZWxzZSB7XG4gICAgYXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlU3RyaW5nID0gKHN1cHBvc2l0aW9uc1N0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgWyR7c3VwcG9zaXRpb25zU3RyaW5nfV0gLi4uICR7ZGVkdWN0aW9uU3RyaW5nfWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWR1Y3Rpb25TdHJpbmc7XG4gIH1cblxuICByZXR1cm4gYXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlU3RyaW5nO1xufVxuXG5mdW5jdGlvbiBzdXBwb3NpdGlvblN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmdGcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSwgY29udGV4dCkge1xuICBjb25zdCBzdXBwb3NpdGlvbk5vZGVzID0gc3VicHJvb2ZOb2RlLmdldFN1cHBvc2l0aW9uTm9kZXMoKSxcbiAgICAgICAgc3VwcG9zaXRpb25TdGF0ZW1lbnRzT3JOb25zZW5zZVN0cmluZyA9IHN1cHBvc2l0aW9uTm9kZXMucmVkdWNlKChzdXBwb3NpdGlvblN0YXRlbWVudHNPck5vbnNlbnNlU3RyaW5nLCBzdXBwb3NpdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBzdXBwb3NpdGlvbk9yU3RlcE5vZGUgPSBzdXBwb3NpdGlvbk5vZGUsICAvLy9cbiAgICAgICAgICAgICAgICBzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nID0gc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ0Zyb21TdXBwb3NpdGlvbk9yU3RlcE5vZGUoc3VwcG9zaXRpb25PclN0ZXBOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICBzdXBwb3NpdGlvblN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmcgPSBzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nOyAvLy9cblxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmcgPSAoc3VwcG9zaXRpb25TdGF0ZW1lbnRzT3JOb25zZW5zZVN0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3N1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmd9LCAke3N1cHBvc2l0aW9uU3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvc2l0aW9uU3RhdGVtZW50T3JOb25zZW5zZVN0cmluZzsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gc3VwcG9zaXRpb25TdGF0ZW1lbnRzT3JOb25zZW5zZVN0cmluZztcbiAgICAgICAgfSwgbnVsbCk7XG5cbiAgcmV0dXJuIHN1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmdGcm9tU3VwcG9zaXRpb25PclN0ZXBOb2RlKHN1cHBvc2l0aW9uT3JTdGVwTm9kZSwgY29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZztcblxuICBjb25zdCBub25zZW5zZU5vZGUgPSBzdXBwb3NpdGlvbk9yU3RlcE5vZGUuZ2V0Tm9uc2Vuc2VOb2RlKCksXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdXBwb3NpdGlvbk9yU3RlcE5vZGUuZ2V0U3RhdGVtZW50Tm9kZSgpO1xuXG4gIGlmIChmYWxzZSkge1xuICAgIC8vL1xuICB9IGVsc2UgaWYgKG5vbnNlbnNlTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG5vbnNlbnNlU3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9uc2Vuc2VOb2RlKTtcblxuICAgIHN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmcgPSBub25zZW5zZVN0cmluZzsgLy8vXG4gIH0gZWxzZSBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZyA9IHN0YXRlbWVudFN0cmluZzsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGxhc3RTdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgbGFzdFN0ZXBOb2RlID0gc3VicHJvb2ZOb2RlLmdldExhc3RTdGVwTm9kZSgpLFxuICAgICAgICBzdXBwb3NpdGlvbk9yU3RlcE5vZGUgPSBsYXN0U3RlcE5vZGUsIC8vL1xuICAgICAgICBzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nID0gc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ0Zyb21TdXBwb3NpdGlvbk9yU3RlcE5vZGUoc3VwcG9zaXRpb25PclN0ZXBOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgbGFzdFN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmcgPSBzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nOyAvLy9cblxuICByZXR1cm4gbGFzdFN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiYXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlU3RyaW5nRnJvbUxhYmVsc1N1cHBvc2l0aW9uc0FuZERlZHVjdGlvbiIsImxhYmVsc1N0cmluZ0Zyb21MYWJlbHMiLCJzaWduYXR1cmVTdHJpbmdGcm9tVGVybXMiLCJzdWJwcm9vZlN0cmluZ0Zyb21TdWJwcm9vZiIsInN1cGVyVHlwZXNTdHJpbmdGcm9tU3VwZXJUeXBlcyIsInN1cHBvc2l0aW9uc1N0cmluZ0Zyb21TdXBwb3NpdGlvbnMiLCJ0ZXJtc1N0cmluZ0Zyb21UZXJtcyIsInR5cGVTdHJpbmdGcm9tVHlwZU5hbWVUeXBlUHJlZml4TmFtZUFuZFN1cGVyVHlwZXMiLCJ0ZXJtcyIsInRlcm1zU3RyaW5nIiwicmVkdWNlIiwidGVybSIsInRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJsYWJlbHMiLCJsYWJlbHNTdHJpbmciLCJsYWJlbCIsImxhYmVsU3RyaW5nIiwic2lnbmF0dXJlU3RyaW5nIiwic3VicHJvb2YiLCJzdXBwb3NpdGlvblN0YXRlbWVudHNPck5vbnNlbnNlU3RyaW5nIiwic3VwcG9zaXRpb25TdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1YnByb29mTm9kZSIsInN1YnByb29mTm9kZSIsImNvbnRleHQiLCJsYXN0U3RhdGVtZW50T3JOb25zZW5zZVN0cmluZyIsImxhc3RTdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1YnByb29mTm9kZSIsInN1YnByb29mU3RyaW5nIiwic3VwZXJUeXBlcyIsInN1cGVyVHlwZXNTdHJpbmciLCJzdXBlclR5cGUiLCJiYXNlVHlwZSIsInN1cGVyVHlwZVN0cmluZyIsInN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9uc1N0cmluZyIsInN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25TdHJpbmciLCJ0eXBlTmFtZSIsInR5cGVQcmVmaXhOYW1lIiwidHlwZVN0cmluZyIsImRlZHVjdGlvbiIsImF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZVN0cmluZyIsImRlZHVjdGlvblN0cmluZyIsInN1cHBvc2l0aW9uTm9kZXMiLCJnZXRTdXBwb3NpdGlvbk5vZGVzIiwic3VwcG9zaXRpb25Ob2RlIiwic3VwcG9zaXRpb25PclN0ZXBOb2RlIiwic3RhdGVtZW50T3JOb25zZW5zZVN0cmluZyIsInN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmdGcm9tU3VwcG9zaXRpb25PclN0ZXBOb2RlIiwic3VwcG9zaXRpb25TdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nIiwibm9uc2Vuc2VOb2RlIiwiZ2V0Tm9uc2Vuc2VOb2RlIiwic3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJub25zZW5zZVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInN0YXRlbWVudFN0cmluZyIsImxhc3RTdGVwTm9kZSIsImdldExhc3RTdGVwTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBNkZnQkE7ZUFBQUE7O1FBM0VBQztlQUFBQTs7UUFjQUM7ZUFBQUE7O1FBT0FDO2VBQUFBOztRQVFBQztlQUFBQTs7UUFnQkFDO2VBQUFBOztRQTNEQUM7ZUFBQUE7O1FBeUVBQztlQUFBQTs7O29CQTNFUztBQUVsQixTQUFTRCxxQkFBcUJFLEtBQUs7SUFDeEMsSUFBTUMsY0FBY0QsTUFBTUUsTUFBTSxDQUFDLFNBQUNELGFBQWFFO1FBQzdDLElBQU1DLGFBQWFELEtBQUtFLFNBQVM7UUFFakNKLGNBQWMsQUFBQ0EsZ0JBQWdCLE9BQ2hCLEFBQUMsR0FBa0JHLE9BQWhCSCxhQUFZLE1BQWUsT0FBWEcsY0FDaEJBO1FBRWxCLE9BQU9IO0lBQ1QsR0FBRztJQUVILE9BQU9BO0FBQ1Q7QUFFTyxTQUFTUix1QkFBdUJhLE1BQU07SUFDM0MsSUFBTUMsZUFBZUQsT0FBT0osTUFBTSxDQUFDLFNBQUNLLGNBQWNDO1FBQ2hELElBQU1DLGNBQWNELE1BQU1ILFNBQVM7UUFFbkNFLGVBQWUsQUFBQ0EsaUJBQWlCLE9BQ2hCRSxjQUNDLEFBQUMsR0FBbUJBLE9BQWpCRixjQUFhLE1BQWdCLE9BQVpFO1FBRXRDLE9BQU9GO0lBQ1QsR0FBRztJQUVILE9BQU9BO0FBQ1Q7QUFFTyxTQUFTYix5QkFBeUJNLEtBQUs7SUFDNUMsSUFBTUMsY0FBY0gscUJBQXFCRSxRQUNuQ1Usa0JBQWtCLEFBQUMsSUFBZSxPQUFaVCxhQUFZO0lBRXhDLE9BQU9TO0FBQ1Q7QUFFTyxTQUFTZiwyQkFBMkJnQixRQUFRO0lBQ2pELElBQU1DLHdDQUF3Q0MscURBQXFEQyxjQUFjQyxVQUMzR0MsZ0NBQWdDQyw4Q0FBOENILGNBQWNDLFVBQzVGRyxpQkFBaUIsQUFBQyxJQUFpREYsT0FBOUNKLHVDQUFzQyxVQUFzQyxPQUE5Qkk7SUFFekUsT0FBT0U7QUFDVDtBQUVPLFNBQVN0QiwrQkFBK0J1QixVQUFVO0lBQ3ZELElBQU1DLG1CQUFtQkQsV0FBV2pCLE1BQU0sQ0FBQyxTQUFDa0Isa0JBQWtCQztRQUM1RCxJQUFJQSxjQUFjQyxjQUFRLEVBQUU7WUFDMUIsSUFBTUMsa0JBQWtCRixVQUFVaEIsU0FBUztZQUUzQ2UsbUJBQW1CLEFBQUNBLHFCQUFxQixPQUNwQixBQUFDLElBQW1CLE9BQWhCRyxpQkFBZ0IsT0FDbEIsQUFBQyxHQUF3QkEsT0FBdEJILGtCQUFpQixPQUFxQixPQUFoQkcsaUJBQWdCO1FBQ2xFO1FBRUEsT0FBT0g7SUFDVCxHQUFHO0lBRUgsT0FBT0E7QUFDVDtBQUVPLFNBQVN2QixtQ0FBbUMyQixZQUFZO0lBQzdELElBQU1DLHFCQUFxQkQsYUFBYXRCLE1BQU0sQ0FBQyxTQUFDdUIsb0JBQW9CQztRQUNsRSxJQUFNQyxvQkFBb0JELFlBQVlyQixTQUFTO1FBRS9Db0IscUJBQXFCLEFBQUNBLHVCQUF1QixPQUN2QixBQUFDLEdBQXlCRSxPQUF2QkYsb0JBQW1CLE1BQXNCLE9BQWxCRSxxQkFDeEJBLG1CQUFvQixHQUFHO1FBRS9DLE9BQU9GO0lBQ1QsR0FBRztJQUVILE9BQU9BO0FBQ1Q7QUFFTyxTQUFTMUIsa0RBQWtENkIsUUFBUSxFQUFFQyxjQUFjLEVBQUVWLFVBQVU7SUFDcEcsSUFBSVc7SUFFSkEsYUFBYSxBQUFDRCxtQkFBbUIsT0FDbEIsQUFBQyxHQUFtQkQsT0FBakJDLGdCQUEwQixPQUFURCxZQUNsQkE7SUFFakIsSUFBTVIsbUJBQW1CeEIsK0JBQStCdUI7SUFFeEQsSUFBSUMscUJBQXFCLE1BQU07UUFDN0JVLGFBQWEsQUFBQyxHQUFnQlYsT0FBZFUsWUFBVyxLQUFvQixPQUFqQlY7SUFDaEM7SUFFQSxPQUFPVTtBQUNUO0FBRU8sU0FBU3RDLG9FQUFvRWMsTUFBTSxFQUFFa0IsWUFBWSxFQUFFTyxTQUFTO0lBQ2pILElBQUlDO0lBRUosSUFBTVAscUJBQXFCNUIsbUNBQW1DMkIsZUFDeERTLGtCQUFrQkYsVUFBVTFCLFNBQVMsSUFDckNFLGVBQWVkLHVCQUF1QmE7SUFFNUMsSUFBSUMsaUJBQWlCLE1BQU07UUFDekJ5QixvQ0FBb0MsQUFBQ1AsdUJBQXVCLE9BQ3RCLEFBQUMsR0FBc0JBLE9BQXBCbEIsY0FBYSxTQUFrQzBCLE9BQTNCUixvQkFBbUIsVUFBd0IsT0FBaEJRLG1CQUNoRCxBQUFDLEdBQXFCQSxPQUFuQjFCLGNBQWEsUUFBc0IsT0FBaEIwQjtJQUNoRSxPQUFPO1FBQ0xELG9DQUFvQyxBQUFDUCx1QkFBdUIsT0FDdkIsQUFBQyxJQUE4QlEsT0FBM0JSLG9CQUFtQixVQUF3QixPQUFoQlEsbUJBQzVCQTtJQUMxQztJQUVBLE9BQU9EO0FBQ1Q7QUFFQSxTQUFTbkIscURBQXFEQyxhQUFZLEVBQUVDLFFBQU87SUFDakYsSUFBTW1CLG1CQUFtQnBCLGNBQWFxQixtQkFBbUIsSUFDbkR2Qix3Q0FBd0NzQixpQkFBaUJoQyxNQUFNLENBQUMsU0FBQ1UsdUNBQXVDd0I7UUFDdEcsSUFBTUMsd0JBQXdCRCxpQkFDeEJFLDRCQUE0QkMsbURBQW1ERix1QkFBdUJ0QixXQUN0R3lCLHVDQUF1Q0YsMkJBQTJCLEdBQUc7UUFFM0UxQix3Q0FBd0MsQUFBQ0EsMENBQTBDLE9BQ3pDLEFBQUMsR0FBNEM0QixPQUExQzVCLHVDQUFzQyxNQUF5QyxPQUFyQzRCLHdDQUMzQ0Esc0NBQXNDLEdBQUc7UUFFckYsT0FBTzVCO0lBQ1QsR0FBRztJQUVULE9BQU9BO0FBQ1Q7QUFFQSxTQUFTMkIsbURBQW1ERixxQkFBcUIsRUFBRXRCLFFBQU87SUFDeEYsSUFBSXVCO0lBRUosSUFBTUcsZUFBZUosc0JBQXNCSyxlQUFlLElBQ3BEQyxnQkFBZ0JOLHNCQUFzQk8sZ0JBQWdCO0lBRTVELElBQUksT0FBTztJQUNULEdBQUc7SUFDTCxPQUFPLElBQUlILGlCQUFpQixNQUFNO1FBQ2hDLElBQU1JLGlCQUFpQjlCLFNBQVErQixZQUFZLENBQUNMO1FBRTVDSCw0QkFBNEJPLGdCQUFnQixHQUFHO0lBQ2pELE9BQU8sSUFBSUYsa0JBQWtCLE1BQU07UUFDakMsSUFBTUksa0JBQWtCaEMsU0FBUStCLFlBQVksQ0FBQ0g7UUFFN0NMLDRCQUE0QlMsaUJBQWtCLEdBQUc7SUFDbkQ7SUFFQSxPQUFPVDtBQUNUO0FBRUEsU0FBU3JCLDhDQUE4Q0gsYUFBWSxFQUFFQyxRQUFPO0lBQzFFLElBQU1pQyxlQUFlbEMsY0FBYW1DLGVBQWUsSUFDM0NaLHdCQUF3QlcsY0FDeEJWLDRCQUE0QkMsbURBQW1ERix1QkFBdUJ0QixXQUN0R0MsZ0NBQWdDc0IsMkJBQTJCLEdBQUc7SUFFcEUsT0FBT3RCO0FBQ1QifQ==
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBiYXNlVHlwZSB9IGZyb20gXCIuLi9lbGVtZW50L3R5cGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zU3RyaW5nRnJvbVRlcm1zKHRlcm1zKSB7XG4gIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXMucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICBgJHt0ZXJtc1N0cmluZ30sICR7dGVybVN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICB0ZXJtU3RyaW5nO1xuXG4gICAgcmV0dXJuIHRlcm1zU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gdGVybXNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYWJlbHNTdHJpbmdGcm9tTGFiZWxzKGxhYmVscykge1xuICBjb25zdCBsYWJlbHNTdHJpbmcgPSBsYWJlbHMucmVkdWNlKChsYWJlbHNTdHJpbmcsIGxhYmVsKSA9PiB7XG4gICAgY29uc3QgbGFiZWxTdHJpbmcgPSBsYWJlbC5nZXRTdHJpbmcoKTtcblxuICAgIGxhYmVsc1N0cmluZyA9IChsYWJlbHNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiAvLy9cbiAgICAgICAgICAgICAgICAgICAgICBgJHtsYWJlbHNTdHJpbmd9LCAke2xhYmVsU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gbGFiZWxzU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gbGFiZWxzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlbWlzZXNTdHJpbmdGcm9tUHJlbWlzZXMocHJlbWlzZXMpIHtcbiAgY29uc3QgcHJlbWlzZXNTdHJpbmcgPSBwcmVtaXNlcy5yZWR1Y2UoKHByZW1pc2VzU3RyaW5nLCBwcmVtaXNlKSA9PiB7XG4gICAgY29uc3QgcHJlbWlzZVN0cmluZyA9IHByZW1pc2UuZ2V0U3RyaW5nKCk7XG5cbiAgICBwcmVtaXNlc1N0cmluZyA9IChwcmVtaXNlc1N0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICBgJHtwcmVtaXNlc1N0cmluZ30sICR7cHJlbWlzZVN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICBwcmVtaXNlU3RyaW5nOyAgLy8vXG5cbiAgICByZXR1cm4gcHJlbWlzZXNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBwcmVtaXNlc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh5cG90aGVzZXNTdHJpbmdGcm9tSHlwb3RoZXNlcyhoeXBvdGhlc2VzLCBjb250ZXh0KSB7XG4gIGNvbnN0IGh5cG90aGVzZXNTdHJpbmcgPSBoeXBvdGhlc2VzLnJlZHVjZSgoaHlwb3RoZXNlc1N0cmluZywgaHlwb3RoZXNpcykgPT4ge1xuICAgIGNvbnN0IGh5cG90aGVzaXNTdHJpbmcgPSBoeXBvdGhlc2lzLmdldFN0cmluZygpO1xuXG4gICAgaHlwb3RoZXNlc1N0cmluZyA9IChoeXBvdGhlc2VzU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGAke2h5cG90aGVzZXNTdHJpbmd9LCAke2h5cG90aGVzaXNTdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHlwb3RoZXNpc1N0cmluZzsgIC8vL1xuXG4gICAgcmV0dXJuIGh5cG90aGVzZXNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBoeXBvdGhlc2VzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJUeXBlc1N0cmluZ0Zyb21TdXBlclR5cGVzKHN1cGVyVHlwZXMpIHtcbiAgY29uc3Qgc3VwZXJUeXBlc1N0cmluZyA9IHN1cGVyVHlwZXMucmVkdWNlKChzdXBlclR5cGVzU3RyaW5nLCBzdXBlclR5cGUpID0+IHtcbiAgICBpZiAoc3VwZXJUeXBlICE9PSBiYXNlVHlwZSkge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlU3RyaW5nID0gc3VwZXJUeXBlLmdldFN0cmluZygpO1xuXG4gICAgICBzdXBlclR5cGVzU3RyaW5nID0gKHN1cGVyVHlwZXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGAnJHtzdXBlclR5cGVTdHJpbmd9J2AgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtzdXBlclR5cGVzU3RyaW5nfSwgJyR7c3VwZXJUeXBlU3RyaW5nfSdgO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlclR5cGVzU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gc3VwZXJUeXBlc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtZXRlcnNTdHJpbmdGcm9tUGFyYW1ldGVycyhwYXJhbWV0ZXJzKSB7XG4gIGNvbnN0IHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLnJlZHVjZSgocGFyYW1ldGVyc1N0cmluZywgcGFyYW1ldGVyKSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyU3RyaW5nID0gcGFyYW1ldGVyLmdldFN0cmluZygpO1xuXG4gICAgcGFyYW1ldGVyc1N0cmluZyA9IChwYXJhbWV0ZXJzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyU3RyaW5nIDogLy8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGAke3BhcmFtZXRlcnNTdHJpbmd9LCAke3BhcmFtZXRlclN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHBhcmFtZXRlcnNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBwYXJhbWV0ZXJzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzdW1wdGlvbnNTdHJpbmdGcm9tQXNzdW1wdGlvbnMoYXNzdW1wdGlvbnMpIHtcbiAgY29uc3QgYXNzdW1wdGlvbnNTdHJpbmcgPSBhc3N1bXB0aW9ucy5yZWR1Y2UoKGFzc3VtcHRpb25zU3RyaW5nLCBhc3N1bXB0aW9uKSA9PiB7XG4gICAgY29uc3QgYXNzdW1wdGlvblN0cmluZyA9IGFzc3VtcHRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICBhc3N1bXB0aW9uc1N0cmluZyA9IChhc3N1bXB0aW9uc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICBhc3N1bXB0aW9uU3RyaW5nIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHthc3N1bXB0aW9uc1N0cmluZ30sICR7YXNzdW1wdGlvblN0cmluZ31gO1xuXG4gICAgcmV0dXJuIGFzc3VtcHRpb25zU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gYXNzdW1wdGlvbnNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3NpdGlvbnNTdHJpbmdGcm9tU3VwcG9zaXRpb25zKHN1cHBvc2l0aW9ucykge1xuICBjb25zdCBzdXBwb3NpdGlvbnNTdHJpbmcgPSBzdXBwb3NpdGlvbnMucmVkdWNlKChzdXBwb3NpdGlvbnNTdHJpbmcsIHN1cHBvc2l0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3VwcG9zaXRpb25TdHJpbmcgPSBzdXBwb3NpdGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIHN1cHBvc2l0aW9uc1N0cmluZyA9IChzdXBwb3NpdGlvbnNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvc2l0aW9uU3RyaW5nOiAvLy9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtzdXBwb3NpdGlvbnNTdHJpbmd9LCAke3N1cHBvc2l0aW9uU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gc3VwcG9zaXRpb25zU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gc3VwcG9zaXRpb25zU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lnbmF0dXJlU3RyaW5nRnJvbVRlcm1zKHRlcm1zKSB7XG4gIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXNTdHJpbmdGcm9tVGVybXModGVybXMpLFxuICAgICAgICBzaWduYXR1cmVTdHJpbmcgPSBgWyR7dGVybXNTdHJpbmd9XWA7XG5cbiAgcmV0dXJuIHNpZ25hdHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVxdWl2YWxlbmNlU3RyaW5nRnJvbVRlcm1zKHRlcm1zKSB7XG4gIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXNTdHJpbmdGcm9tVGVybXModGVybXMpLFxuICAgICAgICBlcXVpdmFsZW5jZVN0cmluZyA9IHRlcm1zU3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIGVxdWl2YWxlbmNlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VicHJvb2ZTdHJpbmdGcm9tU3VicHJvb2Yoc3VicHJvb2YpIHtcbiAgY29uc3QgbGFzdFN0ZXAgPSBzdWJwcm9vZi5nZXRMYXN0U3RlcCgpLFxuICAgICAgICBzdXBwb3NpdGlvbnMgPSBzdWJwcm9vZi5nZXRTdXBwb3NpdGlvbnMoKSxcbiAgICAgICAgbGFzdFN0ZXBTdHJpbmcgPSBsYXN0U3RlcC5nZXRTdHJpbmcoKSxcbiAgICAgICAgc3VwcG9zaXRpb25zU3RyaW5nID0gc3VwcG9zaXRpb25zU3RyaW5nRnJvbVN1cHBvc2l0aW9ucyhzdXBwb3NpdGlvbnMpLFxuICAgICAgICBzdWJwcm9vZlN0cmluZyA9IGBbJHtzdXBwb3NpdGlvbnNTdHJpbmd9XSAuLi4gJHtsYXN0U3RlcFN0cmluZ31gO1xuXG4gIHJldHVybiBzdWJwcm9vZlN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bHNTdHJpbmdGcm9tTGFiZWxzUHJlbWlzZXNBbmRDb25jbHVzaW9uKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24pIHtcbiAgY29uc3QgcHJlbWlzZXNTdHJpbmcgPSBwcmVtaXNlc1N0cmluZ0Zyb21QcmVtaXNlcyhwcmVtaXNlcyksXG4gICAgICAgIGNvbmNsdXNpb25TdHJpbmcgPSBjb25jbHVzaW9uLmdldFN0cmluZygpLFxuICAgICAgICBsYWJlbHNTdHJpbmcgPSBsYWJlbHNTdHJpbmdGcm9tTGFiZWxzKGxhYmVscyksXG4gICAgICAgIHJ1bGVTdHJpbmcgPSAocHJlbWlzZXNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgYCR7bGFiZWxzU3RyaW5nfSA6OiBbJHtwcmVtaXNlc1N0cmluZ31dIC4uLiAke2NvbmNsdXNpb25TdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgYCR7bGFiZWxzU3RyaW5nfSA6OiAke2NvbmNsdXNpb25TdHJpbmd9YDtcblxuICByZXR1cm4gcnVsZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVTdHJpbmdGcm9tVHlwZU5hbWVUeXBlUHJlZml4TmFtZUFuZFN1cGVyVHlwZXModHlwZU5hbWUsIHR5cGVQcmVmaXhOYW1lLCBzdXBlclR5cGVzKSB7XG4gIGxldCB0eXBlU3RyaW5nO1xuXG4gIHR5cGVTdHJpbmcgPSAodHlwZVByZWZpeE5hbWUgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgYCR7dHlwZVByZWZpeE5hbWV9JHt0eXBlTmFtZX1gOlxuICAgICAgICAgICAgICAgICAgIHR5cGVOYW1lO1xuXG4gIGNvbnN0IHN1cGVyVHlwZXNTdHJpbmcgPSBzdXBlclR5cGVzU3RyaW5nRnJvbVN1cGVyVHlwZXMoc3VwZXJUeXBlcyk7XG5cbiAgaWYgKHN1cGVyVHlwZXNTdHJpbmcgIT09IG51bGwpIHtcbiAgICB0eXBlU3RyaW5nID0gYCR7dHlwZVN0cmluZ306JHtzdXBlclR5cGVzU3RyaW5nfWA7XG4gIH1cblxuICByZXR1cm4gdHlwZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZUNhbGxTdHJpbmdGcm9tUHJvY2VkdXJlUmVmZXJlbmNlQW5kUGFyYW1ldGVycyhwcm9jZWR1cmVSZWZlcmVuY2UsIHBhcmFtZXRlcnMpIHtcbiAgY29uc3QgcHJvY2VkdXJlUmVmZXJlbmNlTmFtZSA9IHByb2NlZHVyZVJlZmVyZW5jZS5nZXROYW1lKCksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzU3RyaW5nRnJvbVBhcmFtZXRlcnMocGFyYW1ldGVycyksXG4gICAgICAgIHByb2NlZHVyZUNhbGxTdHJpbmcgPSBgJHtwcm9jZWR1cmVSZWZlcmVuY2VOYW1lfSgke3BhcmFtZXRlcnNTdHJpbmd9KWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZUNhbGxTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWN0aW9uU3RyaW5nRnJvbUh5cG90aGVzZXNBeGlvbUxlbW1hVGhlb3JlbUFuZENvbmplY3R1cmUoaHlwb3RoZXNlcywgYXhpb20sIGxlbW1hLCB0aGVvcmVtLCBjb25qZWN0dXJlLCBjb250ZXh0KSB7XG4gIGNvbnN0IGF4aW9tTGVtbWFUaGVvcmVtT3JDb25qZWN0dXJlID0gKGF4aW9tIHx8IGxlbW1hIHx8IHRoZW9yZW0gfHwgY29uamVjdHVyZSksXG4gICAgICAgIGF4aW9tTGVtbWFUaGVvcmVtT3JDb25qZWN0dXJlU3RyaW5nID0gYXhpb21MZW1tYVRoZW9yZW1PckNvbmplY3R1cmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGh5cG90aGVzZXNTdHJpbmcgPSBoeXBvdGhlc2VzU3RyaW5nRnJvbUh5cG90aGVzZXMoaHlwb3RoZXNlcywgY29udGV4dCksXG4gICAgICAgIHNlY3Rpb25TdHJpbmcgPSAoYXhpb21MZW1tYVRoZW9yZW1PckNvbmplY3R1cmVTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYFske2h5cG90aGVzZXNTdHJpbmd9XTo6OiAke2F4aW9tTGVtbWFUaGVvcmVtT3JDb25qZWN0dXJlU3RyaW5nfWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBbJHtoeXBvdGhlc2VzU3RyaW5nfV06OjogYDtcblxuICByZXR1cm4gc2VjdGlvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGFMZW1tYU1ldGF0aGVvcmVtU3RyaW5nRnJvbUxhYmVsU3VwcG9zaXRpb25zQW5kRGVkdWN0aW9uKGxhYmVsLCBzdXBwb3NpdGlvbnMsIGRlZHVjdGlvbikge1xuICBjb25zdCBzdXBwb3NpdGlvbnNTdHJpbmcgPSBzdXBwb3NpdGlvbnNTdHJpbmdGcm9tU3VwcG9zaXRpb25zKHN1cHBvc2l0aW9ucyksXG4gICAgICAgIGRlZHVjdGlvblN0cmluZyA9IGRlZHVjdGlvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgbGFiZWxTdHJpbmcgPSBsYWJlbC5nZXRTdHJpbmcoKSxcbiAgICAgICAgbWV0YUxlbW1hTWV0YXRoZW9yZW1TdHJpbmcgPSAoc3VwcG9zaXRpb25zU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtsYWJlbFN0cmluZ30gOjogWyR7c3VwcG9zaXRpb25zU3RyaW5nfV0gLi4uICR7ZGVkdWN0aW9uU3RyaW5nfWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtsYWJlbFN0cmluZ30gOjogJHtkZWR1Y3Rpb25TdHJpbmd9YDtcblxuICByZXR1cm4gbWV0YUxlbW1hTWV0YXRoZW9yZW1TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBheGlvbUxlbW1hVGhlb3JlbUNvbmplY3R1cmVTdHJpbmdGcm9tTGFiZWxzU3VwcG9zaXRpb25zQW5kRGVkdWN0aW9uKGxhYmVscywgc3VwcG9zaXRpb25zLCBkZWR1Y3Rpb24pIHtcbiAgbGV0IGF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZVN0cmluZztcblxuICBjb25zdCBzdXBwb3NpdGlvbnNTdHJpbmcgPSBzdXBwb3NpdGlvbnNTdHJpbmdGcm9tU3VwcG9zaXRpb25zKHN1cHBvc2l0aW9ucyksXG4gICAgICAgIGRlZHVjdGlvblN0cmluZyA9IGRlZHVjdGlvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgbGFiZWxzU3RyaW5nID0gbGFiZWxzU3RyaW5nRnJvbUxhYmVscyhsYWJlbHMpO1xuXG4gIGlmIChsYWJlbHNTdHJpbmcgIT09IG51bGwpIHtcbiAgICBheGlvbUxlbW1hVGhlb3JlbUNvbmplY3R1cmVTdHJpbmcgPSAoc3VwcG9zaXRpb25zU3RyaW5nICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtsYWJlbHNTdHJpbmd9IDo6IFske3N1cHBvc2l0aW9uc1N0cmluZ31dIC4uLiAke2RlZHVjdGlvblN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7bGFiZWxzU3RyaW5nfSA6OiAke2RlZHVjdGlvblN0cmluZ31gO1xuICB9IGVsc2Uge1xuICAgIGF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZVN0cmluZyA9IChzdXBwb3NpdGlvbnNTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFske3N1cHBvc2l0aW9uc1N0cmluZ31dIC4uLiAke2RlZHVjdGlvblN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVkdWN0aW9uU3RyaW5nO1xuICB9XG5cbiAgcmV0dXJuIGF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZVN0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJhc3N1bXB0aW9uc1N0cmluZ0Zyb21Bc3N1bXB0aW9ucyIsImF4aW9tTGVtbWFUaGVvcmVtQ29uamVjdHVyZVN0cmluZ0Zyb21MYWJlbHNTdXBwb3NpdGlvbnNBbmREZWR1Y3Rpb24iLCJlcXVpdmFsZW5jZVN0cmluZ0Zyb21UZXJtcyIsImh5cG90aGVzZXNTdHJpbmdGcm9tSHlwb3RoZXNlcyIsImxhYmVsc1N0cmluZ0Zyb21MYWJlbHMiLCJtZXRhTGVtbWFNZXRhdGhlb3JlbVN0cmluZ0Zyb21MYWJlbFN1cHBvc2l0aW9uc0FuZERlZHVjdGlvbiIsInBhcmFtZXRlcnNTdHJpbmdGcm9tUGFyYW1ldGVycyIsInByZW1pc2VzU3RyaW5nRnJvbVByZW1pc2VzIiwicHJvY2VkdXJlQ2FsbFN0cmluZ0Zyb21Qcm9jZWR1cmVSZWZlcmVuY2VBbmRQYXJhbWV0ZXJzIiwicnVsc1N0cmluZ0Zyb21MYWJlbHNQcmVtaXNlc0FuZENvbmNsdXNpb24iLCJzZWN0aW9uU3RyaW5nRnJvbUh5cG90aGVzZXNBeGlvbUxlbW1hVGhlb3JlbUFuZENvbmplY3R1cmUiLCJzaWduYXR1cmVTdHJpbmdGcm9tVGVybXMiLCJzdWJwcm9vZlN0cmluZ0Zyb21TdWJwcm9vZiIsInN1cGVyVHlwZXNTdHJpbmdGcm9tU3VwZXJUeXBlcyIsInN1cHBvc2l0aW9uc1N0cmluZ0Zyb21TdXBwb3NpdGlvbnMiLCJ0ZXJtc1N0cmluZ0Zyb21UZXJtcyIsInR5cGVTdHJpbmdGcm9tVHlwZU5hbWVUeXBlUHJlZml4TmFtZUFuZFN1cGVyVHlwZXMiLCJ0ZXJtcyIsInRlcm1zU3RyaW5nIiwicmVkdWNlIiwidGVybSIsInRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJsYWJlbHMiLCJsYWJlbHNTdHJpbmciLCJsYWJlbCIsImxhYmVsU3RyaW5nIiwicHJlbWlzZXMiLCJwcmVtaXNlc1N0cmluZyIsInByZW1pc2UiLCJwcmVtaXNlU3RyaW5nIiwiaHlwb3RoZXNlcyIsImNvbnRleHQiLCJoeXBvdGhlc2VzU3RyaW5nIiwiaHlwb3RoZXNpcyIsImh5cG90aGVzaXNTdHJpbmciLCJzdXBlclR5cGVzIiwic3VwZXJUeXBlc1N0cmluZyIsInN1cGVyVHlwZSIsImJhc2VUeXBlIiwic3VwZXJUeXBlU3RyaW5nIiwicGFyYW1ldGVycyIsInBhcmFtZXRlcnNTdHJpbmciLCJwYXJhbWV0ZXIiLCJwYXJhbWV0ZXJTdHJpbmciLCJhc3N1bXB0aW9ucyIsImFzc3VtcHRpb25zU3RyaW5nIiwiYXNzdW1wdGlvbiIsImFzc3VtcHRpb25TdHJpbmciLCJzdXBwb3NpdGlvbnMiLCJzdXBwb3NpdGlvbnNTdHJpbmciLCJzdXBwb3NpdGlvbiIsInN1cHBvc2l0aW9uU3RyaW5nIiwic2lnbmF0dXJlU3RyaW5nIiwiZXF1aXZhbGVuY2VTdHJpbmciLCJzdWJwcm9vZiIsImxhc3RTdGVwIiwiZ2V0TGFzdFN0ZXAiLCJnZXRTdXBwb3NpdGlvbnMiLCJsYXN0U3RlcFN0cmluZyIsInN1YnByb29mU3RyaW5nIiwiY29uY2x1c2lvbiIsImNvbmNsdXNpb25TdHJpbmciLCJydWxlU3RyaW5nIiwidHlwZU5hbWUiLCJ0eXBlUHJlZml4TmFtZSIsInR5cGVTdHJpbmciLCJwcm9jZWR1cmVSZWZlcmVuY2UiLCJwcm9jZWR1cmVSZWZlcmVuY2VOYW1lIiwiZ2V0TmFtZSIsInByb2NlZHVyZUNhbGxTdHJpbmciLCJheGlvbSIsImxlbW1hIiwidGhlb3JlbSIsImNvbmplY3R1cmUiLCJheGlvbUxlbW1hVGhlb3JlbU9yQ29uamVjdHVyZSIsImF4aW9tTGVtbWFUaGVvcmVtT3JDb25qZWN0dXJlU3RyaW5nIiwic2VjdGlvblN0cmluZyIsImRlZHVjdGlvbiIsImRlZHVjdGlvblN0cmluZyIsIm1ldGFMZW1tYU1ldGF0aGVvcmVtU3RyaW5nIiwiYXhpb21MZW1tYVRoZW9yZW1Db25qZWN0dXJlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUEwRmdCQTtlQUFBQTs7UUE2R0FDO2VBQUFBOztRQTFFQUM7ZUFBQUE7O1FBL0VBQztlQUFBQTs7UUE1QkFDO2VBQUFBOztRQTBLQUM7ZUFBQUE7O1FBaEhBQztlQUFBQTs7UUE1Q0FDO2VBQUFBOztRQXlJQUM7ZUFBQUE7O1FBM0JBQztlQUFBQTs7UUFtQ0FDO2VBQUFBOztRQTNEQUM7ZUFBQUE7O1FBY0FDO2VBQUFBOztRQXhFQUM7ZUFBQUE7O1FBNENBQztlQUFBQTs7UUFwR0FDO2VBQUFBOztRQXFKQUM7ZUFBQUE7OztvQkF2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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "1.0.427",
4
+ "version": "1.0.436",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -12,11 +12,11 @@
12
12
  "dependencies": {
13
13
  "argumentative": "^2.0.36",
14
14
  "necessary": "^17.0.7",
15
- "occam-custom-grammars": "^5.0.1334",
16
- "occam-entities": "^1.0.439",
17
- "occam-file-system": "^6.0.454",
18
- "occam-furtle": "^2.0.273",
19
- "occam-grammars": "^1.3.427",
15
+ "occam-custom-grammars": "^5.0.1335",
16
+ "occam-entities": "^1.0.440",
17
+ "occam-file-system": "^6.0.455",
18
+ "occam-furtle": "^2.0.274",
19
+ "occam-grammars": "^1.3.429",
20
20
  "occam-lexers": "^23.1.32",
21
21
  "occam-parsers": "^23.1.35",
22
22
  "occam-query": "^4.1.140"
@@ -25,9 +25,9 @@ import { typesFromJSON,
25
25
  metaLemmasFromNothing,
26
26
  theoremsToTheoremsJSON,
27
27
  variablesToVariablesJSON,
28
- typePrefixesToTypePrefixesJSON,
29
28
  conjecturesToConjecturesJSON,
30
29
  combinatorsToCombinatorsJSON,
30
+ typePrefixesToTypePrefixesJSON,
31
31
  constructorsToConstructorsJSON,
32
32
  metatheoremsToMetatheoremsJSON,
33
33
  metavariablesToMetavariablesJSON } from "../utilities/json";
@@ -1,22 +1,10 @@
1
1
  "use strict";
2
2
 
3
- export default class Assertion {
4
- constructor(context, string, node) {
5
- this.context = context;
6
- this.string = string;
7
- this.node = node;
8
- }
9
-
10
- getContext() {
11
- return this.context;
12
- }
3
+ import Element from "../element";
13
4
 
14
- getString() {
15
- return this.string;
16
- }
17
-
18
- getNode() {
19
- return this.node;
5
+ export default class Assertion extends Element {
6
+ constructor(context, string, node) {
7
+ super(context, string, node);
20
8
  }
21
9
 
22
10
  matchAssertionNode(assertionNode) { return this.node.match(assertionNode); }
@@ -1,27 +1,20 @@
1
1
  "use strict";
2
2
 
3
+ import Element from "../element";
3
4
  import elements from "../elements";
4
5
 
5
6
  import { define } from "../elements";
6
7
  import { unifyStatementIntrinsically } from "../process/unify";
7
8
  import { referenceFromJSON, referenceToReferenceJSON } from "../utilities/json";
8
9
 
9
- export default define(class Assumption {
10
- constructor(string, node, statement, reference) {
11
- this.string = string;
12
- this.node = node;
10
+ export default define(class Assumption extends Element {
11
+ constructor(context, string, node, statement, reference) {
12
+ super(context, string, node);
13
+
13
14
  this.statement = statement;
14
15
  this.reference = reference;
15
16
  }
16
17
 
17
- getString() {
18
- return this.string;
19
- }
20
-
21
- getNode() {
22
- return this.node;
23
- }
24
-
25
18
  getStatement() {
26
19
  return this.statement;
27
20
  }
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
+ import Element from "../element";
5
6
  import elements from "../elements";
6
7
  import LocalContext from "../context/local";
7
8
 
@@ -18,11 +19,10 @@ import { labelsFromJSON,
18
19
 
19
20
  const { extract, reverse, correlate, backwardsEvery } = arrayUtilities;
20
21
 
21
- export default class AxiomLemmaTheoremConjecture {
22
+ export default class AxiomLemmaTheoremConjecture extends Element {
22
23
  constructor(context, string, node, labels, suppositions, deduction, proof, signature, hypotheses) {
23
- this.context = context;
24
- this.string = string;
25
- this.node = node;
24
+ super(context, string, node);
25
+
26
26
  this.labels = labels;
27
27
  this.suppositions = suppositions;
28
28
  this.deduction = deduction;
@@ -31,18 +31,6 @@ export default class AxiomLemmaTheoremConjecture {
31
31
  this.hypotheses = hypotheses;
32
32
  }
33
33
 
34
- getContext() {
35
- return this.context;
36
- }
37
-
38
- getNode() {
39
- return this.node;
40
- }
41
-
42
- getString() {
43
- return this.string;
44
- }
45
-
46
34
  getLabels() {
47
35
  return this.labels;
48
36
  }
@@ -1,28 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ import Element from "../element";
3
4
  import TemporaryContext from "../context/temporary";
4
5
 
5
6
  import { define } from "../elements";
6
7
  import { termsFromJSON, framesFromJSON, statementFromJSON, termsToTermsJSON, framesToFramesJSON, statementToStatementJSON } from "../utilities/json";
7
8
 
8
- export default define(class Conclusion {
9
+ export default define(class Conclusion extends Element {
9
10
  constructor(context, string, node, statement) {
10
- this.context = context;
11
- this.string = string;
12
- this.node = node;
13
- this.statement = statement;
14
- }
15
-
16
- getContext() {
17
- return this.context;
18
- }
11
+ super(context, string, node);
19
12
 
20
- getNode() {
21
- return this.node;
22
- }
23
-
24
- getString() {
25
- return this.string;
13
+ this.statement = statement;
26
14
  }
27
15
 
28
16
  getStatement() {
@@ -1,21 +1,9 @@
1
1
  "use strict";
2
2
 
3
- export default class Declaration {
4
- constructor(context, string, node) {
5
- this.context = context;
6
- this.string = string;
7
- this.node = node;
8
- }
9
-
10
- getContext() {
11
- return this.context;
12
- }
3
+ import Element from "../element";
13
4
 
14
- getString() {
15
- return this.string;
16
- }
17
-
18
- getNode() {
19
- return this.node;
5
+ export default class Declaration extends Element {
6
+ constructor(context, string, node) {
7
+ super(context, string, node);
20
8
  }
21
9
  }
@@ -1,30 +1,16 @@
1
1
  "use strict";
2
2
 
3
- import elements from "../elements";
3
+ import Element from "../element";
4
4
  import TemporaryContext from "../context/temporary";
5
5
 
6
6
  import { define } from "../elements";
7
7
  import { termsFromJSON, framesFromJSON, statementFromJSON, termsToTermsJSON, framesToFramesJSON, statementToStatementJSON } from "../utilities/json";
8
8
 
9
- export default define(class Deduction {
10
- constructor(context, string, statement) {
11
- this.context = context;
12
- this.string = string;
13
- this.node = node;
14
- this.string = string;
15
- this.statement = statement;
16
- }
17
-
18
- getContext() {
19
- return this.context;
20
- }
9
+ export default define(class Deduction extends Element {
10
+ constructor(context, string, node, statement) {
11
+ super(context, string, node);
21
12
 
22
- getString() {
23
- return this.string;
24
- }
25
-
26
- getNode() {
27
- return this.node;
13
+ this.statement = statement;
28
14
  }
29
15
 
30
16
  getStatement() {
@@ -2,14 +2,17 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
+ import Element from "../element";
5
6
  import assignAssignments from "../process/assign";
6
7
 
7
8
  import { define } from "../elements";
8
9
 
9
10
  const { last } = arrayUtilities;
10
11
 
11
- export default define(class Derivation {
12
- constructor(stepsOrSubproofs) {
12
+ export default define(class Derivation extends Element {
13
+ constructor(context, string, node, stepsOrSubproofs) {
14
+ super(context, string, node);
15
+
13
16
  this.stepsOrSubproofs = stepsOrSubproofs;
14
17
  }
15
18
 
@@ -1,32 +1,20 @@
1
1
  "use strict";
2
2
 
3
+ import Element from "../element";
3
4
  import elements from "../elements";
4
5
 
5
6
  import { define } from "../elements";
6
7
  import { equateTerms } from "../process/equate";
7
8
  import { equalityAssignmentFromEquality, variableAssignmentFromVariable } from "../process/assign";
8
9
 
9
- export default define(class Equality {
10
+ export default define(class Equality extends Element {
10
11
  constructor(context, string, node, leftTerm, rightTerm) {
11
- this.context = context;
12
- this.string = string;
13
- this.node = node;
12
+ super(context, string, node);
13
+
14
14
  this.leftTerm = leftTerm;
15
15
  this.rightTerm = rightTerm;
16
16
  }
17
17
 
18
- getContext() {
19
- return this.context;
20
- }
21
-
22
- getString() {
23
- return this.string;
24
- }
25
-
26
- getNode() {
27
- return this.node;
28
- }
29
-
30
18
  getLeftTerm() {
31
19
  return this.leftTerm;
32
20
  }