occam-verify-cli 0.0.1016 → 0.0.1020

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 (151) hide show
  1. package/lib/argument.js +12 -11
  2. package/lib/assignment/equality.js +3 -3
  3. package/lib/axiom.js +102 -6
  4. package/lib/combinator.js +12 -12
  5. package/lib/conclusion.js +3 -4
  6. package/lib/consequent.js +75 -14
  7. package/lib/constructor/bracketed.js +3 -3
  8. package/lib/constructor.js +68 -18
  9. package/lib/context/file.js +49 -89
  10. package/lib/context/local.js +34 -58
  11. package/lib/declaration/combinator.js +3 -3
  12. package/lib/declaration/metavariable.js +15 -4
  13. package/lib/declaration/type.js +3 -3
  14. package/lib/declaration/variable.js +146 -0
  15. package/lib/equality.js +95 -19
  16. package/lib/index.js +6 -1
  17. package/lib/label.js +9 -9
  18. package/lib/lemma.js +107 -6
  19. package/lib/metavariable.js +14 -21
  20. package/lib/mixins/statement/qualified/unify.js +3 -3
  21. package/lib/mixins/statement/verify.js +4 -5
  22. package/lib/mixins/term/unify.js +82 -0
  23. package/lib/mixins/term/verify.js +44 -0
  24. package/lib/node/term/constructor/bracketed.js +15 -11
  25. package/lib/premise.js +3 -5
  26. package/lib/proofStep.js +2 -2
  27. package/lib/reference.js +9 -9
  28. package/lib/rule.js +5 -5
  29. package/lib/ruleNames.js +5 -5
  30. package/lib/statement/qualified.js +6 -3
  31. package/lib/statement.js +22 -39
  32. package/lib/supposition.js +75 -50
  33. package/lib/term.js +62 -16
  34. package/lib/topLevelAssertion.js +98 -33
  35. package/lib/type.js +22 -31
  36. package/lib/unifier/equality.js +12 -4
  37. package/lib/unifier/intrinsicLevel.js +1 -4
  38. package/lib/unifier/metaLevel.js +1 -4
  39. package/lib/unifier/metavariable.js +10 -7
  40. package/lib/unifier/statementWithCombinator.js +18 -9
  41. package/lib/unifier/termWithConstructor.js +11 -4
  42. package/lib/unify/frameWithMetaType.js +2 -2
  43. package/lib/utilities/name.js +9 -2
  44. package/lib/utilities/node.js +14 -14
  45. package/lib/utilities/tokens.js +7 -7
  46. package/lib/utilities/unify.js +3 -3
  47. package/lib/variable.js +155 -20
  48. package/lib/verifier/statementAsCombinator.js +2 -2
  49. package/lib/verifier/termAsConstructor.js +2 -2
  50. package/lib/verifier/topLevel.js +7 -7
  51. package/lib/verify/assertion/type.js +3 -4
  52. package/lib/verify/conjecture.js +2 -3
  53. package/lib/verify/frame.js +2 -6
  54. package/lib/verify/lemma.js +2 -3
  55. package/lib/verify/metaLemma.js +2 -3
  56. package/lib/verify/metatheorem.js +2 -3
  57. package/lib/verify/metavariableGivenMetaType.js +3 -3
  58. package/lib/verify/theorem.js +2 -3
  59. package/package.json +1 -1
  60. package/src/argument.js +11 -9
  61. package/src/assignment/equality.js +3 -4
  62. package/src/axiom.js +78 -1
  63. package/src/combinator.js +10 -9
  64. package/src/conclusion.js +2 -4
  65. package/src/consequent.js +88 -13
  66. package/src/constructor/bracketed.js +4 -1
  67. package/src/constructor.js +18 -14
  68. package/src/context/file.js +50 -93
  69. package/src/context/local.js +13 -31
  70. package/src/declaration/combinator.js +2 -2
  71. package/src/declaration/metavariable.js +20 -6
  72. package/src/declaration/type.js +2 -2
  73. package/src/declaration/variable.js +78 -0
  74. package/src/equality.js +123 -22
  75. package/src/index.js +6 -0
  76. package/src/label.js +7 -7
  77. package/src/lemma.js +91 -1
  78. package/src/metavariable.js +13 -22
  79. package/src/mixins/statement/qualified/unify.js +2 -2
  80. package/src/mixins/statement/verify.js +5 -5
  81. package/src/mixins/term/unify.js +110 -0
  82. package/src/mixins/term/verify.js +47 -0
  83. package/src/node/term/constructor/bracketed.js +4 -3
  84. package/src/premise.js +2 -5
  85. package/src/proofStep.js +1 -1
  86. package/src/reference.js +7 -7
  87. package/src/rule.js +4 -4
  88. package/src/ruleNames.js +1 -1
  89. package/src/statement/qualified.js +7 -3
  90. package/src/statement.js +28 -60
  91. package/src/supposition.js +106 -53
  92. package/src/term.js +70 -14
  93. package/src/topLevelAssertion.js +120 -33
  94. package/src/type.js +39 -41
  95. package/src/unifier/equality.js +15 -3
  96. package/src/unifier/intrinsicLevel.js +0 -4
  97. package/src/unifier/metaLevel.js +0 -4
  98. package/src/unifier/metavariable.js +16 -8
  99. package/src/unifier/statementWithCombinator.js +33 -11
  100. package/src/unifier/termWithConstructor.js +17 -4
  101. package/src/unify/frameWithMetaType.js +1 -1
  102. package/src/utilities/name.js +9 -1
  103. package/src/utilities/node.js +14 -14
  104. package/src/utilities/tokens.js +4 -4
  105. package/src/utilities/unify.js +2 -2
  106. package/src/variable.js +158 -22
  107. package/src/verifier/statementAsCombinator.js +1 -1
  108. package/src/verifier/termAsConstructor.js +1 -1
  109. package/src/verifier/topLevel.js +9 -6
  110. package/src/verify/assertion/type.js +1 -1
  111. package/src/verify/conjecture.js +1 -1
  112. package/src/verify/frame.js +1 -7
  113. package/src/verify/lemma.js +1 -1
  114. package/src/verify/metaLemma.js +1 -1
  115. package/src/verify/metatheorem.js +1 -1
  116. package/src/verify/metavariableGivenMetaType.js +2 -2
  117. package/src/verify/theorem.js +1 -1
  118. package/lib/tokens/constructorTerm/bracketed.js +0 -17
  119. package/lib/unify/termWithBracketedConstructor.js +0 -39
  120. package/lib/unify/termWithConstructor.js +0 -37
  121. package/lib/unify/termWithConstructors.js +0 -34
  122. package/lib/unify/termWithTerm.js +0 -27
  123. package/lib/unify/termWithType.js +0 -24
  124. package/lib/verify/axiom.js +0 -45
  125. package/lib/verify/consequent.js +0 -38
  126. package/lib/verify/declaration/variable.js +0 -67
  127. package/lib/verify/equality.js +0 -92
  128. package/lib/verify/proofStep.js +0 -28
  129. package/lib/verify/term.js +0 -97
  130. package/lib/verify/termAsConstructor.js +0 -58
  131. package/lib/verify/termGivenType.js +0 -34
  132. package/lib/verify/terms.js +0 -38
  133. package/lib/verify/type.js +0 -23
  134. package/lib/verify/variable.js +0 -25
  135. package/src/tokens/constructorTerm/bracketed.js +0 -10
  136. package/src/unify/termWithBracketedConstructor.js +0 -39
  137. package/src/unify/termWithConstructor.js +0 -39
  138. package/src/unify/termWithConstructors.js +0 -27
  139. package/src/unify/termWithTerm.js +0 -24
  140. package/src/unify/termWithType.js +0 -14
  141. package/src/verify/axiom.js +0 -56
  142. package/src/verify/consequent.js +0 -40
  143. package/src/verify/declaration/variable.js +0 -85
  144. package/src/verify/equality.js +0 -118
  145. package/src/verify/proofStep.js +0 -21
  146. package/src/verify/term.js +0 -123
  147. package/src/verify/termAsConstructor.js +0 -66
  148. package/src/verify/termGivenType.js +0 -32
  149. package/src/verify/terms.js +0 -38
  150. package/src/verify/type.js +0 -19
  151. package/src/verify/variable.js +0 -21
