occam-verify-cli 0.0.470 → 0.0.471

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 (45) hide show
  1. package/lib/context/file.js +9 -9
  2. package/lib/context/metaproof.js +30 -31
  3. package/lib/context/proof.js +27 -28
  4. package/lib/metaSubstitution.js +4 -4
  5. package/lib/rule.js +15 -19
  6. package/lib/step/metaproof.js +114 -0
  7. package/lib/step/proof.js +68 -0
  8. package/lib/utilities/array.js +2 -5
  9. package/lib/utilities/metaAssertion.js +117 -0
  10. package/lib/utilities/node.js +52 -0
  11. package/lib/verify/antecedent.js +4 -4
  12. package/lib/verify/derivation.js +13 -13
  13. package/lib/verify/equality.js +18 -5
  14. package/lib/verify/metaDerivation.js +13 -13
  15. package/lib/verify/metaproof.js +13 -51
  16. package/lib/verify/metastatement/unqualified.js +2 -3
  17. package/lib/verify/premiseOrPremises.js +4 -4
  18. package/lib/verify/proof.js +14 -52
  19. package/lib/verify/statement/unqualified.js +2 -3
  20. package/package.json +1 -1
  21. package/src/context/file.js +6 -6
  22. package/src/context/metaproof.js +28 -31
  23. package/src/context/proof.js +25 -28
  24. package/src/metaSubstitution.js +1 -1
  25. package/src/rule.js +19 -26
  26. package/src/step/metaproof.js +100 -0
  27. package/src/step/proof.js +30 -0
  28. package/src/utilities/array.js +1 -1
  29. package/src/utilities/metaAssertion.js +176 -0
  30. package/src/utilities/node.js +72 -0
  31. package/src/verify/antecedent.js +3 -3
  32. package/src/verify/derivation.js +14 -10
  33. package/src/verify/equality.js +29 -11
  34. package/src/verify/metaDerivation.js +14 -10
  35. package/src/verify/metaproof.js +26 -91
  36. package/src/verify/metastatement/unqualified.js +1 -3
  37. package/src/verify/premiseOrPremises.js +3 -3
  38. package/src/verify/proof.js +27 -92
  39. package/src/verify/statement/unqualified.js +1 -4
  40. package/lib/assertion.js +0 -147
  41. package/lib/metaAssertion.js +0 -200
  42. package/lib/utilities/metastatement.js +0 -45
  43. package/src/assertion.js +0 -150
  44. package/src/metaAssertion.js +0 -245
  45. package/src/utilities/metastatement.js +0 -50