@@ -93,8 +93,8 @@ function unifyAWithReference(qualifiedStatement, substitutions, localContext) {
93
93
  if (metavariable !== null) {
94
94
  var statement = qualifiedStatement.getStatement(), statementString = statement.getString(), referenceString = reference.getString();
95
95
  localContext.trace("Unifying the '".concat(statementString, "' qualified statement with the '").concat(referenceString, "' reference..."));
96
- var metavariableNode1 = metavariable.getNode(), referenceMetavariableNode = reference.getMetavariableNode(), metavariableNodeA = referenceMetavariableNode, metavariableNodeB = metavariableNode1, unified = _metavariable.default.unify(metavariableNodeA, metavariableNodeB, localContext);
97
- if (unified) {
96
+ var metavariableNode1 = metavariable.getNode(), referenceMetavariableNode = reference.getMetavariableNode(), metavariableNodeA = referenceMetavariableNode, metavariableNodeB = metavariableNode1, metavariableUnified = _metavariable.default.unify(metavariableNodeA, metavariableNodeB, localContext);
97
+ if (metavariableUnified) {
98
98
  var statementNode = statement.getNode(), metavariableNode2 = metavariableNodeA, statementForMetavariableSubstitution = _statementForMetavariable.default.fromStatementNodeAndMetavariableNode(statementNode, metavariableNode2, localContextA, localContextB), substitution = statementForMetavariableSubstitution, localContextA = localContext, localContextB = localContext; ///
99
99
  substitutions.addSubstitution(substitution, localContextA, localContextB);
100
100
  unifiedWithReference = true;
@@ -115,4 +115,4 @@ var unifyMixins = [
115
115
  ];
116
116
  var _default = unifyMixins;
117
117
 
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9taXhpbnMvc3RhdGVtZW50L3F1YWxpZmllZC91bmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGF2YXJpYWJsZVVuaWZpZXIgZnJvbSBcIi4uLy4uLy4uL3VuaWZpZXIvbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi8uLi8uLi9zdWJzdGl0dXRpb24vc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IHRyaW0gfSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxpdGllcy9uYW1lXCI7XG5cbmZ1bmN0aW9uIHVuaWZ5QVdpdGhSdWxlKHF1YWxpZmllZFN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aFJ1bGUgPSBmYWxzZTtcblxuICBjb25zdCByZWZlcmVuY2UgPSBxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0UmVmZXJlbmNlKCksXG4gICAgICAgIHJ1bGUgPSBsb2NhbENvbnRleHQuZmluZFJ1bGVCeVJlZmVyZW5jZShyZWZlcmVuY2UpO1xuXG4gIGlmIChydWxlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlU3RyaW5nID0gcmVmZXJlbmNlLmdldFN0cmluZygpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IHRyaW0ocXVhbGlmaWVkU3RhdGVtZW50LmdldFN0cmluZygpKTsgIC8vL1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyBydWxlLi4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50VW5pZmllZCA9IHJ1bGUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgdW5pZmllZFdpdGhSdWxlID0gc3RhdGVtZW50VW5pZmllZDsgIC8vL1xuXG4gICAgaWYgKHVuaWZpZWRXaXRoUnVsZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJ1bGUuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuaWZpZWRXaXRoUnVsZTtcbn1cblxuZnVuY3Rpb24gdW5pZnlBV2l0aEF4aW9tKHF1YWxpZmllZFN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aEF4aW9tID0gZmFsc2U7XG5cbiAgY29uc3QgcmVmZXJlbmNlID0gcXVhbGlmaWVkU3RhdGVtZW50LmdldFJlZmVyZW5jZSgpLFxuICAgICAgICBheGlvbSA9IGxvY2FsQ29udGV4dC5maW5kQXhpb21CeVJlZmVyZW5jZShyZWZlcmVuY2UpO1xuXG4gIGlmIChheGlvbSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSB0cmltKHF1YWxpZmllZFN0YXRlbWVudC5nZXRTdHJpbmcoKSk7ICAvLy9cblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgYXhpb20uLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHF1YWxpZmllZFN0YXRlbWVudC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gYXhpb20udW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgdW5pZmllZFdpdGhBeGlvbSA9IHN0YXRlbWVudFVuaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHVuaWZpZWRXaXRoQXhpb20pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyBheGlvbS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5pZmllZFdpdGhBeGlvbTtcbn1cblxuZnVuY3Rpb24gdW5pZnlBV2l0aExlbW1hKHF1YWxpZmllZFN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aExlbW1hID0gZmFsc2U7XG5cbiAgY29uc3QgcmVmZXJlbmNlID0gcXVhbGlmaWVkU3RhdGVtZW50LmdldFJlZmVyZW5jZSgpLFxuICAgICAgICBsZW1tYSA9IGxvY2FsQ29udGV4dC5maW5kTGVtbWFCeVJlZmVyZW5jZShyZWZlcmVuY2UpO1xuXG4gIGlmIChsZW1tYSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSB0cmltKHF1YWxpZmllZFN0YXRlbWVudC5nZXRTdHJpbmcoKSk7ICAvLy9cblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgbGVtbWEuLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHF1YWxpZmllZFN0YXRlbWVudC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gbGVtbWEudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgdW5pZmllZFdpdGhMZW1tYSA9IHN0YXRlbWVudFVuaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHVuaWZpZWRXaXRoTGVtbWEpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyBsZW1tYS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5pZmllZFdpdGhMZW1tYTtcbn1cblxuZnVuY3Rpb24gdW5pZnlBV2l0aFRoZW9yZW0ocXVhbGlmaWVkU3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHVuaWZpZWRXaXRoVGhlb3JlbSA9IGZhbHNlO1xuXG4gIGNvbnN0IHJlZmVyZW5jZSA9IHF1YWxpZmllZFN0YXRlbWVudC5nZXRSZWZlcmVuY2UoKSxcbiAgICAgICAgdGhlb3JlbSA9IGxvY2FsQ29udGV4dC5maW5kVGhlb3JlbUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSk7XG5cbiAgaWYgKHRoZW9yZW0gIT09IG51bGwpIHtcbiAgICBjb25zdCByZWZlcmVuY2VTdHJpbmcgPSByZWZlcmVuY2UuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gdHJpbShxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RyaW5nKCkpOyAgLy8vXG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHRoZW9yZW0uLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHF1YWxpZmllZFN0YXRlbWVudC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gdGhlb3JlbS51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICB1bmlmaWVkV2l0aFRoZW9yZW0gPSBzdGF0ZW1lbnRVbmlmaWVkOyAvLy9cblxuICAgIGlmICh1bmlmaWVkV2l0aFRoZW9yZW0pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyB0aGVvcmVtLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmlmaWVkV2l0aFRoZW9yZW07XG59XG5cbmZ1bmN0aW9uIHVuaWZ5QVdpdGhDb25qZWN0dXJlKHF1YWxpZmllZFN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aENvbmplY3R1cmUgPSBmYWxzZTtcblxuICBjb25zdCByZWZlcmVuY2UgPSBxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0UmVmZXJlbmNlKCksXG4gICAgICAgIGNvbmplY3R1cmUgPSBsb2NhbENvbnRleHQuZmluZENvbmplY3R1cmVCeVJlZmVyZW5jZShyZWZlcmVuY2UpO1xuXG4gIGlmIChjb25qZWN0dXJlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlU3RyaW5nID0gcmVmZXJlbmNlLmdldFN0cmluZygpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IHRyaW0ocXVhbGlmaWVkU3RhdGVtZW50LmdldFN0cmluZygpKTsgIC8vL1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyBjb25qZWN0dXJlLi4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50VW5pZmllZCA9IGNvbmplY3R1cmUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgdW5pZmllZFdpdGhDb25qZWN0dXJlID0gc3RhdGVtZW50VW5pZmllZDsgLy8vXG5cbiAgICBpZiAodW5pZmllZFdpdGhDb25qZWN0dXJlKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgY29uamVjdHVyZS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5pZmllZFdpdGhDb25qZWN0dXJlO1xufVxuXG5mdW5jdGlvbiB1bmlmeUFXaXRoUmVmZXJlbmNlKHF1YWxpZmllZFN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aFJlZmVyZW5jZSA9IGZhbHNlO1xuXG4gIGNvbnN0IHJlZmVyZW5jZSA9IHF1YWxpZmllZFN0YXRlbWVudC5nZXRSZWZlcmVuY2UoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IHJlZmVyZW5jZS5nZXRNZXRhdmFyaWFibGVOb2RlKCksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgICByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlID0gcmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZU5vZGUoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlQSA9IHJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGVCID0gbWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgdW5pZmllZCA9IG1ldGF2YXJpYWJsZVVuaWZpZXIudW5pZnkobWV0YXZhcmlhYmxlTm9kZUEsIG1ldGF2YXJpYWJsZU5vZGVCLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHVuaWZpZWQpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVBLCAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiA9IFN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbi5mcm9tU3RhdGVtZW50Tm9kZUFuZE1ldGF2YXJpYWJsZU5vZGUoc3RhdGVtZW50Tm9kZSwgbWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0QiksXG4gICAgICAgICAgICBzdWJzdGl0dXRpb24gPSBzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24sIC8vL1xuICAgICAgICAgICAgbG9jYWxDb250ZXh0QSA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgICBsb2NhbENvbnRleHRCID0gbG9jYWxDb250ZXh0OyAvLy9cblxuICAgICAgc3Vic3RpdHV0aW9ucy5hZGRTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgdW5pZmllZFdpdGhSZWZlcmVuY2UgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh1bmlmaWVkV2l0aFJlZmVyZW5jZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5pZmllZFdpdGhSZWZlcmVuY2U7XG59XG5cbmNvbnN0IHVuaWZ5TWl4aW5zID0gW1xuICB1bmlmeUFXaXRoUnVsZSxcbiAgdW5pZnlBV2l0aEF4aW9tLFxuICB1bmlmeUFXaXRoTGVtbWEsXG4gIHVuaWZ5QVdpdGhUaGVvcmVtLFxuICB1bmlmeUFXaXRoQ29uamVjdHVyZSxcbiAgdW5pZnlBV2l0aFJlZmVyZW5jZVxuXTtcblxuZXhwb3J0IGRlZmF1bHQgdW5pZnlNaXhpbnM7XG5cbiJdLCJuYW1lcyI6WyJ1bmlmeUFXaXRoUnVsZSIsInF1YWxpZmllZFN0YXRlbWVudCIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHQiLCJ1bmlmaWVkV2l0aFJ1bGUiLCJyZWZlcmVuY2UiLCJnZXRSZWZlcmVuY2UiLCJydWxlIiwiZmluZFJ1bGVCeVJlZmVyZW5jZSIsInJlZmVyZW5jZVN0cmluZyIsImdldFN0cmluZyIsInF1YWxpZmllZFN0YXRlbWVudFN0cmluZyIsInRyaW0iLCJ0cmFjZSIsInN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsInN0YXRlbWVudFVuaWZpZWQiLCJ1bmlmeVN0YXRlbWVudCIsImRlYnVnIiwidW5pZnlBV2l0aEF4aW9tIiwidW5pZmllZFdpdGhBeGlvbSIsImF4aW9tIiwiZmluZEF4aW9tQnlSZWZlcmVuY2UiLCJ1bmlmeUFXaXRoTGVtbWEiLCJ1bmlmaWVkV2l0aExlbW1hIiwibGVtbWEiLCJmaW5kTGVtbWFCeVJlZmVyZW5jZSIsInVuaWZ5QVdpdGhUaGVvcmVtIiwidW5pZmllZFdpdGhUaGVvcmVtIiwidGhlb3JlbSIsImZpbmRUaGVvcmVtQnlSZWZlcmVuY2UiLCJ1bmlmeUFXaXRoQ29uamVjdHVyZSIsInVuaWZpZWRXaXRoQ29uamVjdHVyZSIsImNvbmplY3R1cmUiLCJmaW5kQ29uamVjdHVyZUJ5UmVmZXJlbmNlIiwidW5pZnlBV2l0aFJlZmVyZW5jZSIsInVuaWZpZWRXaXRoUmVmZXJlbmNlIiwibWV0YXZhcmlhYmxlTm9kZSIsImdldE1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlIiwiZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZSIsInN0YXRlbWVudFN0cmluZyIsImdldE5vZGUiLCJyZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZUEiLCJtZXRhdmFyaWFibGVOb2RlQiIsInVuaWZpZWQiLCJtZXRhdmFyaWFibGVVbmlmaWVyIiwidW5pZnkiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiZnJvbVN0YXRlbWVudE5vZGVBbmRNZXRhdmFyaWFibGVOb2RlIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJzdWJzdGl0dXRpb24iLCJhZGRTdWJzdGl0dXRpb24iLCJ1bmlmeU1peGlucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBd0xBOzs7ZUFBQTs7O21FQXRMZ0M7K0VBQ2lCO3NCQUU1QjtvQkFDZ0M7Ozs7OztBQUVyRCxTQUFTQSxlQUFlQyxrQkFBa0IsRUFBRUMsYUFBYSxFQUFFQyxZQUFZO0lBQ3JFLElBQUlDLGtCQUFrQjtJQUV0QixJQUFNQyxZQUFZSixtQkFBbUJLLFlBQVksSUFDM0NDLE9BQU9KLGFBQWFLLG1CQUFtQixDQUFDSDtJQUU5QyxJQUFJRSxTQUFTLE1BQU07UUFDakIsSUFBTUUsa0JBQWtCSixVQUFVSyxTQUFTLElBQ3JDQywyQkFBMkJDLElBQUFBLFlBQUksRUFBQ1gsbUJBQW1CUyxTQUFTLEtBQU0sR0FBRztRQUUzRVAsYUFBYVUsS0FBSyxDQUFDLEFBQUMsaUJBQTJFSixPQUEzREUsMEJBQXlCLG9DQUFrRCxPQUFoQkYsaUJBQWdCO1FBRS9HLElBQU1LLFlBQVliLG1CQUFtQmMsWUFBWSxJQUMzQ0MsbUJBQW1CVCxLQUFLVSxjQUFjLENBQUNILFdBQVdYO1FBRXhEQyxrQkFBa0JZLGtCQUFtQixHQUFHO1FBRXhDLElBQUlaLGlCQUFpQjtZQUNuQkQsYUFBYWUsS0FBSyxDQUFDLEFBQUMsbUJBQTZFVCxPQUEzREUsMEJBQXlCLG9DQUFrRCxPQUFoQkYsaUJBQWdCO1FBQ25IO0lBQ0Y7SUFFQSxPQUFPTDtBQUNUO0FBRUEsU0FBU2UsZ0JBQWdCbEIsa0JBQWtCLEVBQUVDLGFBQWEsRUFBRUMsWUFBWTtJQUN0RSxJQUFJaUIsbUJBQW1CO0lBRXZCLElBQU1mLFlBQVlKLG1CQUFt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
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9taXhpbnMvc3RhdGVtZW50L3F1YWxpZmllZC91bmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGF2YXJpYWJsZVVuaWZpZXIgZnJvbSBcIi4uLy4uLy4uL3VuaWZpZXIvbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi8uLi8uLi9zdWJzdGl0dXRpb24vc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IHRyaW0gfSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxpdGllcy9uYW1lXCI7XG5cbmZ1bmN0aW9uIHVuaWZ5QVdpdGhSdWxlKHF1YWxpZmllZFN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aFJ1bGUgPSBmYWxzZTtcblxuICBjb25zdCByZWZlcmVuY2UgPSBxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0UmVmZXJlbmNlKCksXG4gICAgICAgIHJ1bGUgPSBsb2NhbENvbnRleHQuZmluZFJ1bGVCeVJlZmVyZW5jZShyZWZlcmVuY2UpO1xuXG4gIGlmIChydWxlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlU3RyaW5nID0gcmVmZXJlbmNlLmdldFN0cmluZygpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IHRyaW0ocXVhbGlmaWVkU3RhdGVtZW50LmdldFN0cmluZygpKTsgIC8vL1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyBydWxlLi4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50VW5pZmllZCA9IHJ1bGUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgdW5pZmllZFdpdGhSdWxlID0gc3RhdGVtZW50VW5pZmllZDsgIC8vL1xuXG4gICAgaWYgKHVuaWZpZWRXaXRoUnVsZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJ1bGUuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuaWZpZWRXaXRoUnVsZTtcbn1cblxuZnVuY3Rpb24gdW5pZnlBV2l0aEF4aW9tKHF1YWxpZmllZFN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aEF4aW9tID0gZmFsc2U7XG5cbiAgY29uc3QgcmVmZXJlbmNlID0gcXVhbGlmaWVkU3RhdGVtZW50LmdldFJlZmVyZW5jZSgpLFxuICAgICAgICBheGlvbSA9IGxvY2FsQ29udGV4dC5maW5kQXhpb21CeVJlZmVyZW5jZShyZWZlcmVuY2UpO1xuXG4gIGlmIChheGlvbSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSB0cmltKHF1YWxpZmllZFN0YXRlbWVudC5nZXRTdHJpbmcoKSk7ICAvLy9cblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgYXhpb20uLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHF1YWxpZmllZFN0YXRlbWVudC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gYXhpb20udW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgdW5pZmllZFdpdGhBeGlvbSA9IHN0YXRlbWVudFVuaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHVuaWZpZWRXaXRoQXhpb20pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyBheGlvbS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5pZmllZFdpdGhBeGlvbTtcbn1cblxuZnVuY3Rpb24gdW5pZnlBV2l0aExlbW1hKHF1YWxpZmllZFN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aExlbW1hID0gZmFsc2U7XG5cbiAgY29uc3QgcmVmZXJlbmNlID0gcXVhbGlmaWVkU3RhdGVtZW50LmdldFJlZmVyZW5jZSgpLFxuICAgICAgICBsZW1tYSA9IGxvY2FsQ29udGV4dC5maW5kTGVtbWFCeVJlZmVyZW5jZShyZWZlcmVuY2UpO1xuXG4gIGlmIChsZW1tYSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSB0cmltKHF1YWxpZmllZFN0YXRlbWVudC5nZXRTdHJpbmcoKSk7ICAvLy9cblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgbGVtbWEuLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHF1YWxpZmllZFN0YXRlbWVudC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gbGVtbWEudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgdW5pZmllZFdpdGhMZW1tYSA9IHN0YXRlbWVudFVuaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHVuaWZpZWRXaXRoTGVtbWEpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyBsZW1tYS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5pZmllZFdpdGhMZW1tYTtcbn1cblxuZnVuY3Rpb24gdW5pZnlBV2l0aFRoZW9yZW0ocXVhbGlmaWVkU3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHVuaWZpZWRXaXRoVGhlb3JlbSA9IGZhbHNlO1xuXG4gIGNvbnN0IHJlZmVyZW5jZSA9IHF1YWxpZmllZFN0YXRlbWVudC5nZXRSZWZlcmVuY2UoKSxcbiAgICAgICAgdGhlb3JlbSA9IGxvY2FsQ29udGV4dC5maW5kVGhlb3JlbUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSk7XG5cbiAgaWYgKHRoZW9yZW0gIT09IG51bGwpIHtcbiAgICBjb25zdCByZWZlcmVuY2VTdHJpbmcgPSByZWZlcmVuY2UuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gdHJpbShxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RyaW5nKCkpOyAgLy8vXG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHRoZW9yZW0uLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHF1YWxpZmllZFN0YXRlbWVudC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gdGhlb3JlbS51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICB1bmlmaWVkV2l0aFRoZW9yZW0gPSBzdGF0ZW1lbnRVbmlmaWVkOyAvLy9cblxuICAgIGlmICh1bmlmaWVkV2l0aFRoZW9yZW0pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyB0aGVvcmVtLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmlmaWVkV2l0aFRoZW9yZW07XG59XG5cbmZ1bmN0aW9uIHVuaWZ5QVdpdGhDb25qZWN0dXJlKHF1YWxpZmllZFN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aENvbmplY3R1cmUgPSBmYWxzZTtcblxuICBjb25zdCByZWZlcmVuY2UgPSBxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0UmVmZXJlbmNlKCksXG4gICAgICAgIGNvbmplY3R1cmUgPSBsb2NhbENvbnRleHQuZmluZENvbmplY3R1cmVCeVJlZmVyZW5jZShyZWZlcmVuY2UpO1xuXG4gIGlmIChjb25qZWN0dXJlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlU3RyaW5nID0gcmVmZXJlbmNlLmdldFN0cmluZygpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IHRyaW0ocXVhbGlmaWVkU3RhdGVtZW50LmdldFN0cmluZygpKTsgIC8vL1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyBjb25qZWN0dXJlLi4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50VW5pZmllZCA9IGNvbmplY3R1cmUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgdW5pZmllZFdpdGhDb25qZWN0dXJlID0gc3RhdGVtZW50VW5pZmllZDsgLy8vXG5cbiAgICBpZiAodW5pZmllZFdpdGhDb25qZWN0dXJlKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgY29uamVjdHVyZS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5pZmllZFdpdGhDb25qZWN0dXJlO1xufVxuXG5mdW5jdGlvbiB1bmlmeUFXaXRoUmVmZXJlbmNlKHF1YWxpZmllZFN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB1bmlmaWVkV2l0aFJlZmVyZW5jZSA9IGZhbHNlO1xuXG4gIGNvbnN0IHJlZmVyZW5jZSA9IHF1YWxpZmllZFN0YXRlbWVudC5nZXRSZWZlcmVuY2UoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IHJlZmVyZW5jZS5nZXRNZXRhdmFyaWFibGVOb2RlKCksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnQgPSBxdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIHJlZmVyZW5jZVN0cmluZyA9IHJlZmVyZW5jZS5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7cmVmZXJlbmNlU3RyaW5nfScgcmVmZXJlbmNlLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgICByZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlID0gcmVmZXJlbmNlLmdldE1ldGF2YXJpYWJsZU5vZGUoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlQSA9IHJlZmVyZW5jZU1ldGF2YXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGVCID0gbWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgbWV0YXZhcmlhYmxlVW5pZmllZCA9IG1ldGF2YXJpYWJsZVVuaWZpZXIudW5pZnkobWV0YXZhcmlhYmxlTm9kZUEsIG1ldGF2YXJpYWJsZU5vZGVCLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVVuaWZpZWQpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVBLCAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbiA9IFN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbi5mcm9tU3RhdGVtZW50Tm9kZUFuZE1ldGF2YXJpYWJsZU5vZGUoc3RhdGVtZW50Tm9kZSwgbWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0QiksXG4gICAgICAgICAgICBzdWJzdGl0dXRpb24gPSBzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24sIC8vL1xuICAgICAgICAgICAgbG9jYWxDb250ZXh0QSA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgICBsb2NhbENvbnRleHRCID0gbG9jYWxDb250ZXh0OyAvLy9cblxuICAgICAgc3Vic3RpdHV0aW9ucy5hZGRTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgdW5pZmllZFdpdGhSZWZlcmVuY2UgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh1bmlmaWVkV2l0aFJlZmVyZW5jZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5pZmllZFdpdGhSZWZlcmVuY2U7XG59XG5cbmNvbnN0IHVuaWZ5TWl4aW5zID0gW1xuICB1bmlmeUFXaXRoUnVsZSxcbiAgdW5pZnlBV2l0aEF4aW9tLFxuICB1bmlmeUFXaXRoTGVtbWEsXG4gIHVuaWZ5QVdpdGhUaGVvcmVtLFxuICB1bmlmeUFXaXRoQ29uamVjdHVyZSxcbiAgdW5pZnlBV2l0aFJlZmVyZW5jZVxuXTtcblxuZXhwb3J0IGRlZmF1bHQgdW5pZnlNaXhpbnM7XG5cbiJdLCJuYW1lcyI6WyJ1bmlmeUFXaXRoUnVsZSIsInF1YWxpZmllZFN0YXRlbWVudCIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHQiLCJ1bmlmaWVkV2l0aFJ1bGUiLCJyZWZlcmVuY2UiLCJnZXRSZWZlcmVuY2UiLCJydWxlIiwiZmluZFJ1bGVCeVJlZmVyZW5jZSIsInJlZmVyZW5jZVN0cmluZyIsImdldFN0cmluZyIsInF1YWxpZmllZFN0YXRlbWVudFN0cmluZyIsInRyaW0iLCJ0cmFjZSIsInN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsInN0YXRlbWVudFVuaWZpZWQiLCJ1bmlmeVN0YXRlbWVudCIsImRlYnVnIiwidW5pZnlBV2l0aEF4aW9tIiwidW5pZmllZFdpdGhBeGlvbSIsImF4aW9tIiwiZmluZEF4aW9tQnlSZWZlcmVuY2UiLCJ1bmlmeUFXaXRoTGVtbWEiLCJ1bmlmaWVkV2l0aExlbW1hIiwibGVtbWEiLCJmaW5kTGVtbWFCeVJlZmVyZW5jZSIsInVuaWZ5QVdpdGhUaGVvcmVtIiwidW5pZmllZFdpdGhUaGVvcmVtIiwidGhlb3JlbSIsImZpbmRUaGVvcmVtQnlSZWZlcmVuY2UiLCJ1bmlmeUFXaXRoQ29uamVjdHVyZSIsInVuaWZpZWRXaXRoQ29uamVjdHVyZSIsImNvbmplY3R1cmUiLCJmaW5kQ29uamVjdHVyZUJ5UmVmZXJlbmNlIiwidW5pZnlBV2l0aFJlZmVyZW5jZSIsInVuaWZpZWRXaXRoUmVmZXJlbmNlIiwibWV0YXZhcmlhYmxlTm9kZSIsImdldE1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlIiwiZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZSIsInN0YXRlbWVudFN0cmluZyIsImdldE5vZGUiLCJyZWZlcmVuY2VNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZUEiLCJtZXRhdmFyaWFibGVOb2RlQiIsIm1ldGF2YXJpYWJsZVVuaWZpZWQiLCJtZXRhdmFyaWFibGVVbmlmaWVyIiwidW5pZnkiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiZnJvbVN0YXRlbWVudE5vZGVBbmRNZXRhdmFyaWFibGVOb2RlIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJzdWJzdGl0dXRpb24iLCJhZGRTdWJzdGl0dXRpb24iLCJ1bmlmeU1peGlucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBd0xBOzs7ZUFBQTs7O21FQXRMZ0M7K0VBQ2lCO3NCQUU1QjtvQkFDZ0M7Ozs7OztBQUVyRCxTQUFTQSxlQUFlQyxrQkFBa0IsRUFBRUMsYUFBYSxFQUFFQyxZQUFZO0lBQ3JFLElBQUlDLGtCQUFrQjtJQUV0QixJQUFNQyxZQUFZSixtQkFBbUJLLFlBQVksSUFDM0NDLE9BQU9KLGFBQWFLLG1CQUFtQixDQUFDSDtJQUU5QyxJQUFJRSxTQUFTLE1BQU07UUFDakIsSUFBTUUsa0JBQWtCSixVQUFVSyxTQUFTLElBQ3JDQywyQkFBMkJDLElBQUFBLFlBQUksRUFBQ1gsbUJBQW1CUyxTQUFTLEtBQU0sR0FBRztRQUUzRVAsYUFBYVUsS0FBSyxDQUFDLEFBQUMsaUJBQTJFSixPQUEzREUsMEJBQXlCLG9DQUFrRCxPQUFoQkYsaUJBQWdCO1FBRS9HLElBQU1LLFlBQVliLG1CQUFtQmMsWUFBWSxJQUMzQ0MsbUJBQW1CVCxLQUFLVSxjQUFjLENBQUNILFdBQVdYO1FBRXhEQyxrQkFBa0JZLGtCQUFtQixHQUFHO1FBRXhDLElBQUlaLGlCQUFpQjtZQUNuQkQsYUFBYWUsS0FBSyxDQUFDLEFBQUMsbUJBQTZFVCxPQUEzREUsMEJBQXlCLG9DQUFrRCxPQUFoQkYsaUJBQWdCO1FBQ25IO0lBQ0Y7SUFFQSxPQUFPTDtBQUNUO0FBRUEsU0FBU2UsZ0JBQWdCbEIsa0JBQWtCLEVBQUVDLGFBQWEsRUFBRUMsWUFBWTtJQUN0RSxJQUFJaUIsbUJBQW1CO0lBRXZCLElBQU1mLFlBQVlKLG1CQUFtQkssWUFBWSxJQUMzQ2UsUUFBUWxCLGFBQWFtQixvQkFBb0IsQ0FBQ2pCO0lBRWhELElBQUlnQixVQUFVLE1BQU07UUFDbEIsSUFBTVosa0JBQWtCSixVQUFVSyxTQUFTLElBQ3JDQywyQkFBMkJDLElBQUFBLFlBQUksRUFBQ1gsbUJBQW1CUyxTQUFTLEtBQU0sR0FBRztRQUUzRVAsYUFBYVUsS0FBSyxDQUFDLEFBQUMsaUJBQTJFSixPQUEzREUsMEJBQXlCLG9DQUFrRCxPQUFoQkYsaUJBQWdCO1FBRS9HLElBQU1LLFlBQVliLG1CQUFtQmMsWUFBWSxJQUMzQ0MsbUJBQW1CSyxNQUFNSixjQUFjLENBQUNILFdBQVdYO1FBRXpEaUIsbUJBQW1CSixrQkFBa0IsR0FBRztRQUV4QyxJQUFJSSxrQkFBa0I7WUFDcEJqQixhQUFhZSxLQUFLLENBQUMsQUFBQyxtQkFBNkVULE9BQTNERSwwQkFBeUIsb0NBQWtELE9BQWhCRixpQkFBZ0I7UUFDbkg7SUFDRjtJQUVBLE9BQU9XO0FBQ1Q7QUFFQSxTQUFTRyxnQkFBZ0J0QixrQkFBa0IsRUFBRUMsYUFBYSxFQUFFQyxZQUFZO0lBQ3RFLElBQUlxQixtQkFBbUI7SUFFdkIsSUFBTW5CLFlBQVlKLG1CQUFtQkssWUFBWSxJQUMzQ21CLFFBQVF0QixhQUFhdUIsb0JBQW9CLENBQUNyQjtJQUVoRCxJQUFJb0IsVUFBVSxNQUFNO1FBQ2xCLElBQU1oQixrQkFBa0JKLFVBQVVLLFNBQVMsSUFDckNDLDJCQUEyQkMsSUFBQUEsWUFBSSxFQUFDWCxtQkFBbUJTLFNBQVMsS0FBTSxHQUFHO1FBRTNFUCxhQUFhVSxLQUFLLENBQUMsQUFBQyxpQkFBMkVKLE9BQTNERSwwQkFBeUIsb0NBQWtELE9BQWhCRixpQkFBZ0I7UUFFL0csSUFBTUssWUFBWWIsbUJBQW1CYyxZQUFZLElBQzNDQyxtQkFBbUJTLE1BQU1SLGNBQWMsQ0FBQ0gsV0FBV1g7UUFFekRxQixtQkFBbUJSLGtCQUFrQixHQUFHO1FBRXhDLElBQUlRLGtCQUFrQjtZQUNwQnJCLGFBQWFlLEtBQUssQ0FBQyxBQUFDLG1CQUE2RVQsT0FBM0RFLDBCQUF5QixvQ0FBa0QsT0FBaEJGLGlCQUFnQjtRQUNuSDtJQUNGO0lBRUEsT0FBT2U7QUFDVDtBQUVBLFNBQVNHLGtCQUFrQjFCLGtCQUFrQixFQUFFQyxhQUFhLEVBQUVDLFlBQVk7SUFDeEUsSUFBSXlCLHFCQUFxQjtJQUV6QixJQUFNdkIsWUFBWUosbUJBQW1CSyxZQUFZLElBQzNDdUIsVUFBVTFCLGFBQWEyQixzQkFBc0IsQ0FBQ3pCO0lBRXBELElBQUl3QixZQUFZLE1BQU07UUFDcEIsSUFBTXBCLGtCQUFrQkosVUFBVUssU0FBUyxJQUNyQ0MsMkJBQTJCQyxJQUFBQSxZQUFJLEVBQUNYLG1CQUFtQlMsU0FBUyxLQUFNLEdBQUc7UUFFM0VQLGFBQWFVLEtBQUssQ0FBQyxBQUFDLGlCQUEyRUosT0FBM0RFLDBCQUF5QixvQ0FBa0QsT0FBaEJGLGlCQUFnQjtRQUUvRyxJQUFNSyxZQUFZYixtQkFBbUJjLFlBQVksSUFDM0NDLG1CQUFtQmEsUUFBUVosY0FBYyxDQUFDSCxXQUFXWDtRQUUzRHlCLHFCQUFxQlosa0JBQWtCLEdBQUc7UUFFMUMsSUFBSVksb0JBQW9CO1lBQ3RCekIsYUFBYWUsS0FBSyxDQUFDLEFBQUMsbUJBQTZFVCxPQUEzREUsMEJBQXlCLG9DQUFrRCxPQUFoQkYsaUJBQWdCO1FBQ25IO0lBQ0Y7SUFFQSxPQUFPbUI7QUFDVDtBQUVBLFNBQVNHLHFCQUFxQjlCLGtCQUFrQixFQUFFQyxhQUFhLEVBQUVDLFlBQVk7SUFDM0UsSUFBSTZCLHdCQUF3QjtJQUU1QixJQUFNM0IsWUFBWUosbUJBQW1CSyxZQUFZLElBQzNDMkIsYUFBYTlCLGFBQWErQix5QkFBeUIsQ0FBQzdCO0lBRTFELElBQUk0QixlQUFlLE1BQU07UUFDdkIsSUFBTXhCLGtCQUFrQkosVUFBVUssU0FBUyxJQUNyQ0MsMkJBQTJCQyxJQUFBQSxZQUFJLEVBQUNYLG1CQUFtQlMsU0FBUyxLQUFNLEdBQUc7UUFFM0VQLGFBQWFVLEtBQUssQ0FBQyxBQUFDLGlCQUEyRUosT0FBM0RFLDBCQUF5QixvQ0FBa0QsT0FBaEJGLGlCQUFnQjtRQUUvRyxJQUFNSyxZQUFZYixtQkFBbUJjLFlBQVksSUFDM0NDLG1CQUFtQmlCLFdBQVdoQixjQUFjLENBQUNILFdBQVdYO1FBRTlENkIsd0JBQXdCaEIsa0JBQWtCLEdBQUc7UUFFN0MsSUFBSWdCLHVCQUF1QjtZQUN6QjdCLGFBQWFlLEtBQUssQ0FBQyxBQUFDLG1CQUE2RVQsT0FBM0RFLDBCQUF5QixvQ0FBa0QsT0FBaEJGLGlCQUFnQjtRQUNuSDtJQUNGO0lBRUEsT0FBT3VCO0FBQ1Q7QUFFQSxTQUFTRyxvQkFBb0JsQyxrQkFBa0IsRUFBRUMsYUFBYSxFQUFFQyxZQUFZO0lBQzFFLElBQUlpQyx1QkFBdUI7SUFFM0IsSUFBTS9CLFlBQVlKLG1CQUFtQkssWUFBWSxJQUMzQytCLG1CQUFtQmhDLFVBQVVpQyxtQkFBbUIsSUFDaERDLG1CQUFtQkMsSUFBQUEsMENBQW9DLEVBQUNILG1CQUN4REksZUFBZXRDLGFBQWF1QyxrQ0FBa0MsQ0FBQ0g7SUFFckUsSUFBSUUsaUJBQWlCLE1BQU07UUFDekIsSUFBTTNCLFlBQVliLG1CQUFtQmMsWUFBWSxJQUMzQzRCLGtCQUFrQjdCLFVBQVVKLFNBQVMsSUFDckNELGtCQUFrQkosVUFBVUssU0FBUztRQUUzQ1AsYUFBYVUsS0FBSyxDQUFDLEFBQUMsaUJBQWtFSixPQUFsRGtDLGlCQUFnQixvQ0FBa0QsT0FBaEJsQyxpQkFBZ0I7UUFFdEcsSUFBTTRCLG9CQUFtQkksYUFBYUcsT0FBTyxJQUN2Q0MsNEJBQTRCeEMsVUFBVWlDLG1CQUFtQixJQUN6RFEsb0JBQW9CRCwyQkFDcEJFLG9CQUFvQlYsbUJBQ3BCVyxzQkFBc0JDLHFCQUFtQixDQUFDQyxLQUFLLENBQUNKLG1CQUFtQkMsbUJBQW1CNUM7UUFFNUYsSUFBSTZDLHFCQUFxQjtZQUN2QixJQUFNRyxnQkFBZ0JyQyxVQUFVOEIsT0FBTyxJQUNqQ1Asb0JBQW1CUyxtQkFDbkJNLHVDQUF1Q0MsaUNBQW9DLENBQUNDLG9DQUFvQyxDQUFDSCxlQUFlZCxtQkFBa0JrQixlQUFlQyxnQkFDaktDLGVBQWVMLHNDQUNmRyxnQkFBZ0JwRCxjQUNoQnFELGdCQUFnQnJELGNBQWMsR0FBRztZQUV2Q0QsY0FBY3dELGVBQWUsQ0FBQ0QsY0FBY0YsZUFBZUM7WUFFM0RwQix1QkFBdUI7UUFDekI7UUFFQSxJQUFJQSxzQkFBc0I7WUFDeEJqQyxhQUFhZSxLQUFLLENBQUMsQUFBQyxtQkFBb0VULE9BQWxEa0MsaUJBQWdCLG9DQUFrRCxPQUFoQmxDLGlCQUFnQjtRQUMxRztJQUNGO0lBRUEsT0FBTzJCO0FBQ1Q7QUFFQSxJQUFNdUIsY0FBYztJQUNsQjNEO0lBQ0FtQjtJQUNBSTtJQUNBSTtJQUNBSTtJQUNBSTtDQUNEO0lBRUQsV0FBZXdCIn0=
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
+ var _equality = /*#__PURE__*/ _interop_require_default(require("../../equality"));
11
12
  var _frame = /*#__PURE__*/ _interop_require_default(require("../../verify/frame"));
12
- var _equality = /*#__PURE__*/ _interop_require_default(require("../../verify/equality"));
13
13
  var _judgement = /*#__PURE__*/ _interop_require_default(require("../../verify/judgement"));
14
14
  var _declaration = /*#__PURE__*/ _interop_require_default(require("../../verify/declaration"));
15
15
  var _type = /*#__PURE__*/ _interop_require_default(require("../../verify/assertion/type"));
@@ -45,7 +45,7 @@ function verifyAsEquality(statement, assignments, stated, localContext) {
45
45
  if (equalityNode !== null) {
46
46
  var statementString = statement.getString();
47
47
  localContext.trace("Verifying the '".concat(statementString, "' statement as an equality..."));
48
- var equalityVerified = (0, _equality.default)(equalityNode, assignments, stated, localContext);
48
+ var equality = _equality.default.fromEqualityNode(equalityNode, localContext), equalityVerified = equality.verify(assignments, stated, localContext);
49
49
  verifiedAsEquality = equalityVerified; ///
50
50
  if (verifiedAsEquality) {
51
51
  localContext.debug("...verified the '".concat(statementString, "' statement as an equality."));
@@ -172,8 +172,7 @@ function unifyMetavariable(metavariableNode, localContext) {
172
172
  var metavariableNodeA = metavariableNode; ///
173
173
  metavariableNode = metavariable.getNode();
174
174
  var metavariableNodeB = metavariableNode; ///
175
- var unified = _metavariable.default.unify(metavariableNodeA, metavariableNodeB, localContext);
176
- metavariableUnified = unified; ///
175
+ metavariableUnified = _metavariable.default.unify(metavariableNodeA, metavariableNodeB, localContext);
177
176
  }
178
177
  if (metavariableUnified) {
179
178
  localContext.debug("...unified the '".concat(metavariableString, "' metavariable."));
@@ -181,4 +180,4 @@ function unifyMetavariable(metavariableNode, localContext) {
181
180
  return metavariableUnified;
182
181
  }
183
182
 
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taXhpbnMvc3RhdGVtZW50L3ZlcmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeUZyYW1lIGZyb20gXCIuLi8uLi92ZXJpZnkvZnJhbWVcIjtcbmltcG9ydCB2ZXJpZnlFcXVhbGl0eSBmcm9tIFwiLi4vLi4vdmVyaWZ5L2VxdWFsaXR5XCI7XG5pbXBvcnQgdmVyaWZ5SnVkZ2VtZW50IGZyb20gXCIuLi8uLi92ZXJpZnkvanVkZ2VtZW50XCI7XG5pbXBvcnQgdmVyaWZ5RGVjbGFyYXRpb24gZnJvbSBcIi4uLy4uL3ZlcmlmeS9kZWNsYXJhdGlvblwiO1xuaW1wb3J0IHZlcmlmeVR5cGVBc3NlcnRpb24gZnJvbSBcIi4uLy4uL3ZlcmlmeS9hc3NlcnRpb24vdHlwZVwiO1xuaW1wb3J0IG1ldGF2YXJpYWJsZVVuaWZpZXIgZnJvbSBcIi4uLy4uL3VuaWZpZXIvbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgdmVyaWZ5RGVmaW5lZEFzc2VydGlvbiBmcm9tIFwiLi4vLi4vdmVyaWZ5L2Fzc2VydGlvbi9kZWZpbmVkXCI7XG5pbXBvcnQgdmVyaWZ5U3VicHJvb2ZBc3NlcnRpb24gZnJvbSBcIi4uLy4uL3ZlcmlmeS9hc3NlcnRpb24vc3VicHJvb2ZcIjtcbmltcG9ydCB2ZXJpZnlDb250YWluZWRBc3NlcnRpb24gZnJvbSBcIi4uLy4uL3ZlcmlmeS9hc3NlcnRpb24vY29udGFpbmVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCBmcmFtZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvZnJhbWUhXCIpLFxuICAgICAgZXF1YWxpdHlOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2VxdWFsaXR5IVwiKSxcbiAgICAgIGp1ZGdlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvanVkZ2VtZW50IVwiKSxcbiAgICAgIGRlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9kZWNsYXJhdGlvbiFcIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L21ldGF2YXJpYWJsZSFcIiksXG4gICAgICB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90eXBlQXNzZXJ0aW9uIVwiKSxcbiAgICAgIGRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2RlZmluZWRBc3NlcnRpb24hXCIpLFxuICAgICAgc3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L3N1YnByb29mQXNzZXJ0aW9uIVwiKSxcbiAgICAgIGNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvY29udGFpbmVkQXNzZXJ0aW9uIVwiKTtcblxuZnVuY3Rpb24gdmVyaWZ5QXNNZXRhdmFyaWFibGUoc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVkQXNNZXRhdmFyaWFibGUgPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAobWV0YXZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBtZXRhdmFyaWFibGUuLi5gKTtcblxuICAgIGNvbnN0IG1ldGF2YXJpYWJsZVVuaWZpZWQgPSB1bmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGVOb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc01ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZVVuaWZpZWQ7ICAvLy9cblxuICAgIGlmICh2ZXJpZmllZEFzTWV0YXZhcmlhYmxlKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBtZXRhdmFyaWFibGUuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNNZXRhdmFyaWFibGU7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFzRXF1YWxpdHkoc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVkQXNFcXVhbGl0eSA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBlcXVhbGl0eU5vZGUgPSBlcXVhbGl0eU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZXF1YWxpdHlOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhbiBlcXVhbGl0eS4uLmApO1xuXG4gICAgY29uc3QgZXF1YWxpdHlWZXJpZmllZCA9IHZlcmlmeUVxdWFsaXR5KGVxdWFsaXR5Tm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNFcXVhbGl0eSA9IGVxdWFsaXR5VmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkQXNFcXVhbGl0eSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5LmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzRXF1YWxpdHk7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFzRnJhbWUoc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVkQXNGcmFtZSA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBmcmFtZU5vZGUgPSBmcmFtZU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZnJhbWVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGZyYW1lLi4uYCk7XG5cbiAgICBjb25zdCBmcmFtZVZlcmlmaWVkID0gdmVyaWZ5RnJhbWUoZnJhbWVOb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc0ZyYW1lID0gZnJhbWVWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc0ZyYW1lKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBmcmFtZS5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZWRBc0ZyYW1lO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0p1ZGdlbWVudChzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdmVyaWZpZWRBc0p1ZGdlbWVudCA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBqdWRnZW1lbnROb2RlID0ganVkZ2VtZW50Tm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChqdWRnZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGp1ZGdlbWVudC4uLmApO1xuXG4gICAgY29uc3QganVkZ2VtZW50VmVyaWZpZWQgPSB2ZXJpZnlKdWRnZW1lbnQoanVkZ2VtZW50Tm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNKdWRnZW1lbnQgPSBqdWRnZW1lbnRWZXJpZmllZDsgIC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkQXNKdWRnZW1lbnQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGp1ZGdlbWVudC5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZWRBc0p1ZGdlbWVudDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNEZWNsYXJhdGlvbihzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdmVyaWZpZWRBc0RlY2xhcmF0aW9uID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGRlY2xhcmF0aW9uTm9kZSA9IGRlY2xhcmF0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChkZWNsYXJhdGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVjbGFyYXRpb24uLi5gKTtcblxuICAgIGNvbnN0IGRlY2xhcmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlEZWNsYXJhdGlvbihkZWNsYXJhdGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICB2ZXJpZmllZEFzRGVjbGFyYXRpb24gPSBkZWNsYXJhdGlvblZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEFzRGVjbGFyYXRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlY2xhcmF0aW9uLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzRGVjbGFyYXRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFzVHlwZUFzc2VydGlvbihzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgdHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gdHlwZUFzc2VydGlvblZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEFzVHlwZUFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0RlZmluZWRBc3NlcnRpb24oc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGRlZmluZWRBc3NlcnRpb25Ob2RlID0gZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZGVmaW5lZEFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uLi5gKTtcblxuICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeURlZmluZWRBc3NlcnRpb24oZGVmaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICB2ZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNTdWJwcm9vZkFzc2VydGlvbihzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdmVyaWZpZWRBc1N1YnByb29mQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHN1YnByb29mQXNzZXJ0aW9uTm9kZSA9IHN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChzdWJwcm9vZkFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgc3VicHJvb2YgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBzdWJwcm9vZkFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5U3VicHJvb2ZBc3NlcnRpb24oc3VicHJvb2ZBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc1N1YnByb29mQXNzZXJ0aW9uID0gc3VicHJvb2ZBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc1N1YnByb29mQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBzdWJwcm9vZiBhc3NlcnRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNTdWJwcm9vZkFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNDb250YWluZWRBc3NlcnRpb24oc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSA9IGNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiA9IGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uO1xufVxuXG5jb25zdCB2ZXJpZnlNaXhpbnMgPSBbXG4gIHZlcmlmeUFzTWV0YXZhcmlhYmxlLFxuICB2ZXJpZnlBc0VxdWFsaXR5LFxuICB2ZXJpZnlBc0ZyYW1lLFxuICB2ZXJpZnlBc0p1ZGdlbWVudCxcbiAgdmVyaWZ5QXNEZWNsYXJhdGlvbixcbiAgdmVyaWZ5QXNUeXBlQXNzZXJ0aW9uLFxuICB2ZXJpZnlBc0RlZmluZWRBc3NlcnRpb24sXG4gIHZlcmlmeUFzU3VicHJvb2ZBc3NlcnRpb24sXG4gIHZlcmlmeUFzQ29udGFpbmVkQXNzZXJ0aW9uXG5dO1xuXG5leHBvcnQgZGVmYXVsdCB2ZXJpZnlNaXhpbnM7XG5cbmZ1bmN0aW9uIHVuaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZU5vZGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVW5pZmllZDtcblxuICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS4uLmApO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlQSA9IG1ldGF2YXJpYWJsZU5vZGU7IC8vL1xuXG4gICAgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZS5nZXROb2RlKCk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlQiA9IG1ldGF2YXJpYWJsZU5vZGU7IC8vL1xuXG4gICAgY29uc3QgdW5pZmllZCA9IG1ldGF2YXJpYWJsZVVuaWZpZXIudW5pZnkobWV0YXZhcmlhYmxlTm9kZUEsIG1ldGF2YXJpYWJsZU5vZGVCLCBsb2NhbENvbnRleHQpO1xuXG4gICAgbWV0YXZhcmlhYmxlVW5pZmllZCA9IHVuaWZpZWQ7ICAvLy9cbiAgfVxuXG4gIGlmIChtZXRhdmFyaWFibGVVbmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJmcmFtZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImVxdWFsaXR5Tm9kZVF1ZXJ5IiwianVkZ2VtZW50Tm9kZVF1ZXJ5IiwiZGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJ0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwiZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeSIsInN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwidmVyaWZ5QXNNZXRhdmFyaWFibGUiLCJzdGF0ZW1lbnQiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsImxvY2FsQ29udGV4dCIsInZlcmlmaWVkQXNNZXRhdmFyaWFibGUiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0Tm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsIm1ldGF2YXJpYWJsZVVuaWZpZWQiLCJ1bmlmeU1ldGF2YXJpYWJsZSIsImRlYnVnIiwidmVyaWZ5QXNFcXVhbGl0eSIsInZlcmlmaWVkQXNFcXVhbGl0eSIsImVxdWFsaXR5Tm9kZSIsImVxdWFsaXR5VmVyaWZpZWQiLCJ2ZXJpZnlFcXVhbGl0eSIsInZlcmlmeUFzRnJhbWUiLCJ2ZXJpZmllZEFzRnJhbWUiLCJmcmFtZU5vZGUiLCJmcmFtZVZlcmlmaWVkIiwidmVyaWZ5RnJhbWUiLCJ2ZXJpZnlBc0p1ZGdlbWVudCIsInZlcmlmaWVkQXNKdWRnZW1lbnQiLCJqdWRnZW1lbnROb2RlIiwianVkZ2VtZW50VmVyaWZpZWQiLCJ2ZXJpZnlKdWRnZW1lbnQiLCJ2ZXJpZnlBc0RlY2xhcmF0aW9uIiwidmVyaWZpZWRBc0RlY2xhcmF0aW9uIiwiZGVjbGFyYXRpb25Ob2RlIiwiZGVjbGFyYXRpb25WZXJpZmllZCIsInZlcmlmeURlY2xhcmF0aW9uIiwidmVyaWZ5QXNUeXBlQXNzZXJ0aW9uIiwidmVyaWZpZWRBc1R5cGVBc3NlcnRpb24iLCJ0eXBlQXNzZXJ0aW9uTm9kZSIsInR5cGVBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeVR5cGVBc3NlcnRpb24iLCJ2ZXJpZnlBc0RlZmluZWRBc3NlcnRpb24iLCJ2ZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiIsImRlZmluZWRBc3NlcnRpb25Ob2RlIiwiZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5RGVmaW5lZEFzc2VydGlvbiIsInZlcmlmeUFzU3VicHJvb2ZBc3NlcnRpb24iLCJ2ZXJpZmllZEFzU3VicHJvb2ZBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJzdWJwcm9vZkFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5U3VicHJvb2ZBc3NlcnRpb24iLCJ2ZXJpZnlBc0NvbnRhaW5lZEFzc2VydGlvbiIsInZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24iLCJjb250YWluZWRBc3NlcnRpb25Ob2RlIiwiY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlDb250YWluZWRBc3NlcnRpb24iLCJ2ZXJpZnlNaXhpbnMiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJtZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlIiwiZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZU5vZGVBIiwibWV0YXZhcmlhYmxlTm9kZUIiLCJ1bmlmaWVkIiwibWV0YXZhcmlhYmxlVW5pZmllciIsInVuaWZ5Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFvUEE7OztlQUFBOzs7NERBbFB3QjsrREFDRztnRUFDQztrRUFDRTsyREFDRTttRUFDQTs4REFDRzsrREFDQztnRUFDQztxQkFFWDtvQkFDMkI7Ozs7OztBQUVyRCxJQUFNQSxpQkFBaUJDLElBQUFBLGdCQUFTLEVBQUMsc0JBQzNCQyxvQkFBb0JELElBQUFBLGdCQUFTLEVBQUMseUJBQzlCRSxxQkFBcUJGLElBQUFBLGdCQUFTLEVBQUMsMEJBQy9CRyx1QkFBdUJILElBQUFBLGdCQUFTLEVBQUMsNEJBQ2pDSSx3QkFBd0JKLElBQUFBLGdCQUFTLEVBQUMsNkJBQ2xDSyx5QkFBeUJMLElBQUFBLGdCQUFTLEVBQUMsOEJBQ25DTSw0QkFBNEJOLElBQUFBLGdCQUFTLEVBQUMsaUNBQ3RDTyw2QkFBNkJQLElBQUFBLGdCQUFTLEVBQUMsa0NBQ3ZDUSw4QkFBOEJSLElBQUFBLGdCQUFTLEVBQUM7QUFFOUMsU0FBU1MscUJBQXFCQyxTQUFTLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxZQUFZO0lBQ3hF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
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taXhpbnMvc3RhdGVtZW50L3ZlcmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEVxdWFsaXR5IGZyb20gXCIuLi8uLi9lcXVhbGl0eVwiO1xuXG5pbXBvcnQgdmVyaWZ5RnJhbWUgZnJvbSBcIi4uLy4uL3ZlcmlmeS9mcmFtZVwiO1xuaW1wb3J0IHZlcmlmeUp1ZGdlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L2p1ZGdlbWVudFwiO1xuaW1wb3J0IHZlcmlmeURlY2xhcmF0aW9uIGZyb20gXCIuLi8uLi92ZXJpZnkvZGVjbGFyYXRpb25cIjtcbmltcG9ydCB2ZXJpZnlUeXBlQXNzZXJ0aW9uIGZyb20gXCIuLi8uLi92ZXJpZnkvYXNzZXJ0aW9uL3R5cGVcIjtcbmltcG9ydCBtZXRhdmFyaWFibGVVbmlmaWVyIGZyb20gXCIuLi8uLi91bmlmaWVyL21ldGF2YXJpYWJsZVwiO1xuaW1wb3J0IHZlcmlmeURlZmluZWRBc3NlcnRpb24gZnJvbSBcIi4uLy4uL3ZlcmlmeS9hc3NlcnRpb24vZGVmaW5lZFwiO1xuaW1wb3J0IHZlcmlmeVN1YnByb29mQXNzZXJ0aW9uIGZyb20gXCIuLi8uLi92ZXJpZnkvYXNzZXJ0aW9uL3N1YnByb29mXCI7XG5pbXBvcnQgdmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uIGZyb20gXCIuLi8uLi92ZXJpZnkvYXNzZXJ0aW9uL2NvbnRhaW5lZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL25hbWVcIjtcblxuY29uc3QgZnJhbWVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2ZyYW1lIVwiKSxcbiAgICAgIGVxdWFsaXR5Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9lcXVhbGl0eSFcIiksXG4gICAgICBqdWRnZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2p1ZGdlbWVudCFcIiksXG4gICAgICBkZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvZGVjbGFyYXRpb24hXCIpLFxuICAgICAgbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9tZXRhdmFyaWFibGUhXCIpLFxuICAgICAgdHlwZUFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvdHlwZUFzc2VydGlvbiFcIiksXG4gICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9kZWZpbmVkQXNzZXJ0aW9uIVwiKSxcbiAgICAgIHN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9zdWJwcm9vZkFzc2VydGlvbiFcIiksXG4gICAgICBjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2NvbnRhaW5lZEFzc2VydGlvbiFcIik7XG5cbmZ1bmN0aW9uIHZlcmlmeUFzTWV0YXZhcmlhYmxlKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzTWV0YXZhcmlhYmxlID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgbWV0YXZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVVbmlmaWVkID0gdW5pZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNNZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGVVbmlmaWVkOyAgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc01ldGF2YXJpYWJsZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgbWV0YXZhcmlhYmxlLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzTWV0YXZhcmlhYmxlO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0VxdWFsaXR5KHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzRXF1YWxpdHkgPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZXF1YWxpdHlOb2RlID0gZXF1YWxpdHlOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGVxdWFsaXR5Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuLi5gKTtcblxuICAgIGNvbnN0IGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbUVxdWFsaXR5Tm9kZShlcXVhbGl0eU5vZGUsIGxvY2FsQ29udGV4dCksXG4gICAgICAgICAgZXF1YWxpdHlWZXJpZmllZCA9IGVxdWFsaXR5LnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc0VxdWFsaXR5ID0gZXF1YWxpdHlWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc0VxdWFsaXR5KSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNFcXVhbGl0eTtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNGcmFtZShzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdmVyaWZpZWRBc0ZyYW1lID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGZyYW1lTm9kZSA9IGZyYW1lTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChmcmFtZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZnJhbWUuLi5gKTtcblxuICAgIGNvbnN0IGZyYW1lVmVyaWZpZWQgPSB2ZXJpZnlGcmFtZShmcmFtZU5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICB2ZXJpZmllZEFzRnJhbWUgPSBmcmFtZVZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEFzRnJhbWUpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGZyYW1lLmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzRnJhbWU7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFzSnVkZ2VtZW50KHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzSnVkZ2VtZW50ID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGp1ZGdlbWVudE5vZGUgPSBqdWRnZW1lbnROb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGp1ZGdlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEganVkZ2VtZW50Li4uYCk7XG5cbiAgICBjb25zdCBqdWRnZW1lbnRWZXJpZmllZCA9IHZlcmlmeUp1ZGdlbWVudChqdWRnZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc0p1ZGdlbWVudCA9IGp1ZGdlbWVudFZlcmlmaWVkOyAgLy8vXG5cbiAgICBpZiAodmVyaWZpZWRBc0p1ZGdlbWVudCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEganVkZ2VtZW50LmApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2ZXJpZmllZEFzSnVkZ2VtZW50O1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0RlY2xhcmF0aW9uKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzRGVjbGFyYXRpb24gPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZGVjbGFyYXRpb25Ob2RlID0gZGVjbGFyYXRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGRlY2xhcmF0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWNsYXJhdGlvbi4uLmApO1xuXG4gICAgY29uc3QgZGVjbGFyYXRpb25WZXJpZmllZCA9IHZlcmlmeURlY2xhcmF0aW9uKGRlY2xhcmF0aW9uTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNEZWNsYXJhdGlvbiA9IGRlY2xhcmF0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkQXNEZWNsYXJhdGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVjbGFyYXRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNEZWNsYXJhdGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICB0eXBlQXNzZXJ0aW9uTm9kZSA9IHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKHR5cGVBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZWRBc1R5cGVBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeUFzRGVmaW5lZEFzc2VydGlvbihzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZGVmaW5lZEFzc2VydGlvbk5vZGUgPSBkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChkZWZpbmVkQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5RGVmaW5lZEFzc2VydGlvbihkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIHZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uID0gZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc1N1YnByb29mQXNzZXJ0aW9uKHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCB2ZXJpZmllZEFzU3VicHJvb2ZBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gc3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKHN1YnByb29mQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBzdWJwcm9vZiBhc3NlcnRpb24uLi5gKTtcblxuICAgIGNvbnN0IHN1YnByb29mQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlTdWJwcm9vZkFzc2VydGlvbihzdWJwcm9vZkFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICB2ZXJpZmllZEFzU3VicHJvb2ZBc3NlcnRpb24gPSBzdWJwcm9vZkFzc2VydGlvblZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEFzU3VicHJvb2ZBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHN1YnByb29mIGFzc2VydGlvbi5gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmVyaWZpZWRBc1N1YnByb29mQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBc0NvbnRhaW5lZEFzc2VydGlvbihzdGF0ZW1lbnQsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgdmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBjb250YWluZWRBc3NlcnRpb25Ob2RlID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChjb250YWluZWRBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGNvbnRhaW5lZCBhc3NlcnRpb24uLi5gKTtcblxuICAgIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICB2ZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uID0gY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGNvbnRhaW5lZCBhc3NlcnRpb24uYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb247XG59XG5cbmNvbnN0IHZlcmlmeU1peGlucyA9IFtcbiAgdmVyaWZ5QXNNZXRhdmFyaWFibGUsXG4gIHZlcmlmeUFzRXF1YWxpdHksXG4gIHZlcmlmeUFzRnJhbWUsXG4gIHZlcmlmeUFzSnVkZ2VtZW50LFxuICB2ZXJpZnlBc0RlY2xhcmF0aW9uLFxuICB2ZXJpZnlBc1R5cGVBc3NlcnRpb24sXG4gIHZlcmlmeUFzRGVmaW5lZEFzc2VydGlvbixcbiAgdmVyaWZ5QXNTdWJwcm9vZkFzc2VydGlvbixcbiAgdmVyaWZ5QXNDb250YWluZWRBc3NlcnRpb25cbl07XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeU1peGlucztcblxuZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVBID0gbWV0YXZhcmlhYmxlTm9kZTsgLy8vXG5cbiAgICBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlLmdldE5vZGUoKTtcblxuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVCID0gbWV0YXZhcmlhYmxlTm9kZTsgLy8vXG5cbiAgICBtZXRhdmFyaWFibGVVbmlmaWVkID0gbWV0YXZhcmlhYmxlVW5pZmllci51bmlmeShtZXRhdmFyaWFibGVOb2RlQSwgbWV0YXZhcmlhYmxlTm9kZUIsIGxvY2FsQ29udGV4dCk7XG4gIH1cblxuICBpZiAobWV0YXZhcmlhYmxlVW5pZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLmApO1xuICB9XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsiZnJhbWVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJlcXVhbGl0eU5vZGVRdWVyeSIsImp1ZGdlbWVudE5vZGVRdWVyeSIsImRlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwidHlwZUFzc2VydGlvbk5vZGVRdWVyeSIsImRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkiLCJzdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSIsImNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeSIsInZlcmlmeUFzTWV0YXZhcmlhYmxlIiwic3RhdGVtZW50IiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJsb2NhbENvbnRleHQiLCJ2ZXJpZmllZEFzTWV0YXZhcmlhYmxlIiwic3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwic3RhdGVtZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJtZXRhdmFyaWFibGVVbmlmaWVkIiwidW5pZnlNZXRhdmFyaWFibGUiLCJkZWJ1ZyIsInZlcmlmeUFzRXF1YWxpdHkiLCJ2ZXJpZmllZEFzRXF1YWxpdHkiLCJlcXVhbGl0eU5vZGUiLCJlcXVhbGl0eSIsIkVxdWFsaXR5IiwiZnJvbUVxdWFsaXR5Tm9kZSIsImVxdWFsaXR5VmVyaWZpZWQiLCJ2ZXJpZnkiLCJ2ZXJpZnlBc0ZyYW1lIiwidmVyaWZpZWRBc0ZyYW1lIiwiZnJhbWVOb2RlIiwiZnJhbWVWZXJpZmllZCIsInZlcmlmeUZyYW1lIiwidmVyaWZ5QXNKdWRnZW1lbnQiLCJ2ZXJpZmllZEFzSnVkZ2VtZW50IiwianVkZ2VtZW50Tm9kZSIsImp1ZGdlbWVudFZlcmlmaWVkIiwidmVyaWZ5SnVkZ2VtZW50IiwidmVyaWZ5QXNEZWNsYXJhdGlvbiIsInZlcmlmaWVkQXNEZWNsYXJhdGlvbiIsImRlY2xhcmF0aW9uTm9kZSIsImRlY2xhcmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlEZWNsYXJhdGlvbiIsInZlcmlmeUFzVHlwZUFzc2VydGlvbiIsInZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uIiwidHlwZUFzc2VydGlvbk5vZGUiLCJ0eXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uIiwidmVyaWZ5QXNEZWZpbmVkQXNzZXJ0aW9uIiwidmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uTm9kZSIsImRlZmluZWRBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeURlZmluZWRBc3NlcnRpb24iLCJ2ZXJpZnlBc1N1YnByb29mQXNzZXJ0aW9uIiwidmVyaWZpZWRBc1N1YnByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwic3VicHJvb2ZBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeVN1YnByb29mQXNzZXJ0aW9uIiwidmVyaWZ5QXNDb250YWluZWRBc3NlcnRpb24iLCJ2ZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5TWl4aW5zIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwibWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOb2RlQSIsIm1ldGF2YXJpYWJsZU5vZGVCIiwibWV0YXZhcmlhYmxlVW5pZmllciIsInVuaWZ5Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFzUEE7OztlQUFBOzs7K0RBcFBxQjs0REFFRztnRUFDSTtrRUFDRTsyREFDRTttRUFDQTs4REFDRzsrREFDQztnRUFDQztxQkFFWDtvQkFDMkI7Ozs7OztBQUVyRCxJQUFNQSxpQkFBaUJDLElBQUFBLGdCQUFTLEVBQUMsc0JBQzNCQyxvQkFBb0JELElBQUFBLGdCQUFTLEVBQUMseUJBQzlCRSxxQkFBcUJGLElBQUFBLGdCQUFTLEVBQUMsMEJBQy9CRyx1QkFBdUJILElBQUFBLGdCQUFTLEVBQUMsNEJBQ2pDSSx3QkFBd0JKLElBQUFBLGdCQUFTLEVBQUMsNkJBQ2xDSyx5QkFBeUJMLElBQUFBLGdCQUFTLEVBQUMsOEJBQ25DTSw0QkFBNEJOLElBQUFBLGdCQUFTLEVBQUMsaUNBQ3RDTyw2QkFBNkJQLElBQUFBLGdCQUFTLEVBQUMsa0NBQ3ZDUSw4QkFBOEJSLElBQUFBLGdCQUFTLEVBQUM7QUFFOUMsU0FBU1MscUJBQXFCQyxTQUFT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
@@ -0,0 +1,82 @@
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 _default;
9
+ }
10
+ });
11
+ var _shim = /*#__PURE__*/ _interop_require_default(require("../../shim"));
12
+ var _bracketed = /*#__PURE__*/ _interop_require_default(require("../../constructor/bracketed"));
13
+ var _termWithConstructor = /*#__PURE__*/ _interop_require_default(require("../../unifier/termWithConstructor"));
14
+ var _query = require("../../utilities/query");
15
+ function _interop_require_default(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
20
+ var termNodeQuery = (0, _query.nodeQuery)("/term/argument/term");
21
+ function unifyTermWithBracketedConstructor(term, localContext, verifyAhead) {
22
+ var termUnifiedWithBracketedConstructor;
23
+ var termString = term.getString();
24
+ localContext.trace("Unifying the '".concat(termString, "' term with the bracketed constructor..."), term);
25
+ var bracketedConstructor = _bracketed.default.fromNothing();
26
+ termUnifiedWithBracketedConstructor = unifyTermWithConstructor(term, bracketedConstructor, localContext, function() {
27
+ var verifiedAhead = false;
28
+ var bracketedTerm = term, bracketedTermNode = bracketedTerm.getNode(), termNode = termNodeQuery(bracketedTermNode); ///
29
+ if (termNode !== null) {
30
+ var Term = _shim.default.Term;
31
+ term = Term.fromTermNode(termNode, localContext);
32
+ var termVVerified = term.verify(localContext, function() {
33
+ var verifiedAhead;
34
+ var type = term.getType();
35
+ bracketedTerm.setType(type);
36
+ verifiedAhead = verifyAhead();
37
+ return verifiedAhead;
38
+ });
39
+ verifiedAhead = termVVerified; ///
40
+ }
41
+ return verifiedAhead;
42
+ });
43
+ if (termUnifiedWithBracketedConstructor) {
44
+ localContext.debug("...unified the '".concat(termString, "' term with the bracketed constructor."), term);
45
+ }
46
+ return termUnifiedWithBracketedConstructor;
47
+ }
48
+ function unifyTermWithConstructors(term, localContext, verifyAhead) {
49
+ var termUnifiedWithConstructors = false;
50
+ var constructors = localContext.getConstructors();
51
+ termUnifiedWithConstructors = constructors.some(function(constructor) {
52
+ var termUnifiedWithConstructor = unifyTermWithConstructor(term, constructor, localContext, verifyAhead);
53
+ if (termUnifiedWithConstructor) {
54
+ return true;
55
+ }
56
+ });
57
+ return termUnifiedWithConstructors;
58
+ }
59
+ var unifyMixins = [
60
+ unifyTermWithBracketedConstructor,
61
+ unifyTermWithConstructors
62
+ ];
63
+ var _default = unifyMixins;
64
+ function unifyTermWithConstructor(term, constructor, localContext, verifyAhead) {
65
+ var termUnifiedWithConstructor = false;
66
+ var termString = term.getString(), constructorString = constructor.getString();
67
+ localContext.trace("Unifying the '".concat(termString, "' term with the '").concat(constructorString, "' constructor..."), term);
68
+ var termNode = term.getNode(), constructorTerm = constructor.getTerm(), constructorTermNode = constructorTerm.getNode(), unified = _termWithConstructor.default.unify(termNode, constructorTermNode, localContext);
69
+ if (unified) {
70
+ var verifiedAhead;
71
+ var type = constructor.getType();
72
+ term.setType(type);
73
+ verifiedAhead = verifyAhead();
74
+ termUnifiedWithConstructor = verifiedAhead; ///
75
+ }
76
+ if (termUnifiedWithConstructor) {
77
+ localContext.debug("...unified the '".concat(termString, "' term with the '").concat(constructorString, "' constructor."), term);
78
+ }
79
+ return termUnifiedWithConstructor;
80
+ }
81
+
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taXhpbnMvdGVybS91bmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uLy4uL3NoaW1cIjtcbmltcG9ydCBCcmFja2V0ZWRDb25zdHJ1Y3RvciBmcm9tIFwiLi4vLi4vY29uc3RydWN0b3IvYnJhY2tldGVkXCI7XG5pbXBvcnQgdGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIgZnJvbSBcIi4uLy4uL3VuaWZpZXIvdGVybVdpdGhDb25zdHJ1Y3RvclwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybS9hcmd1bWVudC90ZXJtXCIpO1xuXG5mdW5jdGlvbiB1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IodGVybSwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVVuaWZpZWRXaXRoQnJhY2tldGVkQ29uc3RydWN0b3I7XG5cbiAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgYnJhY2tldGVkIGNvbnN0cnVjdG9yLi4uYCwgdGVybSk7XG5cbiAgY29uc3QgYnJhY2tldGVkQ29uc3RydWN0b3IgPSBCcmFja2V0ZWRDb25zdHJ1Y3Rvci5mcm9tTm90aGluZygpO1xuXG4gIHRlcm1VbmlmaWVkV2l0aEJyYWNrZXRlZENvbnN0cnVjdG9yID0gdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yKHRlcm0sIGJyYWNrZXRlZENvbnN0cnVjdG9yLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICBsZXQgdmVyaWZpZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgYnJhY2tldGVkVGVybSA9IHRlcm0sIC8vL1xuICAgICAgICAgIGJyYWNrZXRlZFRlcm1Ob2RlID0gYnJhY2tldGVkVGVybS5nZXROb2RlKCksXG4gICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KGJyYWNrZXRlZFRlcm1Ob2RlKTsgLy8vXG5cbiAgICBpZiAodGVybU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHsgVGVybSB9ID0gc2hpbTtcblxuICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBjb25zdCB0ZXJtVlZlcmlmaWVkID0gdGVybS52ZXJpZnkobG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgICAgIGNvbnN0IHR5cGUgPSB0ZXJtLmdldFR5cGUoKTtcblxuICAgICAgICBicmFja2V0ZWRUZXJtLnNldFR5cGUodHlwZSk7XG5cbiAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICB9KTtcblxuICAgICAgdmVyaWZpZWRBaGVhZCA9IHRlcm1WVmVyaWZpZWQ7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgfSk7XG5cbiAgaWYgKHRlcm1VbmlmaWVkV2l0aEJyYWNrZXRlZENvbnN0cnVjdG9yKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSBicmFja2V0ZWQgY29uc3RydWN0b3IuYCwgdGVybSk7XG4gIH1cblxuICByZXR1cm4gdGVybVVuaWZpZWRXaXRoQnJhY2tldGVkQ29uc3RydWN0b3I7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvcnModGVybSwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3JzID0gZmFsc2U7XG5cbiAgY29uc3QgY29uc3RydWN0b3JzID0gbG9jYWxDb250ZXh0LmdldENvbnN0cnVjdG9ycygpO1xuXG4gIHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9ycyA9IGNvbnN0cnVjdG9ycy5zb21lKChjb25zdHJ1Y3RvcikgPT4ge1xuICAgIGNvbnN0IHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yID0gdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yKHRlcm0sIGNvbnN0cnVjdG9yLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgIGlmICh0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3JzO1xufVxuXG5jb25zdCB1bmlmeU1peGlucyA9IFtcbiAgdW5pZnlUZXJtV2l0aEJyYWNrZXRlZENvbnN0cnVjdG9yLFxuICB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzXG5dO1xuXG5leHBvcnQgZGVmYXVsdCB1bmlmeU1peGlucztcblxuZnVuY3Rpb24gdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yKHRlcm0sIGNvbnN0cnVjdG9yLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvciA9IGZhbHNlO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICBjb25zdHJ1Y3RvclN0cmluZyA9IGNvbnN0cnVjdG9yLmdldFN0cmluZygpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke2NvbnN0cnVjdG9yU3RyaW5nfScgY29uc3RydWN0b3IuLi5gLCB0ZXJtKTtcblxuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBjb25zdHJ1Y3RvclRlcm0gPSBjb25zdHJ1Y3Rvci5nZXRUZXJtKCksXG4gICAgICAgIGNvbnN0cnVjdG9yVGVybU5vZGUgPSBjb25zdHJ1Y3RvclRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICB1bmlmaWVkID0gdGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIudW5pZnkodGVybU5vZGUsIGNvbnN0cnVjdG9yVGVybU5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKHVuaWZpZWQpIHtcbiAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgIGNvbnN0IHR5cGUgPSBjb25zdHJ1Y3Rvci5nZXRUeXBlKCk7XG5cbiAgICB0ZXJtLnNldFR5cGUodHlwZSk7XG5cbiAgICB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yID0gdmVyaWZpZWRBaGVhZDsgIC8vL1xuICB9XG5cbiAgaWYgKHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtjb25zdHJ1Y3RvclN0cmluZ30nIGNvbnN0cnVjdG9yLmAsIHRlcm0pO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yO1xufVxuIl0sIm5hbWVzIjpbInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IiLCJ0ZXJtIiwibG9jYWxDb250ZXh0IiwidmVyaWZ5QWhlYWQiLCJ0ZXJtVW5pZmllZFdpdGhCcmFja2V0ZWRDb25zdHJ1Y3RvciIsInRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImJyYWNrZXRlZENvbnN0cnVjdG9yIiwiQnJhY2tldGVkQ29uc3RydWN0b3IiLCJmcm9tTm90aGluZyIsInVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvciIsInZlcmlmaWVkQWhlYWQiLCJicmFja2V0ZWRUZXJtIiwiYnJhY2tldGVkVGVybU5vZGUiLCJnZXROb2RlIiwidGVybU5vZGUiLCJUZXJtIiwic2hpbSIsImZyb21UZXJtTm9kZSIsInRlcm1WVmVyaWZpZWQiLCJ2ZXJpZnkiLCJ0eXBlIiwiZ2V0VHlwZSIsInNldFR5cGUiLCJkZWJ1ZyIsInVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvcnMiLCJ0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJzb21lIiwiY29uc3RydWN0b3IiLCJ0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvciIsInVuaWZ5TWl4aW5zIiwiY29uc3RydWN0b3JTdHJpbmciLCJjb25zdHJ1Y3RvclRlcm0iLCJnZXRUZXJtIiwiY29uc3RydWN0b3JUZXJtTm9kZSIsInVuaWZpZWQiLCJ0ZXJtV2l0aENvbnN0cnVjdG9yVW5pZmllciIsInVuaWZ5Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE2RUE7OztlQUFBOzs7MkRBM0VpQjtnRUFDZ0I7MEVBQ007cUJBRWI7Ozs7OztBQUUxQixJQUFNQSxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUM7QUFFaEMsU0FBU0Msa0NBQWtDQyxJQUFJLEVBQUVDLFlBQVksRUFBRUMsV0FBVztJQUN4RSxJQUFJQztJQUVKLElBQU1DLGFBQWFKLEtBQUtLLFNBQVM7SUFFakNKLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGlCQUEyQixPQUFYRixZQUFXLDZDQUEyQ0o7SUFFMUYsSUFBTU8sdUJBQXVCQyxrQkFBb0IsQ0FBQ0MsV0FBVztJQUU3RE4sc0NBQXNDTyx5QkFBeUJWLE1BQU1PLHNCQUFzQk4sY0FBYztRQUN2RyxJQUFJVSxnQkFBZ0I7UUFFcEIsSUFBTUMsZ0JBQWdCWixNQUNoQmEsb0JBQW9CRCxjQUFjRSxPQUFPLElBQ3pDQyxXQUFXbEIsY0FBY2dCLG9CQUFvQixHQUFHO1FBRXRELElBQUlFLGFBQWEsTUFBTTtZQUNyQixJQUFNLEFBQUVDLE9BQVNDLGFBQUksQ0FBYkQ7WUFFUmhCLE9BQU9nQixLQUFLRSxZQUFZLENBQUNILFVBQVVkO1lBRW5DLElBQU1rQixnQkFBZ0JuQixLQUFLb0IsTUFBTSxDQUFDbkIsY0FBYztnQkFDOUMsSUFBSVU7Z0JBRUosSUFBTVUsT0FBT3JCLEtBQUtzQixPQUFPO2dCQUV6QlYsY0FBY1csT0FBTyxDQUFDRjtnQkFFdEJWLGdCQUFnQlQ7Z0JBRWhCLE9BQU9TO1lBQ1Q7WUFFQUEsZ0JBQWdCUSxlQUFnQixHQUFHO1FBQ3JDO1FBRUEsT0FBT1I7SUFDVDtJQUVBLElBQUlSLHFDQUFxQztRQUN2Q0YsYUFBYXVCLEtBQUssQ0FBQyxBQUFDLG1CQUE2QixPQUFYcEIsWUFBVywyQ0FBeUNKO0lBQzVGO0lBRUEsT0FBT0c7QUFDVDtBQUVBLFNBQVNzQiwwQkFBMEJ6QixJQUFJLEVBQUVDLFlBQVksRUFBRUMsV0FBVztJQUNoRSxJQUFJd0IsOEJBQThCO0lBRWxDLElBQU1DLGVBQWUxQixhQUFhMkIsZUFBZTtJQUVqREYsOEJBQThCQyxhQUFhRSxJQUFJLENBQUMsU0FBQ0M7UUFDL0MsSUFBTUMsNkJBQTZCckIseUJBQXlCVixNQUFNOEIsYUFBYTdCLGNBQWNDO1FBRTdGLElBQUk2Qiw0QkFBNEI7WUFDOUIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPTDtBQUNUO0FBRUEsSUFBTU0sY0FBYztJQUNsQmpDO0lBQ0EwQjtDQUNEO0lBRUQsV0FBZU87QUFFZixTQUFTdEIseUJBQXlCVixJQUFJLEVBQUU4QixXQUFXLEVBQUU3QixZQUFZLEVBQUVDLFdBQVc7SUFDNUUsSUFBSTZCLDZCQUE2QjtJQUVqQyxJQUFNM0IsYUFBYUosS0FBS0ssU0FBUyxJQUMzQjRCLG9CQUFvQkgsWUFBWXpCLFNBQVM7SUFFL0NKLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGlCQUE4QzJCLE9BQTlCN0IsWUFBVyxxQkFBcUMsT0FBbEI2QixtQkFBa0IscUJBQW1CakM7SUFFdkcsSUFBTWUsV0FBV2YsS0FBS2MsT0FBTyxJQUN2Qm9CLGtCQUFrQkosWUFBWUssT0FBTyxJQUNyQ0Msc0JBQXNCRixnQkFBZ0JwQixPQUFPLElBQzdDdUIsVUFBVUMsNEJBQTBCLENBQUNDLEtBQUssQ0FBQ3hCLFVBQVVxQixxQkFBcUJuQztJQUVoRixJQUFJb0MsU0FBUztRQUNYLElBQUkxQjtRQUVKLElBQU1VLE9BQU9TLFlBQVlSLE9BQU87UUFFaEN0QixLQUFLdUIsT0FBTyxDQUFDRjtRQUViVixnQkFBZ0JUO1FBRWhCNkIsNkJBQTZCcEIsZUFBZ0IsR0FBRztJQUNsRDtJQUVBLElBQUlvQiw0QkFBNEI7UUFDOUI5QixhQUFhdUIsS0FBSyxDQUFDLEFBQUMsbUJBQWdEUyxPQUE5QjdCLFlBQVcscUJBQXFDLE9BQWxCNkIsbUJBQWtCLG1CQUFpQmpDO0lBQ3pHO0lBRUEsT0FBTytCO0FBQ1QifQ==
@@ -0,0 +1,44 @@
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 _default;
9
+ }
10
+ });
11
+ var _variable = /*#__PURE__*/ _interop_require_default(require("../../variable"));
12
+ var _query = require("../../utilities/query");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ var variableNodeQuery = (0, _query.nodeQuery)("/term/variable");
19
+ function verifyTermAsVariable(term, localContext, verifyAhead) {
20
+ var termVerifiedAsVariable = false;
21
+ var termNode = term.getNode(), variableNode = variableNodeQuery(termNode);
22
+ if (variableNode !== null) {
23
+ var termString = localContext.nodeAsString(termNode);
24
+ localContext.trace("Verifying the '".concat(termString, "' term as a variable..."), termNode);
25
+ var variable = _variable.default.fromVariableNode(variableNode, localContext), variableVerified = variable.verify(localContext);
26
+ if (variableVerified) {
27
+ var verifiedAhead;
28
+ var type = variable.getType();
29
+ term.setType(type);
30
+ verifiedAhead = verifyAhead();
31
+ termVerifiedAsVariable = verifiedAhead; ///
32
+ }
33
+ if (termVerifiedAsVariable) {
34
+ localContext.debug("...verified the '".concat(termString, "' term as a variable."), termNode);
35
+ }
36
+ }
37
+ return termVerifiedAsVariable;
38
+ }
39
+ var verifyMixins = [
40
+ verifyTermAsVariable
41
+ ];
42
+ var _default = verifyMixins;
43
+
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taXhpbnMvdGVybS92ZXJpZnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vLi4vdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlXCIpO1xuXG5mdW5jdGlvbiB2ZXJpZnlUZXJtQXNWYXJpYWJsZSh0ZXJtLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlID0gZmFsc2U7XG5cbiAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0ZXJtTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXMgYSB2YXJpYWJsZS4uLmAsIHRlcm1Ob2RlKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGxvY2FsQ29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGVWZXJpZmllZCA9IHZhcmlhYmxlLnZlcmlmeShsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgICBjb25zdCB0eXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpO1xuXG4gICAgICB0ZXJtLnNldFR5cGUodHlwZSk7XG5cbiAgICAgIHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlID0gdmVyaWZpZWRBaGVhZDsgLy8vXG4gICAgfVxuXG4gICAgaWYgKHRlcm1WZXJpZmllZEFzVmFyaWFibGUpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgdmFyaWFibGUuYCwgdGVybU5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0ZXJtVmVyaWZpZWRBc1ZhcmlhYmxlO1xufVxuXG5jb25zdCB2ZXJpZnlNaXhpbnMgPSBbXG4gIHZlcmlmeVRlcm1Bc1ZhcmlhYmxlXG5dO1xuXG5leHBvcnQgZGVmYXVsdCB2ZXJpZnlNaXhpbnM7XG4iXSwibmFtZXMiOlsidmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2ZXJpZnlUZXJtQXNWYXJpYWJsZSIsInRlcm0iLCJsb2NhbENvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsInRlcm1WZXJpZmllZEFzVmFyaWFibGUiLCJ0ZXJtTm9kZSIsImdldE5vZGUiLCJ2YXJpYWJsZU5vZGUiLCJ0ZXJtU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ2YXJpYWJsZSIsIlZhcmlhYmxlIiwiZnJvbVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlVmVyaWZpZWQiLCJ2ZXJpZnkiLCJ2ZXJpZmllZEFoZWFkIiwidHlwZSIsImdldFR5cGUiLCJzZXRUeXBlIiwiZGVidWciLCJ2ZXJpZnlNaXhpbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQThDQTs7O2VBQUE7OzsrREE1Q3FCO3FCQUVLOzs7Ozs7QUFFMUIsSUFBTUEsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDO0FBRXBDLFNBQVNDLHFCQUFxQkMsSUFBSSxFQUFFQyxZQUFZLEVBQUVDLFdBQVc7SUFDM0QsSUFBSUMseUJBQXlCO0lBRTdCLElBQU1DLFdBQVdKLEtBQUtLLE9BQU8sSUFDdkJDLGVBQWVULGtCQUFrQk87SUFFdkMsSUFBSUUsaUJBQWlCLE1BQU07UUFDekIsSUFBTUMsYUFBYU4sYUFBYU8sWUFBWSxDQUFDSjtRQUU3Q0gsYUFBYVEsS0FBSyxDQUFDLEFBQUMsa0JBQTRCLE9BQVhGLFlBQVcsNEJBQTBCSDtRQUUxRSxJQUFNTSxXQUFXQyxpQkFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ04sY0FBY0wsZUFDbkRZLG1CQUFtQkgsU0FBU0ksTUFBTSxDQUFDYjtRQUV6QyxJQUFJWSxrQkFBa0I7WUFDcEIsSUFBSUU7WUFFSixJQUFNQyxPQUFPTixTQUFTTyxPQUFPO1lBRTdCakIsS0FBS2tCLE9BQU8sQ0FBQ0Y7WUFFYkQsZ0JBQWdCYjtZQUVoQkMseUJBQXlCWSxlQUFlLEdBQUc7UUFDN0M7UUFFQSxJQUFJWix3QkFBd0I7WUFDMUJGLGFBQWFrQixLQUFLLENBQUMsQUFBQyxvQkFBOEIsT0FBWFosWUFBVywwQkFBd0JIO1FBQzVFO0lBQ0Y7SUFFQSxPQUFPRDtBQUNUO0FBRUEsSUFBTWlCLGVBQWU7SUFDbkJyQjtDQUNEO0lBRUQsV0FBZXFCIn0=
@@ -2,20 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
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
+ bracketedConstructorTermString: function() {
13
+ return bracketedConstructorTermString;
14
+ },
15
+ default: function() {
8
16
  return _default;
9
17
  }
10
18
  });
11
- var _bracketed = /*#__PURE__*/ _interop_require_default(require("../../../tokens/constructorTerm/bracketed"));
19
+ var _typeNames = require("../../../typeNames");
12
20
  var _node = require("../../../utilities/node");
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- var bracketedConstructorTermNode = (0, _node.termNodeFromTermTokens)(_bracketed.default);
21
+ var bracketedConstructorTermString = "(".concat(_typeNames.OBJECT_TYPE_NAME, ")");
22
+ var bracketedConstructorTermNode = (0, _node.termNodeFromTermString)(bracketedConstructorTermString);
19
23
  var _default = bracketedConstructorTermNode;
20
24
 
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ub2RlL3Rlcm0vY29uc3RydWN0b3IvYnJhY2tldGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtVG9rZW5zIGZyb20gXCIuLi8uLi8uLi90b2tlbnMvY29uc3RydWN0b3JUZXJtL2JyYWNrZXRlZFwiO1xuXG5pbXBvcnQgeyB0ZXJtTm9kZUZyb21UZXJtVG9rZW5zIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxpdGllcy9ub2RlXCI7XG5cbmNvbnN0IGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGUgPSB0ZXJtTm9kZUZyb21UZXJtVG9rZW5zKGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybVRva2Vucyk7XG5cbmV4cG9ydCBkZWZhdWx0IGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGU7XG4iXSwibmFtZXMiOlsiYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtTm9kZSIsInRlcm1Ob2RlRnJvbVRlcm1Ub2tlbnMiLCJicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1Ub2tlbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBQTs7O2dFQU4yQztvQkFFSjs7Ozs7O0FBRXZDLElBQU1BLCtCQUErQkMsSUFBQUEsNEJBQXNCLEVBQUNDLGtCQUE4QjtJQUUxRixXQUFlRiJ9
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ub2RlL3Rlcm0vY29uc3RydWN0b3IvYnJhY2tldGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBPQkpFQ1RfVFlQRV9OQU1FIH0gZnJvbSBcIi4uLy4uLy4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdGVybU5vZGVGcm9tVGVybVN0cmluZyB9IGZyb20gXCIuLi8uLi8uLi91dGlsaXRpZXMvbm9kZVwiO1xuXG5leHBvcnQgY29uc3QgYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtU3RyaW5nID0gYCgke09CSkVDVF9UWVBFX05BTUV9KWA7XG5cbmNvbnN0IGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybU5vZGUgPSB0ZXJtTm9kZUZyb21UZXJtU3RyaW5nKGJyYWNrZXRlZENvbnN0cnVjdG9yVGVybVN0cmluZylcblxuZXhwb3J0IGRlZmF1bHQgYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtTm9kZTtcbiJdLCJuYW1lcyI6WyJicmFja2V0ZWRDb25zdHJ1Y3RvclRlcm1TdHJpbmciLCJPQkpFQ1RfVFlQRV9OQU1FIiwiYnJhY2tldGVkQ29uc3RydWN0b3JUZXJtTm9kZSIsInRlcm1Ob2RlRnJvbVRlcm1TdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUthQSw4QkFBOEI7ZUFBOUJBOztJQUliLE9BQTRDO2VBQTVDOzs7eUJBUGlDO29CQUNNO0FBRWhDLElBQU1BLGlDQUFpQyxBQUFDLElBQW9CLE9BQWpCQywyQkFBZ0IsRUFBQztBQUVuRSxJQUFNQywrQkFBK0JDLElBQUFBLDRCQUFzQixFQUFDSDtJQUU1RCxXQUFlRSJ9
package/lib/premise.js CHANGED
@@ -13,10 +13,8 @@ var _local = /*#__PURE__*/ _interop_require_default(require("./context/local"));
13
13
  var _metaLevel = /*#__PURE__*/ _interop_require_default(require("./unifier/metaLevel"));
14
14
  var _subproof = /*#__PURE__*/ _interop_require_default(require("./assertion/subproof"));
15
15
  var _unqualified = /*#__PURE__*/ _interop_require_default(require("./statement/unqualified"));
16
- var _string = require("./utilities/string");
17
16
  var _query = require("./utilities/query");
18
17
  var _assignments = require("./utilities/assignments");
19
- var _node = require("./utilities/node");
20
18
  function _class_call_check(instance, Constructor) {
21
19
  if (!(instance instanceof Constructor)) {
22
20
  throw new TypeError("Cannot call a class as a function");
@@ -123,8 +121,8 @@ var Premise = /*#__PURE__*/ function() {
123
121
  {
124
122
  key: "verify",
125
123
  value: function verify(localContext) {
126
- var verified = false, premiseString = this.getString(); ///
127
- premiseString = (0, _string.trim)(premiseString); ///
124
+ var verified = false;
125
+ var premiseString = this.getString(); ///
128
126
  if (this.unqualifiedStatement !== null) {
129
127
  localContext.trace("Verifying the '".concat(premiseString, "' premise..."));
130
128
  var stated = true, assignments = [], unqualifiedStatementVerified = this.unqualifiedStatement.verify(assignments, stated, localContext);
@@ -176,4 +174,4 @@ var Premise = /*#__PURE__*/ function() {
176
174
  return Premise;
177
175
  }();
178
176
 
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVtaXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgUHJvb2ZTdGVwIGZyb20gXCIuL3Byb29mU3RlcFwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgbWV0YUxldmVsVW5pZmllciBmcm9tIFwiLi91bmlmaWVyL21ldGFMZXZlbFwiO1xuaW1wb3J0IFN1YnByb29mQXNzZXJ0aW9uIGZyb20gXCIuL2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IFVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuL3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuXG5pbXBvcnQgeyB0cmltIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBhc3NpZ25Bc3NpZ25tZW50cyB9IGZyb20gXCIuL3V0aWxpdGllcy9hc3NpZ25tZW50c1wiO1xuaW1wb3J0IHsgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25vZGVcIjtcblxuY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJlbWlzZS91bnF1YWxpZmllZFN0YXRlbWVudFwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUHJlbWlzZSB7XG4gIGNvbnN0cnVjdG9yKGZpbGVDb250ZXh0LCB1bnF1YWxpZmllZFN0YXRlbWVudCkge1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgICB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50ID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dDtcbiAgfVxuXG4gIGdldFVucXVhbGlmaWVkU3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkgeyByZXR1cm4gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC5nZXRTdHJpbmcoKTsgfVxuXG4gIGdldFN0YXRlbWVudCgpIHsgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCk7IH1cblxuICB1bmlmeVByb29mU3RlcChwcm9vZlN0ZXAsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBwcm9vZlN0ZXBVbmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdWJwcm9vZiA9IHByb29mU3RlcC5nZXRTdWJwcm9vZigpLFxuICAgICAgICAgIHN0YXRlbWVudCA9IHByb29mU3RlcC5nZXRTdGF0ZW1lbnQoKTtcblxuICAgIHN1YnN0aXR1dGlvbnMuc25hcHNob3QoKTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmIChzdWJwcm9vZiAhPT0gbnVsbCkge1xuICAgICAgcHJvb2ZTdGVwVW5pZmllZCA9IHRoaXMudW5pZnlTdWJwcm9vZihzdWJwcm9vZiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgcHJvb2ZTdGVwVW5pZmllZCA9IHRoaXMudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpO1xuICAgIH1cblxuICAgIHByb29mU3RlcFVuaWZpZWQgP1xuICAgICAgc3Vic3RpdHV0aW9ucy5jb250aW51ZSgpIDpcbiAgICAgICAgc3Vic3RpdHV0aW9ucy5yb2xsYmFjayhsb2NhbENvbnRleHQpO1xuXG4gICAgcmV0dXJuIHByb29mU3RlcFVuaWZpZWQ7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnRVbmlmaWVkO1xuXG4gICAgY29uc3QgcHJlbWlzZSA9IHRoaXMsIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBwcmVtaXNlU3RhdGVtZW50ID0gcHJlbWlzZS5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBwcmVtaXNlU3RhdGVtZW50U3RyaW5nID0gcHJlbWlzZVN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBwcmVtaXNlJ3MgJyR7cHJlbWlzZVN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC4uLmApO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgcHJlbWlzZVN0YXRlbWVudE5vZGUgPSBwcmVtaXNlU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlQSA9IHByZW1pc2VTdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgbm9kZUIgPSBzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgZmlsZUNvbnRleHRBID0gdGhpcy5maWxlQ29udGV4dCwgIC8vL1xuICAgICAgICAgIGxvY2FsQ29udGV4dEEgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0QSksXG4gICAgICAgICAgbG9jYWxDb250ZXh0QiA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgdW5pZmllZCA9IG1ldGFMZXZlbFVuaWZpZXIudW5pZnkobm9kZUEsIG5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgIHN0YXRlbWVudFVuaWZpZWQgPSB1bmlmaWVkOyAvLy9cblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBwcmVtaXNlJ3MgJyR7cHJlbWlzZVN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VW5pZmllZDtcbiAgfVxuXG4gIHVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBzdWJwcm9vZlVuaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHByZW1pc2UgPSB0aGlzLCAvLy9cbiAgICAgICAgICBzdWJwcm9vZlN0cmluZyA9IHN1YnByb29mLmdldFN0cmluZygpLFxuICAgICAgICAgIHByZW1pc2VTdGF0ZW1lbnQgPSBwcmVtaXNlLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgIHByZW1pc2VTdGF0ZW1lbnRTdHJpbmcgPSBwcmVtaXNlU3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3VicHJvb2ZTdHJpbmd9JyBzdWJwcm9vZiB3aXRoIHRoZSBwcmVtaXNlJ3MgJyR7cHJlbWlzZVN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC4uLmApO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICBzdWJwcm9vZkFzc2VydGlvbiA9IFN1YnByb29mQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIHRoaXMuZmlsZUNvbnRleHQpO1xuXG4gICAgaWYgKHN1YnByb29mQXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgICBzdWJwcm9vZlVuaWZpZWQgPSBzdWJwcm9vZkFzc2VydGlvbi51bmlmeVN1YnByb29mKHN1YnByb29mLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpO1xuICAgIH1cblxuICAgIGlmIChzdWJwcm9vZlVuaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3VicHJvb2ZTdHJpbmd9JyBzdWJwcm9vZiB3aXRoIHRoZSBwcmVtaXNlJ3MgJyR7cHJlbWlzZVN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VicHJvb2ZVbmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5KGxvY2FsQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZCA9IGZhbHNlLFxuICAgICAgICBwcmVtaXNlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBwcmVtaXNlU3RyaW5nID0gdHJpbShwcmVtaXNlU3RyaW5nKTsgIC8vL1xuXG4gICAgaWYgKHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZS4uLmApO1xuXG4gICAgICBjb25zdCBzdGF0ZWQgPSB0cnVlLFxuICAgICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LnZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAodW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBhc3NpZ25tZW50c0Fzc2lnbmVkID0gYXNzaWduQXNzaWdubWVudHMoYXNzaWdubWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKGFzc2lnbm1lbnRzQXNzaWduZWQpIHtcbiAgICAgICAgICBjb25zdCBwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50KHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQpO1xuXG4gICAgICAgICAgbG9jYWxDb250ZXh0LmFkZFByb29mU3RlcChwcm9vZlN0ZXApO1xuXG4gICAgICAgICAgdmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtwcmVtaXNlU3RyaW5nfScgcHJlbWlzZS5gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGBUaGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UgY2Fubm90IGJlIHZlcmlmaWVkIGJlY2F1c2UgaXQgaXMgbm9uc2Vuc2UuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50SlNPTiA9IHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQudG9KU09OKCksXG4gICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgPSB1bnF1YWxpZmllZFN0YXRlbWVudEpTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgeyB1bnF1YWxpZmllZFN0YXRlbWVudCB9ID0ganNvbjtcblxuICAgIGpzb24gPSB1bnF1YWxpZmllZFN0YXRlbWVudDsgIC8vL1xuXG4gICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgPSBVbnF1YWxpZmllZFN0YXRlbWVudC5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICBjb25zdCBwcmVtaXNlID0gbmV3IFByZW1pc2UoZmlsZUNvbnRleHQsIHVucXVhbGlmaWVkU3RhdGVtZW50KTtcblxuICAgIHJldHVybiBwcmVtaXNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21QcmVtaXNlTm9kZShwcmVtaXNlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeShwcmVtaXNlTm9kZSksXG4gICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgPSBVbnF1YWxpZmllZFN0YXRlbWVudC5mcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHByZW1pc2UgPSBuZXcgUHJlbWlzZShmaWxlQ29udGV4dCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnQpO1xuXG4gICAgcmV0dXJuIHByZW1pc2VcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlByZW1pc2UiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImZpbGVDb250ZXh0IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJnZXRGaWxlQ29udGV4dCIsImdldFVucXVhbGlmaWVkU3RhdGVtZW50IiwiZ2V0U3RyaW5nIiwiZ2V0U3RhdGVtZW50IiwidW5pZnlQcm9vZlN0ZXAiLCJwcm9vZlN0ZXAiLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0IiwicHJvb2ZTdGVwVW5pZmllZCIsInN1YnByb29mIiwiZ2V0U3VicHJvb2YiLCJzdGF0ZW1lbnQiLCJzbmFwc2hvdCIsInVuaWZ5U3VicHJvb2YiLCJ1bmlmeVN0YXRlbWVudCIsImNvbnRpbnVlIiwicm9sbGJhY2siLCJzdGF0ZW1lbnRVbmlmaWVkIiwicHJlbWlzZSIsInN0YXRlbWVudFN0cmluZyIsInByZW1pc2VTdGF0ZW1lbnQiLCJwcmVtaXNlU3RhdGVtZW50U3RyaW5nIiwidHJhY2UiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0Tm9kZSIsInByZW1pc2VTdGF0ZW1lbnROb2RlIiwibm9kZUEiLCJub2RlQiIsImZpbGVDb250ZXh0QSIsImxvY2FsQ29udGV4dEEiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJsb2NhbENvbnRleHRCIiwidW5pZmllZCIsIm1ldGFMZXZlbFVuaWZpZXIiLCJ1bmlmeSIsImRlYnVnIiwic3VicHJvb2ZVbmlmaWVkIiwic3VicHJvb2ZTdHJpbmciLCJzdWJwcm9vZkFzc2VydGlvbiIsIlN1YnByb29mQXNzZXJ0aW9uIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJ2ZXJpZnkiLCJ2ZXJpZmllZCIsInByZW1pc2VTdHJpbmciLCJ0cmltIiwic3RhdGVkIiwiYXNzaWdubWVudHMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYXNzaWdubWVudHNBc3NpZ25lZCIsImFzc2lnbkFzc2lnbm1lbnRzIiwiUHJvb2ZTdGVwIiwiZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50IiwiYWRkUHJvb2ZTdGVwIiwidG9KU09OIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRKU09OIiwianNvbiIsImZyb21KU09OIiwiVW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJmcm9tUHJlbWlzZU5vZGUiLCJwcmVtaXNlTm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBZXFCQTs7O2dFQWJDOzREQUNHO2dFQUNJOytEQUNDO2tFQUNHO3NCQUVaO3FCQUNLOzJCQUNRO29CQUNxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV2RSxJQUFNQyxnQ0FBZ0NDLElBQUFBLGdCQUFTLEVBQUM7QUFFakMsSUFBQSxBQUFNRix3QkFBTjthQUFNQSxRQUNQRyxXQUFXLEVBQUVDLG9CQUFvQjtnQ0FEMUJKO1FBRWpCLElBQUksQ0FBQ0csV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLG9CQUFvQixHQUFHQTs7a0JBSFhKOztZQU1uQkssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixXQUFXO1lBQ3pCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixvQkFBb0I7WUFDbEM7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQWMsT0FBTyxJQUFJLENBQUNILG9CQUFvQixDQUFDRyxTQUFTO1lBQUk7OztZQUU1REMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUFpQixPQUFPLElBQUksQ0FBQ0osb0JBQW9CLENBQUNJLFlBQVk7WUFBSTs7O1lBRWxFQyxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUMsU0FBUyxFQUFFQyxhQUFhLEVBQUVDLFlBQVk7Z0JBQ25ELElBQUlDLG1CQUFtQjtnQkFFdkIsSUFBTUMsV0FBV0osVUFBVUssV0FBVyxJQUNoQ0MsWUFBWU4sVUFBVUYsWUFBWTtnQkFFeENHLGNBQWNNLFFBQVE7Z0JBRXRCLElBQUksT0FBTztnQkFDVCxHQUFHO2dCQUNMLE9BQU8sSUFBSUgsYUFBYSxNQUFNO29CQUM1QkQsbUJBQW1CLElBQUksQ0FBQ0ssYUFBYSxDQUFDSixVQUFVSCxlQUFlQztnQkFDakUsT0FBTyxJQUFJSSxjQUFjLE1BQU07b0JBQzdCSCxtQkFBbUIsSUFBSSxDQUFDTSxjQUFjLENBQUNILFdBQVdMLGVBQWVDO2dCQUNuRTtnQkFFQUMsbUJBQ0VGLGNBQWNTLFFBQVEsS0FDcEJULGNBQWNVLFFBQVEsQ0FBQ1Q7Z0JBRTNCLE9BQU9DO1lBQ1Q7OztZQUVBTSxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUgsU0FBUyxFQUFFTCxhQUFhLEVBQUVDLFlBQVk7Z0JBQ25ELElBQUlVO2dCQUVKLElBQU1DLFVBQVUsSUFBSSxFQUNkQyxrQkFBa0JSLFVBQVVULFNBQVMsSUFDckNrQixtQkFBbUJGLFFBQVFmLFlBQVksSUFDdkNrQix5QkFBeUJELGlCQUFpQmxCLFNBQVM7Z0JBRXpESyxhQUFhZSxLQUFLLENBQUMsQUFBQyxpQkFBa0VELE9BQWxERixpQkFBZ0Isb0NBQXlELE9BQXZCRSx3QkFBdUI7Z0JBRTdHLElBQU1FLGdCQUFnQlosVUFBVWEsT0FBTyxJQUNqQ0MsdUJBQXVCTCxpQkFBaUJJLE9BQU8sSUFDL0NFLFFBQVFELHNCQUNSRSxRQUFRSixlQUNSSyxlQUFlLElBQUksQ0FBQzlCLFdBQVcsRUFDL0IrQixnQkFBZ0JDLGNBQVksQ0FBQ0MsZUFBZSxDQUFDSCxlQUM3Q0ksZ0JBQWdCekIsY0FDaEIwQixVQUFVQyxrQkFBZ0IsQ0FBQ0MsS0FBSyxDQUFDVCxPQUFPQyxPQUFPckIsZUFBZXVCLGVBQWVHO2dCQUVuRmYsbUJBQW1CZ0IsU0FBUyxHQUFHO2dCQUUvQixJQUFJaEIsa0JBQWtCO29CQUNwQlYsYUFBYTZCLEtBQUssQ0FBQyxBQUFDLG1CQUFvRWYsT0FBbERGLGlCQUFnQixvQ0FBeUQsT0FBdkJFLHdCQUF1QjtnQkFDakg7Z0JBRUEsT0FBT0o7WUFDVDs7O1lBRUFKLEtBQUFBO21CQUFBQSxTQUFBQSxjQUFjSixRQUFRLEVBQUVILGFBQWEsRUFBRUMsWUFBWTtnQkFDakQsSUFBSThCLGtCQUFrQjtnQkFFdEIsSUFBTW5CLFVBQVUsSUFBSSxFQUNkb0IsaUJBQWlCN0IsU0FBU1AsU0FBUyxJQUNuQ2tCLG1CQUFtQkYsUUFBUWYsWUFBWSxJQUN2Q2tCLHlCQUF5QkQsaUJBQWlCbEIsU0FBUztnQkFFekRLLGFBQWFlLEtBQUssQ0FBQyxBQUFDLGlCQUFnRUQsT0FBaERpQixnQkFBZSxtQ0FBd0QsT0FBdkJqQix3QkFBdUI7Z0JBRTNHLElBQU1WLFlBQVksSUFBSSxDQUFDWixvQkFBb0IsQ0FBQ0ksWUFBWSxJQUNsRG9CLGdCQUFnQlosVUFBVWEsT0FBTyxJQUNqQ2Usb0JBQW9CQyxpQkFBaUIsQ0FBQ0MsaUJBQWlCLENBQUNsQixlQUFlLElBQUksQ0FBQ3pCLFdBQVc7Z0JBRTdGLElBQUl5QyxzQkFBc0IsTUFBTTtvQkFDOUJGLGtCQUFrQkUsa0JBQWtCMUIsYUFBYSxDQUFDSixVQUFVSCxlQUFlQztnQkFDN0U7Z0JBRUEsSUFBSThCLGlCQUFpQjtvQkFDbkI5QixhQUFhNkIsS0FBSyxDQUFDLEFBQUMsbUJBQWtFZixPQUFoRGlCLGdCQUFlLG1DQUF3RCxPQUF2QmpCLHdCQUF1QjtnQkFDL0c7Z0JBRUEsT0FBT2dCO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsT0FBT25DLFlBQVk7Z0JBQ2pCLElBQUlvQyxXQUFXLE9BQ1hDLGdCQUFnQixJQUFJLENBQUMxQyxTQUFTLElBQUksR0FBRztnQkFFekMwQyxnQkFBZ0JDLElBQUFBLFlBQUksRUFBQ0QsZ0JBQWlCLEdBQUc7Z0JBRXpDLElBQUksSUFBSSxDQUFDN0Msb0JBQW9CLEtBQUssTUFBTTtvQkFDdENRLGFBQWFlLEtBQUssQ0FBQyxBQUFDLGtCQUErQixPQUFkc0IsZUFBYztvQkFFbkQsSUFBTUUsU0FBUyxNQUNUQyxjQUFjLEVBQUUsRUFDaEJDLCtCQUErQixJQUFJLENBQUNqRCxvQkFBb0IsQ0FBQzJDLE1BQU0sQ0FBQ0ssYUFBYUQsUUFBUXZDO29CQUUzRixJQUFJeUMsOEJBQThCO3dCQUNoQyxJQUFNQyxzQkFBc0JDLElBQUFBLDhCQUFpQixFQUFDSCxhQUFheEM7d0JBRTNELElBQUkwQyxxQkFBcUI7NEJBQ3ZCLElBQU01QyxZQUFZOEMsa0JBQVMsQ0FBQ0Msd0JBQXdCLENBQUMsSUFBSSxDQUFDckQsb0JBQW9COzRCQUU5RVEsYUFBYThDLFlBQVksQ0FBQ2hEOzRCQUUxQnNDLFdBQVc7d0JBQ2I7b0JBQ0Y7b0JBRUEsSUFBSUEsVUFBVTt3QkFDWnBDLGFBQWE2QixLQUFLLENBQUMsQUFBQyxvQkFBaUMsT0FBZFEsZUFBYztvQkFDdkQ7Z0JBQ0YsT0FBTztvQkFDTHJDLGFBQWE2QixLQUFLLENBQUMsQUFBQyxRQUFxQixPQUFkUSxlQUFjO2dCQUMzQztnQkFFQSxPQUFPRDtZQUNUOzs7WUFFQVcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLDJCQUEyQixJQUFJLENBQUN4RCxvQkFBb0IsQ0FBQ3VELE1BQU0sSUFDM0R2RCx1QkFBdUJ3RCwwQkFDdkJDLE9BQU87b0JBQ0x6RCxzQkFBQUE7Z0JBQ0Y7Z0JBRU4sT0FBT3lEO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsU0FBU0QsSUFBSSxFQUFFMUQsV0FBVztnQkFDL0IsSUFBSSxBQUFFQyx1QkFBeUJ5RCxLQUF6QnpEO2dCQUVOeUQsT0FBT3pELHNCQUF1QixHQUFHO2dCQUVqQ0EsdUJBQXVCMkQsb0JBQW9CLENBQUNELFFBQVEsQ0FBQ0QsTUFBTTFEO2dCQUUzRCxJQUFNb0IsVUFBVSxJQWxKQ3ZCLFFBa0pXRyxhQUFhQztnQkFFekMsT0FBT21CO1lBQ1Q7OztZQUVPeUMsS0FBQUE7bUJBQVAsU0FBT0EsZ0JBQWdCQyxXQUFXLEVBQUU5RCxXQUFXO2dCQUM3QyxJQUFNK0QsMkJBQTJCakUsOEJBQThCZ0UsY0FDekQ3RCx1QkFBdUIyRCxvQkFBb0IsQ0FBQ0ksNEJBQTRCLENBQUNELDBCQUEwQi9ELGNBQ25Hb0IsVUFBVSxJQTFKQ3ZCLFFBMEpXRyxhQUFhQztnQkFFekMsT0FBT21CO1lBQ1Q7OztXQTdKbUJ2QiJ9
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVtaXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgUHJvb2ZTdGVwIGZyb20gXCIuL3Byb29mU3RlcFwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgbWV0YUxldmVsVW5pZmllciBmcm9tIFwiLi91bmlmaWVyL21ldGFMZXZlbFwiO1xuaW1wb3J0IFN1YnByb29mQXNzZXJ0aW9uIGZyb20gXCIuL2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IFVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuL3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGFzc2lnbkFzc2lnbm1lbnRzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2Fzc2lnbm1lbnRzXCI7XG5cbmNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ByZW1pc2UvdW5xdWFsaWZpZWRTdGF0ZW1lbnRcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFByZW1pc2Uge1xuICBjb25zdHJ1Y3RvcihmaWxlQ29udGV4dCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnQpIHtcbiAgICB0aGlzLmZpbGVDb250ZXh0ID0gZmlsZUNvbnRleHQ7XG4gICAgdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXRVbnF1YWxpZmllZFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0cmluZygpIHsgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7IH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7IHJldHVybiB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpOyB9XG5cbiAgdW5pZnlQcm9vZlN0ZXAocHJvb2ZTdGVwLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgcHJvb2ZTdGVwVW5pZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3VicHJvb2YgPSBwcm9vZlN0ZXAuZ2V0U3VicHJvb2YoKSxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBwcm9vZlN0ZXAuZ2V0U3RhdGVtZW50KCk7XG5cbiAgICBzdWJzdGl0dXRpb25zLnNuYXBzaG90KCk7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAoc3VicHJvb2YgIT09IG51bGwpIHtcbiAgICAgIHByb29mU3RlcFVuaWZpZWQgPSB0aGlzLnVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG4gICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHByb29mU3RlcFVuaWZpZWQgPSB0aGlzLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcbiAgICB9XG5cbiAgICBwcm9vZlN0ZXBVbmlmaWVkID9cbiAgICAgIHN1YnN0aXR1dGlvbnMuY29udGludWUoKSA6XG4gICAgICAgIHN1YnN0aXR1dGlvbnMucm9sbGJhY2sobG9jYWxDb250ZXh0KTtcblxuICAgIHJldHVybiBwcm9vZlN0ZXBVbmlmaWVkO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VW5pZmllZDtcblxuICAgIGNvbnN0IHByZW1pc2UgPSB0aGlzLCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcHJlbWlzZVN0YXRlbWVudCA9IHByZW1pc2UuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgcHJlbWlzZVN0YXRlbWVudFN0cmluZyA9IHByZW1pc2VTdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgcHJlbWlzZSdzICcke3ByZW1pc2VTdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHByZW1pc2VTdGF0ZW1lbnROb2RlID0gcHJlbWlzZVN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZUEgPSBwcmVtaXNlU3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIG5vZGVCID0gc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIGZpbGVDb250ZXh0QSA9IHRoaXMuZmlsZUNvbnRleHQsICAvLy9cbiAgICAgICAgICBsb2NhbENvbnRleHRBID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dEEpLFxuICAgICAgICAgIGxvY2FsQ29udGV4dEIgPSBsb2NhbENvbnRleHQsIC8vL1xuICAgICAgICAgIHVuaWZpZWQgPSBtZXRhTGV2ZWxVbmlmaWVyLnVuaWZ5KG5vZGVBLCBub2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICBzdGF0ZW1lbnRVbmlmaWVkID0gdW5pZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VW5pZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgcHJlbWlzZSdzICcke3ByZW1pc2VTdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZWQ7XG4gIH1cblxuICB1bmlmeVN1YnByb29mKHN1YnByb29mLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgc3VicHJvb2ZVbmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBwcmVtaXNlID0gdGhpcywgLy8vXG4gICAgICAgICAgc3VicHJvb2ZTdHJpbmcgPSBzdWJwcm9vZi5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBwcmVtaXNlU3RhdGVtZW50ID0gcHJlbWlzZS5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBwcmVtaXNlU3RhdGVtZW50U3RyaW5nID0gcHJlbWlzZVN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgcHJlbWlzZSdzICcke3ByZW1pc2VTdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb24gPSBTdWJwcm9vZkFzc2VydGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCB0aGlzLmZpbGVDb250ZXh0KTtcblxuICAgIGlmIChzdWJwcm9vZkFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgc3VicHJvb2ZVbmlmaWVkID0gc3VicHJvb2ZBc3NlcnRpb24udW5pZnlTdWJwcm9vZihzdWJwcm9vZiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoc3VicHJvb2ZVbmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgcHJlbWlzZSdzICcke3ByZW1pc2VTdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnByb29mVW5pZmllZDtcbiAgfVxuXG4gIHZlcmlmeShsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHByZW1pc2VTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGlmICh0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UuLi5gKTtcblxuICAgICAgY29uc3Qgc3RhdGVkID0gdHJ1ZSxcbiAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHVucXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgYXNzaWdubWVudHNBc3NpZ25lZCA9IGFzc2lnbkFzc2lnbm1lbnRzKGFzc2lnbm1lbnRzLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGlmIChhc3NpZ25tZW50c0Fzc2lnbmVkKSB7XG4gICAgICAgICAgY29uc3QgcHJvb2ZTdGVwID0gUHJvb2ZTdGVwLmZyb21VbnF1YWxpZmllZFN0YXRlbWVudCh0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50KTtcblxuICAgICAgICAgIGxvY2FsQ29udGV4dC5hZGRQcm9vZlN0ZXAocHJvb2ZTdGVwKTtcblxuICAgICAgICAgIHZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cHJlbWlzZVN0cmluZ30nIHByZW1pc2UuYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgVGhlICcke3ByZW1pc2VTdHJpbmd9JyBwcmVtaXNlIGNhbm5vdCBiZSB2ZXJpZmllZCBiZWNhdXNlIGl0IGlzIG5vbnNlbnNlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudEpTT04gPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LnRvSlNPTigpLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50ID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnRKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50XG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHsgdW5xdWFsaWZpZWRTdGF0ZW1lbnQgfSA9IGpzb247XG5cbiAgICBqc29uID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnQ7ICAvLy9cblxuICAgIHVucXVhbGlmaWVkU3RhdGVtZW50ID0gVW5xdWFsaWZpZWRTdGF0ZW1lbnQuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgY29uc3QgcHJlbWlzZSA9IG5ldyBQcmVtaXNlKGZpbGVDb250ZXh0LCB1bnF1YWxpZmllZFN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gcHJlbWlzZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUHJlbWlzZU5vZGUocHJlbWlzZU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocHJlbWlzZU5vZGUpLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50ID0gVW5xdWFsaWZpZWRTdGF0ZW1lbnQuZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBwcmVtaXNlID0gbmV3IFByZW1pc2UoZmlsZUNvbnRleHQsIHVucXVhbGlmaWVkU3RhdGVtZW50KTtcblxuICAgIHJldHVybiBwcmVtaXNlXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJQcmVtaXNlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJmaWxlQ29udGV4dCIsInVucXVhbGlmaWVkU3RhdGVtZW50IiwiZ2V0RmlsZUNvbnRleHQiLCJnZXRVbnF1YWxpZmllZFN0YXRlbWVudCIsImdldFN0cmluZyIsImdldFN0YXRlbWVudCIsInVuaWZ5UHJvb2ZTdGVwIiwicHJvb2ZTdGVwIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dCIsInByb29mU3RlcFVuaWZpZWQiLCJzdWJwcm9vZiIsImdldFN1YnByb29mIiwic3RhdGVtZW50Iiwic25hcHNob3QiLCJ1bmlmeVN1YnByb29mIiwidW5pZnlTdGF0ZW1lbnQiLCJjb250aW51ZSIsInJvbGxiYWNrIiwic3RhdGVtZW50VW5pZmllZCIsInByZW1pc2UiLCJzdGF0ZW1lbnRTdHJpbmciLCJwcmVtaXNlU3RhdGVtZW50IiwicHJlbWlzZVN0YXRlbWVudFN0cmluZyIsInRyYWNlIiwic3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJwcmVtaXNlU3RhdGVtZW50Tm9kZSIsIm5vZGVBIiwibm9kZUIiLCJmaWxlQ29udGV4dEEiLCJsb2NhbENvbnRleHRBIiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwibG9jYWxDb250ZXh0QiIsInVuaWZpZWQiLCJtZXRhTGV2ZWxVbmlmaWVyIiwidW5pZnkiLCJkZWJ1ZyIsInN1YnByb29mVW5pZmllZCIsInN1YnByb29mU3RyaW5nIiwic3VicHJvb2ZBc3NlcnRpb24iLCJTdWJwcm9vZkFzc2VydGlvbiIsImZyb21TdGF0ZW1lbnROb2RlIiwidmVyaWZ5IiwidmVyaWZpZWQiLCJwcmVtaXNlU3RyaW5nIiwic3RhdGVkIiwiYXNzaWdubWVudHMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYXNzaWdubWVudHNBc3NpZ25lZCIsImFzc2lnbkFzc2lnbm1lbnRzIiwiUHJvb2ZTdGVwIiwiZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50IiwiYWRkUHJvb2ZTdGVwIiwidG9KU09OIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRKU09OIiwianNvbiIsImZyb21KU09OIiwiVW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJmcm9tUHJlbWlzZU5vZGUiLCJwcmVtaXNlTm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBYXFCQTs7O2dFQVhDOzREQUNHO2dFQUNJOytEQUNDO2tFQUNHO3FCQUVQOzJCQUNROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxDLElBQU1DLGdDQUFnQ0MsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQyxJQUFBLEFBQU1GLHdCQUFOO2FBQU1BLFFBQ1BHLFdBQVcsRUFBRUMsb0JBQW9CO2dDQUQxQko7UUFFakIsSUFBSSxDQUFDRyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0Msb0JBQW9CLEdBQUdBOztrQkFIWEo7O1lBTW5CSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLFdBQVc7WUFDekI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENB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
package/lib/proofStep.js CHANGED
@@ -102,7 +102,7 @@ var ProofStep = /*#__PURE__*/ function() {
102
102
  var qualifiedStatementVerified = this.qualifiedStatement.verify(substitutions, localContext);
103
103
  verified = qualifiedStatementVerified; ///
104
104
  } else if (this.unqualifiedStatement !== null) {
105
- var stated = true, assignments = [], unqualifiedStatementVerified = this.unqualifiedStatement.verify(stated, assignments, localContext);
105
+ var stated = true, assignments = [], unqualifiedStatementVerified = this.unqualifiedStatement.verify(assignments, stated, localContext);
106
106
  verified = unqualifiedStatementVerified; ///
107
107
  }
108
108
  if (verified) {
@@ -135,4 +135,4 @@ Object.assign(_shim.default, {
135
135
  });
136
136
  var _default = ProofStep;
137
137
 
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9vZlN0ZXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuL3NoaW1cIjtcbmltcG9ydCBTdWJwcm9vZiBmcm9tIFwiLi9zdWJwcm9vZlwiO1xuaW1wb3J0IFF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi9zdGF0ZW1lbnQvcXVhbGlmaWVkXCI7XG5pbXBvcnQgVW5xdWFsaWZpZWRTdGF0ZW1lbnQgZnJvbSBcIi4vc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBzdWJwcm9vZk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC9zdWJwcm9vZlwiKSxcbiAgICAgIHF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC9xdWFsaWZpZWRTdGF0ZW1lbnRcIiksXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC91bnF1YWxpZmllZFN0YXRlbWVudFwiKTtcblxuY2xhc3MgUHJvb2ZTdGVwIHtcbiAgY29uc3RydWN0b3Ioc3VicHJvb2YsIHF1YWxpZmllZFN0YXRlbWVudCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnQpIHtcbiAgICB0aGlzLnN1YnByb29mID0gc3VicHJvb2Y7XG4gICAgdGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQgPSBxdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gICAgdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3VicHJvb2YoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VicHJvb2Y7XG4gIH1cblxuICBnZXRRdWFsaWZpZWRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0VW5xdWFsaWZpZWRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7XG4gICAgbGV0IHN0YXRlbWVudCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHN0YXRlbWVudCA9IHRoaXMucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBzdGF0ZW1lbnQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnQ7XG4gIH1cblxuICAvLyB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnRCLCBlcXVpdmFsZW5jZXMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgLy8gICBsZXQgc3RhdGVtZW50VW5pZmllZCA9IGZhbHNlO1xuICAvL1xuICAvLyAgIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAvLyAgICAgY29uc3Qgc3RhdGVtZW50QSA9IHRoaXMuc3RhdGVtZW50LCAgLy8vXG4gIC8vICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkV2l0aFN0YXRlbWVudCA9IHVuaWZ5U3RhdGVtZW50V2l0aFN0YXRlbWVudEdpdmVuRXF1aXZhbGVuY2VzKHN0YXRlbWVudEEsIHN0YXRlbWVudEIsIGVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG4gIC8vXG4gIC8vICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gc3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnQ7ICAvLy9cbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZWQ7XG4gIC8vIH1cblxuICB2ZXJpZnkoc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdWJwcm9vZiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3VicHJvb2ZWZXJpZmllZCA9IHRoaXMuc3VicHJvb2YudmVyaWZ5KHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIHZlcmlmaWVkID0gc3VicHJvb2ZWZXJpZmllZDsgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQudmVyaWZ5KHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIHZlcmlmaWVkID0gcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7ICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlZCA9IHRydWUsXG4gICAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQudmVyaWZ5KHN0YXRlZCwgYXNzaWdubWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIHZlcmlmaWVkID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDsgIC8vL1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgY29uc3QgcHJvb2ZTdGVwID0gdGhpczsgLy8vXG5cbiAgICAgIGxvY2FsQ29udGV4dC5hZGRQcm9vZlN0ZXAocHJvb2ZTdGVwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByb29mU3RlcE5vZGUocHJvb2ZTdGVwTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBzdWJwcm9vZk5vZGUgPSBzdWJwcm9vZk5vZGVRdWVyeShwcm9vZlN0ZXBOb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHByb29mU3RlcE5vZGUpLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHByb29mU3RlcE5vZGUpLFxuICAgICAgICAgIHN1YnByb29mID0gU3VicHJvb2YuZnJvbVN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnQgPSBRdWFsaWZpZWRTdGF0ZW1lbnQuZnJvbVF1YWxpZmllZFN0YXRlbWVudE5vZGUocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50ID0gVW5xdWFsaWZpZWRTdGF0ZW1lbnQuZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBwcm9vZlN0ZXAgPSBuZXcgUHJvb2ZTdGVwKHN1YnByb29mLCBxdWFsaWZpZWRTdGF0ZW1lbnQsIHVucXVhbGlmaWVkU3RhdGVtZW50KTtcblxuICAgIHJldHVybiBwcm9vZlN0ZXA7XG4gIH1cblxuICBzdGF0aWMgZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50KHVucXVhbGlmaWVkU3RhdGVtZW50KSB7XG4gICAgY29uc3Qgc3VicHJvb2YgPSBudWxsLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudCA9IG51bGwsXG4gICAgICAgICAgcHJvb2ZTdGVwID0gbmV3IFByb29mU3RlcChzdWJwcm9vZiwgcXVhbGlmaWVkU3RhdGVtZW50LCB1bnF1YWxpZmllZFN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gcHJvb2ZTdGVwO1xuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oc2hpbSwge1xuICBQcm9vZlN0ZXBcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBQcm9vZlN0ZXA7Il0sIm5hbWVzIjpbInN1YnByb29mTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJQcm9vZlN0ZXAiLCJzdWJwcm9vZiIsInF1YWxpZmllZFN0YXRlbWVudCIsInVucXVhbGlmaWVkU3RhdGVtZW50IiwiZ2V0U3VicHJvb2YiLCJnZXRRdWFsaWZpZWRTdGF0ZW1lbnQiLCJnZXRVbnF1YWxpZmllZFN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsInN0YXRlbWVudCIsInZlcmlmeSIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHQiLCJ2ZXJpZmllZCIsInN1YnByb29mVmVyaWZpZWQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInN0YXRlZCIsImFzc2lnbm1lbnRzIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInByb29mU3RlcCIsImFkZFByb29mU3RlcCIsImZyb21Qcm9vZlN0ZXBOb2RlIiwicHJvb2ZTdGVwTm9kZSIsImZpbGVDb250ZXh0Iiwic3VicHJvb2ZOb2RlIiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsIlN1YnByb29mIiwiZnJvbVN1YnByb29mTm9kZSIsIlF1YWxpZmllZFN0YXRlbWVudCIsImZyb21RdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiVW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJmcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiZnJvbVVu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
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9vZlN0ZXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuL3NoaW1cIjtcbmltcG9ydCBTdWJwcm9vZiBmcm9tIFwiLi9zdWJwcm9vZlwiO1xuaW1wb3J0IFF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi9zdGF0ZW1lbnQvcXVhbGlmaWVkXCI7XG5pbXBvcnQgVW5xdWFsaWZpZWRTdGF0ZW1lbnQgZnJvbSBcIi4vc3RhdGVtZW50L3VucXVhbGlmaWVkXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBzdWJwcm9vZk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC9zdWJwcm9vZlwiKSxcbiAgICAgIHF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC9xdWFsaWZpZWRTdGF0ZW1lbnRcIiksXG4gICAgICB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9vZlN0ZXB8bGFzdFByb29mU3RlcC91bnF1YWxpZmllZFN0YXRlbWVudFwiKTtcblxuY2xhc3MgUHJvb2ZTdGVwIHtcbiAgY29uc3RydWN0b3Ioc3VicHJvb2YsIHF1YWxpZmllZFN0YXRlbWVudCwgdW5xdWFsaWZpZWRTdGF0ZW1lbnQpIHtcbiAgICB0aGlzLnN1YnByb29mID0gc3VicHJvb2Y7XG4gICAgdGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQgPSBxdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gICAgdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3VicHJvb2YoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VicHJvb2Y7XG4gIH1cblxuICBnZXRRdWFsaWZpZWRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0VW5xdWFsaWZpZWRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7XG4gICAgbGV0IHN0YXRlbWVudCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHN0YXRlbWVudCA9IHRoaXMucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBzdGF0ZW1lbnQgPSB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50LmdldFN0YXRlbWVudCgpO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnQ7XG4gIH1cblxuICAvLyB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnRCLCBlcXVpdmFsZW5jZXMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgLy8gICBsZXQgc3RhdGVtZW50VW5pZmllZCA9IGZhbHNlO1xuICAvL1xuICAvLyAgIGlmICh0aGlzLnN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAvLyAgICAgY29uc3Qgc3RhdGVtZW50QSA9IHRoaXMuc3RhdGVtZW50LCAgLy8vXG4gIC8vICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkV2l0aFN0YXRlbWVudCA9IHVuaWZ5U3RhdGVtZW50V2l0aFN0YXRlbWVudEdpdmVuRXF1aXZhbGVuY2VzKHN0YXRlbWVudEEsIHN0YXRlbWVudEIsIGVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG4gIC8vXG4gIC8vICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gc3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnQ7ICAvLy9cbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZWQ7XG4gIC8vIH1cblxuICB2ZXJpZnkoc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdWJwcm9vZiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3VicHJvb2ZWZXJpZmllZCA9IHRoaXMuc3VicHJvb2YudmVyaWZ5KHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIHZlcmlmaWVkID0gc3VicHJvb2ZWZXJpZmllZDsgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdGhpcy5xdWFsaWZpZWRTdGF0ZW1lbnQudmVyaWZ5KHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIHZlcmlmaWVkID0gcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7ICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlZCA9IHRydWUsXG4gICAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQudmVyaWZ5KGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIHZlcmlmaWVkID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDsgIC8vL1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgY29uc3QgcHJvb2ZTdGVwID0gdGhpczsgLy8vXG5cbiAgICAgIGxvY2FsQ29udGV4dC5hZGRQcm9vZlN0ZXAocHJvb2ZTdGVwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByb29mU3RlcE5vZGUocHJvb2ZTdGVwTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBzdWJwcm9vZk5vZGUgPSBzdWJwcm9vZk5vZGVRdWVyeShwcm9vZlN0ZXBOb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHByb29mU3RlcE5vZGUpLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5KHByb29mU3RlcE5vZGUpLFxuICAgICAgICAgIHN1YnByb29mID0gU3VicHJvb2YuZnJvbVN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnQgPSBRdWFsaWZpZWRTdGF0ZW1lbnQuZnJvbVF1YWxpZmllZFN0YXRlbWVudE5vZGUocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50ID0gVW5xdWFsaWZpZWRTdGF0ZW1lbnQuZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBwcm9vZlN0ZXAgPSBuZXcgUHJvb2ZTdGVwKHN1YnByb29mLCBxdWFsaWZpZWRTdGF0ZW1lbnQsIHVucXVhbGlmaWVkU3RhdGVtZW50KTtcblxuICAgIHJldHVybiBwcm9vZlN0ZXA7XG4gIH1cblxuICBzdGF0aWMgZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50KHVucXVhbGlmaWVkU3RhdGVtZW50KSB7XG4gICAgY29uc3Qgc3VicHJvb2YgPSBudWxsLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudCA9IG51bGwsXG4gICAgICAgICAgcHJvb2ZTdGVwID0gbmV3IFByb29mU3RlcChzdWJwcm9vZiwgcXVhbGlmaWVkU3RhdGVtZW50LCB1bnF1YWxpZmllZFN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gcHJvb2ZTdGVwO1xuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oc2hpbSwge1xuICBQcm9vZlN0ZXBcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBQcm9vZlN0ZXA7Il0sIm5hbWVzIjpbInN1YnByb29mTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkiLCJQcm9vZlN0ZXAiLCJzdWJwcm9vZiIsInF1YWxpZmllZFN0YXRlbWVudCIsInVucXVhbGlmaWVkU3RhdGVtZW50IiwiZ2V0U3VicHJvb2YiLCJnZXRRdWFsaWZpZWRTdGF0ZW1lbnQiLCJnZXRVbnF1YWxpZmllZFN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsInN0YXRlbWVudCIsInZlcmlmeSIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHQiLCJ2ZXJpZmllZCIsInN1YnByb29mVmVyaWZpZWQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInN0YXRlZCIsImFzc2lnbm1lbnRzIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInByb29mU3RlcCIsImFkZFByb29mU3RlcCIsImZyb21Qcm9vZlN0ZXBOb2RlIiwicHJvb2ZTdGVwTm9kZSIsImZpbGVDb250ZXh0Iiwic3VicHJvb2ZOb2RlIiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsIlN1YnByb29mIiwiZnJvbVN1YnByb29mTm9kZSIsIlF1YWxpZmllZFN0YXRlbWVudCIsImZyb21RdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiVW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJmcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiZnJvbVVu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
package/lib/reference.js CHANGED
@@ -67,16 +67,16 @@ var Reference = /*#__PURE__*/ function() {
67
67
  }
68
68
  },
69
69
  {
70
- key: "verify",
71
- value: function verify(fileContext) {
72
- var verified;
70
+ key: "verifyAtTopLevel",
71
+ value: function verifyAtTopLevel(fileContext) {
72
+ var verifiedAtTopLevel;
73
73
  var referenceString = this.getString(); ///
74
- fileContext.trace("Verifying the '".concat(referenceString, "' reference..."));
75
- verified = true;
76
- if (verified) {
77
- fileContext.debug("...verified the '".concat(referenceString, "' reference."));
74
+ fileContext.trace("Verifying the '".concat(referenceString, "' reference at top level..."));
75
+ verifiedAtTopLevel = true;
76
+ if (verifiedAtTopLevel) {
77
+ fileContext.debug("...verified the '".concat(referenceString, "' reference at top level."));
78
78
  }
79
- return verified;
79
+ return verifiedAtTopLevel;
80
80
  }
81
81
  },
82
82
  {
@@ -112,4 +112,4 @@ var Reference = /*#__PURE__*/ function() {
112
112
  return Reference;
113
113
  }();
114
114
 
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWZlcmVuY2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhdmFyaWFibGUgZnJvbSBcIi4vbWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvL3JlZmVyZW5jZS9tZXRhdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlZmVyZW5jZSB7XG4gIGNvbnN0cnVjdG9yKG1ldGF2YXJpYWJsZSkge1xuICAgIHRoaXMubWV0YXZhcmlhYmxlID0gbWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLmdldFN0cmluZygpOyB9XG5cbiAgbWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTsgfVxuXG4gIGdldE1ldGF2YXJpYWJsZU5vZGUoKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IHRoaXMubWV0YXZhcmlhYmxlLmdldE5vZGUoKTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVOb2RlO1xuICB9XG5cbiAgdmVyaWZ5KGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkO1xuXG4gICAgY29uc3QgcmVmZXJlbmNlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2UuLi5gKTtcblxuICAgIHZlcmlmaWVkID0gdHJ1ZTtcblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2UuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZUpTT04gPSB0aGlzLm1ldGF2YXJpYWJsZS50b0pTT04oKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGVKU09OLCAgLy8vXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5zdHJpbmcsXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZVxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uO1xuXG4gICAgbGV0IHsgbWV0YXZhcmlhYmxlIH0gPSBqc29uO1xuXG4gICAganNvbiA9IG1ldGF2YXJpYWJsZTsgIC8vL1xuXG4gICAgbWV0YXZhcmlhYmxlID0gTWV0YXZhcmlhYmxlLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIGNvbnN0IHJlZmVyZW5jZSA9IG5ldyBSZWZlcmVuY2Uoc3RyaW5nLCBtZXRhdmFyaWFibGUpO1xuXG4gICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUmVmZXJlbmNlTm9kZShyZWZlcmVuY2VOb2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkocmVmZXJlbmNlTm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlID0gTWV0YXZhcmlhYmxlLmZyb21NZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICByZWZlcmVuY2UgPSBuZXcgUmVmZXJlbmNlKG1ldGF2YXJpYWJsZSk7XG5cbiAgICByZXR1cm4gcmVmZXJlbmNlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiUmVmZXJlbmNlIiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlIiwiZ2V0TWV0YXZhcmlhYmxlIiwiZ2V0U3RyaW5nIiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsImdldE1ldGF2YXJpYWJsZU5vZGUiLCJnZXROb2RlIiwidmVyaWZ5IiwiZmlsZUNvbnRleHQiLCJ2ZXJpZmllZCIsInJlZmVyZW5jZVN0cmluZyIsInRyYWNlIiwiZGVidWciLCJ0b0pTT04iLCJtZXRhdmFyaWFibGVKU09OIiwic3RyaW5nIiwianNvbiIsImZyb21KU09OIiwiTWV0YXZhcmlhYmxlIiwicmVmZXJlbmNlIiwiZnJvbVJlZmVyZW5jZU5vZGUiLCJyZWZlcmVuY2VOb2RlIiwiZnJvbU1ldGF2YXJpYWJsZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBUXFCQTs7O21FQU5JO3FCQUVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQU1DLHdCQUF3QkMsSUFBQUEsZ0JBQVMsRUFBQztBQUV6QixJQUFBLEFBQU1GLDBCQUFOO2FBQU1BLFVBQ1BHLFlBQVk7Z0NBRExIO1FBRWpCLElBQUksQ0FBQ0csWUFBWSxHQUFHQTs7a0JBRkhIOztZQUtuQkksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxZQUFZO1lBQzFCOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUFjLE9BQU8sSUFBSSxDQUFDRixZQUFZLENBQUNFLFNBQVM7WUFBSTs7O1lBRXBEQyxLQUFBQTttQkFBQUEsU0FBQUEsc0JBQXNCQyxnQkFBZ0I7Z0JBQUksT0FBTyxJQUFJLENBQUNKLFlBQVksQ0FBQ0cscUJBQXFCLENBQUNDO1lBQW1COzs7WUFFNUdDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNRCxtQkFBbUIsSUFBSSxDQUFDSixZQUFZLENBQUNNLE9BQU87Z0JBRWxELE9BQU9GO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsT0FBT0MsV0FBVztnQkFDaEIsSUFBSUM7Z0JBRUosSUFBTUMsa0JBQWtCLElBQUksQ0FBQ1IsU0FBUyxJQUFJLEdBQUc7Z0JBRTdDTSxZQUFZRyxLQUFLLENBQUMsQUFBQyxrQkFBaUMsT0FBaEJELGlCQUFnQjtnQkFFcERELFdBQVc7Z0JBRVgsSUFBSUEsVUFBVTtvQkFDWkQsWUFBWUksS0FBSyxDQUFDLEFBQUMsb0JBQW1DLE9BQWhCRixpQkFBZ0I7Z0JBQ3hEO2dCQUVBLE9BQU9EO1lBQ1Q7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsbUJBQW1CLElBQUksQ0FBQ2QsWUFBWSxDQUFDYSxNQUFNLElBQzNDYixlQUFlYyxrQkFDZkMsU0FBUyxJQUFJLENBQUNBLE1BQU0sRUFDcEJDLE9BQU87b0JBQ0xELFFBQUFBO29CQUNBZixjQUFBQTtnQkFDRjtnQkFFTixPQUFPZ0I7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTRCxJQUFJLEVBQUVSLFdBQVc7Z0JBQy9CLElBQU0sQUFBRU8sU0FBV0MsS0FBWEQ7Z0JBRVIsSUFBSSxBQUFFZixlQUFpQmdCLEtBQWpCaEI7Z0JBRU5nQixPQUFPaEIsY0FBZSxHQUFHO2dCQUV6QkEsZUFBZWtCLHFCQUFZLENBQUNELFFBQVEsQ0FBQ0QsTUFBTVI7Z0JBRTNDLElBQU1XLFlBQVksSUF4RER0QixVQXdEZWtCLFFBQVFmO2dCQUV4QyxPQUFPbUI7WUFDVDs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLGtCQUFrQkMsYUFBYSxFQUFFYixXQUFXO2dCQUNqRCxJQUFNSixtQkFBbUJOLHNCQUFzQnVCLGdCQUN6Q3JCLGVBQWVrQixxQkFBWSxDQUFDSSxvQkFBb0IsQ0FBQ2xCLGtCQUFrQkksY0FDbkVXLFlBQVksSUFoRUR0QixVQWdFZUc7Z0JBRWhDLE9BQU9tQjtZQUNUOzs7V0FuRW1CdEIifQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWZlcmVuY2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhdmFyaWFibGUgZnJvbSBcIi4vbWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvL3JlZmVyZW5jZS9tZXRhdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlZmVyZW5jZSB7XG4gIGNvbnN0cnVjdG9yKG1ldGF2YXJpYWJsZSkge1xuICAgIHRoaXMubWV0YXZhcmlhYmxlID0gbWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLmdldFN0cmluZygpOyB9XG5cbiAgbWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTsgfVxuXG4gIGdldE1ldGF2YXJpYWJsZU5vZGUoKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IHRoaXMubWV0YXZhcmlhYmxlLmdldE5vZGUoKTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVOb2RlO1xuICB9XG5cbiAgdmVyaWZ5QXRUb3BMZXZlbChmaWxlQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZEF0VG9wTGV2ZWw7XG5cbiAgICBjb25zdCByZWZlcmVuY2VTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZSBhdCB0b3AgbGV2ZWwuLi5gKTtcblxuICAgIHZlcmlmaWVkQXRUb3BMZXZlbCA9IHRydWU7XG5cbiAgICBpZiAodmVyaWZpZWRBdFRvcExldmVsKSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3JlZmVyZW5jZVN0cmluZ30nIHJlZmVyZW5jZSBhdCB0b3AgbGV2ZWwuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkQXRUb3BMZXZlbDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVKU09OID0gdGhpcy5tZXRhdmFyaWFibGUudG9KU09OKCksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlID0gbWV0YXZhcmlhYmxlSlNPTiwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IHRoaXMuc3RyaW5nLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbjtcblxuICAgIGxldCB7IG1ldGF2YXJpYWJsZSB9ID0ganNvbjtcblxuICAgIGpzb24gPSBtZXRhdmFyaWFibGU7ICAvLy9cblxuICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICBjb25zdCByZWZlcmVuY2UgPSBuZXcgUmVmZXJlbmNlKHN0cmluZywgbWV0YXZhcmlhYmxlKTtcblxuICAgIHJldHVybiByZWZlcmVuY2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJlZmVyZW5jZU5vZGUocmVmZXJlbmNlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHJlZmVyZW5jZU5vZGUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgcmVmZXJlbmNlID0gbmV3IFJlZmVyZW5jZShtZXRhdmFyaWFibGUpO1xuXG4gICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIlJlZmVyZW5jZSIsIm1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZSIsImdldE1ldGF2YXJpYWJsZSIsImdldFN0cmluZyIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJnZXRNZXRhdmFyaWFibGVOb2RlIiwiZ2V0Tm9kZSIsInZlcmlmeUF0VG9wTGV2ZWwiLCJmaWxlQ29udGV4dCIsInZlcmlmaWVkQXRUb3BMZXZlbCIsInJlZmVyZW5jZVN0cmluZyIsInRyYWNlIiwiZGVidWciLCJ0b0pTT04iLCJtZXRhdmFyaWFibGVKU09OIiwic3RyaW5nIiwianNvbiIsImZyb21KU09OIiwiTWV0YXZhcmlhYmxlIiwicmVmZXJlbmNlIiwiZnJvbVJlZmVyZW5jZU5vZGUiLCJyZWZlcmVuY2VOb2RlIiwiZnJvbU1ldGF2YXJpYWJsZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBUXFCQTs7O21FQU5JO3FCQUVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQU1DLHdCQUF3QkMsSUFBQUEsZ0JBQVMsRUFBQztBQUV6QixJQUFBLEFBQU1GLDBCQUFOO2FBQU1BLFVBQ1BHLFlBQVk7Z0NBRExIO1FBRWpCLElBQUksQ0FBQ0csWUFBWSxHQUFHQTs7a0JBRkhIOztZQUtuQkksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxZQUFZO1lBQzFCOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUFjLE9BQU8sSUFBSSxDQUFDRixZQUFZLENBQUNFLFNBQVM7WUFBSTs7O1lBRXBEQyxLQUFBQTttQkFBQUEsU0FBQUEsc0JBQXNCQyxnQkFBZ0I7Z0JBQUksT0FBTyxJQUFJLENBQUNKLFlBQVksQ0FBQ0cscUJBQXFCLENBQUNDO1lBQW1COzs7WUFFNUdDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNRCxtQkFBbUIsSUFBSSxDQUFDSixZQUFZLENBQUNNLE9BQU87Z0JBRWxELE9BQU9GO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsaUJBQWlCQyxXQUFXO2dCQUMxQixJQUFJQztnQkFFSixJQUFNQyxrQkFBa0IsSUFBSSxDQUFDUixTQUFTLElBQUksR0FBRztnQkFFN0NNLFlBQVlHLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkQsaUJBQWdCO2dCQUVwREQscUJBQXFCO2dCQUVyQixJQUFJQSxvQkFBb0I7b0JBQ3RCRCxZQUFZSSxLQUFLLENBQUMsQUFBQyxvQkFBbUMsT0FBaEJGLGlCQUFnQjtnQkFDeEQ7Z0JBRUEsT0FBT0Q7WUFDVDs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxtQkFBbUIsSUFBSSxDQUFDZCxZQUFZLENBQUNhLE1BQU0sSUFDM0NiLGVBQWVjLGtCQUNmQyxTQUFTLElBQUksQ0FBQ0EsTUFBTSxFQUNwQkMsT0FBTztvQkFDTEQsUUFBQUE7b0JBQ0FmLGNBQUFBO2dCQUNGO2dCQUVOLE9BQU9nQjtZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNELElBQUksRUFBRVIsV0FBVztnQkFDL0IsSUFBTSxBQUFFTyxTQUFXQyxLQUFYRDtnQkFFUixJQUFJLEFBQUVmLGVBQWlCZ0IsS0FBakJoQjtnQkFFTmdCLE9BQU9oQixjQUFlLEdBQUc7Z0JBRXpCQSxlQUFla0IscUJBQVksQ0FBQ0QsUUFBUSxDQUFDRCxNQUFNUjtnQkFFM0MsSUFBTVcsWUFBWSxJQXhERHRCLFVBd0Rla0IsUUFBUWY7Z0JBRXhDLE9BQU9tQjtZQUNUOzs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0Esa0JBQWtCQyxhQUFhLEVBQUViLFdBQVc7Z0JBQ2pELElBQU1KLG1CQUFtQk4sc0JBQXNCdUIsZ0JBQ3pDckIsZUFBZWtCLHFCQUFZLENBQUNJLG9CQUFvQixDQUFDbEIsa0JBQWtCSSxjQUNuRVcsWUFBWSxJQWhFRHRCLFVBZ0VlRztnQkFFaEMsT0FBT21CO1lBQ1Q7OztXQW5FbUJ0QiJ9