package/lib/rule.js CHANGED
@@ -85,9 +85,14 @@ var Rule = /*#__PURE__*/ function() {
85
85
  var metaSubstitutions = [], conclusionMatches = matchConclusion(this.conclusion, metastatementNode, metaSubstitutions);
86
86
  metastatementNatches = conclusionMatches; ///
87
87
  } else {
88
- var metaAssertions = metaproofContext.getMetaAssertions();
89
- metastatementNatches = (0, _array.someSubArray)(metaAssertions, premisesLength, function(metaAssertions) {
90
- var premisesMatchConclusion = matchPremisesAndConclusion(_this.premises, _this.conclusion, metaAssertions, metastatementNode);
88
+ var metaproofSteps = metaproofContext.getMetaproofSteps();
89
+ metastatementNatches = (0, _array.someSubArray)(metaproofSteps, premisesLength, function(metaproofSteps) {
90
+ var premisesMatchConclusion = false;
91
+ var metaSubstitutions = [], premisesMatches = matchPremises(_this.premises, metaproofSteps, metaSubstitutions);
92
+ if (premisesMatches) {
93
+ var conclusionMatches = matchConclusion(_this.conclusion, metastatementNode, metaSubstitutions);
94
+ premisesMatchConclusion = conclusionMatches; ///
95
+ }
91
96
  if (premisesMatchConclusion) {
92
97
  return true;
93
98
  }
@@ -149,9 +154,9 @@ var Rule = /*#__PURE__*/ function() {
149
154
  ]);
150
155
  return Rule;
151
156
  }();
152
- function matchPremise(premise, metaAssertions, metaSubstitutions) {
153
- var metaAssertion = (0, _array.prune)(metaAssertions, function(metaAssertion) {
154
- var metaSubproofNode = metaAssertion.getMetaSubproofNode(), metastatementNode = metaAssertion.getMetastatementNode();
157
+ function matchPremise(premise, metaproofSteps, metaSubstitutions) {
158
+ var metaproofStep = (0, _array.prune)(metaproofSteps, function(metaproofStep) {
159
+ var metaSubproofNode = metaproofStep.getMetaSubproofNode(), metastatementNode = metaproofStep.getMetastatementNode();
155
160
  if (metaSubproofNode !== null) {
156
161
  var metaSubProofMatches = premise.matchMetaSubproofNode(metaSubproofNode, metaSubstitutions);
157
162
  if (!metaSubProofMatches) {
@@ -165,12 +170,12 @@ function matchPremise(premise, metaAssertions, metaSubstitutions) {
165
170
  }
166
171
  }
167
172
  }) || null;
168
- var premiseMatches = metaAssertion !== null;
173
+ var premiseMatches = metaproofStep !== null;
169
174
  return premiseMatches;
170
175
  }
171
- function matchPremises(premise, metaAssertions, metaSubstitutions) {
176
+ function matchPremises(premise, metaproofSteps, metaSubstitutions) {
172
177
  var premisesMatches = premise.every(function(premise) {
173
- var premiseMatches = matchPremise(premise, metaAssertions, metaSubstitutions);
178
+ var premiseMatches = matchPremise(premise, metaproofSteps, metaSubstitutions);
174
179
  if (premiseMatches) {
175
180
  return true;
176
181
  }
@@ -181,14 +186,5 @@ function matchConclusion(conclusion, metastatementNode, metaSubstitutions) {
181
186
  var nonTerminalNodeMatches = conclusion.matchMetastatementNode(metastatementNode, metaSubstitutions), conclusionMatches = nonTerminalNodeMatches; ///
182
187
  return conclusionMatches;
183
188
  }
184
- function matchPremisesAndConclusion(premises, conclusion, metaAssertions, metastatementNode) {
185
- var premisesMatchConclusion = false;
186
- var metaSubstitutions = [], premisesMatches = matchPremises(premises, metaAssertions, metaSubstitutions);
187
- if (premisesMatches) {
188
- var conclusionMatches = matchConclusion(conclusion, metastatementNode, metaSubstitutions);
189
- premisesMatchConclusion = conclusionMatches; ///
190
- }
191
- return premisesMatchConclusion;
192
- }
193
189
 
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vbGFiZWxcIjtcbmltcG9ydCBQcmVtaXNlIGZyb20gXCIuL3ByZW1pc2VcIjtcbmltcG9ydCBDb25jbHVzaW9uIGZyb20gXCIuL2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgcHJ1bmUgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IFJVTEVfS0lORCB9IGZyb20gXCIuL2tpbmRzXCI7XG5pbXBvcnQgeyBzb21lU3ViQXJyYXkgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUnVsZSB7XG4gIGNvbnN0cnVjdG9yKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24pIHtcbiAgICB0aGlzLmxhYmVscyA9IGxhYmVscztcbiAgICB0aGlzLnByZW1pc2VzID0gcHJlbWlzZXM7XG4gICAgdGhpcy5jb25jbHVzaW9uID0gY29uY2x1c2lvbjtcbiAgfVxuXG4gIGdldExhYmVscygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHM7XG4gIH1cblxuICBnZXRQcmVtaXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVtaXNlcztcbiAgfVxuXG4gIGdldENvbmNsdXNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uY2x1c2lvbjtcbiAgfVxuXG4gIG1hdGNoTGFiZWxOYW1lKGxhYmVsTmFtZSkge1xuICAgIGNvbnN0IG1hdGNoZXNMYWJlbE5hbWUgPSB0aGlzLmxhYmVscy5zb21lKChsYWJlbCkgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IGxhYmVsTmFtZSwgLy8vXG4gICAgICAgICAgICBsYWJlbE1hdGNoZXNOYW1lID0gbGFiZWwubWF0Y2hOYW1lKG5hbWUpO1xuXG4gICAgICBpZiAobGFiZWxNYXRjaGVzTmFtZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtYXRjaGVzTGFiZWxOYW1lO1xuICB9XG5cbiAgbWF0Y2hNZXRhc3RhdGVtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhcHJvb2ZDb250ZXh0KSB7XG4gICAgbGV0IG1ldGFzdGF0ZW1lbnROYXRjaGVzO1xuXG4gICAgY29uc3QgcHJlbWlzZXNMZW5ndGggPSB0aGlzLnByZW1pc2VzLmxlbmd0aDtcblxuICAgIGlmIChwcmVtaXNlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbnMgPSBbXSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25NYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uKHRoaXMuY29uY2x1c2lvbiwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgbWV0YXN0YXRlbWVudE5hdGNoZXMgPSBjb25jbHVzaW9uTWF0Y2hlczsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1ldGFBc3NlcnRpb25zID0gbWV0YXByb29mQ29udGV4dC5nZXRNZXRhQXNzZXJ0aW9ucygpO1xuXG4gICAgICBtZXRhc3RhdGVtZW50TmF0Y2hlcyA9IHNvbWVTdWJBcnJheShtZXRhQXNzZXJ0aW9ucywgcHJlbWlzZXNMZW5ndGgsIChtZXRhQXNzZXJ0aW9ucykgPT4ge1xuICAgICAgICBjb25zdCBwcmVtaXNlc01hdGNoQ29uY2x1c2lvbiA9IG1hdGNoUHJlbWlzZXNBbmRDb25jbHVzaW9uKHRoaXMucHJlbWlzZXMsIHRoaXMuY29uY2x1c2lvbiwgbWV0YUFzc2VydGlvbnMsIG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBpZiAocHJlbWlzZXNNYXRjaENvbmNsdXNpb24pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGFzdGF0ZW1lbnROYXRjaGVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGxhYmVsc0pTT04gPSB0aGlzLmxhYmVscy5tYXAoKGxhYmVsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbEpTT04gPSBsYWJlbC50b0pTT04oKTtcblxuICAgICAgICAgICAgcmV0dXJuIGxhYmVsSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBwcmVtaXNlc0pTT04gPSB0aGlzLnByZW1pc2VzLm1hcCgocHJlbWlzZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJlbWlzZUpTT04gPSBwcmVtaXNlLnRvSlNPTigpO1xuXG4gICAgICAgICAgICByZXR1cm4gcHJlbWlzZUpTT047XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY29uY2x1c2lvbkpTT04gPSB0aGlzLmNvbmNsdXNpb24udG9KU09OKCksXG4gICAgICAgICAga2luZCA9IFJVTEVfS0lORCxcbiAgICAgICAgICBsYWJlbHMgPSBsYWJlbHNKU09OLCAgLy8vXG4gICAgICAgICAgcHJlbWlzZXMgPSBwcmVtaXNlc0pTT04sICAvLy9cbiAgICAgICAgICBjb25jbHVzaW9uID0gY29uY2x1c2lvbkpTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgIGxhYmVscyxcbiAgICAgICAgICAgIHByZW1pc2VzLFxuICAgICAgICAgICAgY29uY2x1c2lvblxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCByZWxlYXNlQ29udGV4dCkge1xuICAgIGxldCBydWxlO1xuXG4gICAgbGV0IHsgbGFiZWxzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IGxhYmVsczsgIC8vL1xuXG4gICAgbGFiZWxzID0gbGFiZWxzSlNPTi5tYXAoKGxhYmVsSlNPTikgPT4ge1xuICAgICAgY29uc3QganNvbiA9IGxhYmVsSlNPTiwgLy8vXG4gICAgICAgICAgICBsYWJlbCA9IExhYmVsLmZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGxhYmVsO1xuICAgIH0pO1xuXG4gICAgbGV0IHsgcHJlbWlzZXMgfSA9IGpzb247XG5cbiAgICBjb25zdCBwcmVtaXNlc0pTT04gPSBwcmVtaXNlczsgIC8vL1xuXG4gICAgcHJlbWlzZXMgPSBwcmVtaXNlc0pTT04ubWFwKChwcmVtaXNlSlNPTikgPT4ge1xuICAgICAgY29uc3QganNvbiA9IHByZW1pc2VKU09OLCAvLy9cbiAgICAgICAgICAgIHByZW1pc2UgPSBQcmVtaXNlLmZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHByZW1pc2U7XG4gICAgfSk7XG5cbiAgICBsZXQgeyBjb25jbHVzaW9uIH0gPSBqc29uO1xuXG4gICAgY29uc3QgY29uY2x1c2lvbkpTT04gPSBjb25jbHVzaW9uOyAgLy8vXG5cbiAgICBqc29uID0gY29uY2x1c2lvbkpTT047ICAvLy9cblxuICAgIGNvbmNsdXNpb24gPSBDb25jbHVzaW9uLmZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KTtcblxuICAgIHJ1bGUgPSBuZXcgUnVsZShsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uKTtcblxuICAgIHJldHVybiBydWxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21MYWJlbHNQcmVtaXNlc0FuZENvbmNsdXNpb24obGFiZWxzLCBwcmVtaXNlcywgY29uY2x1c2lvbikge1xuICAgIGNvbnN0IHJ1bGUgPSBuZXcgUnVsZShsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uKTtcblxuICAgIHJldHVybiBydWxlO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJlbWlzZShwcmVtaXNlLCBtZXRhQXNzZXJ0aW9ucywgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3QgbWV0YUFzc2VydGlvbiA9IHBydW5lKG1ldGFBc3NlcnRpb25zLCAobWV0YUFzc2VydGlvbikgPT4ge1xuICAgIGNvbnN0IG1ldGFTdWJwcm9vZk5vZGUgPSBtZXRhQXNzZXJ0aW9uLmdldE1ldGFTdWJwcm9vZk5vZGUoKSxcbiAgICAgICAgICBtZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFBc3NlcnRpb24uZ2V0TWV0YXN0YXRlbWVudE5vZGUoKVxuXG4gICAgaWYgKG1ldGFTdWJwcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFTdWJQcm9vZk1hdGNoZXMgPSBwcmVtaXNlLm1hdGNoTWV0YVN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGlmICghbWV0YVN1YlByb29mTWF0Y2hlcykgeyAgLy8vXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtZXRhc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE1hdGNoZXMgPSBwcmVtaXNlLm1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgaWYgKCFtZXRhc3RhdGVtZW50TWF0Y2hlcykgeyAgLy8vXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICB9KSB8fCBudWxsO1xuXG4gIGNvbnN0IHByZW1pc2VNYXRjaGVzID0gKG1ldGFBc3NlcnRpb24gIT09IG51bGwpO1xuXG4gIHJldHVybiBwcmVtaXNlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlcyhwcmVtaXNlLCBtZXRhQXNzZXJ0aW9ucywgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3QgcHJlbWlzZXNNYXRjaGVzID0gcHJlbWlzZS5ldmVyeSgocHJlbWlzZSkgPT4ge1xuICAgIGNvbnN0IHByZW1pc2VNYXRjaGVzID0gbWF0Y2hQcmVtaXNlKHByZW1pc2UsIG1ldGFBc3NlcnRpb25zLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICBpZiAocHJlbWlzZU1hdGNoZXMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHByZW1pc2VzTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hDb25jbHVzaW9uKGNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbi5tYXRjaE1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyksXG4gICAgICAgIGNvbmNsdXNpb25NYXRjaGVzID0gbm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIGNvbmNsdXNpb25NYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VzQW5kQ29uY2x1c2lvbihwcmVtaXNlcywgY29uY2x1c2lvbiwgbWV0YUFzc2VydGlvbnMsIG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gIGxldCBwcmVtaXNlc01hdGNoQ29uY2x1c2lvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGFTdWJzdGl0dXRpb25zID0gW10sXG4gICAgICAgIHByZW1pc2VzTWF0Y2hlcyA9IG1hdGNoUHJlbWlzZXMocHJlbWlzZXMsIG1ldGFBc3NlcnRpb25zLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgaWYgKHByZW1pc2VzTWF0Y2hlcykge1xuICAgIGNvbnN0IGNvbmNsdXNpb25NYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uKGNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICBwcmVtaXNlc01hdGNoQ29uY2x1c2lvbiA9IGNvbmNsdXNpb25NYXRjaGVzOyAgLy8vXG4gIH1cblxuICByZXR1cm4gcHJlbWlzZXNNYXRjaENvbmNsdXNpb247XG59XG4iXSwibmFtZXMiOlsiUnVsZSIsImxhYmVscyIsInByZW1pc2VzIiwiY29uY2x1c2lvbiIsImdldExhYmVscyIsImdldFByZW1pc2VzIiwiZ2V0Q29uY2x1c2lvbiIsIm1hdGNoTGFiZWxOYW1lIiwibGFiZWxOYW1lIiwibWF0Y2hlc0xhYmVsTmFtZSIsInNvbWUiLCJsYWJlbCIsIm5hbWUiLCJsYWJlbE1hdGNoZXNOYW1lIiwibWF0Y2hOYW1lIiwibWF0Y2hNZXRhc3RhdGVtZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhcHJvb2ZDb250ZXh0IiwibWV0YXN0YXRlbWVudE5hdGNoZXMiLCJwcmVtaXNlc0xlbmd0aCIsImxlbmd0aCIsIm1ldGFTdWJzdGl0dXRpb25zIiwiY29uY2x1c2lvbk1hdGNoZXMiLCJtYXRjaENvbmNsdXNpb24iLCJtZXRhQXNzZXJ0aW9ucyIsImdldE1ldGFBc3NlcnRpb25zIiwic29tZVN1YkFycmF5IiwicHJlbWlzZXNNYXRjaENvbmNsdXNpb24iLCJtYXRjaFByZW1pc2VzQW5kQ29uY2x1c2lvbiIsInRvSlNPTiIsImxhYmVsc0pTT04iLCJtYXAiLCJsYWJlbEpTT04iLCJwcmVtaXNlc0pTT04iLCJwcmVtaXNlIiwicHJlbWlzZUpTT04iLCJjb25jbHVzaW9uSlNPTiIsImtpbmQiLCJSVUxFX0tJTkQiLCJqc29uIiwiZnJvbUpTT04iLCJyZWxlYXNlQ29udGV4dCIsInJ1bGUiLCJMYWJlbCIsIlByZW1pc2UiLCJDb25jbHVzaW9uIiwiZnJvbUxhYmVsc1ByZW1pc2VzQW5kQ29uY2x1c2lvbiIsIm1hdGNoUHJlbWlzZSIsIm1ldGFBc3NlcnRpb24iLCJwcnVuZSIsIm1ldGFTdWJwcm9vZk5vZGUiLCJnZXRNZXRhU3VicHJvb2ZOb2RlIiwiZ2V0TWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhU3ViUHJvb2ZNYXRjaGVzIiwibWF0Y2hNZXRhU3VicHJvb2ZOb2RlIiwibWV0YXN0YXRlbWVudE1hdGNoZXMiLCJtYXRjaE1ldGFzdGF0ZW1lbnROb2RlIiwicHJlbWlzZU1hdGNoZXMiLCJtYXRjaFByZW1pc2VzIiwicHJlbWlzZXNNYXRjaGVzIiwiZXZlcnki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
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vbGFiZWxcIjtcbmltcG9ydCBQcmVtaXNlIGZyb20gXCIuL3ByZW1pc2VcIjtcbmltcG9ydCBDb25jbHVzaW9uIGZyb20gXCIuL2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgcHJ1bmUgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IFJVTEVfS0lORCB9IGZyb20gXCIuL2tpbmRzXCI7XG5pbXBvcnQgeyBzb21lU3ViQXJyYXkgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUnVsZSB7XG4gIGNvbnN0cnVjdG9yKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24pIHtcbiAgICB0aGlzLmxhYmVscyA9IGxhYmVscztcbiAgICB0aGlzLnByZW1pc2VzID0gcHJlbWlzZXM7XG4gICAgdGhpcy5jb25jbHVzaW9uID0gY29uY2x1c2lvbjtcbiAgfVxuXG4gIGdldExhYmVscygpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbHM7XG4gIH1cblxuICBnZXRQcmVtaXNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcmVtaXNlcztcbiAgfVxuXG4gIGdldENvbmNsdXNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uY2x1c2lvbjtcbiAgfVxuXG4gIG1hdGNoTGFiZWxOYW1lKGxhYmVsTmFtZSkge1xuICAgIGNvbnN0IG1hdGNoZXNMYWJlbE5hbWUgPSB0aGlzLmxhYmVscy5zb21lKChsYWJlbCkgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IGxhYmVsTmFtZSwgLy8vXG4gICAgICAgICAgICBsYWJlbE1hdGNoZXNOYW1lID0gbGFiZWwubWF0Y2hOYW1lKG5hbWUpO1xuXG4gICAgICBpZiAobGFiZWxNYXRjaGVzTmFtZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtYXRjaGVzTGFiZWxOYW1lO1xuICB9XG5cbiAgbWF0Y2hNZXRhc3RhdGVtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhcHJvb2ZDb250ZXh0KSB7XG4gICAgbGV0IG1ldGFzdGF0ZW1lbnROYXRjaGVzO1xuXG4gICAgY29uc3QgcHJlbWlzZXNMZW5ndGggPSB0aGlzLnByZW1pc2VzLmxlbmd0aDtcblxuICAgIGlmIChwcmVtaXNlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbnMgPSBbXSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25NYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uKHRoaXMuY29uY2x1c2lvbiwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgbWV0YXN0YXRlbWVudE5hdGNoZXMgPSBjb25jbHVzaW9uTWF0Y2hlczsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1ldGFwcm9vZlN0ZXBzID0gbWV0YXByb29mQ29udGV4dC5nZXRNZXRhcHJvb2ZTdGVwcygpO1xuXG4gICAgICBtZXRhc3RhdGVtZW50TmF0Y2hlcyA9IHNvbWVTdWJBcnJheShtZXRhcHJvb2ZTdGVwcywgcHJlbWlzZXNMZW5ndGgsIChtZXRhcHJvb2ZTdGVwcykgPT4ge1xuICAgICAgICBsZXQgcHJlbWlzZXNNYXRjaENvbmNsdXNpb24gPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBtZXRhU3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgICAgICBwcmVtaXNlc01hdGNoZXMgPSBtYXRjaFByZW1pc2VzKHRoaXMucHJlbWlzZXMsIG1ldGFwcm9vZlN0ZXBzLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgaWYgKHByZW1pc2VzTWF0Y2hlcykge1xuICAgICAgICAgIGNvbnN0IGNvbmNsdXNpb25NYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uKHRoaXMuY29uY2x1c2lvbiwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgICAgIHByZW1pc2VzTWF0Y2hDb25jbHVzaW9uID0gY29uY2x1c2lvbk1hdGNoZXM7ICAvLy9cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcmVtaXNlc01hdGNoQ29uY2x1c2lvbikge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXN0YXRlbWVudE5hdGNoZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IHRoaXMubGFiZWxzLm1hcCgobGFiZWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsSlNPTiA9IGxhYmVsLnRvSlNPTigpO1xuXG4gICAgICAgICAgICByZXR1cm4gbGFiZWxKU09OO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHByZW1pc2VzSlNPTiA9IHRoaXMucHJlbWlzZXMubWFwKChwcmVtaXNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcmVtaXNlSlNPTiA9IHByZW1pc2UudG9KU09OKCk7XG5cbiAgICAgICAgICAgIHJldHVybiBwcmVtaXNlSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjb25jbHVzaW9uSlNPTiA9IHRoaXMuY29uY2x1c2lvbi50b0pTT04oKSxcbiAgICAgICAgICBraW5kID0gUlVMRV9LSU5ELFxuICAgICAgICAgIGxhYmVscyA9IGxhYmVsc0pTT04sICAvLy9cbiAgICAgICAgICBwcmVtaXNlcyA9IHByZW1pc2VzSlNPTiwgIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb24gPSBjb25jbHVzaW9uSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgbGFiZWxzLFxuICAgICAgICAgICAgcHJlbWlzZXMsXG4gICAgICAgICAgICBjb25jbHVzaW9uXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KSB7XG4gICAgbGV0IHJ1bGU7XG5cbiAgICBsZXQgeyBsYWJlbHMgfSA9IGpzb247XG5cbiAgICBjb25zdCBsYWJlbHNKU09OID0gbGFiZWxzOyAgLy8vXG5cbiAgICBsYWJlbHMgPSBsYWJlbHNKU09OLm1hcCgobGFiZWxKU09OKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gbGFiZWxKU09OLCAvLy9cbiAgICAgICAgICAgIGxhYmVsID0gTGFiZWwuZnJvbUpTT04oanNvbiwgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gbGFiZWw7XG4gICAgfSk7XG5cbiAgICBsZXQgeyBwcmVtaXNlcyB9ID0ganNvbjtcblxuICAgIGNvbnN0IHByZW1pc2VzSlNPTiA9IHByZW1pc2VzOyAgLy8vXG5cbiAgICBwcmVtaXNlcyA9IHByZW1pc2VzSlNPTi5tYXAoKHByZW1pc2VKU09OKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gcHJlbWlzZUpTT04sIC8vL1xuICAgICAgICAgICAgcHJlbWlzZSA9IFByZW1pc2UuZnJvbUpTT04oanNvbiwgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gcHJlbWlzZTtcbiAgICB9KTtcblxuICAgIGxldCB7IGNvbmNsdXNpb24gfSA9IGpzb247XG5cbiAgICBjb25zdCBjb25jbHVzaW9uSlNPTiA9IGNvbmNsdXNpb247ICAvLy9cblxuICAgIGpzb24gPSBjb25jbHVzaW9uSlNPTjsgIC8vL1xuXG4gICAgY29uY2x1c2lvbiA9IENvbmNsdXNpb24uZnJvbUpTT04oanNvbiwgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgcnVsZSA9IG5ldyBSdWxlKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24pO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUxhYmVsc1ByZW1pc2VzQW5kQ29uY2x1c2lvbihsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uKSB7XG4gICAgY29uc3QgcnVsZSA9IG5ldyBSdWxlKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24pO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlKHByZW1pc2UsIG1ldGFwcm9vZlN0ZXBzLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBtZXRhcHJvb2ZTdGVwID0gcHJ1bmUobWV0YXByb29mU3RlcHMsIChtZXRhcHJvb2ZTdGVwKSA9PiB7XG4gICAgY29uc3QgbWV0YVN1YnByb29mTm9kZSA9IG1ldGFwcm9vZlN0ZXAuZ2V0TWV0YVN1YnByb29mTm9kZSgpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXByb29mU3RlcC5nZXRNZXRhc3RhdGVtZW50Tm9kZSgpXG5cbiAgICBpZiAobWV0YVN1YnByb29mTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgbWV0YVN1YlByb29mTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hNZXRhU3VicHJvb2ZOb2RlKG1ldGFTdWJwcm9vZk5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgaWYgKCFtZXRhU3ViUHJvb2ZNYXRjaGVzKSB7ICAvLy9cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1ldGFzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhc3RhdGVtZW50TWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hNZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBpZiAoIW1ldGFzdGF0ZW1lbnRNYXRjaGVzKSB7ICAvLy9cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9KSB8fCBudWxsO1xuXG4gIGNvbnN0IHByZW1pc2VNYXRjaGVzID0gKG1ldGFwcm9vZlN0ZXAgIT09IG51bGwpO1xuXG4gIHJldHVybiBwcmVtaXNlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlcyhwcmVtaXNlLCBtZXRhcHJvb2ZTdGVwcywgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3QgcHJlbWlzZXNNYXRjaGVzID0gcHJlbWlzZS5ldmVyeSgocHJlbWlzZSkgPT4ge1xuICAgIGNvbnN0IHByZW1pc2VNYXRjaGVzID0gbWF0Y2hQcmVtaXNlKHByZW1pc2UsIG1ldGFwcm9vZlN0ZXBzLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICBpZiAocHJlbWlzZU1hdGNoZXMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHByZW1pc2VzTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hDb25jbHVzaW9uKGNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbi5tYXRjaE1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyksXG4gICAgICAgIGNvbmNsdXNpb25NYXRjaGVzID0gbm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIGNvbmNsdXNpb25NYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbIlJ1bGUiLCJsYWJlbHMiLCJwcmVtaXNlcyIsImNvbmNsdXNpb24iLCJnZXRMYWJlbHMiLCJnZXRQcmVtaXNlcyIsImdldENvbmNsdXNpb24iLCJtYXRjaExhYmVsTmFtZSIsImxhYmVsTmFtZSIsIm1hdGNoZXNMYWJlbE5hbWUiLCJzb21lIiwibGFiZWwiLCJuYW1lIiwibGFiZWxNYXRjaGVzTmFtZSIsIm1hdGNoTmFtZSIsIm1hdGNoTWV0YXN0YXRlbWVudCIsIm1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YXByb29mQ29udGV4dCIsIm1ldGFzdGF0ZW1lbnROYXRjaGVzIiwicHJlbWlzZXNMZW5ndGgiLCJsZW5ndGgiLCJtZXRhU3Vic3RpdHV0aW9ucyIsImNvbmNsdXNpb25NYXRjaGVzIiwibWF0Y2hDb25jbHVzaW9uIiwibWV0YXByb29mU3RlcHMiLCJnZXRNZXRhcHJvb2ZTdGVwcyIsInNvbWVTdWJBcnJheSIsInByZW1pc2VzTWF0Y2hDb25jbHVzaW9uIiwicHJlbWlzZXNNYXRjaGVzIiwibWF0Y2hQcmVtaXNlcyIsInRvSlNPTiIsImxhYmVsc0pTT04iLCJtYXAiLCJsYWJlbEpTT04iLCJwcmVtaXNlc0pTT04iLCJwcmVtaXNlIiwicHJlbWlzZUpTT04iLCJjb25jbHVzaW9uSlNPTiIsImtpbmQiLCJSVUxFX0tJTkQiLCJqc29uIiwiZnJvbUpTT04iLCJyZWxlYXNlQ29udGV4dCIsInJ1bGUiLCJMYWJlbCIsIlByZW1pc2UiLCJDb25jbHVzaW9uIiwiZnJvbUxhYmVsc1ByZW1pc2VzQW5kQ29uY2x1c2lvbiIsIm1hdGNoUHJlbWlzZSIsIm1ldGFwcm9vZlN0ZXAiLCJwcnVuZSIsIm1ldGFTdWJwcm9vZk5vZGUiLCJnZXRNZXRhU3VicHJvb2ZOb2RlIiwiZ2V0TWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhU3ViUHJvb2ZNYXRjaGVzIiwibWF0Y2hNZXRhU3VicHJvb2ZOb2RlIiwibWV0YXN0YXRlbWVudE1hdGNoZXMiLCJtYXRjaE1ldGFzdGF0ZW1lbnROb2RlIiwicHJlbWlzZU1hdGNoZXMiLCJldmVyeSIsIm5vblRlcm1pbmFsTm9kZU1hdGNoZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBVXFCQTs7OzBEQVJIOzREQUNFOytEQUNHO3FCQUVEO3FCQUNJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR1gsSUFBQSxBQUFNQSxxQkF5SWxCLEFBeklZO2FBQU1BLEtBQ1BDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxVQUFVOzhCQURyQkg7UUFFakIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElB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
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return MetaproofStep;
9
+ }
10
+ });
11
+ var _array = require("../utilities/array");
12
+ var _query = require("../utilities/query");
13
+ var _metaAssertion = require("../utilities/metaAssertion");
14
+ function _classCallCheck(instance, Constructor) {
15
+ if (!(instance instanceof Constructor)) {
16
+ throw new TypeError("Cannot call a class as a function");
17
+ }
18
+ }
19
+ function _defineProperties(target, props) {
20
+ for(var i = 0; i < props.length; i++){
21
+ var descriptor = props[i];
22
+ descriptor.enumerable = descriptor.enumerable || false;
23
+ descriptor.configurable = true;
24
+ if ("value" in descriptor) descriptor.writable = true;
25
+ Object.defineProperty(target, descriptor.key, descriptor);
26
+ }
27
+ }
28
+ function _createClass(Constructor, protoProps, staticProps) {
29
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
+ if (staticProps) _defineProperties(Constructor, staticProps);
31
+ return Constructor;
32
+ }
33
+ var metastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproofAssertion/metastatement"), metaSubproofAssertionNodeQuery = (0, _query.nodeQuery)("/metastatement/metaSubproofAssertion"), qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproof/qualifiedMetastatement|unqualifiedMetastatement/metastatement!");
34
+ var MetaproofStep = /*#__PURE__*/ function() {
35
+ function MetaproofStep(metaSubproofNode, metastatementNode) {
36
+ _classCallCheck(this, MetaproofStep);
37
+ this.metaSubproofNode = metaSubproofNode;
38
+ this.metastatementNode = metastatementNode;
39
+ }
40
+ _createClass(MetaproofStep, [
41
+ {
42
+ key: "getMetaSubproofNode",
43
+ value: function getMetaSubproofNode() {
44
+ return this.metaSubproofNode;
45
+ }
46
+ },
47
+ {
48
+ key: "getMetastatementNode",
49
+ value: function getMetastatementNode() {
50
+ return this.metastatementNode;
51
+ }
52
+ },
53
+ {
54
+ key: "matchMetastatement",
55
+ value: function matchMetastatement(metastatementNode) {
56
+ var metastatementMatches;
57
+ var metaSubproofAssertionNode = metaSubproofAssertionNodeQuery(metastatementNode);
58
+ if (metaSubproofAssertionNode !== null) {
59
+ var metaSubproofAssertionMatches = this.matchMetaSubproofAssertion(metaSubproofAssertionNode);
60
+ metastatementMatches = metaSubproofAssertionMatches; ///
61
+ } else {
62
+ var metastatementsMatch = this.matchMetastatements(metastatementNode);
63
+ metastatementMatches = metastatementsMatch; //
64
+ }
65
+ return metastatementMatches;
66
+ }
67
+ },
68
+ {
69
+ key: "matchMetastatements",
70
+ value: function matchMetastatements(metastatementNode) {
71
+ var metastatementsMatch = false;
72
+ if (this.metastatementNode !== null) {
73
+ var topmostMetastatementNode = metastatementNode, topmostMetaAssertionMetastatementNode = this.metastatementNode, topmostMetaAssertionMetastatementNodeMatches = (0, _metaAssertion.matchTopmostMetaAssertionMetastatementNode)(topmostMetaAssertionMetastatementNode, topmostMetastatementNode), metastatementNodeMatches = topmostMetaAssertionMetastatementNodeMatches; ///
74
+ return metastatementNodeMatches;
75
+ }
76
+ return metastatementsMatch;
77
+ }
78
+ },
79
+ {
80
+ key: "matchMetaSubproofAssertion",
81
+ value: function matchMetaSubproofAssertion(metaSubproofAssertionNode) {
82
+ var metaSubproofAssertionMatches = false;
83
+ if (this.metaSubproofNode !== null) {
84
+ var metaSubproofAssertionMetastatementNodes = metastatementNodesQuery(metaSubproofAssertionNode), firstMetaSubproofAssertionMetastatementNode = (0, _array.first)(metaSubproofAssertionMetastatementNodes), qualifiedOrUnqualifiedMetastatementMetastatementNodes = qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery(this.metaSubproofNode), firstQualifiedOrUnqualifiedMetastatementMetastatementNode = (0, _array.first)(qualifiedOrUnqualifiedMetastatementMetastatementNodes);
85
+ var topmostMetastatementNode = firstMetaSubproofAssertionMetastatementNode, topmostMetaAssertionMetastatementNode = firstQualifiedOrUnqualifiedMetastatementMetastatementNode, topmostMetaAssertionMetastatementNodeMatches = (0, _metaAssertion.matchTopmostMetaAssertionMetastatementNode)(topmostMetaAssertionMetastatementNode, topmostMetastatementNode);
86
+ if (topmostMetaAssertionMetastatementNodeMatches) {
87
+ var secondMetaSubproofAssertionMetastatementNode = (0, _array.second)(metaSubproofAssertionMetastatementNodes), secondQualifiedOrUnqualifiedMetastatementMetastatementNode = (0, _array.second)(qualifiedOrUnqualifiedMetastatementMetastatementNodes);
88
+ var topmostMetastatementNode1 = secondMetaSubproofAssertionMetastatementNode, topmostMetaAssertionMetastatementNode1 = secondQualifiedOrUnqualifiedMetastatementMetastatementNode, topmostMetaAssertionMetastatementNodeMatches1 = (0, _metaAssertion.matchTopmostMetaAssertionMetastatementNode)(topmostMetaAssertionMetastatementNode1, topmostMetastatementNode1);
89
+ metaSubproofAssertionMatches = topmostMetaAssertionMetastatementNodeMatches1; ///
90
+ }
91
+ }
92
+ return metaSubproofAssertionMatches;
93
+ }
94
+ }
95
+ ], [
96
+ {
97
+ key: "fromMetaSubproofNode",
98
+ value: function fromMetaSubproofNode(metaSubproofNode) {
99
+ var metastatementNode = null, metaProofStep = new MetaproofStep(metaSubproofNode, metastatementNode);
100
+ return metaProofStep;
101
+ }
102
+ },
103
+ {
104
+ key: "fromMetastatementNode",
105
+ value: function fromMetastatementNode(metastatementNode) {
106
+ var metaSubproofNode = null, metaProofStep = new MetaproofStep(metaSubproofNode, metastatementNode);
107
+ return metaProofStep;
108
+ }
109
+ }
110
+ ]);
111
+ return MetaproofStep;
112
+ }();
113
+
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwL21ldGFwcm9vZi5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuaW1wb3J0IHsgbWF0Y2hUb3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9tZXRhQXNzZXJ0aW9uXCI7XG5cbmNvbnN0IG1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9tZXRhU3VicHJvb2ZBc3NlcnRpb24vbWV0YXN0YXRlbWVudFwiKSxcbiAgICAgIG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhc3RhdGVtZW50L21ldGFTdWJwcm9vZkFzc2VydGlvblwiKSxcbiAgICAgIHF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL21ldGFTdWJwcm9vZi9xdWFsaWZpZWRNZXRhc3RhdGVtZW50fHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudC9tZXRhc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWV0YXByb29mU3RlcCB7XG4gIGNvbnN0cnVjdG9yKG1ldGFTdWJwcm9vZk5vZGUsIG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgdGhpcy5tZXRhU3VicHJvb2ZOb2RlID0gbWV0YVN1YnByb29mTm9kZTtcbiAgICB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRNZXRhU3VicHJvb2ZOb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGFTdWJwcm9vZk5vZGU7XG4gIH1cblxuICBnZXRNZXRhc3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudChtZXRhc3RhdGVtZW50Tm9kZSkge1xuICAgIGxldCBtZXRhc3RhdGVtZW50TWF0Y2hlcztcblxuICAgIGNvbnN0IG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUgPSBtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgaWYgKG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFTdWJwcm9vZkFzc2VydGlvbk1hdGNoZXMgPSB0aGlzLm1hdGNoTWV0YVN1YnByb29mQXNzZXJ0aW9uKG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUpO1xuXG4gICAgICBtZXRhc3RhdGVtZW50TWF0Y2hlcyA9IG1ldGFTdWJwcm9vZkFzc2VydGlvbk1hdGNoZXM7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWV0YXN0YXRlbWVudHNNYXRjaCA9IHRoaXMubWF0Y2hNZXRhc3RhdGVtZW50cyhtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIG1ldGFzdGF0ZW1lbnRNYXRjaGVzID0gbWV0YXN0YXRlbWVudHNNYXRjaDsgLy9cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXN0YXRlbWVudE1hdGNoZXM7XG4gIH1cblxuICBtYXRjaE1ldGFzdGF0ZW1lbnRzKG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgbGV0IG1ldGFzdGF0ZW1lbnRzTWF0Y2ggPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLm1ldGFzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0b3Btb3N0TWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICB0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlID0gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgdG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtYXRjaFRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUodG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSwgdG9wbW9zdE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzOyAgLy8vXG5cbiAgICAgIHJldHVybiBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGFzdGF0ZW1lbnRzTWF0Y2g7XG4gIH1cblxuICBtYXRjaE1ldGFTdWJwcm9vZkFzc2VydGlvbihtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlKSB7XG4gICAgbGV0IG1ldGFTdWJwcm9vZkFzc2VydGlvbk1hdGNoZXMgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLm1ldGFTdWJwcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlcyA9IG1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5KG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgICAgZmlyc3RNZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSA9IGZpcnN0KG1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlcyksXG4gICAgICAgICAgICBxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlcyA9IHF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzUXVlcnkodGhpcy5tZXRhU3VicHJvb2ZOb2RlKSxcbiAgICAgICAgICAgIGZpcnN0UXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSA9IGZpcnN0KHF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzKTtcblxuICAgICAgY29uc3QgdG9wbW9zdE1ldGFzdGF0ZW1lbnROb2RlID0gZmlyc3RNZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgdG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSA9IGZpcnN0UXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICB0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoVG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSh0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlLCB0b3Btb3N0TWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgICBpZiAodG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMpIHtcbiAgICAgICAgY29uc3Qgc2Vjb25kTWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUgPSBzZWNvbmQobWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVzKSxcbiAgICAgICAgICAgICAgc2Vjb25kUXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSA9IHNlY29uZChxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlcyk7XG5cbiAgICAgICAgY29uc3QgdG9wbW9zdE1ldGFzdGF0ZW1lbnROb2RlID0gc2Vjb25kTWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgICAgICB0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlID0gc2Vjb25kUXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICAgIHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gbWF0Y2hUb3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlKHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsIHRvcG1vc3RNZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgICAgbWV0YVN1YnByb29mQXNzZXJ0aW9uTWF0Y2hlcyA9IHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YVN1YnByb29mQXNzZXJ0aW9uTWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YVN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIG1ldGFQcm9vZlN0ZXAgPSBuZXcgTWV0YXByb29mU3RlcChtZXRhU3VicHJvb2ZOb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gbWV0YVByb29mU3RlcDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBtZXRhU3VicHJvb2ZOb2RlID0gbnVsbCxcbiAgICAgICAgICBtZXRhUHJvb2ZTdGVwID0gbmV3IE1ldGFwcm9vZlN0ZXAobWV0YVN1YnByb29mTm9kZSwgbWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIG1ldGFQcm9vZlN0ZXA7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiTWV0YXByb29mU3RlcCIsIm1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzUXVlcnkiLCJtZXRhU3VicHJvb2ZOb2RlIiwibWV0YXN0YXRlbWVudE5vZGUiLCJnZXRNZXRhU3VicHJvb2ZOb2RlIiwiZ2V0TWV0YXN0YXRlbWVudE5vZGUiLCJtYXRjaE1ldGFzdGF0ZW1lbnQiLCJtZXRhc3RhdGVtZW50TWF0Y2hlcyIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJtZXRhU3VicHJvb2ZBc3NlcnRpb25NYXRjaGVzIiwibWF0Y2hNZXRhU3VicHJvb2ZBc3NlcnRpb24iLCJtZXRhc3RhdGVtZW50c01hdGNoIiwibWF0Y2hNZXRhc3RhdGVtZW50cyIsInRvcG1vc3RNZXRhc3RhdGVtZW50Tm9kZSIsInRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJ0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoVG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlcyIsImZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJmaXJzdCIsInF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzIiwiZmlyc3RRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlIiwic2Vjb25kTWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJzZWNvbmQiLCJzZWNvbmRRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlIiwiZnJvbU1ldGFTdWJwcm9vZk5vZGUiLCJtZXRhUHJvb2ZTdGVwIiwiZnJvbU1ldGFzdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVdxQkE7OztxQkFUUztxQkFDUTs2QkFFcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTNELElBQU1DLDBCQUEwQkMsSUFBQUEsaUJBQVUsRUFBQyx5Q0FDckNDLGlDQUFpQ0MsSUFBQUEsZ0JBQVMsRUFBQyx5Q0FDM0NDLDZEQUE2REgsSUFBQUEsaUJBQVUsRUFBQztBQUUvRCxJQUFBLEFBQU1GLDhCQUFOO2FBQU1BLGNBQ1BNLGdCQUFnQixFQUFFQyxpQkFBaUI7OEJBRDVCUDtRQUVqQixJQUFJLENBQUNNLGdCQUFnQixHQUFHQTtRQUN4QixJQUFJLENBQUNDLGlCQUFpQixHQUFHQTs7aUJBSFJQOztZQU1uQlEsS0FBQUE7bUJBQUFBLFNBQUFBLHNCQUFzQjtnQkFDcEIsT0FBTyxJQUFJLENBQUNGLGdCQUFnQjtZQUM5Qjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSx1QkFBdUI7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDRixpQkFBaUI7WUFDL0I7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsbUJBQW1CSCxpQkFBaUIsRUFBRTtnQkFDcEMsSUFBSUk7Z0JBRUosSUFBTUMsNEJBQTRCVCwrQkFBK0JJO2dCQUVqRSxJQUFJSyw4QkFBOEIsSUFBSSxFQUFFO29CQUN0QyxJQUFNQywrQkFBK0IsSUFBSSxDQUFDQywwQkFBMEIsQ0FBQ0Y7b0JBRXJFRCx1QkFBdUJFLDhCQUErQixHQUFHO2dCQUMzRCxPQUFPO29CQUNMLElBQU1FLHNCQUFzQixJQUFJLENBQUNDLG1CQUFtQixDQUFDVDtvQkFFckRJLHVCQUF1QkkscUJBQXFCLEVBQUU7Z0JBQ2hELENBQUM7Z0JBRUQsT0FBT0o7WUFDVDs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxvQkFBb0JULGlCQUFpQixFQUFFO2dCQUNyQyxJQUFJUSxzQkFBc0IsS0FBSztnQkFFL0IsSUFBSSxJQUFJLENBQUNSLGlCQUFpQixLQUFLLElBQUksRUFBRTtvQkFDbkMsSUFBTVUsMkJBQTJCVixtQkFDM0JXLHdDQUF3QyxJQUFJLENBQUNYLGlCQUFpQixFQUM5RFksK0NBQStDQyxJQUFBQSx5REFBMEMsRUFBQ0YsdUNBQXVDRCwyQkFDaklJLDJCQUEyQkYsOENBQStDLEdBQUc7b0JBRW5GLE9BQU9FO2dCQUNULENBQUM7Z0JBRUQsT0FBT047WUFDVDs7O1lBRUFELEtBQUFBO21CQUFBQSxTQUFBQSwyQkFBMkJGLHlCQUF5QixFQUFFO2dCQUNwRCxJQUFJQywrQkFBK0IsS0FBSztnQkFFeEMsSUFBSSxJQUFJLENBQUNQLGdCQUFnQixLQUFLLElBQUksRUFBRTtvQkFDbEMsSUFBTWdCLDBDQUEwQ3JCLHdCQUF3QlcsNEJBQ2xFVyw4Q0FBOENDLElBQUFBLFlBQUssRUFBQ0YsMENBQ3BERyx3REFBd0RwQiwyREFBMkQsSUFBSSxDQUFDQyxnQkFBZ0IsR0FDeElvQiw0REFBNERGLElBQUFBLFlBQUssRUFBQ0M7b0JBRXhFLElBQU1SLDJCQUEyQk0sNkNBQzNCTCx3Q0FBd0NRLDJEQUN4Q1AsK0NBQStDQyxJQUFBQSx5REFBMEMsRUFBQ0YsdUNBQXVDRDtvQkFFdkksSUFBSUUsOENBQThDO3dCQUNoRCxJQUFNUSwrQ0FBK0NDLElBQUFBLGFBQU0sRUFBQ04sMENBQ3RETyw2REFBNkRELElBQUFBLGFBQU0sRUFBQ0g7d0JBRTFFLElBQU1SLDRCQUEyQlUsOENBQzNCVCx5Q0FBd0NXLDREQUN4Q1YsZ0RBQStDQyxJQUFBQSx5REFBMEMsRUFBQ0Ysd0NBQXVDRDt3QkFFdklKLCtCQUErQk0sK0NBQThDLEdBQUc7b0JBQ2xGLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxPQUFPTjtZQUNUOzs7O1lBRU9pQixLQUFBQTttQkFBUCxTQUFPQSxxQkFBcUJ4QixnQkFBZ0IsRUFBRTtnQkFDNUMsSUFBTUMsb0JBQW9CLElBQUksRUFDeEJ3QixnQkFBZ0IsSUE3RUwvQixjQTZFdUJNLGtCQUFrQkM7Z0JBRTFELE9BQU93QjtZQUNUOzs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0Esc0JBQXNCekIsaUJBQWlCLEVBQUU7Z0JBQzlDLElBQU1ELG1CQUFtQixJQUFJLEVBQ3ZCeUIsZ0JBQWdCLElBcEZML0IsY0FvRnVCTSxrQkFBa0JDO2dCQUUxRCxPQUFPd0I7WUFDVDs7O1dBdkZtQi9CIn0=
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return ProofStep;
9
+ }
10
+ });
11
+ function _classCallCheck(instance, Constructor) {
12
+ if (!(instance instanceof Constructor)) {
13
+ throw new TypeError("Cannot call a class as a function");
14
+ }
15
+ }
16
+ function _defineProperties(target, props) {
17
+ for(var i = 0; i < props.length; i++){
18
+ var descriptor = props[i];
19
+ descriptor.enumerable = descriptor.enumerable || false;
20
+ descriptor.configurable = true;
21
+ if ("value" in descriptor) descriptor.writable = true;
22
+ Object.defineProperty(target, descriptor.key, descriptor);
23
+ }
24
+ }
25
+ function _createClass(Constructor, protoProps, staticProps) {
26
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27
+ if (staticProps) _defineProperties(Constructor, staticProps);
28
+ return Constructor;
29
+ }
30
+ var ProofStep = /*#__PURE__*/ function() {
31
+ function ProofStep(subproofNode, statementNode) {
32
+ _classCallCheck(this, ProofStep);
33
+ this.subproofNode = subproofNode;
34
+ this.statementNode = statementNode;
35
+ }
36
+ _createClass(ProofStep, [
37
+ {
38
+ key: "getSubproofNode",
39
+ value: function getSubproofNode() {
40
+ return this.subproofNode;
41
+ }
42
+ },
43
+ {
44
+ key: "getStatementNode",
45
+ value: function getStatementNode() {
46
+ return this.statementNode;
47
+ }
48
+ }
49
+ ], [
50
+ {
51
+ key: "fromSubproofNode",
52
+ value: function fromSubproofNode(subproofNode) {
53
+ var statementNode = null, metaProofStep = new ProofStep(subproofNode, statementNode);
54
+ return metaProofStep;
55
+ }
56
+ },
57
+ {
58
+ key: "fromStatementNode",
59
+ value: function fromStatementNode(statementNode) {
60
+ var subproofNode = null, metaProofStep = new ProofStep(subproofNode, statementNode);
61
+ return metaProofStep;
62
+ }
63
+ }
64
+ ]);
65
+ return ProofStep;
66
+ }();
67
+
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwL3Byb29mLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcm9vZlN0ZXAge1xuICBjb25zdHJ1Y3RvcihzdWJwcm9vZk5vZGUsIHN0YXRlbWVudE5vZGUpIHtcbiAgICB0aGlzLnN1YnByb29mTm9kZSA9IHN1YnByb29mTm9kZTtcbiAgICB0aGlzLnN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0U3VicHJvb2ZOb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnN1YnByb29mTm9kZTtcbiAgfVxuXG4gIGdldFN0YXRlbWVudE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIG1ldGFQcm9vZlN0ZXAgPSBuZXcgUHJvb2ZTdGVwKHN1YnByb29mTm9kZSwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gbWV0YVByb29mU3RlcDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSB7XG4gICAgY29uc3Qgc3VicHJvb2ZOb2RlID0gbnVsbCxcbiAgICAgICAgICBtZXRhUHJvb2ZTdGVwID0gbmV3IFByb29mU3RlcChzdWJwcm9vZk5vZGUsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIG1ldGFQcm9vZlN0ZXA7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiUHJvb2ZTdGVwIiwic3VicHJvb2ZOb2RlIiwic3RhdGVtZW50Tm9kZSIsImdldFN1YnByb29mTm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJmcm9tU3VicHJvb2ZOb2RlIiwibWV0YVByb29mU3RlcCIsImZyb21TdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUVxQkE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTixJQUFBLEFBQU1BLDBCQUFOO2FBQU1BLFVBQ1BDLFlBQVksRUFBRUMsYUFBYTs4QkFEcEJGO1FBRWpCLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtRQUNwQixJQUFJLENBQUNDLGFBQWEsR0FBR0E7O2lCQUhKRjs7WUFNbkJHLEtBQUFBO21CQUFBQSxTQUFBQSxrQkFBa0I7Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDRixZQUFZO1lBQzFCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQjtnQkFDakIsT0FBTyxJQUFJLENBQUNGLGFBQWE7WUFDM0I7Ozs7WUFFT0csS0FBQUE7bUJBQVAsU0FBT0EsaUJBQWlCSixZQUFZLEVBQUU7Z0JBQ3BDLElBQU1DLGdCQUFnQixJQUFJLEVBQ3BCSSxnQkFBZ0IsSUFoQkxOLFVBZ0JtQkMsY0FBY0M7Z0JBRWxELE9BQU9JO1lBQ1Q7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxrQkFBa0JMLGFBQWEsRUFBRTtnQkFDdEMsSUFBTUQsZUFBZSxJQUFJLEVBQ25CSyxnQkFBZ0IsSUF2QkxOLFVBdUJtQkMsY0FBY0M7Z0JBRWxELE9BQU9JO1lBQ1Q7OztXQTFCbUJOIn0=
@@ -9,9 +9,6 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- front: function() {
13
- return front;
14
- },
15
12
  first: function() {
16
13
  return first;
17
14
  },
@@ -51,7 +48,7 @@ function _interopRequireDefault(obj) {
51
48
  default: obj
52
49
  };
53
50
  }
54
- var front = _necessary.arrayUtilities.front, first = _necessary.arrayUtilities.first, second = _necessary.arrayUtilities.second, third = _necessary.arrayUtilities.third, last = _necessary.arrayUtilities.last, push = _necessary.arrayUtilities.push, prune = _necessary.arrayUtilities.prune, filter = _necessary.arrayUtilities.filter;
51
+ var first = _necessary.arrayUtilities.first, second = _necessary.arrayUtilities.second, third = _necessary.arrayUtilities.third, last = _necessary.arrayUtilities.last, push = _necessary.arrayUtilities.push, prune = _necessary.arrayUtilities.prune, filter = _necessary.arrayUtilities.filter;
55
52
  function someSubArray(array, subArrayLength, callback) {
56
53
  var found = false;
57
54
  var arrayLength = array.length, indexesLength = arrayLength, permutationLength = subArrayLength; ///
@@ -99,4 +96,4 @@ function rightDifference(arrayA, arrayB) {
99
96
  });
100
97
  }
101
98
 
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgcGVybXV0YXRpb25zTWF0cml4IGZyb20gXCIuLi9wZXJtdXRhdGlvbnNNYXRyaXhcIjtcblxuaW1wb3J0IHsgTUFYSU1VTV9JTkRFWEVTX0xFTkdUSCwgTUFYSU1VTV9QRVJNVVRBVElPTl9MRU5HVEggfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBjb25zdCB7IGZyb250LCBmaXJzdCwgc2Vjb25kLCB0aGlyZCwgbGFzdCwgcHVzaCwgcHJ1bmUsIGZpbHRlciB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lU3ViQXJyYXkoYXJyYXksIHN1YkFycmF5TGVuZ3RoLCBjYWxsYmFjaykge1xuICBsZXQgZm91bmQgPSBmYWxzZTtcblxuICBjb25zdCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgICAgaW5kZXhlc0xlbmd0aCA9IGFycmF5TGVuZ3RoLCAvLy9cbiAgICAgICAgcGVybXV0YXRpb25MZW5ndGggPSBzdWJBcnJheUxlbmd0aDsgLy8vXG5cbiAgaWYgKHBlcm11dGF0aW9uTGVuZ3RoIDw9IE1BWElNVU1fUEVSTVVUQVRJT05fTEVOR1RIKSB7XG4gICAgbGV0IG9mZnNldCxcbiAgICAgICAgcGVybXV0YXRpb25zO1xuXG4gICAgaWYgKGluZGV4ZXNMZW5ndGggPiBNQVhJTVVNX0lOREVYRVNfTEVOR1RIKSB7XG4gICAgICBvZmZzZXQgPSBpbmRleGVzTGVuZ3RoIC0gTUFYSU1VTV9JTkRFWEVTX0xFTkdUSDtcblxuICAgICAgcGVybXV0YXRpb25zID0gcGVybXV0YXRpb25zTWF0cml4W01BWElNVU1fSU5ERVhFU19MRU5HVEhdW3Blcm11dGF0aW9uTGVuZ3RoXTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2Zmc2V0ID0gMDtcblxuICAgICAgcGVybXV0YXRpb25zID0gcGVybXV0YXRpb25zTWF0cml4W2luZGV4ZXNMZW5ndGhdW3Blcm11dGF0aW9uTGVuZ3RoXTtcbiAgICB9XG5cbiAgICBpZiAocGVybXV0YXRpb25zICE9PSBudWxsKSB7XG4gICAgICBmb3VuZCA9IHBlcm11dGF0aW9ucy5zb21lKChwZXJtdXRhdGlvbikgPT4ge1xuICAgICAgICBpZiAocGVybXV0YXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBzdWJBcnJheSA9IFtdO1xuXG4gICAgICAgICAgZm9yIChsZXQgcG9zaXRpb24gPSAwOyBwb3NpdGlvbiA8IHBlcm11dGF0aW9uTGVuZ3RoOyBwb3NpdGlvbisrKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHBlcm11dGF0aW9uW3Bvc2l0aW9uXSArIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICAgICAgICAgIHN1YkFycmF5LnB1c2goZWxlbWVudCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcGFzc2VkID0gY2FsbGJhY2soc3ViQXJyYXkpO1xuXG4gICAgICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZm91bmQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsZWZ0RGlmZmVyZW5jZShhcnJheUEsIGFycmF5Qikge1xuICBmaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJpZ2h0RGlmZmVyZW5jZShhcnJheUEsIGFycmF5Qikge1xuICBmaWx0ZXIoYXJyYXlCLCAoZWxlbWVudEIpID0+IHtcbiAgICBjb25zdCBhcnJheUFJbmNsdWRlc0VsZW1lbnRCID0gYXJyYXlBLmluY2x1ZGVzKGVsZW1lbnRCKTtcblxuICAgIGlmICghYXJyYXlBSW5jbHVkZXNFbGVtZW50Qikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJmcm9udCIsImZpcnN0Iiwic2Vjb25kIiwidGhpcmQiLCJsYXN0IiwicHVzaCIsInBydW5lIiwiZmlsdGVyIiwic29tZVN1YkFycmF5IiwibGVmdERpZmZlcmVuY2UiLCJyaWdodERpZmZlcmVuY2UiLCJhcnJheVV0aWxpdGllcyIsImFycmF5Iiwic3ViQXJyYXlMZW5ndGgiLCJjYWxsYmFjayIsImZvdW5kIiwiYXJyYXlMZW5ndGgiLCJsZW5ndGgiLCJpbmRleGVzTGVuZ3RoIiwicGVybXV0YXRpb25MZW5ndGgiLCJNQVhJTVVNX1BFUk1VVEFUSU9OX0xFTkdUSCIsIm9mZnNldCIsInBlcm11dGF0aW9ucyIsIk1BWElNVU1fSU5ERVhFU19MRU5HVEgiLCJwZXJtdXRhdGlvbnNNYXRyaXgiLCJzb21lIiwicGVybXV0YXRpb24iLCJzdWJBcnJheSIsInBvc2l0aW9uIiwiaW5kZXgiLCJlbGVtZW50IiwicGFzc2VkIiwiYXJyYXlBIiwiYXJyYXlCIiwiZWxlbWVudEEiLCJhcnJheUJJbmNsdWRlc0VsZW1lbnRBIiwiaW5jbHVkZXMiLCJlbGVtZW50QiIsImFycmF5QUluY2x1ZGVzRWxlbWVudEIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVFlQSxLQUFLO2VBQUxBOztJQUFPQyxLQUFLO2VBQUxBOztJQUFPQyxNQUFNO2VBQU5BOztJQUFRQyxLQUFLO2VBQUxBOztJQUFPQyxJQUFJO2VBQUpBOztJQUFNQyxJQUFJO2VBQUpBOztJQUFNQyxLQUFLO2VBQUxBOztJQUFPQyxNQUFNO2VBQU5BOztJQUUvQ0MsWUFBWTtlQUFaQTs7SUE4Q0FDLGNBQWM7ZUFBZEE7O0lBVUFDLGVBQWU7ZUFBZkE7Ozt5QkFoRWU7dUVBRUE7eUJBRW9DOzs7Ozs7QUFFNUQsSUFBUVYsUUFBMkRXLHlCQUFjLENBQXpFWCxPQUFPQyxRQUFvRFUseUJBQWMsQ0FBbEVWLE9BQU9DLFNBQTZDUyx5QkFBYyxDQUEzRFQsUUFBUUMsUUFBcUNRLHlCQUFjLENBQW5EUixPQUFPQyxPQUE4Qk8seUJBQWMsQ0FBNUNQLE1BQU1DLE9BQXdCTSx5QkFBYyxDQUF0Q04sTUFBTUMsUUFBa0JLLHlCQUFjLENBQWhDTCxPQUFPQyxTQUFXSSx5QkFBYyxDQUF6Qko7QUFFeEQsU0FBU0MsYUFBYUksS0FBSyxFQUFFQyxjQUFjLEVBQUVDLFFBQVEsRUFBRTtJQUM1RCxJQUFJQyxRQUFRLEtBQUs7SUFFakIsSUFBTUMsY0FBY0osTUFBTUssTUFBTSxFQUMxQkMsZ0JBQWdCRixhQUNoQkcsb0JBQW9CTixnQkFBZ0IsR0FBRztJQUU3QyxJQUFJTSxxQkFBcUJDLHFDQUEwQixFQUFFO1FBQ25ELElBQUlDLFFBQ0FDO1FBRUosSUFBSUosZ0JBQWdCSyxpQ0FBc0IsRUFBRTtZQUMxQ0YsU0FBU0gsZ0JBQWdCSyxpQ0FBc0I7WUFFL0NELGVBQWVFLDJCQUFrQixDQUFDRCxpQ0FBc0IsQ0FBQyxDQUFDSixrQkFBa0I7UUFDOUUsT0FBTztZQUNMRSxTQUFTO1lBRVRDLGVBQWVFLDJCQUFrQixDQUFDTixjQUFjLENBQUNDLGtCQUFrQjtRQUNyRSxDQUFDO1FBRUQsSUFBSUcsaUJBQWlCLElBQUksRUFBRTtZQUN6QlAsUUFBUU8sYUFBYUcsSUFBSSxDQUFDLFNBQUNDLGFBQWdCO2dCQUN6QyxJQUFJQSxnQkFBZ0IsSUFBSSxFQUFFO29CQUN4QixJQUFNQyxXQUFXLEVBQUU7b0JBRW5CLElBQUssSUFBSUMsV0FBVyxHQUFHQSxXQUFXVCxtQkFBbUJTLFdBQVk7d0JBQy9ELElBQU1DLFFBQVFILFdBQVcsQ0FBQ0UsU0FBUyxHQUFHUCxRQUNoQ1MsVUFBVWxCLEtBQUssQ0FBQ2lCLE1BQU07d0JBRTVCRixTQUFTdEIsSUFBSSxDQUFDeUI7b0JBQ2hCO29CQUVBLElBQU1DLFNBQVNqQixTQUFTYTtvQkFFeEIsSUFBSUksUUFBUTt3QkFDVixPQUFPLElBQUk7b0JBQ2IsQ0FBQztnQkFDSCxDQUFDO1lBQ0g7UUFDRixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU9oQjtBQUNUO0FBRU8sU0FBU04sZUFBZXVCLE1BQU0sRUFBRUMsTUFBTSxFQUFFO0lBQzdDMUIsT0FBT3lCLFFBQVEsU0FBQ0UsVUFBYTtRQUMzQixJQUFNQyx5QkFBeUJGLE9BQU9HLFFBQVEsQ0FBQ0Y7UUFFL0MsSUFBSSxDQUFDQyx3QkFBd0I7WUFDM0IsT0FBTyxJQUFJO1FBQ2IsQ0FBQztJQUNIO0FBQ0Y7QUFFTyxTQUFTekIsZ0JBQWdCc0IsTUFBTSxFQUFFQyxNQUFNLEVBQUU7SUFDOUMxQixPQUFPMEIsUUFBUSxTQUFDSSxVQUFhO1FBQzNCLElBQU1DLHlCQUF5Qk4sT0FBT0ksUUFBUSxDQUFDQztRQUUvQyxJQUFJLENBQUNDLHdCQUF3QjtZQUMzQixPQUFPLElBQUk7UUFDYixDQUFDO0lBQ0g7QUFDRiJ9
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgcGVybXV0YXRpb25zTWF0cml4IGZyb20gXCIuLi9wZXJtdXRhdGlvbnNNYXRyaXhcIjtcblxuaW1wb3J0IHsgTUFYSU1VTV9JTkRFWEVTX0xFTkdUSCwgTUFYSU1VTV9QRVJNVVRBVElPTl9MRU5HVEggfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBjb25zdCB7IGZpcnN0LCBzZWNvbmQsIHRoaXJkLCBsYXN0LCBwdXNoLCBwcnVuZSwgZmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWVTdWJBcnJheShhcnJheSwgc3ViQXJyYXlMZW5ndGgsIGNhbGxiYWNrKSB7XG4gIGxldCBmb3VuZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgICBpbmRleGVzTGVuZ3RoID0gYXJyYXlMZW5ndGgsIC8vL1xuICAgICAgICBwZXJtdXRhdGlvbkxlbmd0aCA9IHN1YkFycmF5TGVuZ3RoOyAvLy9cblxuICBpZiAocGVybXV0YXRpb25MZW5ndGggPD0gTUFYSU1VTV9QRVJNVVRBVElPTl9MRU5HVEgpIHtcbiAgICBsZXQgb2Zmc2V0LFxuICAgICAgICBwZXJtdXRhdGlvbnM7XG5cbiAgICBpZiAoaW5kZXhlc0xlbmd0aCA+IE1BWElNVU1fSU5ERVhFU19MRU5HVEgpIHtcbiAgICAgIG9mZnNldCA9IGluZGV4ZXNMZW5ndGggLSBNQVhJTVVNX0lOREVYRVNfTEVOR1RIO1xuXG4gICAgICBwZXJtdXRhdGlvbnMgPSBwZXJtdXRhdGlvbnNNYXRyaXhbTUFYSU1VTV9JTkRFWEVTX0xFTkdUSF1bcGVybXV0YXRpb25MZW5ndGhdO1xuICAgIH0gZWxzZSB7XG4gICAgICBvZmZzZXQgPSAwO1xuXG4gICAgICBwZXJtdXRhdGlvbnMgPSBwZXJtdXRhdGlvbnNNYXRyaXhbaW5kZXhlc0xlbmd0aF1bcGVybXV0YXRpb25MZW5ndGhdO1xuICAgIH1cblxuICAgIGlmIChwZXJtdXRhdGlvbnMgIT09IG51bGwpIHtcbiAgICAgIGZvdW5kID0gcGVybXV0YXRpb25zLnNvbWUoKHBlcm11dGF0aW9uKSA9PiB7XG4gICAgICAgIGlmIChwZXJtdXRhdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHN1YkFycmF5ID0gW107XG5cbiAgICAgICAgICBmb3IgKGxldCBwb3NpdGlvbiA9IDA7IHBvc2l0aW9uIDwgcGVybXV0YXRpb25MZW5ndGg7IHBvc2l0aW9uKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGVybXV0YXRpb25bcG9zaXRpb25dICsgb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgICAgICAgICAgc3ViQXJyYXkucHVzaChlbGVtZW50KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBwYXNzZWQgPSBjYWxsYmFjayhzdWJBcnJheSk7XG5cbiAgICAgICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmb3VuZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxlZnREaWZmZXJlbmNlKGFycmF5QSwgYXJyYXlCKSB7XG4gIGZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmlnaHREaWZmZXJlbmNlKGFycmF5QSwgYXJyYXlCKSB7XG4gIGZpbHRlcihhcnJheUIsIChlbGVtZW50QikgPT4ge1xuICAgIGNvbnN0IGFycmF5QUluY2x1ZGVzRWxlbWVudEIgPSBhcnJheUEuaW5jbHVkZXMoZWxlbWVudEIpO1xuXG4gICAgaWYgKCFhcnJheUFJbmNsdWRlc0VsZW1lbnRCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImZpcnN0Iiwic2Vjb25kIiwidGhpcmQiLCJsYXN0IiwicHVzaCIsInBydW5lIiwiZmlsdGVyIiwic29tZVN1YkFycmF5IiwibGVmdERpZmZlcmVuY2UiLCJyaWdodERpZmZlcmVuY2UiLCJhcnJheVV0aWxpdGllcyIsImFycmF5Iiwic3ViQXJyYXlMZW5ndGgiLCJjYWxsYmFjayIsImZvdW5kIiwiYXJyYXlMZW5ndGgiLCJsZW5ndGgiLCJpbmRleGVzTGVuZ3RoIiwicGVybXV0YXRpb25MZW5ndGgiLCJNQVhJTVVNX1BFUk1VVEFUSU9OX0xFTkdUSCIsIm9mZnNldCIsInBlcm11dGF0aW9ucyIsIk1BWElNVU1fSU5ERVhFU19MRU5HVEgiLCJwZXJtdXRhdGlvbnNNYXRyaXgiLCJzb21lIiwicGVybXV0YXRpb24iLCJzdWJBcnJheSIsInBvc2l0aW9uIiwiaW5kZXgiLCJlbGVtZW50IiwicGFzc2VkIiwiYXJyYXlBIiwiYXJyYXlCIiwiZWxlbWVudEEiLCJhcnJheUJJbmNsdWRlc0VsZW1lbnRBIiwiaW5jbHVkZXMiLCJlbGVtZW50QiIsImFycmF5QUluY2x1ZGVzRWxlbWVudEIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVFlQSxLQUFLO2VBQUxBOztJQUFPQyxNQUFNO2VBQU5BOztJQUFRQyxLQUFLO2VBQUxBOztJQUFPQyxJQUFJO2VBQUpBOztJQUFNQyxJQUFJO2VBQUpBOztJQUFNQyxLQUFLO2VBQUxBOztJQUFPQyxNQUFNO2VBQU5BOztJQUV4Q0MsWUFBWTtlQUFaQTs7SUE4Q0FDLGNBQWM7ZUFBZEE7O0lBVUFDLGVBQWU7ZUFBZkE7Ozt5QkFoRWU7dUVBRUE7eUJBRW9DOzs7Ozs7QUFFNUQsSUFBUVQsUUFBb0RVLHlCQUFjLENBQWxFVixPQUFPQyxTQUE2Q1MseUJBQWMsQ0FBM0RULFFBQVFDLFFBQXFDUSx5QkFBYyxDQUFuRFIsT0FBT0MsT0FBOEJPLHlCQUFjLENBQTVDUCxNQUFNQyxPQUF3Qk0seUJBQWMsQ0FBdENOLE1BQU1DLFFBQWtCSyx5QkFBYyxDQUFoQ0wsT0FBT0MsU0FBV0kseUJBQWMsQ0FBekJKO0FBRWpELFNBQVNDLGFBQWFJLEtBQUssRUFBRUMsY0FBYyxFQUFFQyxRQUFRLEVBQUU7SUFDNUQsSUFBSUMsUUFBUSxLQUFLO0lBRWpCLElBQU1DLGNBQWNKLE1BQU1LLE1BQU0sRUFDMUJDLGdCQUFnQkYsYUFDaEJHLG9CQUFvQk4sZ0JBQWdCLEdBQUc7SUFFN0MsSUFBSU0scUJBQXFCQyxxQ0FBMEIsRUFBRTtRQUNuRCxJQUFJQyxRQUNBQztRQUVKLElBQUlKLGdCQUFnQkssaUNBQXNCLEVBQUU7WUFDMUNGLFNBQVNILGdCQUFnQkssaUNBQXNCO1lBRS9DRCxlQUFlRSwyQkFBa0IsQ0FBQ0QsaUNBQXNCLENBQUMsQ0FBQ0osa0JBQWtCO1FBQzlFLE9BQU87WUFDTEUsU0FBUztZQUVUQyxlQUFlRSwyQkFBa0IsQ0FBQ04sY0FBYyxDQUFDQyxrQkFBa0I7UUFDckUsQ0FBQztRQUVELElBQUlHLGlCQUFpQixJQUFJLEVBQUU7WUFDekJQLFFBQVFPLGFBQWFHLElBQUksQ0FBQyxTQUFDQyxhQUFnQjtnQkFDekMsSUFBSUEsZ0JBQWdCLElBQUksRUFBRTtvQkFDeEIsSUFBTUMsV0FBVyxFQUFFO29CQUVuQixJQUFLLElBQUlDLFdBQVcsR0FBR0EsV0FBV1QsbUJBQW1CUyxXQUFZO3dCQUMvRCxJQUFNQyxRQUFRSCxXQUFXLENBQUNFLFNBQVMsR0FBR1AsUUFDaENTLFVBQVVsQixLQUFLLENBQUNpQixNQUFNO3dCQUU1QkYsU0FBU3RCLElBQUksQ0FBQ3lCO29CQUNoQjtvQkFFQSxJQUFNQyxTQUFTakIsU0FBU2E7b0JBRXhCLElBQUlJLFFBQVE7d0JBQ1YsT0FBTyxJQUFJO29CQUNiLENBQUM7Z0JBQ0gsQ0FBQztZQUNIO1FBQ0YsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPaEI7QUFDVDtBQUVPLFNBQVNOLGVBQWV1QixNQUFNLEVBQUVDLE1BQU0sRUFBRTtJQUM3QzFCLE9BQU95QixRQUFRLFNBQUNFLFVBQWE7UUFDM0IsSUFBTUMseUJBQXlCRixPQUFPRyxRQUFRLENBQUNGO1FBRS9DLElBQUksQ0FBQ0Msd0JBQXdCO1lBQzNCLE9BQU8sSUFBSTtRQUNiLENBQUM7SUFDSDtBQUNGO0FBRU8sU0FBU3pCLGdCQUFnQnNCLE1BQU0sRUFBRUMsTUFBTSxFQUFFO0lBQzlDMUIsT0FBTzBCLFFBQVEsU0FBQ0ksVUFBYTtRQUMzQixJQUFNQyx5QkFBeUJOLE9BQU9JLFFBQVEsQ0FBQ0M7UUFFL0MsSUFBSSxDQUFDQyx3QkFBd0I7WUFDM0IsT0FBTyxJQUFJO1FBQ2IsQ0FBQztJQUNIO0FBQ0YifQ==
@@ -0,0 +1,117 @@
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: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ matchBracketedMetastatementChildNode: function() {
13
+ return matchBracketedMetastatementChildNode;
14
+ },
15
+ matchTopmostMetaAssertionMetastatementNode: function() {
16
+ return matchTopmostMetaAssertionMetastatementNode;
17
+ },
18
+ bracketedMetastatementChildNodeFromChildNodes: function() {
19
+ return bracketedMetastatementChildNodeFromChildNodes;
20
+ }
21
+ });
22
+ var _array = require("../utilities/array");
23
+ var _ruleNames = require("../ruleNames");
24
+ var _constants = require("../constants");
25
+ function matchBracketedMetastatementChildNode(childNodes, callback) {
26
+ var bracketedMetastatementChildNodeMatches = false;
27
+ var bracketedMetastatementChildNode = bracketedMetastatementChildNodeFromChildNodes(childNodes);
28
+ if (bracketedMetastatementChildNode !== null) {
29
+ bracketedMetastatementChildNodeMatches = callback(bracketedMetastatementChildNode);
30
+ }
31
+ return bracketedMetastatementChildNodeMatches;
32
+ }
33
+ function matchTopmostMetaAssertionMetastatementNode(topmostMetaAssertionMetastatementNode, topmostMetastatementNode) {
34
+ var metaAssertionMetastatementNodeMatches;
35
+ var metastatementNode = topmostMetastatementNode, metaAssertionMetastatementNode = topmostMetaAssertionMetastatementNode; ///
36
+ metaAssertionMetastatementNodeMatches = matchMetaAssertionMetastatementNode(metaAssertionMetastatementNode, metastatementNode);
37
+ if (!metaAssertionMetastatementNodeMatches) {
38
+ var nonTerminalNode = metastatementNode, childNodes = nonTerminalNode, bracketedMetastatementChildNodeMatches = matchBracketedMetastatementChildNode(childNodes, function(bracketedMetastatementChildNode) {
39
+ var metastatementNode = bracketedMetastatementChildNode, metaAssertionMetastatementNodeMatches = matchMetaAssertionMetastatementNode(metaAssertionMetastatementNode, metastatementNode), bracketedMetastatementChildNodeMatches = metaAssertionMetastatementNodeMatches;
40
+ return bracketedMetastatementChildNodeMatches;
41
+ });
42
+ metaAssertionMetastatementNodeMatches = bracketedMetastatementChildNodeMatches; ///
43
+ }
44
+ if (!metaAssertionMetastatementNodeMatches) {
45
+ var metaAssertionNonTerminalNode = metaAssertionMetastatementNode, metaAssertionChildNodes = metaAssertionNonTerminalNode.getChildNodes(), bracketedMetaAssertionMetastatementChildNodeMatches = matchBracketedMetastatementChildNode(metaAssertionChildNodes, function(bracketedMetaAssertionMetastatementChildNode) {
46
+ var metaAssertionMetastatementNode = bracketedMetaAssertionMetastatementChildNode, metaAssertionMetastatementNodeMatches = matchMetaAssertionMetastatementNode(metaAssertionMetastatementNode, metastatementNode), bracketedMetaAssertionMetastatementChildNodeMatches = metaAssertionMetastatementNodeMatches;
47
+ return bracketedMetaAssertionMetastatementChildNodeMatches;
48
+ });
49
+ metaAssertionMetastatementNodeMatches = bracketedMetaAssertionMetastatementChildNodeMatches; ///
50
+ }
51
+ var topmostMetaAssertionMetastatementNodeMatches = metaAssertionMetastatementNodeMatches; ///
52
+ return topmostMetaAssertionMetastatementNodeMatches;
53
+ }
54
+ function bracketedMetastatementChildNodeFromChildNodes(childNodes) {
55
+ var bracketedMetastatementChildNode = null;
56
+ var childNodesLength = childNodes.length;
57
+ if (childNodesLength === _constants.BRACKETED_METASTATEMENT_CHILD_NODES_LENGTH) {
58
+ var firstChildNode = (0, _array.first)(childNodes), thirdChildNode = (0, _array.third)(childNodes), secondChildNode = (0, _array.second)(childNodes), firstChildNodeTerminalNode = firstChildNode.isTerminalNode(), thirdChildNodeTerminalNode = thirdChildNode.isTerminalNode(), secondChildNodeNonTerminalNode = secondChildNode.isNonTerminalNode();
59
+ if (firstChildNodeTerminalNode && secondChildNodeNonTerminalNode && thirdChildNodeTerminalNode) {
60
+ var nonTerminalNode = secondChildNode, firstTerminalNode = firstChildNode, secondTerminalNode = thirdChildNode, nonTerminalNodeRuleName = nonTerminalNode.getRuleName(), firstTerminalNodeContent = firstTerminalNode.getContent(), secondTerminalNodeContent = secondTerminalNode.getContent(), firstTerminalNodeContentLeftBracket = firstTerminalNodeContent === _constants.LEFT_BRACKET, secondTerminalNodeContentRightBracket = secondTerminalNodeContent === _constants.RIGHT_BRACKET, nonTerminalNodeRuleNameMetastatementRuleName = nonTerminalNodeRuleName === _ruleNames.METASTATEMENT_RULE_NAME;
61
+ if (firstTerminalNodeContentLeftBracket && nonTerminalNodeRuleNameMetastatementRuleName && secondTerminalNodeContentRightBracket) {
62
+ bracketedMetastatementChildNode = nonTerminalNode; ///
63
+ }
64
+ }
65
+ }
66
+ return bracketedMetastatementChildNode;
67
+ }
68
+ function matchMetaAssertionNode(metaAssertionNode, node) {
69
+ var metaAssertionNodeMatches = false;
70
+ var nodeTerminalNode = node.isTerminalNode(), ruleNodeTerminalNode = metaAssertionNode.isTerminalNode();
71
+ if (nodeTerminalNode === ruleNodeTerminalNode) {
72
+ if (nodeTerminalNode) {
73
+ var terminalNode = node, metaAssertionTerminalNode = metaAssertionNode, metaAssertionTerminalNodeMatches = matchMetaAssertionTerminalNode(metaAssertionTerminalNode, terminalNode);
74
+ metaAssertionNodeMatches = metaAssertionTerminalNodeMatches; ///
75
+ } else {
76
+ var nonTerminalNode = node, metaAssertionNonTerminalNode = metaAssertionNode, metaAssertionNonTerminalNodeMatches = matchMetaAssertionNonTerminalNode(metaAssertionNonTerminalNode, nonTerminalNode);
77
+ metaAssertionNodeMatches = metaAssertionNonTerminalNodeMatches; ///
78
+ }
79
+ }
80
+ return metaAssertionNodeMatches;
81
+ }
82
+ function matchMetaAssertionNodes(metaAssertionNodes, nodes) {
83
+ var metaAssertionNodesMatches = false;
84
+ var nodesLength = nodes.length, metaAssertionNodesLength = metaAssertionNodes.length;
85
+ if (nodesLength === metaAssertionNodesLength) {
86
+ metaAssertionNodesMatches = nodes.every(function(node, index) {
87
+ var metaAssertionNode = metaAssertionNodes[index], metaAssertionNodeMatches = matchMetaAssertionNode(metaAssertionNode, node);
88
+ if (metaAssertionNodeMatches) {
89
+ return true;
90
+ }
91
+ });
92
+ }
93
+ return metaAssertionNodesMatches;
94
+ }
95
+ function matchMetaAssertionTerminalNode(metaAssertionTerminalNode, terminalNode) {
96
+ var metaAssertionTerminalNodeMatches = false;
97
+ var matches = metaAssertionTerminalNode.match(terminalNode);
98
+ if (matches) {
99
+ metaAssertionTerminalNodeMatches = true;
100
+ }
101
+ return metaAssertionTerminalNodeMatches;
102
+ }
103
+ function matchMetaAssertionNonTerminalNode(metaAssertionNonTerminalNode, nonTerminalNode) {
104
+ var metaAssertionNonTerminalNodeMatches = false;
105
+ var ruleName = nonTerminalNode.getRuleName(), metaAssertionRuleName = metaAssertionNonTerminalNode.getRuleName(); ///
106
+ if (ruleName === metaAssertionRuleName) {
107
+ var childNodes = nonTerminalNode.getChildNodes(), nodes = childNodes, metaAssertionChildNodes = metaAssertionNonTerminalNode.getChildNodes(), metaAssertionNodes = metaAssertionChildNodes, metaAssertionNodesMatches = matchMetaAssertionNodes(metaAssertionNodes, nodes);
108
+ metaAssertionNonTerminalNodeMatches = metaAssertionNodesMatches; ///
109
+ }
110
+ return metaAssertionNonTerminalNodeMatches;
111
+ }
112
+ function matchMetaAssertionMetastatementNode(metaAssertionMetastatementNode, metastatementNode) {
113
+ var nonTerminalNode = metastatementNode, metaAssertionNonTerminalNode = metaAssertionMetastatementNode, metaAssertionNonTerminalNodeMatches = matchMetaAssertionNonTerminalNode(metaAssertionNonTerminalNode, nonTerminalNode), metaAssertionMetastatementNodeNatches = metaAssertionNonTerminalNodeMatches; ///
114
+ return metaAssertionMetastatementNodeNatches;
115
+ }
116
+
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWV0YUFzc2VydGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCwgdGhpcmQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcbmltcG9ydCB7IExFRlRfQlJBQ0tFVCwgUklHSFRfQlJBQ0tFVCwgQlJBQ0tFVEVEX01FVEFTVEFURU1FTlRfQ0hJTERfTk9ERVNfTEVOR1RIIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hCcmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlKGNoaWxkTm9kZXMsIGNhbGxiYWNrKSB7XG4gIGxldCBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUgPSBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlRnJvbUNoaWxkTm9kZXMoY2hpbGROb2Rlcyk7XG5cbiAgaWYgKGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcyA9IGNhbGxiYWNrKGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVNYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hUb3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlKHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsIHRvcG1vc3RNZXRhc3RhdGVtZW50Tm9kZSkge1xuICBsZXQgbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcztcblxuICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IHRvcG1vc3RNZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSA9IHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGU7ICAvLy9cblxuICBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gbWF0Y2hNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUobWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKCFtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcyA9IG1hdGNoQnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZShjaGlsZE5vZGVzLCAoYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICAgICAgICBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gbWF0Y2hNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUobWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgICAgICBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcyA9IG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG5cbiAgICAgICAgICAgIHJldHVybiBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcztcbiAgICAgICAgICB9KTtcblxuICAgIG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlczsgIC8vL1xuICB9XG5cbiAgaWYgKCFtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzKSB7XG4gICAgY29uc3QgbWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZSA9IG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIG1ldGFBc3NlcnRpb25DaGlsZE5vZGVzID0gbWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgYnJhY2tldGVkTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVNYXRjaGVzID0gbWF0Y2hCcmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlKG1ldGFBc3NlcnRpb25DaGlsZE5vZGVzLCAoYnJhY2tldGVkTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSA9IGJyYWNrZXRlZE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Q2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICAgICAgICBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gbWF0Y2hNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUobWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgICAgICAgICBicmFja2V0ZWRNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXMgPSBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzO1xuXG4gICAgICAgICAgICByZXR1cm4gYnJhY2tldGVkTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVNYXRjaGVzO1xuICAgICAgICAgIH0pO1xuXG4gICAgbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGJyYWNrZXRlZE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlczsgIC8vL1xuICB9XG5cbiAgY29uc3QgdG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzOyAgLy8vXG5cbiAgcmV0dXJuIHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZUZyb21DaGlsZE5vZGVzKGNoaWxkTm9kZXMpIHtcbiAgbGV0IGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUgPSBudWxsO1xuXG4gIGNvbnN0IGNoaWxkTm9kZXNMZW5ndGggPSBjaGlsZE5vZGVzLmxlbmd0aDtcblxuICBpZiAoY2hpbGROb2Rlc0xlbmd0aCA9PT0gQlJBQ0tFVEVEX01FVEFTVEFURU1FTlRfQ0hJTERfTk9ERVNfTEVOR1RIKSB7XG4gICAgY29uc3QgZmlyc3RDaGlsZE5vZGUgPSBmaXJzdChjaGlsZE5vZGVzKSxcbiAgICAgICAgICB0aGlyZENoaWxkTm9kZSA9IHRoaXJkKGNoaWxkTm9kZXMpLFxuICAgICAgICAgIHNlY29uZENoaWxkTm9kZSA9IHNlY29uZChjaGlsZE5vZGVzKSxcbiAgICAgICAgICBmaXJzdENoaWxkTm9kZVRlcm1pbmFsTm9kZSA9IGZpcnN0Q2hpbGROb2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgdGhpcmRDaGlsZE5vZGVUZXJtaW5hbE5vZGUgPSB0aGlyZENoaWxkTm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHNlY29uZENoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSA9IHNlY29uZENoaWxkTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKGZpcnN0Q2hpbGROb2RlVGVybWluYWxOb2RlICYmIHNlY29uZENoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSAmJiB0aGlyZENoaWxkTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gc2Vjb25kQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBmaXJzdFRlcm1pbmFsTm9kZSA9IGZpcnN0Q2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgIHNlY29uZFRlcm1pbmFsTm9kZSA9IHRoaXJkQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50ID0gZmlyc3RUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgc2Vjb25kVGVybWluYWxOb2RlQ29udGVudCA9IHNlY29uZFRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgICBmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnRMZWZ0QnJhY2tldCA9IChmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnQgPT09IExFRlRfQlJBQ0tFVCksXG4gICAgICAgICAgICBzZWNvbmRUZXJtaW5hbE5vZGVDb250ZW50UmlnaHRCcmFja2V0ID0gKHNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnQgPT09IFJJR0hUX0JSQUNLRVQpLFxuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlUnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUgPSAobm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPT09IE1FVEFTVEFURU1FTlRfUlVMRV9OQU1FKTtcblxuICAgICAgaWYgKGZpcnN0VGVybWluYWxOb2RlQ29udGVudExlZnRCcmFja2V0ICYmIG5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lICYmIHNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnRSaWdodEJyYWNrZXQpIHtcbiAgICAgICAgYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZSA9IG5vblRlcm1pbmFsTm9kZTsgIC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlO1xufVxuXG5mdW5jdGlvbiBtYXRjaE1ldGFBc3NlcnRpb25Ob2RlKG1ldGFBc3NlcnRpb25Ob2RlLCBub2RlKSB7XG4gIGxldCBtZXRhQXNzZXJ0aW9uTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgIHJ1bGVOb2RlVGVybWluYWxOb2RlID0gbWV0YUFzc2VydGlvbk5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICBpZiAobm9kZVRlcm1pbmFsTm9kZSA9PT0gcnVsZU5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICBtZXRhQXNzZXJ0aW9uVGVybWluYWxOb2RlID0gbWV0YUFzc2VydGlvbk5vZGUsICAvLy9cbiAgICAgICAgbWV0YUFzc2VydGlvblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFBc3NlcnRpb25UZXJtaW5hbE5vZGUobWV0YUFzc2VydGlvblRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlKTtcblxuICAgICAgbWV0YUFzc2VydGlvbk5vZGVNYXRjaGVzID0gbWV0YUFzc2VydGlvblRlcm1pbmFsTm9kZU1hdGNoZXM7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgIG1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUgPSBtZXRhQXNzZXJ0aW9uTm9kZSwgIC8vL1xuICAgICAgICBtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoTWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZShtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUpO1xuXG4gICAgICBtZXRhQXNzZXJ0aW9uTm9kZU1hdGNoZXMgPSBtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGFBc3NlcnRpb25Ob2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hNZXRhQXNzZXJ0aW9uTm9kZXMobWV0YUFzc2VydGlvbk5vZGVzLCBub2Rlcykge1xuICBsZXQgbWV0YUFzc2VydGlvbk5vZGVzTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoLFxuICAgIG1ldGFBc3NlcnRpb25Ob2Rlc0xlbmd0aCA9IG1ldGFBc3NlcnRpb25Ob2Rlcy5sZW5ndGg7XG5cbiAgaWYgKG5vZGVzTGVuZ3RoID09PSBtZXRhQXNzZXJ0aW9uTm9kZXNMZW5ndGgpIHtcbiAgICBtZXRhQXNzZXJ0aW9uTm9kZXNNYXRjaGVzID0gbm9kZXMuZXZlcnkoKG5vZGUsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBtZXRhQXNzZXJ0aW9uTm9kZSA9IG1ldGFBc3NlcnRpb25Ob2Rlc1tpbmRleF0sXG4gICAgICAgIG1ldGFBc3NlcnRpb25Ob2RlTWF0Y2hlcyA9IG1hdGNoTWV0YUFzc2VydGlvbk5vZGUobWV0YUFzc2VydGlvbk5vZGUsIG5vZGUpO1xuXG4gICAgICBpZiAobWV0YUFzc2VydGlvbk5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFBc3NlcnRpb25Ob2Rlc01hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoTWV0YUFzc2VydGlvblRlcm1pbmFsTm9kZShtZXRhQXNzZXJ0aW9uVGVybWluYWxOb2RlLCB0ZXJtaW5hbE5vZGUpIHtcbiAgbGV0IG1ldGFBc3NlcnRpb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgbWF0Y2hlcyA9IG1ldGFBc3NlcnRpb25UZXJtaW5hbE5vZGUubWF0Y2godGVybWluYWxOb2RlKTtcblxuICBpZiAobWF0Y2hlcykge1xuICAgIG1ldGFBc3NlcnRpb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBtZXRhQXNzZXJ0aW9uVGVybWluYWxOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hNZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlKG1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSkge1xuICBsZXQgbWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgIG1ldGFBc3NlcnRpb25SdWxlTmFtZSA9IG1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgaWYgKHJ1bGVOYW1lID09PSBtZXRhQXNzZXJ0aW9uUnVsZU5hbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICBtZXRhQXNzZXJ0aW9uQ2hpbGROb2RlcyA9IG1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgbWV0YUFzc2VydGlvbk5vZGVzID0gbWV0YUFzc2VydGlvbkNoaWxkTm9kZXMsIC8vL1xuICAgICAgbWV0YUFzc2VydGlvbk5vZGVzTWF0Y2hlcyA9IG1hdGNoTWV0YUFzc2VydGlvbk5vZGVzKG1ldGFBc3NlcnRpb25Ob2Rlcywgbm9kZXMpO1xuXG4gICAgbWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtZXRhQXNzZXJ0aW9uTm9kZXNNYXRjaGVzOyAgLy8vXG4gIH1cblxuICByZXR1cm4gbWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlKG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICBtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlID0gbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgbWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUobWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlKSxcbiAgICBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVOYXRjaGVzID0gbWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7ICAvLy9cblxuICByZXR1cm4gbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTmF0Y2hlcztcbn1cbiJdLCJuYW1lcyI6WyJtYXRjaEJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUiLCJtYXRjaFRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlRnJvbUNoaWxkTm9kZXMiLCJjaGlsZE5vZGVzIiwiY2FsbGJhY2siLCJicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcyIsImJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUiLCJ0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlIiwidG9wbW9zdE1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlIiwibWF0Y2hNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlIiwibWV0YUFzc2VydGlvbkNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiYnJhY2tldGVkTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVNYXRjaGVzIiwiYnJhY2tldGVkTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUiLCJ0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsImNoaWxkTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJCUkFDS0VURURfTUVUQVNUQVRFTUVOVF9DSElMRF9OT0RFU19MRU5HVEgiLCJmaXJzdENoaWxkTm9kZSIsImZpcnN0IiwidGhpcmRDaGlsZE5vZGUiLCJ0aGlyZCIsInNlY29uZENoaWxkTm9kZSIsInNlY29uZCIsImZpcnN0Q2hpbGROb2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0aGlyZENoaWxkTm9kZVRlcm1pbmFsTm9kZSIsInNlY29uZENoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwiZmlyc3RUZXJtaW5hbE5vZGUiLCJzZWNvbmRUZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCIsInNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnQiLCJmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnRMZWZ0QnJhY2tldCIsIkxFRlRfQlJBQ0tFVCIsInNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnRSaWdodEJyYWNrZXQiLCJSSUdIVF9CUkFDS0VUIiwibm9uVGVybWluYWxOb2RlUnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUiLCJNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsIm1hdGNoTWV0YUFzc2VydGlvbk5vZGUiLCJtZXRhQXNzZXJ0aW9uTm9kZSIsIm5vZGUiLCJtZXRhQXNzZXJ0aW9uTm9kZU1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwicnVsZU5vZGVUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJtZXRhQXNzZXJ0aW9uVGVybWluYWxOb2RlIiwibWV0YUFzc2VydGlvblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGFBc3NlcnRpb25UZXJtaW5hbE5vZGUiLCJtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZSIsIm1hdGNoTWV0YUFzc2VydGlvbk5vZGVzIiwibWV0YUFzc2VydGlvbk5vZGVzIiwibm9kZXMiLCJtZXRhQXNzZXJ0aW9uTm9kZXNNYXRjaGVzIiwibm9kZXNMZW5ndGgiLCJtZXRhQXNzZXJ0aW9uTm9kZXNMZW5ndGgiLCJldmVyeSIsImluZGV4IiwibWF0Y2hlcyIsIm1hdGNoIiwicnVsZU5hbWUiLCJtZXRhQXNzZXJ0aW9uUnVsZU5hbWUiLCJtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVOYXRjaGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFNZ0JBLG9DQUFvQztlQUFwQ0E7O0lBWUFDLDBDQUEwQztlQUExQ0E7O0lBeUNBQyw2Q0FBNkM7ZUFBN0NBOzs7cUJBekRxQjt5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
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "matchNode", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return matchNode;
9
+ }
10
+ });
11
+ function matchNode(nodeA, nodeB) {
12
+ var nodeMatches = false;
13
+ var nodeATerminalNode = nodeA.isTerminalNode(), nodeBTerminalNode = nodeB.isTerminalNode();
14
+ if (nodeATerminalNode === nodeBTerminalNode) {
15
+ if (nodeATerminalNode) {
16
+ var terminalNodeA = nodeA, terminalNodeB = nodeB, terminalNodeMatches = matchTerminalNode(terminalNodeA, terminalNodeB);
17
+ nodeMatches = terminalNodeMatches; ///
18
+ } else {
19
+ var nonTerminalNodeA = nodeA, nonTerminalNodeB = nodeB, nonTerminalNodeMatches = matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB);
20
+ nodeMatches = nonTerminalNodeMatches; ///
21
+ }
22
+ }
23
+ return nodeMatches;
24
+ }
25
+ function matchNodes(nodesA, nodesB) {
26
+ var nodesMatch = false;
27
+ var nodesALength = nodesA.length, nodesBLength = nodesB.length;
28
+ if (nodesALength === nodesBLength) {
29
+ nodesMatch = nodesA.every(function(nodeA, index) {
30
+ var nodeB = nodesB[index], nodeMatches = matchNode(nodeA, nodeB);
31
+ if (nodeMatches) {
32
+ return true;
33
+ }
34
+ });
35
+ }
36
+ return nodesMatch;
37
+ }
38
+ function matchTerminalNode(terminalNodeA, terminalNodeB) {
39
+ var matches = terminalNodeA.match(terminalNodeB), terminalNodeMatches = matches; ///
40
+ return terminalNodeMatches;
41
+ }
42
+ function matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB) {
43
+ var nonTerminalNodeMatches = false;
44
+ var nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(), nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName(); ///
45
+ if (nonTerminalNodeARuleName === nonTerminalNodeBRuleName) {
46
+ var nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(), nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(), nodesA = nonTerminalNodeAChildNodes, nodesB = nonTerminalNodeBChildNodes, nodesMatch = matchNodes(nodesA, nodesB);
47
+ nonTerminalNodeMatches = nodesMatch; ///
48
+ }
49
+ return nonTerminalNodeMatches;
50
+ }
51
+
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoTm9kZShub2RlQSwgbm9kZUIpIHtcbiAgbGV0IG5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZUFUZXJtaW5hbE5vZGUgPSBub2RlQS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICBub2RlQlRlcm1pbmFsTm9kZSA9IG5vZGVCLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVBVGVybWluYWxOb2RlID09PSBub2RlQlRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChub2RlQVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlQSA9IG5vZGVBLCAgLy8vXG4gICAgICAgICAgICB0ZXJtaW5hbE5vZGVCID0gbm9kZUIsICAvLy9cbiAgICAgICAgICAgIHRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaFRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGVBLCB0ZXJtaW5hbE5vZGVCKTtcblxuICAgICAgbm9kZU1hdGNoZXMgPSB0ZXJtaW5hbE5vZGVNYXRjaGVzOyAgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUEgPSBub2RlQSwgIC8vL1xuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IG5vZGVCLCAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCKTtcblxuICAgICAgbm9kZU1hdGNoZXMgPSBub25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoTm9kZXMobm9kZXNBLCBub2Rlc0IpIHtcbiAgbGV0IG5vZGVzTWF0Y2ggPSBmYWxzZTtcblxuICBjb25zdCBub2Rlc0FMZW5ndGggPSBub2Rlc0EubGVuZ3RoLFxuICAgICAgICBub2Rlc0JMZW5ndGggPSBub2Rlc0IubGVuZ3RoO1xuXG4gIGlmIChub2Rlc0FMZW5ndGggPT09IG5vZGVzQkxlbmd0aCkge1xuICAgIG5vZGVzTWF0Y2ggPSBub2Rlc0EuZXZlcnkoKG5vZGVBLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgbm9kZUIgPSBub2Rlc0JbaW5kZXhdLFxuICAgICAgICAgICAgbm9kZU1hdGNoZXMgPSBtYXRjaE5vZGUobm9kZUEsIG5vZGVCKTtcblxuICAgICAgaWYgKG5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gbm9kZXNNYXRjaDtcbn1cblxuZnVuY3Rpb24gbWF0Y2hUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlQSwgdGVybWluYWxOb2RlQikge1xuICBjb25zdCBtYXRjaGVzID0gdGVybWluYWxOb2RlQS5tYXRjaCh0ZXJtaW5hbE5vZGVCKSxcbiAgICAgICAgdGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoZXM7ICAvLy9cblxuICByZXR1cm4gdGVybWluYWxOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQikge1xuICBsZXQgbm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZUEuZ2V0UnVsZU5hbWUoKSwgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZUJSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZUIuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgaWYgKG5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZSA9PT0gbm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGVBLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZUIuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vZGVzQSA9IG5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBub2Rlc0IgPSBub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgbm9kZXNNYXRjaCA9IG1hdGNoTm9kZXMobm9kZXNBLCBub2Rlc0IpO1xuXG4gICAgbm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG5vZGVzTWF0Y2g7IC8vL1xuICB9XG5cbiAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG4iXSwibmFtZXMiOlsibWF0Y2hOb2RlIiwibm9kZUEiLCJub2RlQiIsIm5vZGVNYXRjaGVzIiwibm9kZUFUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsIm5vZGVCVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlQSIsInRlcm1pbmFsTm9kZUIiLCJ0ZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hUZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVBIiwibm9uVGVybWluYWxOb2RlQiIsIm5vblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaE5vblRlcm1pbmFsTm9kZSIsIm1hdGNoTm9kZXMiLCJub2Rlc0EiLCJub2Rlc0IiLCJub2Rlc01hdGNoIiwibm9kZXNBTGVuZ3RoIiwibGVuZ3RoIiwibm9kZXNCTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsIm1hdGNoZXMiLCJtYXRjaCIsIm5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwibm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lIiwibm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwibm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUVnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsVUFBVUMsS0FBSyxFQUFFQyxLQUFLLEVBQUU7SUFDdEMsSUFBSUMsY0FBYyxLQUFLO0lBRXZCLElBQU1DLG9CQUFvQkgsTUFBTUksY0FBYyxJQUN4Q0Msb0JBQW9CSixNQUFNRyxjQUFjO0lBRTlDLElBQUlELHNCQUFzQkUsbUJBQW1CO1FBQzNDLElBQUlGLG1CQUFtQjtZQUNyQixJQUFNRyxnQkFBZ0JOLE9BQ2hCTyxnQkFBZ0JOLE9BQ2hCTyxzQkFBc0JDLGtCQUFrQkgsZUFBZUM7WUFFN0RMLGNBQWNNLHFCQUFzQixHQUFHO1FBQ3pDLE9BQU87WUFDTCxJQUFNRSxtQkFBbUJWLE9BQ25CVyxtQkFBbUJWLE9BQ25CVyx5QkFBeUJDLHFCQUFxQkgsa0JBQWtCQztZQUV0RVQsY0FBY1Usd0JBQXdCLEdBQUc7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPVjtBQUNUO0FBRUEsU0FBU1ksV0FBV0MsTUFBTSxFQUFFQyxNQUFNLEVBQUU7SUFDbEMsSUFBSUMsYUFBYSxLQUFLO0lBRXRCLElBQU1DLGVBQWVILE9BQU9JLE1BQU0sRUFDNUJDLGVBQWVKLE9BQU9HLE1BQU07SUFFbEMsSUFBSUQsaUJBQWlCRSxjQUFjO1FBQ2pDSCxhQUFhRixPQUFPTSxLQUFLLENBQUMsU0FBQ3JCLE9BQU9zQixPQUFVO1lBQzFDLElBQU1yQixRQUFRZSxNQUFNLENBQUNNLE1BQU0sRUFDckJwQixjQUFjSCxVQUFVQyxPQUFPQztZQUVyQyxJQUFJQyxhQUFhO2dCQUNmLE9BQU8sSUFBSTtZQUNiLENBQUM7UUFDSDtJQUNGLENBQUM7SUFFRCxPQUFPZTtBQUNUO0FBRUEsU0FBU1Isa0JBQWtCSCxhQUFhLEVBQUVDLGFBQWEsRUFBRTtJQUN2RCxJQUFNZ0IsVUFBVWpCLGNBQWNrQixLQUFLLENBQUNqQixnQkFDOUJDLHNCQUFzQmUsU0FBVSxHQUFHO0lBRXpDLE9BQU9mO0FBQ1Q7QUFFQSxTQUFTSyxxQkFBcUJILGdCQUFnQixFQUFFQyxnQkFBZ0IsRUFBRTtJQUNoRSxJQUFJQyx5QkFBeUIsS0FBSztJQUVsQyxJQUFNYSwyQkFBMkJmLGlCQUFpQmdCLFdBQVcsSUFDdkRDLDJCQUEyQmhCLGlCQUFpQmUsV0FBVyxJQUFJLEdBQUc7SUFFcEUsSUFBSUQsNkJBQTZCRSwwQkFBMEI7UUFDekQsSUFBTUMsNkJBQTZCbEIsaUJBQWlCbUIsYUFBYSxJQUMzREMsNkJBQTZCbkIsaUJBQWlCa0IsYUFBYSxJQUMzRGQsU0FBU2EsNEJBQ1RaLFNBQVNjLDRCQUNUYixhQUFhSCxXQUFXQyxRQUFRQztRQUV0Q0oseUJBQXlCSyxZQUFZLEdBQUc7SUFDMUMsQ0FBQztJQUVELE9BQU9MO0FBQ1QifQ==