occam-verify-cli 0.0.538 → 0.0.539

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 (67) hide show
  1. package/bin/action/verify.js +3 -24
  2. package/bin/actions.js +20 -6
  3. package/lib/axiom.js +4 -4
  4. package/lib/axiomLemmaTheoremConjecture.js +28 -25
  5. package/lib/conclusion.js +5 -5
  6. package/lib/conjecture.js +4 -4
  7. package/lib/consequence.js +3 -3
  8. package/lib/context/file.js +90 -28
  9. package/lib/kinds.js +5 -1
  10. package/lib/lemma.js +4 -4
  11. package/lib/metaType.js +201 -0
  12. package/lib/metavariable.js +75 -0
  13. package/lib/premise.js +9 -9
  14. package/lib/rule.js +36 -29
  15. package/lib/supposition.js +5 -5
  16. package/lib/theorem.js +4 -4
  17. package/lib/utilities/query.js +13 -2
  18. package/lib/variable.js +12 -12
  19. package/lib/verifier/metastatementForMetavariable.js +8 -8
  20. package/lib/verifier/statementForMetavariable.js +9 -9
  21. package/lib/verifier/termForVariable.js +22 -11
  22. package/lib/verify/assertion/type.js +2 -2
  23. package/lib/verify/axiom.js +2 -2
  24. package/lib/verify/conjecture.js +2 -2
  25. package/lib/verify/declaration/metavariable.js +26 -0
  26. package/lib/verify/declaration/topLevel.js +7 -3
  27. package/lib/verify/lemma.js +2 -2
  28. package/lib/verify/metastatement/qualified.js +3 -3
  29. package/lib/verify/metavariable.js +34 -0
  30. package/lib/verify/rule.js +2 -2
  31. package/lib/verify/statement/qualified.js +7 -7
  32. package/lib/verify/statement.js +5 -5
  33. package/lib/verify/theorem.js +2 -2
  34. package/lib/verify/variable.js +4 -4
  35. package/package.json +3 -3
  36. package/src/axiom.js +1 -1
  37. package/src/axiomLemmaTheoremConjecture.js +27 -28
  38. package/src/conclusion.js +8 -4
  39. package/src/conjecture.js +1 -1
  40. package/src/consequence.js +2 -2
  41. package/src/context/file.js +97 -28
  42. package/src/kinds.js +1 -0
  43. package/src/lemma.js +1 -1
  44. package/src/metaType.js +81 -0
  45. package/src/metavariable.js +35 -0
  46. package/src/premise.js +16 -8
  47. package/src/rule.js +32 -27
  48. package/src/supposition.js +8 -4
  49. package/src/theorem.js +1 -1
  50. package/src/utilities/query.js +14 -0
  51. package/src/variable.js +8 -8
  52. package/src/verifier/metastatementForMetavariable.js +7 -7
  53. package/src/verifier/statementForMetavariable.js +8 -8
  54. package/src/verifier/termForVariable.js +33 -13
  55. package/src/verify/assertion/type.js +3 -3
  56. package/src/verify/axiom.js +1 -1
  57. package/src/verify/conjecture.js +2 -1
  58. package/src/verify/declaration/metavariable.js +20 -0
  59. package/src/verify/declaration/topLevel.js +9 -2
  60. package/src/verify/lemma.js +1 -1
  61. package/src/verify/metastatement/qualified.js +3 -2
  62. package/src/verify/metavariable.js +32 -0
  63. package/src/verify/rule.js +1 -1
  64. package/src/verify/statement/qualified.js +7 -6
  65. package/src/verify/statement.js +12 -12
  66. package/src/verify/theorem.js +2 -1
  67. package/src/verify/variable.js +4 -4
@@ -39,7 +39,7 @@ function verifyConjecture(conjectureNode, fileContext) {
39
39
  if (consequenceVerified) {
40
40
  var proofNode = proofNodeQuery(conjectureNode), firstConsequence = (0, _array.first)(consequences), consequence = firstConsequence; ///
41
41
  (0, _proof.default)(proofNode, consequence, proofContext);
42
- var conjecture = _conjecture.default.fromLabelsSuppositionsAndConsequence(labels, suppositions, consequence);
42
+ var conjecture = _conjecture.default.fromLabelsSuppositionsConsequenceAndProofContext(labels, suppositions, consequence, proofContext);
43
43
  fileContext.addConjecture(conjecture);
44
44
  conjectureVerified = true;
45
45
  }
@@ -51,4 +51,4 @@ function verifyConjecture(conjectureNode, fileContext) {
51
51
  return conjectureVerified;
52
52
  }
53
53
 
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29uamVjdHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IENvbmplY3R1cmUgZnJvbSBcIi4uL2NvbmplY3R1cmVcIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgUHJvb2ZDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3Byb29mXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5U3VwcG9zaXRpb24gZnJvbSBcIi4vc3VwcG9zaXRpb25cIjtcbmltcG9ydCB2ZXJpZnlDb25zZXF1ZW5jZSBmcm9tIFwiLi9jb25zZXF1ZW5jZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uamVjdHVyZS9wcm9vZiFcIiksXG4gICAgICBsYWJlbE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL2NvbmplY3R1cmUvbGFiZWxcIiksXG4gICAgICBjb25zZXF1ZW5jZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25qZWN0dXJlL2NvbnNlcXVlbmNlIVwiKSxcbiAgICAgIHN1cHBvc2l0aW9uc05vZGVRdWVyeSA9IG5vZGVzUXVlcnkoXCIvY29uamVjdHVyZS9zdXBwb3NpdGlvblwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5Q29uamVjdHVyZShjb25qZWN0dXJlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IGNvbmplY3R1cmVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGxhYmVsTm9kZXMgPSBsYWJlbE5vZGVzUXVlcnkoY29uamVjdHVyZU5vZGUpLFxuICAgICAgICBsYWJlbHNTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2Rlc0FzU3RyaW5nKGxhYmVsTm9kZXMpLFxuICAgICAgICBwcm9vZkNvbnRleHQgPSBQcm9vZkNvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICBmaWxlQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBjb25qZWN0dXJlLi4uYCwgY29uamVjdHVyZU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICBsYWJlbHNWZXJpZmllZCA9IHZlcmlmeUxhYmVscyhsYWJlbE5vZGVzLCBsYWJlbHMsIGZpbGVDb250ZXh0KTtcblxuICBpZiAobGFiZWxzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbnMgPSBbXSxcbiAgICAgICAgICBzdXBwb3NpdGlvbk5vZGVzID0gc3VwcG9zaXRpb25zTm9kZVF1ZXJ5KGNvbmplY3R1cmVOb2RlKSxcbiAgICAgICAgICBzdXBwb3NpdGlvbnNWZXJpZmllZCA9IHN1cHBvc2l0aW9uTm9kZXMuZXZlcnkoKHN1cHBvc2l0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3VwcG9zaXRpb25WZXJpZmllZCA9IHZlcmlmeVN1cHBvc2l0aW9uKHN1cHBvc2l0aW9uTm9kZSwgc3VwcG9zaXRpb25zLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgICAgICBpZiAoc3VwcG9zaXRpb25WZXJpZmllZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmIChzdXBwb3NpdGlvbnNWZXJpZmllZCkge1xuICAgICAgY29uc3QgY29uc2VxdWVuY2VzID0gW10sXG4gICAgICAgICAgICBjb25zZXF1ZW5jZU5vZGUgPSBjb25zZXF1ZW5jZU5vZGVRdWVyeShjb25qZWN0dXJlTm9kZSksXG4gICAgICAgICAgICBjb25zZXF1ZW5jZVZlcmlmaWVkID0gdmVyaWZ5Q29uc2VxdWVuY2UoY29uc2VxdWVuY2VOb2RlLCBjb25zZXF1ZW5jZXMsIHByb29mQ29udGV4dCk7XG5cbiAgICAgIGlmIChjb25zZXF1ZW5jZVZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHByb29mTm9kZSA9IHByb29mTm9kZVF1ZXJ5KGNvbmplY3R1cmVOb2RlKSxcbiAgICAgICAgICAgICAgZmlyc3RDb25zZXF1ZW5jZSA9IGZpcnN0KGNvbnNlcXVlbmNlcyksXG4gICAgICAgICAgICAgIGNvbnNlcXVlbmNlID0gZmlyc3RDb25zZXF1ZW5jZTsgLy8vXG5cbiAgICAgICAgdmVyaWZ5UHJvb2YocHJvb2ZOb2RlLCBjb25zZXF1ZW5jZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgICBjb25zdCBjb25qZWN0dXJlID0gQ29uamVjdHVyZS5mcm9tTGFiZWxzU3VwcG9zaXRpb25zQW5kQ29uc2VxdWVuY2UobGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbmNlKTtcblxuICAgICAgICBmaWxlQ29udGV4dC5hZGRDb25qZWN0dXJlKGNvbmplY3R1cmUpO1xuXG4gICAgICAgIGNvbmplY3R1cmVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGNvbmplY3R1cmVWZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBjb25qZWN0dXJlLmAsIGNvbmplY3R1cmVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBjb25qZWN0dXJlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5Q29uamVjdHVyZSIsInByb29mTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibGFiZWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsImNvbnNlcXVlbmNlTm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25zTm9kZVF1ZXJ5IiwiY29uamVjdHVyZU5vZGUiLCJmaWxlQ29udGV4dCIsImNvbmplY3R1cmVWZXJpZmllZCIsImxhYmVsTm9kZXMiLCJsYWJlbHNTdHJpbmciLCJub2Rlc0FzU3RyaW5nIiwicHJvb2ZDb250ZXh0IiwiUHJvb2ZDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwiZGVidWciLCJsYWJlbHMiLCJsYWJlbHNWZXJpZmllZCIsInZlcmlmeUxhYmVscyIsInN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9uTm9kZXMiLCJzdXBwb3NpdGlvbnNWZXJpZmllZCIsImV2ZXJ5Iiwic3VwcG9zaXRpb25Ob2RlIiwic3VwcG9zaXRpb25WZXJpZmllZCIsInZlcmlmeVN1cHBvc2l0aW9uIiwiY29uc2VxdWVuY2VzIiwiY29uc2VxdWVuY2VOb2RlIiwiY29uc2VxdWVuY2VWZXJpZmllZCIsInZlcmlmeUNvbnNlcXVlbmNlIiwicHJvb2ZOb2RlIiwiZmlyc3RDb25zZXF1ZW5jZSIsImZpcnN0IiwiY29uc2VxdWVuY2UiLCJ2ZXJpZnlQcm9vZiIsImNvbmplY3R1cmUiLCJDb25qZWN0dXJlIiwiZnJvbUxhYmVsc1N1cHBvc2l0aW9uc0FuZENvbnNlcXVlbmNlIiwiYWRkQ29uamVjdHVyZSIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWlCQTs7O2VBQXdCQTs7OytEQWZEOzBEQUNDOzJEQUNDOzJEQUNBO2dFQUNLO2dFQUNBO3FCQUVSO3FCQUNnQjs7Ozs7O0FBRXRDLElBQU1DLGlCQUFpQkMsSUFBQUEsZ0JBQVMsRUFBQyx1QkFDM0JDLGtCQUFrQkMsSUFBQUEsaUJBQVUsRUFBQyxzQkFDN0JDLHVCQUF1QkgsSUFBQUEsZ0JBQVMsRUFBQyw2QkFDakNJLHdCQUF3QkYsSUFBQUEsaUJBQVUsRUFBQztBQUUxQixTQUFTSixpQkFBaUJPLGNBQWMsRUFBRUMsV0FBVyxFQUFFO0lBQ3BFLElBQUlDLHFCQUFxQixLQUFLO0lBRTlCLElBQU1DLGFBQWFQLGdCQUFnQkksaUJBQzdCSSxlQUFlSCxZQUFZSSxhQUFhLENBQUNGLGFBQ3pDRyxlQUFlQyxlQUFZLENBQUNDLGVBQWUsQ0FBQ1A7SUFFbERBLFlBQVlRLEtBQUssQ0FBQyxBQUFDLGtCQUE4QixPQUFiTCxjQUFhLG9CQUFrQko7SUFFbkUsSUFBTVUsU0FBUyxFQUFFLEVBQ1hDLGlCQUFpQkMsSUFBQUEsZUFBWSxFQUFDVCxZQUFZTyxRQUFRVDtJQUV4RCxJQUFJVSxnQkFBZ0I7UUFDbEIsSUFBTUUsZUFBZSxFQUFFLEVBQ2pCQyxtQkFBbUJmLHNCQUFzQkMsaUJBQ3pDZSx1QkFBdUJELGlCQUFpQkUsS0FBSyxDQUFDLFNBQUNDLGlCQUFvQjtZQUNqRSxJQUFNQyxzQkFBc0JDLElBQUFBLG9CQUFpQixFQUFDRixpQkFBaUJKLGNBQWNQO1lBRTdFLElBQUlZLHFCQUFxQjtnQkFDdkIsT0FBTyxJQUFJO1lBQ2IsQ0FBQztRQUNIO1FBRU4sSUFBSUgsc0JBQXNCO1lBQ3hCLElBQU1LLGVBQWUsRUFBRSxFQUNqQkMsa0JBQWtCdkIscUJBQXFCRSxpQkFDdkNzQixzQkFBc0JDLElBQUFBLG9CQUFpQixFQUFDRixpQkFBaUJELGNBQWNkO1lBRTdFLElBQUlnQixxQkFBcUI7Z0JBQ3ZCLElBQU1FLFlBQVk5QixlQUFlTSxpQkFDM0J5QixtQkFBbUJDLElBQUFBLFlBQUssRUFBQ04sZUFDekJPLGNBQWNGLGtCQUFrQixHQUFHO2dCQUV6Q0csSUFBQUEsY0FBVyxFQUFDSixXQUFXRyxhQUFhckI7Z0JBRXBDLElBQU11QixhQUFhQyxtQkFBVSxDQUFDQyxvQ0FBb0MsQ0FBQ3JCLFFBQVFHLGNBQWNjO2dCQUV6RjFCLFlBQVkrQixhQUFhLENBQUNIO2dCQUUxQjNCLHFCQUFxQixJQUFJO1lBQzNCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLG9CQUFvQjtRQUN0QkQsWUFBWWdDLElBQUksQ0FBQyxBQUFDLGlCQUE2QixPQUFiN0IsY0FBYSxrQkFBZ0JKO0lBQ2pFLENBQUM7SUFFRCxPQUFPRTtBQUNUIn0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29uamVjdHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IENvbmplY3R1cmUgZnJvbSBcIi4uL2NvbmplY3R1cmVcIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgUHJvb2ZDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3Byb29mXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5U3VwcG9zaXRpb24gZnJvbSBcIi4vc3VwcG9zaXRpb25cIjtcbmltcG9ydCB2ZXJpZnlDb25zZXF1ZW5jZSBmcm9tIFwiLi9jb25zZXF1ZW5jZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCBwcm9vZiBmcm9tIFwiLi4vY29udGV4dC9wcm9vZlwiO1xuXG5jb25zdCBwcm9vZk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25qZWN0dXJlL3Byb29mIVwiKSxcbiAgICAgIGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvY29uamVjdHVyZS9sYWJlbFwiKSxcbiAgICAgIGNvbnNlcXVlbmNlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbmplY3R1cmUvY29uc2VxdWVuY2UhXCIpLFxuICAgICAgc3VwcG9zaXRpb25zTm9kZVF1ZXJ5ID0gbm9kZXNRdWVyeShcIi9jb25qZWN0dXJlL3N1cHBvc2l0aW9uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlDb25qZWN0dXJlKGNvbmplY3R1cmVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgY29uamVjdHVyZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbGFiZWxOb2RlcyA9IGxhYmVsTm9kZXNRdWVyeShjb25qZWN0dXJlTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIHByb29mQ29udGV4dCA9IFByb29mQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gIGZpbGVDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke2xhYmVsc1N0cmluZ30nIGNvbmplY3R1cmUuLi5gLCBjb25qZWN0dXJlTm9kZSk7XG5cbiAgY29uc3QgbGFiZWxzID0gW10sXG4gICAgICAgIGxhYmVsc1ZlcmlmaWVkID0gdmVyaWZ5TGFiZWxzKGxhYmVsTm9kZXMsIGxhYmVscywgZmlsZUNvbnRleHQpO1xuXG4gIGlmIChsYWJlbHNWZXJpZmllZCkge1xuICAgIGNvbnN0IHN1cHBvc2l0aW9ucyA9IFtdLFxuICAgICAgICAgIHN1cHBvc2l0aW9uTm9kZXMgPSBzdXBwb3NpdGlvbnNOb2RlUXVlcnkoY29uamVjdHVyZU5vZGUpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uc1ZlcmlmaWVkID0gc3VwcG9zaXRpb25Ob2Rlcy5ldmVyeSgoc3VwcG9zaXRpb25Ob2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdXBwb3NpdGlvblZlcmlmaWVkID0gdmVyaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb25Ob2RlLCBzdXBwb3NpdGlvbnMsIHByb29mQ29udGV4dCk7XG5cbiAgICAgICAgICAgIGlmIChzdXBwb3NpdGlvblZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgaWYgKHN1cHBvc2l0aW9uc1ZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBjb25zZXF1ZW5jZXMgPSBbXSxcbiAgICAgICAgICAgIGNvbnNlcXVlbmNlTm9kZSA9IGNvbnNlcXVlbmNlTm9kZVF1ZXJ5KGNvbmplY3R1cmVOb2RlKSxcbiAgICAgICAgICAgIGNvbnNlcXVlbmNlVmVyaWZpZWQgPSB2ZXJpZnlDb25zZXF1ZW5jZShjb25zZXF1ZW5jZU5vZGUsIGNvbnNlcXVlbmNlcywgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbnNlcXVlbmNlVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgcHJvb2ZOb2RlID0gcHJvb2ZOb2RlUXVlcnkoY29uamVjdHVyZU5vZGUpLFxuICAgICAgICAgICAgICBmaXJzdENvbnNlcXVlbmNlID0gZmlyc3QoY29uc2VxdWVuY2VzKSxcbiAgICAgICAgICAgICAgY29uc2VxdWVuY2UgPSBmaXJzdENvbnNlcXVlbmNlOyAvLy9cblxuICAgICAgICB2ZXJpZnlQcm9vZihwcm9vZk5vZGUsIGNvbnNlcXVlbmNlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgIGNvbnN0IGNvbmplY3R1cmUgPSBDb25qZWN0dXJlLmZyb21MYWJlbHNTdXBwb3NpdGlvbnNDb25zZXF1ZW5jZUFuZFByb29mQ29udGV4dChsYWJlbHMsIHN1cHBvc2l0aW9ucywgY29uc2VxdWVuY2UsIHByb29mQ29udGV4dCk7XG5cbiAgICAgICAgZmlsZUNvbnRleHQuYWRkQ29uamVjdHVyZShjb25qZWN0dXJlKTtcblxuICAgICAgICBjb25qZWN0dXJlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChjb25qZWN0dXJlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7bGFiZWxzU3RyaW5nfScgY29uamVjdHVyZS5gLCBjb25qZWN0dXJlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gY29uamVjdHVyZVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUNvbmplY3R1cmUiLCJwcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImxhYmVsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJjb25zZXF1ZW5jZU5vZGVRdWVyeSIsInN1cHBvc2l0aW9uc05vZGVRdWVyeSIsImNvbmplY3R1cmVOb2RlIiwiZmlsZUNvbnRleHQiLCJjb25qZWN0dXJlVmVyaWZpZWQiLCJsYWJlbE5vZGVzIiwibGFiZWxzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsInByb29mQ29udGV4dCIsIlByb29mQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsImRlYnVnIiwibGFiZWxzIiwibGFiZWxzVmVyaWZpZWQiLCJ2ZXJpZnlMYWJlbHMiLCJzdXBwb3NpdGlvbnMiLCJzdXBwb3NpdGlvbk5vZGVzIiwic3VwcG9zaXRpb25zVmVyaWZpZWQiLCJldmVyeSIsInN1cHBvc2l0aW9uTm9kZSIsInN1cHBvc2l0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlTdXBwb3NpdGlvbiIsImNvbnNlcXVlbmNlcyIsImNvbnNlcXVlbmNlTm9kZSIsImNvbnNlcXVlbmNlVmVyaWZpZWQiLCJ2ZXJpZnlDb25zZXF1ZW5jZSIsInByb29mTm9kZSIsImZpcnN0Q29uc2VxdWVuY2UiLCJmaXJzdCIsImNvbnNlcXVlbmNlIiwidmVyaWZ5UHJvb2YiLCJjb25qZWN0dXJlIiwiQ29uamVjdHVyZSIsImZyb21MYWJlbHNTdXBwb3NpdGlvbnNDb25zZXF1ZW5jZUFuZFByb29mQ29udGV4dCIsImFkZENvbmplY3R1cmUiLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFrQkE7OztlQUF3QkE7OzsrREFoQkQ7MERBQ0M7MkRBQ0M7MkRBQ0E7Z0VBQ0s7Z0VBQ0E7cUJBRVI7cUJBQ2dCOzs7Ozs7QUFHdEMsSUFBTUMsaUJBQWlCQyxJQUFBQSxnQkFBUyxFQUFDLHVCQUMzQkMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLHNCQUM3QkMsdUJBQXVCSCxJQUFBQSxnQkFBUyxFQUFDLDZCQUNqQ0ksd0JBQXdCRixJQUFBQSxpQkFBVSxFQUFDO0FBRTFCLFNBQVNKLGlCQUFpQk8sY0FBYyxFQUFFQyxXQUFXLEVBQUU7SUFDcEUsSUFBSUMscUJBQXFCLEtBQUs7SUFFOUIsSUFBTUMsYUFBYVAsZ0JBQWdCSSxpQkFDN0JJLGVBQWVILFlBQVlJLGFBQWEsQ0FBQ0YsYUFDekNHLGVBQWVDLGVBQVksQ0FBQ0MsZUFBZSxDQUFDUDtJQUVsREEsWUFBWVEsS0FBSyxDQUFDLEFBQUMsa0JBQThCLE9BQWJMLGNBQWEsb0JBQWtCSjtJQUVuRSxJQUFNVSxTQUFTLEVBQUUsRUFDWEMsaUJBQWlCQyxJQUFBQSxlQUFZLEVBQUNULFlBQVlPLFFBQVFUO0lBRXhELElBQUlVLGdCQUFnQjtRQUNsQixJQUFNRSxlQUFlLEVBQUUsRUFDakJDLG1CQUFtQmYsc0JBQXNCQyxpQkFDekNlLHVCQUF1QkQsaUJBQWlCRSxLQUFLLENBQUMsU0FBQ0MsaUJBQW9CO1lBQ2pFLElBQU1DLHNCQUFzQkMsSUFBQUEsb0JBQWlCLEVBQUNGLGlCQUFpQkosY0FBY1A7WUFFN0UsSUFBSVkscUJBQXFCO2dCQUN2QixPQUFPLElBQUk7WUFDYixDQUFDO1FBQ0g7UUFFTixJQUFJSCxzQkFBc0I7WUFDeEIsSUFBTUssZUFBZSxFQUFFLEVBQ2pCQyxrQkFBa0J2QixxQkFBcUJFLGlCQUN2Q3NCLHNCQUFzQkMsSUFBQUEsb0JBQWlCLEVBQUNGLGlCQUFpQkQsY0FBY2Q7WUFFN0UsSUFBSWdCLHFCQUFxQjtnQkFDdkIsSUFBTUUsWUFBWTlCLGVBQWVNLGlCQUMzQnlCLG1CQUFtQkMsSUFBQUEsWUFBSyxFQUFDTixlQUN6Qk8sY0FBY0Ysa0JBQWtCLEdBQUc7Z0JBRXpDRyxJQUFBQSxjQUFXLEVBQUNKLFdBQVdHLGFBQWFyQjtnQkFFcEMsSUFBTXVCLGFBQWFDLG1CQUFVLENBQUNDLGdEQUFnRCxDQUFDckIsUUFBUUcsY0FBY2MsYUFBYXJCO2dCQUVsSEwsWUFBWStCLGFBQWEsQ0FBQ0g7Z0JBRTFCM0IscUJBQXFCLElBQUk7WUFDM0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSUEsb0JBQW9CO1FBQ3RCRCxZQUFZZ0MsSUFBSSxDQUFDLEFBQUMsaUJBQTZCLE9BQWI3QixjQUFhLGtCQUFnQko7SUFDakUsQ0FBQztJQUVELE9BQU9FO0FBQ1QifQ==
@@ -0,0 +1,26 @@
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 verifyMetavariableDeclaration;
9
+ }
10
+ });
11
+ var _metavariable = /*#__PURE__*/ _interopRequireDefault(require("../../verify/metavariable"));
12
+ var _query = require("../../utilities/query");
13
+ function _interopRequireDefault(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ var metaTypeNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration/metaType"), metavariableNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration/metavariable");
19
+ function verifyMetavariableDeclaration(metavariableDeclarationNode, fileContext) {
20
+ var metavariableDeclarationVerified;
21
+ var metaTypeNode = metaTypeNodeQuery(metavariableDeclarationNode), metavariableNode = metavariableNodeQuery(metavariableDeclarationNode), metavariableVVerified = (0, _metavariable.default)(metavariableNode, metaTypeNode, fileContext);
22
+ metavariableDeclarationVerified = metavariableVVerified; ///
23
+ return metavariableDeclarationVerified;
24
+ }
25
+
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5TWV0YXZhcmlhYmxlIGZyb20gXCIuLi8uLi92ZXJpZnkvbWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgbWV0YVR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlRGVjbGFyYXRpb24vbWV0YVR5cGVcIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlRGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGVEZWNsYXJhdGlvbihtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IG1ldGFUeXBlTm9kZSA9IG1ldGFUeXBlTm9kZVF1ZXJ5KG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlVlZlcmlmaWVkID0gdmVyaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQgPSBtZXRhdmFyaWFibGVWVmVyaWZpZWQ7ICAvLy9cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlNZXRhdmFyaWFibGVEZWNsYXJhdGlvbiIsIm1ldGFUeXBlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiZmlsZUNvbnRleHQiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkIiwibWV0YVR5cGVOb2RlIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZVZWZXJpZmllZCIsInZlcmlmeU1ldGF2YXJpYWJsZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUF3QkE7OztpRUFQTztxQkFFTDs7Ozs7O0FBRTFCLElBQU1DLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQyxzQ0FDOUJDLHdCQUF3QkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV6QixTQUFTRiw4QkFBOEJJLDJCQUEyQixFQUFFQyxXQUFXLEVBQUU7SUFDOUYsSUFBSUM7SUFFSixJQUFNQyxlQUFlTixrQkFBa0JHLDhCQUNqQ0ksbUJBQW1CTCxzQkFBc0JDLDhCQUN6Q0ssd0JBQXdCQyxJQUFBQSxxQkFBa0IsRUFBQ0Ysa0JBQWtCRCxjQUFjRjtJQUVqRkMsa0NBQWtDRyx1QkFBd0IsR0FBRztJQUU3RCxPQUFPSDtBQUNUIn0=
@@ -17,16 +17,17 @@ var _type = /*#__PURE__*/ _interopRequireDefault(require("../../verify/declarati
17
17
  var _variable = /*#__PURE__*/ _interopRequireDefault(require("../../verify/declaration/variable"));
18
18
  var _combinator = /*#__PURE__*/ _interopRequireDefault(require("../../verify/declaration/combinator"));
19
19
  var _constructor = /*#__PURE__*/ _interopRequireDefault(require("../../verify/declaration/constructor"));
20
+ var _metavariable = /*#__PURE__*/ _interopRequireDefault(require("../../verify/declaration/metavariable"));
20
21
  var _query = require("../../utilities/query");
21
22
  function _interopRequireDefault(obj) {
22
23
  return obj && obj.__esModule ? obj : {
23
24
  default: obj
24
25
  };
25
26
  }
26
- var ruleNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/rule!"), axiomNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/axiom!"), lemmaNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/lemma!"), theoremNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/theorem!"), conjectureNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/conjecture!"), typeDeclarationNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/typeDeclaration!"), variableDeclarationNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/variableDeclaration!"), combinatorDeclarationNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/combinatorDeclaration!"), constructorDeclarationNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/constructorDeclaration!");
27
+ var ruleNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/rule!"), axiomNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/axiom!"), lemmaNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/lemma!"), theoremNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/theorem!"), conjectureNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/conjecture!"), typeDeclarationNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/typeDeclaration!"), variableDeclarationNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/variableDeclaration!"), combinatorDeclarationNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/combinatorDeclaration!"), constructorDeclarationNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/constructorDeclaration!"), metavariableDeclarationNodeQuery = (0, _query.nodeQuery)("/topLevelDeclaration/metavariableDeclaration!");
27
28
  function verifyTopLevelDeclaration(topLevelDeclarationNode, fileContext) {
28
29
  var topLevelDeclarationVerified = false;
29
- var node = topLevelDeclarationNode, ruleNode = ruleNodeQuery(node), axiomNode = axiomNodeQuery(node), lemmaNode = lemmaNodeQuery(node), theoremNode = theoremNodeQuery(node), conjectureNode = conjectureNodeQuery(node), typeDeclarationNode = typeDeclarationNodeQuery(node), variableDeclarationNode = variableDeclarationNodeQuery(node), combinatorDeclarationNode = combinatorDeclarationNodeQuery(node), constructorDeclarationNode = constructorDeclarationNodeQuery(node);
30
+ var node = topLevelDeclarationNode, ruleNode = ruleNodeQuery(node), axiomNode = axiomNodeQuery(node), lemmaNode = lemmaNodeQuery(node), theoremNode = theoremNodeQuery(node), conjectureNode = conjectureNodeQuery(node), typeDeclarationNode = typeDeclarationNodeQuery(node), variableDeclarationNode = variableDeclarationNodeQuery(node), combinatorDeclarationNode = combinatorDeclarationNodeQuery(node), constructorDeclarationNode = constructorDeclarationNodeQuery(node), metavariableDeclarationNode = metavariableDeclarationNodeQuery(node);
30
31
  if (false) {
31
32
  ///
32
33
  } else if (ruleNode !== null) {
@@ -56,8 +57,11 @@ function verifyTopLevelDeclaration(topLevelDeclarationNode, fileContext) {
56
57
  } else if (constructorDeclarationNode !== null) {
57
58
  var constructorDeclarationVerified = (0, _constructor.default)(constructorDeclarationNode, fileContext);
58
59
  topLevelDeclarationVerified = constructorDeclarationVerified; ///
60
+ } else if (metavariableDeclarationNode !== null) {
61
+ var metavariableDeclarationVerified = (0, _metavariable.default)(metavariableDeclarationNode, fileContext);
62
+ topLevelDeclarationVerified = metavariableDeclarationVerified; ///
59
63
  }
60
64
  return topLevelDeclarationVerified;
61
65
  }
62
66
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24vdG9wTGV2ZWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlSdWxlIGZyb20gXCIuLi8uLi92ZXJpZnkvcnVsZVwiO1xuaW1wb3J0IHZlcmlmeUF4aW9tIGZyb20gXCIuLi8uLi92ZXJpZnkvYXhpb21cIjtcbmltcG9ydCB2ZXJpZnlMZW1tYSBmcm9tIFwiLi4vLi4vdmVyaWZ5L2xlbW1hXCI7XG5pbXBvcnQgdmVyaWZ5VGhlb3JlbSBmcm9tIFwiLi4vLi4vdmVyaWZ5L3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlDb25qZWN0dXJlIGZyb20gXCIuLi8uLi92ZXJpZnkvY29uamVjdHVyZVwiO1xuaW1wb3J0IHZlcmlmeVR5cGVEZWNsYXJhdGlvbiBmcm9tIFwiLi4vLi4vdmVyaWZ5L2RlY2xhcmF0aW9uL3R5cGVcIjtcbmltcG9ydCB2ZXJpZnlWYXJpYWJsZURlY2xhcmF0aW9uIGZyb20gXCIuLi8uLi92ZXJpZnkvZGVjbGFyYXRpb24vdmFyaWFibGVcIjtcbmltcG9ydCB2ZXJpZnlDb21iaW5hdG9yRGVjbGFyYXRpb24gZnJvbSBcIi4uLy4uL3ZlcmlmeS9kZWNsYXJhdGlvbi9jb21iaW5hdG9yXCI7XG5pbXBvcnQgdmVyaWZ5Q29uc3RydWN0b3JEZWNsYXJhdGlvbiBmcm9tIFwiLi4vLi4vdmVyaWZ5L2RlY2xhcmF0aW9uL2NvbnN0cnVjdG9yXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcnVsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90b3BMZXZlbERlY2xhcmF0aW9uL3J1bGUhXCIpLFxuICAgICAgYXhpb21Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdG9wTGV2ZWxEZWNsYXJhdGlvbi9heGlvbSFcIiksXG4gICAgICBsZW1tYU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90b3BMZXZlbERlY2xhcmF0aW9uL2xlbW1hIVwiKSxcbiAgICAgIHRoZW9yZW1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdG9wTGV2ZWxEZWNsYXJhdGlvbi90aGVvcmVtIVwiKSxcbiAgICAgIGNvbmplY3R1cmVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdG9wTGV2ZWxEZWNsYXJhdGlvbi9jb25qZWN0dXJlIVwiKSxcbiAgICAgIHR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90b3BMZXZlbERlY2xhcmF0aW9uL3R5cGVEZWNsYXJhdGlvbiFcIiksXG4gICAgICB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RvcExldmVsRGVjbGFyYXRpb24vdmFyaWFibGVEZWNsYXJhdGlvbiFcIiksXG4gICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdG9wTGV2ZWxEZWNsYXJhdGlvbi9jb21iaW5hdG9yRGVjbGFyYXRpb24hXCIpLFxuICAgICAgY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90b3BMZXZlbERlY2xhcmF0aW9uL2NvbnN0cnVjdG9yRGVjbGFyYXRpb24hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlUb3BMZXZlbERlY2xhcmF0aW9uKHRvcExldmVsRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZSA9IHRvcExldmVsRGVjbGFyYXRpb25Ob2RlLCAvLy9cbiAgICAgICAgcnVsZU5vZGUgPSBydWxlTm9kZVF1ZXJ5KG5vZGUpLFxuICAgICAgICBheGlvbU5vZGUgPSBheGlvbU5vZGVRdWVyeShub2RlKSxcbiAgICAgICAgbGVtbWFOb2RlID0gbGVtbWFOb2RlUXVlcnkobm9kZSksXG4gICAgICAgIHRoZW9yZW1Ob2RlID0gdGhlb3JlbU5vZGVRdWVyeShub2RlKSxcbiAgICAgICAgY29uamVjdHVyZU5vZGUgPSBjb25qZWN0dXJlTm9kZVF1ZXJ5KG5vZGUpLFxuICAgICAgICB0eXBlRGVjbGFyYXRpb25Ob2RlID0gdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5KG5vZGUpLFxuICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnkobm9kZSksXG4gICAgICAgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUgPSBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkobm9kZSksXG4gICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlID0gY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeShub2RlKTtcblxuICBpZiAoZmFsc2UpIHtcbiAgICAvLy9cbiAgfSBlbHNlIGlmIChydWxlTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHJ1bGVWZXJpZmllZCA9IHZlcmlmeVJ1bGUocnVsZU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCA9IHJ1bGVWZXJpZmllZDsgIC8vL1xuICB9IGVsc2UgaWYgKGF4aW9tTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGF4aW9tVmVyaWZpZWQgPSB2ZXJpZnlBeGlvbShheGlvbU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCA9IGF4aW9tVmVyaWZpZWQ7ICAvLy9cbiAgfSBlbHNlIGlmIChsZW1tYU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBsZW1tYVZlcmlmaWVkID0gdmVyaWZ5TGVtbWEobGVtbWFOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICB0b3BMZXZlbERlY2xhcmF0aW9uVmVyaWZpZWQgPSBsZW1tYVZlcmlmaWVkOyAgLy8vXG4gIH0gZWxzZSBpZiAodGhlb3JlbU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0aGVvcmVtVmVyaWZpZWQgPSB2ZXJpZnlUaGVvcmVtKHRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICB0b3BMZXZlbERlY2xhcmF0aW9uVmVyaWZpZWQgPSB0aGVvcmVtVmVyaWZpZWQ7ICAvLy9cbiAgfSBlbHNlIGlmIChjb25qZWN0dXJlTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVWZXJpZmllZCA9IHZlcmlmeUNvbmplY3R1cmUoY29uamVjdHVyZU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCA9IGNvbmplY3R1cmVWZXJpZmllZDsgIC8vL1xuICB9IGVsc2UgaWYgKHR5cGVEZWNsYXJhdGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0eXBlRGVjbGFyYXRpb25WZXJpZmllZCA9IHZlcmlmeVR5cGVEZWNsYXJhdGlvbih0eXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICB0b3BMZXZlbERlY2xhcmF0aW9uVmVyaWZpZWQgPSB0eXBlRGVjbGFyYXRpb25WZXJpZmllZDsgIC8vL1xuICB9IGVsc2UgaWYgKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkID0gdmVyaWZ5VmFyaWFibGVEZWNsYXJhdGlvbih2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgdG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkID0gdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkOyAgLy8vXG4gIH0gZWxzZSBpZiAoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGNvbWJpbmF0b3JEZWNsYXJhdGlvblZlcmlmaWVkID0gdmVyaWZ5Q29tYmluYXRvckRlY2xhcmF0aW9uKGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCA9IGNvbWJpbmF0b3JEZWNsYXJhdGlvblZlcmlmaWVkOyAgLy8vXG4gIH0gZWxzZSBpZiAoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlDb25zdHJ1Y3RvckRlY2xhcmF0aW9uKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICB0b3BMZXZlbERlY2xhcmF0aW9uVmVyaWZpZWQgPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVmVyaWZpZWQ7ICAvLy9cbiAgfVxuXG4gIHJldHVybiB0b3BMZXZlbERlY2xhcmF0aW9uVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VG9wTGV2ZWxEZWNsYXJhdGlvbiIsInJ1bGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJheGlvbU5vZGVRdWVyeSIsImxlbW1hTm9kZVF1ZXJ5IiwidGhlb3JlbU5vZGVRdWVyeSIsImNvbmplY3R1cmVOb2RlUXVlcnkiLCJ0eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsInRvcExldmVsRGVjbGFyYXRpb25Ob2RlIiwiZmlsZUNvbnRleHQiLCJ0b3BMZXZlbERlY2xhcmF0aW9uVmVyaWZpZWQiLCJub2RlIiwicnVsZU5vZGUiLCJheGlvbU5vZGUiLCJsZW1tYU5vZGUiLCJ0aGVvcmVtTm9kZSIsImNvbmplY3R1cmVOb2RlIiwidHlwZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwicnVsZVZlcmlmaWVkIiwidmVyaWZ5UnVsZSIsImF4aW9tVmVyaWZpZWQiLCJ2ZXJpZnlBeGlvbSIsImxlbW1hVmVyaWZpZWQiLCJ2ZXJpZnlMZW1tYSIsInRoZW9yZW1WZXJpZmllZCIsInZlcmlmeVRoZW9yZW0iLCJjb25qZWN0dXJlVmVyaWZpZWQiLCJ2ZXJpZnlDb25qZWN0dXJlIiwidHlwZURlY2xhcmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlRGVjbGFyYXRpb24iLCJ2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlWYXJpYWJsZURlY2xhcmF0aW9uIiwiY29tYmluYXRvckRlY2xhcmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlDb21iaW5hdG9yRGVjbGFyYXRpb24iLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlDb25zdHJ1Y3RvckRlY2xhcmF0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF3QkE7OztlQUF3QkE7Ozt5REF0QkQ7MERBQ0M7MERBQ0E7NERBQ0U7K0RBQ0c7eURBQ0s7NkRBQ0k7K0RBQ0U7Z0VBQ0M7cUJBRWY7Ozs7OztBQUUxQixJQUFNQyxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsK0JBQzFCQyxpQkFBaUJELElBQUFBLGdCQUFTLEVBQUMsZ0NBQzNCRSxpQkFBaUJGLElBQUFBLGdCQUFTLEVBQUMsZ0NBQzNCRyxtQkFBbUJILElBQUFBLGdCQUFTLEVBQUMsa0NBQzdCSSxzQkFBc0JKLElBQUFBLGdCQUFTLEVBQUMscUNBQ2hDSywyQkFBMkJMLElBQUFBLGdCQUFTLEVBQUMsMENBQ3JDTSwrQkFBK0JOLElBQUFBLGdCQUFTLEVBQUMsOENBQ3pDTyxpQ0FBaUNQLElBQUFBLGdCQUFTLEVBQUMsZ0RBQzNDUSxrQ0FBa0NSLElBQUFBLGdCQUFTLEVBQUM7QUFFbkMsU0FBU0YsMEJBQTBCVyx1QkFBdUIsRUFBRUMsV0FBVyxFQUFFO0lBQ3RGLElBQUlDLDhCQUE4QixLQUFLO0lBRXZDLElBQU1DLE9BQU9ILHlCQUNQSSxXQUFXZCxjQUFjYSxPQUN6QkUsWUFBWWIsZUFBZVcsT0FDM0JHLFlBQVliLGVBQWVVLE9BQzNCSSxjQUFjYixpQkFBaUJTLE9BQy9CSyxpQkFBaUJiLG9CQUFvQlEsT0FDckNNLHNCQUFzQmIseUJBQXlCTyxPQUMvQ08sMEJBQTBCYiw2QkFBNkJNLE9BQ3ZEUSw0QkFBNEJiLCtCQUErQkssT0FDM0RTLDZCQUE2QmIsZ0NBQWdDSTtJQUVuRSxJQUFJLEtBQUssRUFBRTtJQUNULEdBQUc7SUFDTCxPQUFPLElBQUlDLGFBQWEsSUFBSSxFQUFFO1FBQzVCLElBQU1TLGVBQWVDLElBQUFBLGFBQVUsRUFBQ1YsVUFBVUg7UUFFMUNDLDhCQUE4QlcsY0FBZSxHQUFHO0lBQ2xELE9BQU8sSUFBSVIsY0FBYyxJQUFJLEVBQUU7UUFDN0IsSUFBTVUsZ0JBQWdCQyxJQUFBQSxjQUFXLEVBQUNYLFdBQVdKO1FBRTdDQyw4QkFBOEJhLGVBQWdCLEdBQUc7SUFDbkQsT0FBTyxJQUFJVCxjQUFjLElBQUksRUFBRTtRQUM3QixJQUFNVyxnQkFBZ0JDLElBQUFBLGNBQVcsRUFBQ1osV0FBV0w7UUFFN0NDLDhCQUE4QmUsZUFBZ0IsR0FBRztJQUNuRCxPQUFPLElBQUlWLGdCQUFnQixJQUFJLEVBQUU7UUFDL0IsSUFBTVksa0JBQWtCQyxJQUFBQSxnQkFBYSxFQUFDYixhQUFhTjtRQUVuREMsOEJBQThCaUIsaUJBQWtCLEdBQUc7SUFDckQsT0FBTyxJQUFJWCxtQkFBbUIsSUFBSSxFQUFFO1FBQ2xDLElBQU1hLHFCQUFxQkMsSUFBQUEsbUJBQWdCLEVBQUNkLGdCQUFnQlA7UUFFNURDLDhCQUE4Qm1CLG9CQUFxQixHQUFHO0lBQ3hELE9BQU8sSUFBSVosd0JBQXdCLElBQUksRUFBRTtRQUN2QyxJQUFNYywwQkFBMEJDLElBQUFBLGFBQXFCLEVBQUNmLHFCQUFxQlI7UUFFM0VDLDhCQUE4QnFCLHlCQUEwQixHQUFHO0lBQzdELE9BQU8sSUFBSWIsNEJBQTRCLElBQUksRUFBRTtRQUMzQyxJQUFNZSw4QkFBOEJDLElBQUFBLGlCQUF5QixFQUFDaEIseUJBQXlCVDtRQUV2RkMsOEJBQThCdUIsNkJBQThCLEdBQUc7SUFDakUsT0FBTyxJQUFJZCw4QkFBOEIsSUFBSSxFQUFFO1FBQzdDLElBQU1nQixnQ0FBZ0NDLElBQUFBLG1CQUEyQixFQUFDakIsMkJBQTJCVjtRQUU3RkMsOEJBQThCeUIsK0JBQWdDLEdBQUc7SUFDbkUsT0FBTyxJQUFJZiwrQkFBK0IsSUFBSSxFQUFFO1FBQzlDLElBQU1pQixpQ0FBaUNDLElBQUFBLG9CQUE0QixFQUFDbEIsNEJBQTRCWDtRQUVoR0MsOEJBQThCMkIsZ0NBQWlDLEdBQUc7SUFDcEUsQ0FBQztJQUVELE9BQU8zQjtBQUNUIn0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24vdG9wTGV2ZWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlSdWxlIGZyb20gXCIuLi8uLi92ZXJpZnkvcnVsZVwiO1xuaW1wb3J0IHZlcmlmeUF4aW9tIGZyb20gXCIuLi8uLi92ZXJpZnkvYXhpb21cIjtcbmltcG9ydCB2ZXJpZnlMZW1tYSBmcm9tIFwiLi4vLi4vdmVyaWZ5L2xlbW1hXCI7XG5pbXBvcnQgdmVyaWZ5VGhlb3JlbSBmcm9tIFwiLi4vLi4vdmVyaWZ5L3RoZW9yZW1cIjtcbmltcG9ydCB2ZXJpZnlDb25qZWN0dXJlIGZyb20gXCIuLi8uLi92ZXJpZnkvY29uamVjdHVyZVwiO1xuaW1wb3J0IHZlcmlmeVR5cGVEZWNsYXJhdGlvbiBmcm9tIFwiLi4vLi4vdmVyaWZ5L2RlY2xhcmF0aW9uL3R5cGVcIjtcbmltcG9ydCB2ZXJpZnlWYXJpYWJsZURlY2xhcmF0aW9uIGZyb20gXCIuLi8uLi92ZXJpZnkvZGVjbGFyYXRpb24vdmFyaWFibGVcIjtcbmltcG9ydCB2ZXJpZnlDb21iaW5hdG9yRGVjbGFyYXRpb24gZnJvbSBcIi4uLy4uL3ZlcmlmeS9kZWNsYXJhdGlvbi9jb21iaW5hdG9yXCI7XG5pbXBvcnQgdmVyaWZ5Q29uc3RydWN0b3JEZWNsYXJhdGlvbiBmcm9tIFwiLi4vLi4vdmVyaWZ5L2RlY2xhcmF0aW9uL2NvbnN0cnVjdG9yXCI7XG5pbXBvcnQgdmVyaWZ5TWV0YXZhcmlhYmxlRGVjbGFyYXRpb24gZnJvbSBcIi4uLy4uL3ZlcmlmeS9kZWNsYXJhdGlvbi9tZXRhdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBydWxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RvcExldmVsRGVjbGFyYXRpb24vcnVsZSFcIiksXG4gICAgICBheGlvbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90b3BMZXZlbERlY2xhcmF0aW9uL2F4aW9tIVwiKSxcbiAgICAgIGxlbW1hTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RvcExldmVsRGVjbGFyYXRpb24vbGVtbWEhXCIpLFxuICAgICAgdGhlb3JlbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90b3BMZXZlbERlY2xhcmF0aW9uL3RoZW9yZW0hXCIpLFxuICAgICAgY29uamVjdHVyZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90b3BMZXZlbERlY2xhcmF0aW9uL2NvbmplY3R1cmUhXCIpLFxuICAgICAgdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RvcExldmVsRGVjbGFyYXRpb24vdHlwZURlY2xhcmF0aW9uIVwiKSxcbiAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdG9wTGV2ZWxEZWNsYXJhdGlvbi92YXJpYWJsZURlY2xhcmF0aW9uIVwiKSxcbiAgICAgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90b3BMZXZlbERlY2xhcmF0aW9uL2NvbWJpbmF0b3JEZWNsYXJhdGlvbiFcIiksXG4gICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3RvcExldmVsRGVjbGFyYXRpb24vY29uc3RydWN0b3JEZWNsYXJhdGlvbiFcIiksXG4gICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90b3BMZXZlbERlY2xhcmF0aW9uL21ldGF2YXJpYWJsZURlY2xhcmF0aW9uIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VG9wTGV2ZWxEZWNsYXJhdGlvbih0b3BMZXZlbERlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGUgPSB0b3BMZXZlbERlY2xhcmF0aW9uTm9kZSwgLy8vXG4gICAgICAgIHJ1bGVOb2RlID0gcnVsZU5vZGVRdWVyeShub2RlKSxcbiAgICAgICAgYXhpb21Ob2RlID0gYXhpb21Ob2RlUXVlcnkobm9kZSksXG4gICAgICAgIGxlbW1hTm9kZSA9IGxlbW1hTm9kZVF1ZXJ5KG5vZGUpLFxuICAgICAgICB0aGVvcmVtTm9kZSA9IHRoZW9yZW1Ob2RlUXVlcnkobm9kZSksXG4gICAgICAgIGNvbmplY3R1cmVOb2RlID0gY29uamVjdHVyZU5vZGVRdWVyeShub2RlKSxcbiAgICAgICAgdHlwZURlY2xhcmF0aW9uTm9kZSA9IHR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeShub2RlKSxcbiAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgPSB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5KG5vZGUpLFxuICAgICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlID0gY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5KG5vZGUpLFxuICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSA9IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkobm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5KG5vZGUpO1xuXG4gIGlmIChmYWxzZSkge1xuICAgIC8vL1xuICB9IGVsc2UgaWYgKHJ1bGVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcnVsZVZlcmlmaWVkID0gdmVyaWZ5UnVsZShydWxlTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgdG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkID0gcnVsZVZlcmlmaWVkOyAgLy8vXG4gIH0gZWxzZSBpZiAoYXhpb21Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgYXhpb21WZXJpZmllZCA9IHZlcmlmeUF4aW9tKGF4aW9tTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgdG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkID0gYXhpb21WZXJpZmllZDsgIC8vL1xuICB9IGVsc2UgaWYgKGxlbW1hTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGxlbW1hVmVyaWZpZWQgPSB2ZXJpZnlMZW1tYShsZW1tYU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCA9IGxlbW1hVmVyaWZpZWQ7ICAvLy9cbiAgfSBlbHNlIGlmICh0aGVvcmVtTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHRoZW9yZW1WZXJpZmllZCA9IHZlcmlmeVRoZW9yZW0odGhlb3JlbU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCA9IHRoZW9yZW1WZXJpZmllZDsgIC8vL1xuICB9IGVsc2UgaWYgKGNvbmplY3R1cmVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgY29uamVjdHVyZVZlcmlmaWVkID0gdmVyaWZ5Q29uamVjdHVyZShjb25qZWN0dXJlTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgdG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkID0gY29uamVjdHVyZVZlcmlmaWVkOyAgLy8vXG4gIH0gZWxzZSBpZiAodHlwZURlY2xhcmF0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHR5cGVEZWNsYXJhdGlvblZlcmlmaWVkID0gdmVyaWZ5VHlwZURlY2xhcmF0aW9uKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCA9IHR5cGVEZWNsYXJhdGlvblZlcmlmaWVkOyAgLy8vXG4gIH0gZWxzZSBpZiAodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlWYXJpYWJsZURlY2xhcmF0aW9uKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICB0b3BMZXZlbERlY2xhcmF0aW9uVmVyaWZpZWQgPSB2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQ7ICAvLy9cbiAgfSBlbHNlIGlmIChjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgY29tYmluYXRvckRlY2xhcmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlDb21iaW5hdG9yRGVjbGFyYXRpb24oY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgdG9wTGV2ZWxEZWNsYXJhdGlvblZlcmlmaWVkID0gY29tYmluYXRvckRlY2xhcmF0aW9uVmVyaWZpZWQ7ICAvLy9cbiAgfSBlbHNlIGlmIChjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25WZXJpZmllZCA9IHZlcmlmeUNvbnN0cnVjdG9yRGVjbGFyYXRpb24oY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCA9IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25WZXJpZmllZDsgIC8vL1xuICB9IGVsc2UgaWYgKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlNZXRhdmFyaWFibGVEZWNsYXJhdGlvbihtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZWQ7ICAvLy9cbiAgfVxuXG4gIHJldHVybiB0b3BMZXZlbERlY2xhcmF0aW9uVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VG9wTGV2ZWxEZWNsYXJhdGlvbiIsInJ1bGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJheGlvbU5vZGVRdWVyeSIsImxlbW1hTm9kZVF1ZXJ5IiwidGhlb3JlbU5vZGVRdWVyeSIsImNvbmplY3R1cmVOb2RlUXVlcnkiLCJ0eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwidG9wTGV2ZWxEZWNsYXJhdGlvbk5vZGUiLCJmaWxlQ29udGV4dCIsInRvcExldmVsRGVjbGFyYXRpb25WZXJpZmllZCIsIm5vZGUiLCJydWxlTm9kZSIsImF4aW9tTm9kZSIsImxlbW1hTm9kZSIsInRoZW9yZW1Ob2RlIiwiY29uamVjdHVyZU5vZGUiLCJ0eXBlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJydWxlVmVyaWZpZWQiLCJ2ZXJpZnlSdWxlIiwiYXhpb21WZXJpZmllZCIsInZlcmlmeUF4aW9tIiwibGVtbWFWZXJpZmllZCIsInZlcmlmeUxlbW1hIiwidGhlb3JlbVZlcmlmaWVkIiwidmVyaWZ5VGhlb3JlbSIsImNvbmplY3R1cmVWZXJpZmllZCIsInZlcmlmeUNvbmplY3R1cmUiLCJ0eXBlRGVjbGFyYXRpb25WZXJpZmllZCIsInZlcmlmeVR5cGVEZWNsYXJhdGlvbiIsInZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllZCIsInZlcmlmeVZhcmlhYmxlRGVjbGFyYXRpb24iLCJjb21iaW5hdG9yRGVjbGFyYXRpb25WZXJpZmllZCIsInZlcmlmeUNvbWJpbmF0b3JEZWNsYXJhdGlvbiIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25WZXJpZmllZCIsInZlcmlmeUNvbnN0cnVjdG9yRGVjbGFyYXRpb24iLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVkIiwidmVyaWZ5TWV0YXZhcmlhYmxlRGVjbGFyYXRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQTBCQTs7O2VBQXdCQTs7O3lEQXhCRDswREFDQzswREFDQTs0REFDRTsrREFDRzt5REFDSzs2REFDSTsrREFDRTtnRUFDQztpRUFDQztxQkFFaEI7Ozs7OztBQUUxQixJQUFNQyxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsK0JBQzFCQyxpQkFBaUJELElBQUFBLGdCQUFTLEVBQUMsZ0NBQzNCRSxpQkFBaUJGLElBQUFBLGdCQUFTLEVBQUMsZ0NBQzNCRyxtQkFBbUJILElBQUFBLGdCQUFTLEVBQUMsa0NBQzdCSSxzQkFBc0JKLElBQUFBLGdCQUFTLEVBQUMscUNBQ2hDSywyQkFBMkJMLElBQUFBLGdCQUFTLEVBQUMsMENBQ3JDTSwrQkFBK0JOLElBQUFBLGdCQUFTLEVBQUMsOENBQ3pDTyxpQ0FBaUNQLElBQUFBLGdCQUFTLEVBQUMsZ0RBQzNDUSxrQ0FBa0NSLElBQUFBLGdCQUFTLEVBQUMsaURBQzVDUyxtQ0FBbUNULElBQUFBLGdCQUFTLEVBQUM7QUFFcEMsU0FBU0YsMEJBQTBCWSx1QkFBdUIsRUFBRUMsV0FBVyxFQUFFO0lBQ3RGLElBQUlDLDhCQUE4QixLQUFLO0lBRXZDLElBQU1DLE9BQU9ILHlCQUNQSSxXQUFXZixjQUFjYyxPQUN6QkUsWUFBWWQsZUFBZVksT0FDM0JHLFlBQVlkLGVBQWVXLE9BQzNCSSxjQUFjZCxpQkFBaUJVLE9BQy9CSyxpQkFBaUJkLG9CQUFvQlMsT0FDckNNLHNCQUFzQmQseUJBQXlCUSxPQUMvQ08sMEJBQTBCZCw2QkFBNkJPLE9BQ3ZEUSw0QkFBNEJkLCtCQUErQk0sT0FDM0RTLDZCQUE2QmQsZ0NBQWdDSyxPQUM3RFUsOEJBQThCZCxpQ0FBaUNJO0lBRXJFLElBQUksS0FBSyxFQUFFO0lBQ1QsR0FBRztJQUNMLE9BQU8sSUFBSUMsYUFBYSxJQUFJLEVBQUU7UUFDNUIsSUFBTVUsZUFBZUMsSUFBQUEsYUFBVSxFQUFDWCxVQUFVSDtRQUUxQ0MsOEJBQThCWSxjQUFlLEdBQUc7SUFDbEQsT0FBTyxJQUFJVCxjQUFjLElBQUksRUFBRTtRQUM3QixJQUFNVyxnQkFBZ0JDLElBQUFBLGNBQVcsRUFBQ1osV0FBV0o7UUFFN0NDLDhCQUE4QmMsZUFBZ0IsR0FBRztJQUNuRCxPQUFPLElBQUlWLGNBQWMsSUFBSSxFQUFFO1FBQzdCLElBQU1ZLGdCQUFnQkMsSUFBQUEsY0FBVyxFQUFDYixXQUFXTDtRQUU3Q0MsOEJBQThCZ0IsZUFBZ0IsR0FBRztJQUNuRCxPQUFPLElBQUlYLGdCQUFnQixJQUFJLEVBQUU7UUFDL0IsSUFBTWEsa0JBQWtCQyxJQUFBQSxnQkFBYSxFQUFDZCxhQUFhTjtRQUVuREMsOEJBQThCa0IsaUJBQWtCLEdBQUc7SUFDckQsT0FBTyxJQUFJWixtQkFBbUIsSUFBSSxFQUFFO1FBQ2xDLElBQU1jLHFCQUFxQkMsSUFBQUEsbUJBQWdCLEVBQUNmLGdCQUFnQlA7UUFFNURDLDhCQUE4Qm9CLG9CQUFxQixHQUFHO0lBQ3hELE9BQU8sSUFBSWIsd0JBQXdCLElBQUksRUFBRTtRQUN2QyxJQUFNZSwwQkFBMEJDLElBQUFBLGFBQXFCLEVBQUNoQixxQkFBcUJSO1FBRTNFQyw4QkFBOEJzQix5QkFBMEIsR0FBRztJQUM3RCxPQUFPLElBQUlkLDRCQUE0QixJQUFJLEVBQUU7UUFDM0MsSUFBTWdCLDhCQUE4QkMsSUFBQUEsaUJBQXlCLEVBQUNqQix5QkFBeUJUO1FBRXZGQyw4QkFBOEJ3Qiw2QkFBOEIsR0FBRztJQUNqRSxPQUFPLElBQUlmLDhCQUE4QixJQUFJLEVBQUU7UUFDN0MsSUFBTWlCLGdDQUFnQ0MsSUFBQUEsbUJBQTJCLEVBQUNsQiwyQkFBMkJWO1FBRTdGQyw4QkFBOEIwQiwrQkFBZ0MsR0FBRztJQUNuRSxPQUFPLElBQUloQiwrQkFBK0IsSUFBSSxFQUFFO1FBQzlDLElBQU1rQixpQ0FBaUNDLElBQUFBLG9CQUE0QixFQUFDbkIsNEJBQTRCWDtRQUVoR0MsOEJBQThCNEIsZ0NBQWlDLEdBQUc7SUFDcEUsT0FBTyxJQUFJakIsZ0NBQWdDLElBQUksRUFBRTtRQUMvQyxJQUFNbUIsa0NBQWtDQyxJQUFBQSxxQkFBNkIsRUFBQ3BCLDZCQUE2Qlo7UUFFbkdDLDhCQUE4QjhCLGlDQUFrQyxHQUFHO0lBQ3JFLENBQUM7SUFFRCxPQUFPOUI7QUFDVCJ9
@@ -40,7 +40,7 @@ function verifyLemma(lemmaNode, fileContext) {
40
40
  if (consequenceVerified) {
41
41
  var proofNode = proofNodeQuery(lemmaNode), firstConsequence = (0, _array.first)(consequences), consequence = firstConsequence, proofVerified = (0, _proof.default)(proofNode, consequence, proofContext);
42
42
  if (proofVerified) {
43
- var lemma = _lemma.default.fromLabelsSuppositionsAndConsequence(labels, suppositions, consequence);
43
+ var lemma = _lemma.default.fromLabelsSuppositionsConsequenceAndProofContext(labels, suppositions, consequence, proofContext);
44
44
  fileContext.addLemma(lemma);
45
45
  lemmaVerified = true;
46
46
  }
@@ -53,4 +53,4 @@ function verifyLemma(lemmaNode, fileContext) {
53
53
  return lemmaVerified;
54
54
  }
55
55
 
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbGVtbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBMZW1tYSBmcm9tIFwiLi4vbGVtbWFcIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgUHJvb2ZDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3Byb29mXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5U3VwcG9zaXRpb24gZnJvbSBcIi4vc3VwcG9zaXRpb25cIjtcbmltcG9ydCB2ZXJpZnlDb25zZXF1ZW5jZSBmcm9tIFwiLi9jb25zZXF1ZW5jZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbGVtbWEvcHJvb2YhXCIpLFxuICAgICAgbGFiZWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9sZW1tYS9sYWJlbFwiKSxcbiAgICAgIGNvbnNlcXVlbmNlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2xlbW1hL2NvbnNlcXVlbmNlIVwiKSxcbiAgICAgIHN1cHBvc2l0aW9uc05vZGVRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbGVtbWEvc3VwcG9zaXRpb25cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUxlbW1hKGxlbW1hTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IGxlbW1hVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE5vZGVzID0gbGFiZWxOb2Rlc1F1ZXJ5KGxlbW1hTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIHByb29mQ29udGV4dCA9IFByb29mQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gIChsYWJlbHNTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgYSBsZW1tYS4uLmAsIGxlbW1hTm9kZSkgOlxuICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxzU3RyaW5nfScgbGVtbWEuLi5gLCBsZW1tYU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICBsYWJlbHNWZXJpZmllZCA9IHZlcmlmeUxhYmVscyhsYWJlbE5vZGVzLCBsYWJlbHMsIGZpbGVDb250ZXh0KTtcblxuICBpZiAobGFiZWxzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbnMgPSBbXSxcbiAgICAgICAgICBzdXBwb3NpdGlvbk5vZGVzID0gc3VwcG9zaXRpb25zTm9kZVF1ZXJ5KGxlbW1hTm9kZSksXG4gICAgICAgICAgc3VwcG9zaXRpb25zVmVyaWZpZWQgPSBzdXBwb3NpdGlvbk5vZGVzLmV2ZXJ5KChzdXBwb3NpdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1cHBvc2l0aW9uVmVyaWZpZWQgPSB2ZXJpZnlTdXBwb3NpdGlvbihzdXBwb3NpdGlvbk5vZGUsIHN1cHBvc2l0aW9ucywgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHN1cHBvc2l0aW9uVmVyaWZpZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGNvbnNlcXVlbmNlcyA9IFtdLFxuICAgICAgICAgICAgY29uc2VxdWVuY2VOb2RlID0gY29uc2VxdWVuY2VOb2RlUXVlcnkobGVtbWFOb2RlKSxcbiAgICAgICAgICAgIGNvbnNlcXVlbmNlVmVyaWZpZWQgPSB2ZXJpZnlDb25zZXF1ZW5jZShjb25zZXF1ZW5jZU5vZGUsIGNvbnNlcXVlbmNlcywgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbnNlcXVlbmNlVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgcHJvb2ZOb2RlID0gcHJvb2ZOb2RlUXVlcnkobGVtbWFOb2RlKSxcbiAgICAgICAgICAgICAgZmlyc3RDb25zZXF1ZW5jZSA9IGZpcnN0KGNvbnNlcXVlbmNlcyksXG4gICAgICAgICAgICAgIGNvbnNlcXVlbmNlID0gZmlyc3RDb25zZXF1ZW5jZSwgLy8vXG4gICAgICAgICAgICAgIHByb29mVmVyaWZpZWQgPSB2ZXJpZnlQcm9vZihwcm9vZk5vZGUsIGNvbnNlcXVlbmNlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgIGlmIChwcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgICAgY29uc3QgbGVtbWEgPSBMZW1tYS5mcm9tTGFiZWxzU3VwcG9zaXRpb25zQW5kQ29uc2VxdWVuY2UobGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbmNlKTtcblxuICAgICAgICAgIGZpbGVDb250ZXh0LmFkZExlbW1hKGxlbW1hKTtcblxuICAgICAgICAgIGxlbW1hVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGxlbW1hVmVyaWZpZWQpIHtcbiAgICAobGFiZWxzU3RyaW5nID09PSBFTVBUWV9TVFJJTkcpID9cbiAgICAgIGZpbGVDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSBsZW1tYS5gLCBsZW1tYU5vZGUpIDpcbiAgICAgICAgZmlsZUNvbnRleHQuaW5mbyhgVmVyaWZpZWQgdGhlICcke2xhYmVsc1N0cmluZ30nIGxlbW1hLmAsIGxlbW1hTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbGVtbWFWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlMZW1tYSIsInByb29mTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibGFiZWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsImNvbnNlcXVlbmNlTm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25zTm9kZVF1ZXJ5IiwibGVtbWFOb2RlIiwiZmlsZUNvbnRleHQiLCJsZW1tYVZlcmlmaWVkIiwibGFiZWxOb2RlcyIsImxhYmVsc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJwcm9vZkNvbnRleHQiLCJQcm9vZkNvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJFTVBUWV9TVFJJTkciLCJkZWJ1ZyIsImxhYmVscyIsImxhYmVsc1ZlcmlmaWVkIiwidmVyaWZ5TGFiZWxzIiwic3VwcG9zaXRpb25zIiwic3VwcG9zaXRpb25Ob2RlcyIsInN1cHBvc2l0aW9uc1ZlcmlmaWVkIiwiZXZlcnkiLCJzdXBwb3NpdGlvbk5vZGUiLCJzdXBwb3NpdGlvblZlcmlmaWVkIiwidmVyaWZ5U3VwcG9zaXRpb24iLCJjb25zZXF1ZW5jZXMiLCJjb25zZXF1ZW5jZU5vZGUiLCJjb25zZXF1ZW5jZVZlcmlmaWVkIiwidmVyaWZ5Q29uc2VxdWVuY2UiLCJwcm9vZk5vZGUiLCJmaXJzdENvbnNlcXVlbmNlIiwiZmlyc3QiLCJjb25zZXF1ZW5jZSIsInByb29mVmVyaWZpZWQiLCJ2ZXJpZnlQcm9vZiIsImxlbW1hIiwiTGVtbWEiLCJmcm9tTGFiZWxzU3VwcG9zaXRpb25zQW5kQ29uc2VxdWVuY2UiLCJhZGRMZW1tYSIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWtCQTs7O2VBQXdCQTs7OzBEQWhCTjswREFDTTsyREFDQzsyREFDQTtnRUFDSztnRUFDQTtxQkFFUjt5QkFDTztxQkFDUzs7Ozs7O0FBRXRDLElBQU1DLGlCQUFpQkMsSUFBQUEsZ0JBQVMsRUFBQyxrQkFDM0JDLGtCQUFrQkMsSUFBQUEsaUJBQVUsRUFBQyxpQkFDN0JDLHVCQUF1QkgsSUFBQUEsZ0JBQVMsRUFBQyx3QkFDakNJLHdCQUF3QkYsSUFBQUEsaUJBQVUsRUFBQztBQUUxQixTQUFTSixZQUFZTyxTQUFTLEVBQUVDLFdBQVcsRUFBRTtJQUMxRCxJQUFJQyxnQkFBZ0IsS0FBSztJQUV6QixJQUFNQyxhQUFhUCxnQkFBZ0JJLFlBQzdCSSxlQUFlSCxZQUFZSSxhQUFhLENBQUNGLGFBQ3pDRyxlQUFlQyxlQUFZLENBQUNDLGVBQWUsQ0FBQ1A7SUFFakRHLGlCQUFpQkssdUJBQVksR0FDNUJSLFlBQVlTLEtBQUssQ0FBRSx3QkFBdUJWLGFBQ3hDQyxZQUFZUyxLQUFLLENBQUMsQUFBQyxrQkFBOEIsT0FBYk4sY0FBYSxlQUFhSixVQUFVO0lBRTVFLElBQU1XLFNBQVMsRUFBRSxFQUNYQyxpQkFBaUJDLElBQUFBLGVBQVksRUFBQ1YsWUFBWVEsUUFBUVY7SUFFeEQsSUFBSVcsZ0JBQWdCO1FBQ2xCLElBQU1FLGVBQWUsRUFBRSxFQUNqQkMsbUJBQW1CaEIsc0JBQXNCQyxZQUN6Q2dCLHVCQUF1QkQsaUJBQWlCRSxLQUFLLENBQUMsU0FBQ0MsaUJBQW9CO1lBQ2pFLElBQU1DLHNCQUFzQkMsSUFBQUEsb0JBQWlCLEVBQUNGLGlCQUFpQkosY0FBY1I7WUFFN0UsSUFBSWEscUJBQXFCO2dCQUN2QixPQUFPLElBQUk7WUFDYixDQUFDO1FBQ0g7UUFFTixJQUFJSCxzQkFBc0I7WUFDeEIsSUFBTUssZUFBZSxFQUFFLEVBQ2pCQyxrQkFBa0J4QixxQkFBcUJFLFlBQ3ZDdUIsc0JBQXNCQyxJQUFBQSxvQkFBaUIsRUFBQ0YsaUJBQWlCRCxjQUFjZjtZQUU3RSxJQUFJaUIscUJBQXFCO2dCQUN2QixJQUFNRSxZQUFZL0IsZUFBZU0sWUFDM0IwQixtQkFBbUJDLElBQUFBLFlBQUssRUFBQ04sZUFDekJPLGNBQWNGLGtCQUNkRyxnQkFBZ0JDLElBQUFBLGNBQVcsRUFBQ0wsV0FBV0csYUFBYXRCO2dCQUUxRCxJQUFJdUIsZUFBZTtvQkFDakIsSUFBTUUsUUFBUUMsY0FBSyxDQUFDQyxvQ0FBb0MsQ0FBQ3RCLFFBQVFHLGNBQWNjO29CQUUvRTNCLFlBQVlpQyxRQUFRLENBQUNIO29CQUVyQjdCLGdCQUFnQixJQUFJO2dCQUN0QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSUEsZUFBZTtRQUNoQkUsaUJBQWlCSyx1QkFBWSxHQUM1QlIsWUFBWWtDLElBQUksQ0FBRSx1QkFBc0JuQyxhQUN0Q0MsWUFBWWtDLElBQUksQ0FBQyxBQUFDLGlCQUE2QixPQUFiL0IsY0FBYSxhQUFXSixVQUFVO0lBQzFFLENBQUM7SUFFRCxPQUFPRTtBQUNUIn0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbGVtbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBMZW1tYSBmcm9tIFwiLi4vbGVtbWFcIjtcbmltcG9ydCB2ZXJpZnlQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3Byb29mXCI7XG5pbXBvcnQgUHJvb2ZDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3Byb29mXCI7XG5pbXBvcnQgdmVyaWZ5TGFiZWxzIGZyb20gXCIuLi92ZXJpZnkvbGFiZWxzXCI7XG5pbXBvcnQgdmVyaWZ5U3VwcG9zaXRpb24gZnJvbSBcIi4vc3VwcG9zaXRpb25cIjtcbmltcG9ydCB2ZXJpZnlDb25zZXF1ZW5jZSBmcm9tIFwiLi9jb25zZXF1ZW5jZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbGVtbWEvcHJvb2YhXCIpLFxuICAgICAgbGFiZWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9sZW1tYS9sYWJlbFwiKSxcbiAgICAgIGNvbnNlcXVlbmNlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2xlbW1hL2NvbnNlcXVlbmNlIVwiKSxcbiAgICAgIHN1cHBvc2l0aW9uc05vZGVRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbGVtbWEvc3VwcG9zaXRpb25cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUxlbW1hKGxlbW1hTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IGxlbW1hVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBsYWJlbE5vZGVzID0gbGFiZWxOb2Rlc1F1ZXJ5KGxlbW1hTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIHByb29mQ29udGV4dCA9IFByb29mQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpO1xuXG4gIChsYWJlbHNTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgYSBsZW1tYS4uLmAsIGxlbW1hTm9kZSkgOlxuICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxzU3RyaW5nfScgbGVtbWEuLi5gLCBsZW1tYU5vZGUpO1xuXG4gIGNvbnN0IGxhYmVscyA9IFtdLFxuICAgICAgICBsYWJlbHNWZXJpZmllZCA9IHZlcmlmeUxhYmVscyhsYWJlbE5vZGVzLCBsYWJlbHMsIGZpbGVDb250ZXh0KTtcblxuICBpZiAobGFiZWxzVmVyaWZpZWQpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvbnMgPSBbXSxcbiAgICAgICAgICBzdXBwb3NpdGlvbk5vZGVzID0gc3VwcG9zaXRpb25zTm9kZVF1ZXJ5KGxlbW1hTm9kZSksXG4gICAgICAgICAgc3VwcG9zaXRpb25zVmVyaWZpZWQgPSBzdXBwb3NpdGlvbk5vZGVzLmV2ZXJ5KChzdXBwb3NpdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1cHBvc2l0aW9uVmVyaWZpZWQgPSB2ZXJpZnlTdXBwb3NpdGlvbihzdXBwb3NpdGlvbk5vZGUsIHN1cHBvc2l0aW9ucywgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHN1cHBvc2l0aW9uVmVyaWZpZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGNvbnNlcXVlbmNlcyA9IFtdLFxuICAgICAgICAgICAgY29uc2VxdWVuY2VOb2RlID0gY29uc2VxdWVuY2VOb2RlUXVlcnkobGVtbWFOb2RlKSxcbiAgICAgICAgICAgIGNvbnNlcXVlbmNlVmVyaWZpZWQgPSB2ZXJpZnlDb25zZXF1ZW5jZShjb25zZXF1ZW5jZU5vZGUsIGNvbnNlcXVlbmNlcywgcHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbnNlcXVlbmNlVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgcHJvb2ZOb2RlID0gcHJvb2ZOb2RlUXVlcnkobGVtbWFOb2RlKSxcbiAgICAgICAgICAgICAgZmlyc3RDb25zZXF1ZW5jZSA9IGZpcnN0KGNvbnNlcXVlbmNlcyksXG4gICAgICAgICAgICAgIGNvbnNlcXVlbmNlID0gZmlyc3RDb25zZXF1ZW5jZSwgLy8vXG4gICAgICAgICAgICAgIHByb29mVmVyaWZpZWQgPSB2ZXJpZnlQcm9vZihwcm9vZk5vZGUsIGNvbnNlcXVlbmNlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgIGlmIChwcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgICAgY29uc3QgbGVtbWEgPSBMZW1tYS5mcm9tTGFiZWxzU3VwcG9zaXRpb25zQ29uc2VxdWVuY2VBbmRQcm9vZkNvbnRleHQobGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbmNlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgICAgZmlsZUNvbnRleHQuYWRkTGVtbWEobGVtbWEpO1xuXG4gICAgICAgICAgbGVtbWFWZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAobGVtbWFWZXJpZmllZCkge1xuICAgIChsYWJlbHNTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgZmlsZUNvbnRleHQuaW5mbyhgVmVyaWZpZWQgdGhlIGxlbW1hLmAsIGxlbW1hTm9kZSkgOlxuICAgICAgICBmaWxlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7bGFiZWxzU3RyaW5nfScgbGVtbWEuYCwgbGVtbWFOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBsZW1tYVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUxlbW1hIiwicHJvb2ZOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJsYWJlbE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiY29uc2VxdWVuY2VOb2RlUXVlcnkiLCJzdXBwb3NpdGlvbnNOb2RlUXVlcnkiLCJsZW1tYU5vZGUiLCJmaWxlQ29udGV4dCIsImxlbW1hVmVyaWZpZWQiLCJsYWJlbE5vZGVzIiwibGFiZWxzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsInByb29mQ29udGV4dCIsIlByb29mQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsIkVNUFRZX1NUUklORyIsImRlYnVnIiwibGFiZWxzIiwibGFiZWxzVmVyaWZpZWQiLCJ2ZXJpZnlMYWJlbHMiLCJzdXBwb3NpdGlvbnMiLCJzdXBwb3NpdGlvbk5vZGVzIiwic3VwcG9zaXRpb25zVmVyaWZpZWQiLCJldmVyeSIsInN1cHBvc2l0aW9uTm9kZSIsInN1cHBvc2l0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlTdXBwb3NpdGlvbiIsImNvbnNlcXVlbmNlcyIsImNvbnNlcXVlbmNlTm9kZSIsImNvbnNlcXVlbmNlVmVyaWZpZWQiLCJ2ZXJpZnlDb25zZXF1ZW5jZSIsInByb29mTm9kZSIsImZpcnN0Q29uc2VxdWVuY2UiLCJmaXJzdCIsImNvbnNlcXVlbmNlIiwicHJvb2ZWZXJpZmllZCIsInZlcmlmeVByb29mIiwibGVtbWEiLCJMZW1tYSIsImZyb21MYWJlbHNTdXBwb3NpdGlvbnNDb25zZXF1ZW5jZUFuZFByb29mQ29udGV4dCIsImFkZExlbW1hIiwiaW5mbyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBa0JBOzs7ZUFBd0JBOzs7MERBaEJOOzBEQUNNOzJEQUNDOzJEQUNBO2dFQUNLO2dFQUNBO3FCQUVSO3lCQUNPO3FCQUNTOzs7Ozs7QUFFdEMsSUFBTUMsaUJBQWlCQyxJQUFBQSxnQkFBUyxFQUFDLGtCQUMzQkMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLGlCQUM3QkMsdUJBQXVCSCxJQUFBQSxnQkFBUyxFQUFDLHdCQUNqQ0ksd0JBQXdCRixJQUFBQSxpQkFBVSxFQUFDO0FBRTFCLFNBQVNKLFlBQVlPLFNBQVMsRUFBRUMsV0FBVyxFQUFFO0lBQzFELElBQUlDLGdCQUFnQixLQUFLO0lBRXpCLElBQU1DLGFBQWFQLGdCQUFnQkksWUFDN0JJLGVBQWVILFlBQVlJLGFBQWEsQ0FBQ0YsYUFDekNHLGVBQWVDLGVBQVksQ0FBQ0MsZUFBZSxDQUFDUDtJQUVqREcsaUJBQWlCSyx1QkFBWSxHQUM1QlIsWUFBWVMsS0FBSyxDQUFFLHdCQUF1QlYsYUFDeENDLFlBQVlTLEtBQUssQ0FBQyxBQUFDLGtCQUE4QixPQUFiTixjQUFhLGVBQWFKLFVBQVU7SUFFNUUsSUFBTVcsU0FBUyxFQUFFLEVBQ1hDLGlCQUFpQkMsSUFBQUEsZUFBWSxFQUFDVixZQUFZUSxRQUFRVjtJQUV4RCxJQUFJVyxnQkFBZ0I7UUFDbEIsSUFBTUUsZUFBZSxFQUFFLEVBQ2pCQyxtQkFBbUJoQixzQkFBc0JDLFlBQ3pDZ0IsdUJBQXVCRCxpQkFBaUJFLEtBQUssQ0FBQyxTQUFDQyxpQkFBb0I7WUFDakUsSUFBTUMsc0JBQXNCQyxJQUFBQSxvQkFBaUIsRUFBQ0YsaUJBQWlCSixjQUFjUjtZQUU3RSxJQUFJYSxxQkFBcUI7Z0JBQ3ZCLE9BQU8sSUFBSTtZQUNiLENBQUM7UUFDSDtRQUVOLElBQUlILHNCQUFzQjtZQUN4QixJQUFNSyxlQUFlLEVBQUUsRUFDakJDLGtCQUFrQnhCLHFCQUFxQkUsWUFDdkN1QixzQkFBc0JDLElBQUFBLG9CQUFpQixFQUFDRixpQkFBaUJELGNBQWNmO1lBRTdFLElBQUlpQixxQkFBcUI7Z0JBQ3ZCLElBQU1FLFlBQVkvQixlQUFlTSxZQUMzQjBCLG1CQUFtQkMsSUFBQUEsWUFBSyxFQUFDTixlQUN6Qk8sY0FBY0Ysa0JBQ2RHLGdCQUFnQkMsSUFBQUEsY0FBVyxFQUFDTCxXQUFXRyxhQUFhdEI7Z0JBRTFELElBQUl1QixlQUFlO29CQUNqQixJQUFNRSxRQUFRQyxjQUFLLENBQUNDLGdEQUFnRCxDQUFDdEIsUUFBUUcsY0FBY2MsYUFBYXRCO29CQUV4R0wsWUFBWWlDLFFBQVEsQ0FBQ0g7b0JBRXJCN0IsZ0JBQWdCLElBQUk7Z0JBQ3RCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJQSxlQUFlO1FBQ2hCRSxpQkFBaUJLLHVCQUFZLEdBQzVCUixZQUFZa0MsSUFBSSxDQUFFLHVCQUFzQm5DLGFBQ3RDQyxZQUFZa0MsSUFBSSxDQUFDLEFBQUMsaUJBQTZCLE9BQWIvQixjQUFhLGFBQVdKLFVBQVU7SUFDMUUsQ0FBQztJQUVELE9BQU9FO0FBQ1QifQ==
@@ -14,11 +14,11 @@ function verifyQualifiedMetastatement(qualifiedMetastatementNode, assignments, d
14
14
  var qualifiedMetastatementVerified = false;
15
15
  var metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode);
16
16
  if (metastatementNode !== null) {
17
- var metastatementString = metaproofContext.nodeAsString(metastatementNode);
17
+ var metastatementString = metaproofContext.nodeAsString(metastatementNode), metastatementMetaproofContext = metaproofContext; ///
18
18
  metaproofContext.debug("Verifying the '".concat(metastatementString, "' qualified metastatement..."), qualifiedMetastatementNode);
19
19
  var referenceNode = referenceNodeQuery(qualifiedMetastatementNode), referenceName = (0, _query.referenceNameFromReferenceNode)(referenceNode), rule = metaproofContext.findRuleByReferenceName(referenceName);
20
20
  if (rule !== null) {
21
- var ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode, metaproofContext);
21
+ var ruleMatchesMetastatement = rule.matchMetastatement(metastatementNode, metastatementMetaproofContext);
22
22
  qualifiedMetastatementVerified = ruleMatchesMetastatement; ///
23
23
  }
24
24
  }
@@ -29,4 +29,4 @@ function verifyQualifiedMetastatement(qualifiedMetastatementNode, assignments, d
29
29
  return qualifiedMetastatementVerified;
30
30
  }
31
31
 
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvbWV0YXN0YXRlbWVudC9xdWFsaWZpZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSwgcmVmZXJlbmNlTmFtZUZyb21SZWZlcmVuY2VOb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCByZWZlcmVuY2VOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkTWV0YXN0YXRlbWVudC9xdWFsaWZpY2F0aW9uIS9yZWZlcmVuY2UhXCIpLFxuICAgICAgbWV0YXN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbWV0YXByb29mQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAobWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50U3RyaW5nID0gbWV0YXByb29mQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgbWV0YXByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHttZXRhc3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIG1ldGFzdGF0ZW1lbnQuLi5gLCBxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCByZWZlcmVuY2VOb2RlID0gcmVmZXJlbmNlTm9kZVF1ZXJ5KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICByZWZlcmVuY2VOYW1lID0gcmVmZXJlbmNlTmFtZUZyb21SZWZlcmVuY2VOb2RlKHJlZmVyZW5jZU5vZGUpLFxuICAgICAgICAgIHJ1bGUgPSBtZXRhcHJvb2ZDb250ZXh0LmZpbmRSdWxlQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpO1xuXG4gICAgaWYgKHJ1bGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHJ1bGVNYXRjaGVzTWV0YXN0YXRlbWVudCA9IHJ1bGUubWF0Y2hNZXRhc3RhdGVtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gcnVsZU1hdGNoZXNNZXRhc3RhdGVtZW50OyAgLy8vXG4gICAgfVxuICB9XG5cbiAgaWYgKHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnRTdHJpbmcgPSBtZXRhcHJvb2ZDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBtZXRhcHJvb2ZDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHttZXRhc3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIG1ldGFzdGF0ZW1lbnQuYCwgcXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50IiwicmVmZXJlbmNlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXN0YXRlbWVudE5vZGVRdWVyeSIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibWV0YXByb29mQ29udGV4dCIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsIm1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YXN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwicmVmZXJlbmNlTm9kZSIsInJlZmVyZW5jZU5hbWUiLCJyZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUiLCJydWxlIiwiZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUiLCJydWxlTWF0Y2hlc01ldGFzdGF0ZW1lbnQiLCJtYXRjaE1ldGFzdGF0ZW1lbnQiLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQXdCQTs7O3FCQUxrQztBQUUxRCxJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMsc0RBQy9CQyx5QkFBeUJELElBQUFBLGdCQUFTLEVBQUM7QUFFMUIsU0FBU0YsNkJBQTZCSSwwQkFBMEIsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLGdCQUFnQixFQUFFO0lBQ3ZILElBQUlDLGlDQUFpQyxLQUFLO0lBRTFDLElBQU1DLG9CQUFvQk4sdUJBQXVCQztJQUVqRCxJQUFJSyxzQkFBc0IsSUFBSSxFQUFFO1FBQzlCLElBQU1DLHNCQUFzQkgsaUJBQWlCSSxZQUFZLENBQUNGO1FBRTFERixpQkFBaUJLLEtBQUssQ0FBQyxBQUFDLGtCQUFxQyxPQUFwQkYscUJBQW9CLGlDQUErQk47UUFFNUYsSUFBTVMsZ0JBQWdCWixtQkFBbUJHLDZCQUNuQ1UsZ0JBQWdCQyxJQUFBQSxxQ0FBOEIsRUFBQ0YsZ0JBQy9DRyxPQUFPVCxpQkFBaUJVLHVCQUF1QixDQUFDSDtRQUV0RCxJQUFJRSxTQUFTLElBQUksRUFBRTtZQUNqQixJQUFNRSwyQkFBMkJGLEtBQUtHLGtCQUFrQixDQUFDVixtQkFBbUJGO1lBRTVFQyxpQ0FBaUNVLDBCQUEyQixHQUFHO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSVYsZ0NBQWdDO1FBQ2xDLElBQU1FLHVCQUFzQkgsaUJBQWlCSSxZQUFZLENBQUNGO1FBRTFERixpQkFBaUJhLElBQUksQ0FBQyxBQUFDLGlCQUFvQyxPQUFwQlYsc0JBQW9CLCtCQUE2Qk47SUFDMUYsQ0FBQztJQUVELE9BQU9JO0FBQ1QifQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvbWV0YXN0YXRlbWVudC9xdWFsaWZpZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSwgcmVmZXJlbmNlTmFtZUZyb21SZWZlcmVuY2VOb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCByZWZlcmVuY2VOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcXVhbGlmaWVkTWV0YXN0YXRlbWVudC9xdWFsaWZpY2F0aW9uIS9yZWZlcmVuY2UhXCIpLFxuICAgICAgbWV0YXN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbWV0YXByb29mQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAobWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50U3RyaW5nID0gbWV0YXByb29mQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnRNZXRhcHJvb2ZDb250ZXh0ID0gbWV0YXByb29mQ29udGV4dDsgLy8vXG5cbiAgICBtZXRhcHJvb2ZDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke21ldGFzdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgbWV0YXN0YXRlbWVudC4uLmAsIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IHJlZmVyZW5jZU5vZGUgPSByZWZlcmVuY2VOb2RlUXVlcnkocXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSByZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUocmVmZXJlbmNlTm9kZSksXG4gICAgICAgICAgcnVsZSA9IG1ldGFwcm9vZkNvbnRleHQuZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSk7XG5cbiAgICBpZiAocnVsZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcnVsZU1hdGNoZXNNZXRhc3RhdGVtZW50ID0gcnVsZS5tYXRjaE1ldGFzdGF0ZW1lbnQobWV0YXN0YXRlbWVudE5vZGUsIG1ldGFzdGF0ZW1lbnRNZXRhcHJvb2ZDb250ZXh0KTtcblxuICAgICAgcXVhbGlmaWVkTWV0YXN0YXRlbWVudFZlcmlmaWVkID0gcnVsZU1hdGNoZXNNZXRhc3RhdGVtZW50OyAgLy8vXG4gICAgfVxuICB9XG5cbiAgaWYgKHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnRTdHJpbmcgPSBtZXRhcHJvb2ZDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBtZXRhcHJvb2ZDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHttZXRhc3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIG1ldGFzdGF0ZW1lbnQuYCwgcXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlRdWFsaWZpZWRNZXRhc3RhdGVtZW50IiwicmVmZXJlbmNlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXN0YXRlbWVudE5vZGVRdWVyeSIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibWV0YXByb29mQ29udGV4dCIsInF1YWxpZmllZE1ldGFzdGF0ZW1lbnRWZXJpZmllZCIsIm1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YXN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsIm1ldGFzdGF0ZW1lbnRNZXRhcHJvb2ZDb250ZXh0IiwiZGVidWciLCJyZWZlcmVuY2VOb2RlIiwicmVmZXJlbmNlTmFtZSIsInJlZmVyZW5jZU5hbWVGcm9tUmVmZXJlbmNlTm9kZSIsInJ1bGUiLCJmaW5kUnVsZUJ5UmVmZXJlbmNlTmFtZSIsInJ1bGVNYXRjaGVzTWV0YXN0YXRlbWVudCIsIm1hdGNoTWV0YXN0YXRlbWVudCIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBd0JBOzs7cUJBTGtDO0FBRTFELElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyxzREFDL0JDLHlCQUF5QkQsSUFBQUEsZ0JBQVMsRUFBQztBQUUxQixTQUFTRiw2QkFBNkJJLDBCQUEwQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsZ0JBQWdCLEVBQUU7SUFDdkgsSUFBSUMsaUNBQWlDLEtBQUs7SUFFMUMsSUFBTUMsb0JBQW9CTix1QkFBdUJDO0lBRWpELElBQUlLLHNCQUFzQixJQUFJLEVBQUU7UUFDOUIsSUFBTUMsc0JBQXNCSCxpQkFBaUJJLFlBQVksQ0FBQ0Ysb0JBQ3BERyxnQ0FBZ0NMLGtCQUFrQixHQUFHO1FBRTNEQSxpQkFBaUJNLEtBQUssQ0FBQyxBQUFDLGtCQUFxQyxPQUFwQkgscUJBQW9CLGlDQUErQk47UUFFNUYsSUFBTVUsZ0JBQWdCYixtQkFBbUJHLDZCQUNuQ1csZ0JBQWdCQyxJQUFBQSxxQ0FBOEIsRUFBQ0YsZ0JBQy9DRyxPQUFPVixpQkFBaUJXLHVCQUF1QixDQUFDSDtRQUV0RCxJQUFJRSxTQUFTLElBQUksRUFBRTtZQUNqQixJQUFNRSwyQkFBMkJGLEtBQUtHLGtCQUFrQixDQUFDWCxtQkFBbUJHO1lBRTVFSixpQ0FBaUNXLDBCQUEyQixHQUFHO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSVgsZ0NBQWdDO1FBQ2xDLElBQU1FLHVCQUFzQkgsaUJBQWlCSSxZQUFZLENBQUNGO1FBRTFERixpQkFBaUJjLElBQUksQ0FBQyxBQUFDLGlCQUFvQyxPQUFwQlgsc0JBQW9CLCtCQUE2Qk47SUFDMUYsQ0FBQztJQUVELE9BQU9JO0FBQ1QifQ==
@@ -0,0 +1,34 @@
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 verifyMetavariable;
9
+ }
10
+ });
11
+ var _metavariable = /*#__PURE__*/ _interopRequireDefault(require("../metavariable"));
12
+ var _query = require("../utilities/query");
13
+ function _interopRequireDefault(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ function verifyMetavariable(metavariableNode, metaTypeNode, fileContext) {
19
+ var metavariableVerified = false;
20
+ var metavariableName = (0, _query.metavariableNameFromMetavariableNode)(metavariableNode), metavariableString = fileContext.nodeAsString(metavariableNode), metavariablePresent = fileContext.isMetavariablePresentByMetavariableName(metavariableName);
21
+ if (metavariablePresent) {
22
+ fileContext.error("The metavariable '".concat(metavariableName, "' is already present."), metavariableNode);
23
+ } else {
24
+ var metaTypeName = (0, _query.metaTypeNameFromMetaTypeNode)(metaTypeNode), metaType = fileContext.findMetaTypeByMetaTypeName(metaTypeName), name = metavariableName, metavariable = _metavariable.default.fromNameAndMetaType(name, metaType);
25
+ fileContext.addMetavariable(metavariable);
26
+ metavariableVerified = true;
27
+ }
28
+ if (metavariableVerified) {
29
+ fileContext.info("Verified the '".concat(metavariableString, "' metavariable."), metavariableNode);
30
+ }
31
+ return metavariableVerified;
32
+ }
33
+
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YXZhcmlhYmxlIGZyb20gXCIuLi9tZXRhdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgbWV0YVR5cGVOYW1lRnJvbU1ldGFUeXBlTm9kZSwgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbWV0YVR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZVByZXNlbnQgPSBmaWxlQ29udGV4dC5pc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICBmaWxlQ29udGV4dC5lcnJvcihgVGhlIG1ldGF2YXJpYWJsZSAnJHttZXRhdmFyaWFibGVOYW1lfScgaXMgYWxyZWFkeSBwcmVzZW50LmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG1ldGFUeXBlTmFtZSA9IG1ldGFUeXBlTmFtZUZyb21NZXRhVHlwZU5vZGUobWV0YVR5cGVOb2RlKSxcbiAgICAgICAgICBtZXRhVHlwZSA9IGZpbGVDb250ZXh0LmZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOYW1lKG1ldGFUeXBlTmFtZSksXG4gICAgICAgICAgbmFtZSA9IG1ldGF2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbU5hbWVBbmRNZXRhVHlwZShuYW1lLCBtZXRhVHlwZSk7XG5cbiAgICBmaWxlQ29udGV4dC5hZGRNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKTtcblxuICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChtZXRhdmFyaWFibGVWZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5TWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFUeXBlTm9kZSIsImZpbGVDb250ZXh0IiwibWV0YXZhcmlhYmxlVmVyaWZpZWQiLCJtZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwibWV0YXZhcmlhYmxlUHJlc2VudCIsImlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZSIsImVycm9yIiwibWV0YVR5cGVOYW1lIiwibWV0YVR5cGVOYW1lRnJvbU1ldGFUeXBlTm9kZSIsIm1ldGFUeXBlIiwiZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUiLCJuYW1lIiwibWV0YXZhcmlhYmxlIiwiTWV0YXZhcmlhYmxlIiwiZnJvbU5hbWVBbmRNZXRhVHlwZSIsImFkZE1ldGF2YXJpYWJsZSIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBd0JBOzs7aUVBSkM7cUJBRTBEOzs7Ozs7QUFFcEUsU0FBU0EsbUJBQW1CQyxnQkFBZ0IsRUFBRUMsWUFBWSxFQUFFQyxXQUFXLEVBQUU7SUFDdEYsSUFBSUMsdUJBQXVCLEtBQUs7SUFFaEMsSUFBTUMsbUJBQW1CQyxJQUFBQSwyQ0FBb0MsRUFBQ0wsbUJBQ3hETSxxQkFBcUJKLFlBQVlLLFlBQVksQ0FBQ1AsbUJBQzlDUSxzQkFBc0JOLFlBQVlPLHVDQUF1QyxDQUFDTDtJQUVoRixJQUFJSSxxQkFBcUI7UUFDdkJOLFlBQVlRLEtBQUssQ0FBQyxBQUFDLHFCQUFxQyxPQUFqQk4sa0JBQWlCLDBCQUF3Qko7SUFDbEYsT0FBTztRQUNMLElBQU1XLGVBQWVDLElBQUFBLG1DQUE0QixFQUFDWCxlQUM1Q1ksV0FBV1gsWUFBWVksMEJBQTBCLENBQUNILGVBQ2xESSxPQUFPWCxrQkFDUFksZUFBZUMscUJBQVksQ0FBQ0MsbUJBQW1CLENBQUNILE1BQU1GO1FBRTVEWCxZQUFZaUIsZUFBZSxDQUFDSDtRQUU1QmIsdUJBQXVCLElBQUk7SUFDN0IsQ0FBQztJQUVELElBQUlBLHNCQUFzQjtRQUN4QkQsWUFBWWtCLElBQUksQ0FBQyxBQUFDLGlCQUFtQyxPQUFuQmQsb0JBQW1CLG9CQUFrQk47SUFDekUsQ0FBQztJQUVELE9BQU9HO0FBQ1QifQ==
@@ -43,7 +43,7 @@ function verifyRule(ruleNode, fileContext) {
43
43
  ruleProofVerified = (0, _ruleProof.default)(ruleProofNode, conclusion, metaProofContext);
44
44
  }
45
45
  if (ruleProofVerified) {
46
- var rule = _rule.default.fromLabelsPremisesAndConclusion(labels, premises, conclusion);
46
+ var rule = _rule.default.fromLabelsPremisesConclusionAndFileContext(labels, premises, conclusion, fileContext);
47
47
  fileContext.addRule(rule);
48
48
  ruleVerified = true;
49
49
  }
@@ -56,4 +56,4 @@ function verifyRule(ruleNode, fileContext) {
56
56
  return ruleVerified;
57
57
  }
58
58
 
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFJ1bGUgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB2ZXJpZnlMYWJlbHMgZnJvbSBcIi4uL3ZlcmlmeS9sYWJlbHNcIjtcbmltcG9ydCB2ZXJpZnlQcmVtaXNlIGZyb20gXCIuLi92ZXJpZnkvcHJlbWlzZVwiO1xuaW1wb3J0IHZlcmlmeVJ1bGVQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3J1bGVQcm9vZlwiO1xuaW1wb3J0IE1ldGFwcm9vZkNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbWV0YXByb29mXCI7XG5pbXBvcnQgdmVyaWZ5Q29uY2x1c2lvbiBmcm9tIFwiLi4vdmVyaWZ5L2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZS9sYWJlbFwiKSxcbiAgICAgIHByZW1pc2VzTm9kZVF1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlL3ByZW1pc2VcIiksXG4gICAgICBydWxlUHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZS9ydWxlUHJvb2YhXCIpLFxuICAgICAgY29uY2x1c2lvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ydWxlL2NvbmNsdXNpb24hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlKHJ1bGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgcnVsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbGFiZWxOb2RlcyA9IGxhYmVsTm9kZXNRdWVyeShydWxlTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIG1ldGFQcm9vZkNvbnRleHQgPSBNZXRhcHJvb2ZDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCk7XG5cbiAgZmlsZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxzU3RyaW5nfScgcnVsZS4uLmAsIHJ1bGVOb2RlKTtcblxuICBjb25zdCBsYWJlbHMgPSBbXSxcbiAgICAgICAgbGFiZWxzVmVyaWZpZWQgPSB2ZXJpZnlMYWJlbHMobGFiZWxOb2RlcywgbGFiZWxzLCBmaWxlQ29udGV4dCk7XG5cbiAgaWYgKGxhYmVsc1ZlcmlmaWVkKSB7XG4gICAgY29uc3QgcHJlbWlzZXMgPSBbXSxcbiAgICAgICAgICBwcmVtaXNlTm9kZXMgPSBwcmVtaXNlc05vZGVRdWVyeShydWxlTm9kZSksXG4gICAgICAgICAgcHJlbWlzZXNWZXJpZmllZCA9IHByZW1pc2VOb2Rlcy5ldmVyeSgocHJlbWlzZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByZW1pc2VWZXJpZmllZCA9IHZlcmlmeVByZW1pc2UocHJlbWlzZU5vZGUsIHByZW1pc2VzLCBtZXRhUHJvb2ZDb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHByZW1pc2VWZXJpZmllZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmIChwcmVtaXNlc1ZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBjb25jbHVzaW9ucyA9IFtdLFxuICAgICAgICAgICAgY29uY2x1c2lvbk5vZGUgPSBjb25jbHVzaW9uTm9kZVF1ZXJ5KHJ1bGVOb2RlKSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25WZXJpZmllZCA9IHZlcmlmeUNvbmNsdXNpb24oY29uY2x1c2lvbk5vZGUsIGNvbmNsdXNpb25zLCBtZXRhUHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbmNsdXNpb25WZXJpZmllZCkge1xuICAgICAgICBjb25zdCBydWxlUHJvb2ZOb2RlID0gcnVsZVByb29mTm9kZVF1ZXJ5KHJ1bGVOb2RlKSxcbiAgICAgICAgICAgICAgZmlyc3RDb25jbHVzaW9uID0gZmlyc3QoY29uY2x1c2lvbnMpLFxuICAgICAgICAgICAgICBjb25jbHVzaW9uID0gZmlyc3RDb25jbHVzaW9uOyAvLy9cblxuICAgICAgICBsZXQgcnVsZVByb29mVmVyaWZpZWQgPSB0cnVlOyAvLy9cblxuICAgICAgICBpZiAocnVsZVByb29mTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJ1bGVQcm9vZlZlcmlmaWVkID0gdmVyaWZ5UnVsZVByb29mKHJ1bGVQcm9vZk5vZGUsIGNvbmNsdXNpb24sIG1ldGFQcm9vZkNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJ1bGVQcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgICAgY29uc3QgcnVsZSA9IFJ1bGUuZnJvbUxhYmVsc1ByZW1pc2VzQW5kQ29uY2x1c2lvbihsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uKTtcblxuICAgICAgICAgIGZpbGVDb250ZXh0LmFkZFJ1bGUocnVsZSk7XG5cbiAgICAgICAgICBydWxlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHJ1bGVWZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBydWxlLmAsIHJ1bGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBydWxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UnVsZSIsImxhYmVsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJwcmVtaXNlc05vZGVRdWVyeSIsInJ1bGVQcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImNvbmNsdXNpb25Ob2RlUXVlcnkiLCJydWxlTm9kZSIsImZpbGVDb250ZXh0IiwicnVsZVZlcmlmaWVkIiwibGFiZWxOb2RlcyIsImxhYmVsc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJtZXRhUHJvb2ZDb250ZXh0IiwiTWV0YXByb29mQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsImRlYnVnIiwibGFiZWxzIiwibGFiZWxzVmVyaWZpZWQiLCJ2ZXJpZnlMYWJlbHMiLCJwcmVtaXNlcyIsInByZW1pc2VOb2RlcyIsInByZW1pc2VzVmVyaWZpZWQiLCJldmVyeSIsInByZW1pc2VOb2RlIiwicHJlbWlzZVZlcmlmaWVkIiwidmVyaWZ5UHJlbWlzZSIsImNvbmNsdXNpb25zIiwiY29uY2x1c2lvbk5vZGUiLCJjb25jbHVzaW9uVmVyaWZpZWQiLCJ2ZXJpZnlDb25jbHVzaW9uIiwicnVsZVByb29mTm9kZSIsImZpcnN0Q29uY2x1c2lvbiIsImZpcnN0IiwiY29uY2x1c2lvbiIsInJ1bGVQcm9vZlZlcmlmaWVkIiwidmVyaWZ5UnVsZVByb29mIiwicnVsZSIsIlJ1bGUiLCJmcm9tTGFiZWxzUHJlbWlzZXNBbmRDb25jbHVzaW9uIiwiYWRkUnVsZSIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWlCQTs7O2VBQXdCQTs7O3lEQWZQOzJEQUNROzREQUNDOzhEQUNFOzhEQUNDOytEQUNBO3FCQUVQO3FCQUNnQjs7Ozs7O0FBRXRDLElBQU1DLGtCQUFrQkMsSUFBQUEsaUJBQVUsRUFBQyxnQkFDN0JDLG9CQUFvQkQsSUFBQUEsaUJBQVUsRUFBQyxrQkFDL0JFLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQyxxQkFDL0JDLHNCQUFzQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV2QixTQUFTTCxXQUFXTyxRQUFRLEVBQUVDLFdBQVcsRUFBRTtJQUN4RCxJQUFJQyxlQUFlLEtBQUs7SUFFeEIsSUFBTUMsYUFBYVQsZ0JBQWdCTSxXQUM3QkksZUFBZUgsWUFBWUksYUFBYSxDQUFDRixhQUN6Q0csbUJBQW1CQyxrQkFBZ0IsQ0FBQ0MsZUFBZSxDQUFDUDtJQUUxREEsWUFBWVEsS0FBSyxDQUFDLEFBQUMsa0JBQThCLE9BQWJMLGNBQWEsY0FBWUo7SUFFN0QsSUFBTVUsU0FBUyxFQUFFLEVBQ1hDLGlCQUFpQkMsSUFBQUEsZUFBWSxFQUFDVCxZQUFZTyxRQUFRVDtJQUV4RCxJQUFJVSxnQkFBZ0I7UUFDbEIsSUFBTUUsV0FBVyxFQUFFLEVBQ2JDLGVBQWVsQixrQkFBa0JJLFdBQ2pDZSxtQkFBbUJELGFBQWFFLEtBQUssQ0FBQyxTQUFDQyxhQUFnQjtZQUNyRCxJQUFNQyxrQkFBa0JDLElBQUFBLGdCQUFhLEVBQUNGLGFBQWFKLFVBQVVQO1lBRTdELElBQUlZLGlCQUFpQjtnQkFDbkIsT0FBTyxJQUFJO1lBQ2IsQ0FBQztRQUNIO1FBRU4sSUFBSUgsa0JBQWtCO1lBQ3BCLElBQU1LLGNBQWMsRUFBRSxFQUNoQkMsaUJBQWlCdEIsb0JBQW9CQyxXQUNyQ3NCLHFCQUFxQkMsSUFBQUEsbUJBQWdCLEVBQUNGLGdCQUFnQkQsYUFBYWQ7WUFFekUsSUFBSWdCLG9CQUFvQjtnQkFDdEIsSUFBTUUsZ0JBQWdCM0IsbUJBQW1CRyxXQUNuQ3lCLGtCQUFrQkMsSUFBQUEsWUFBSyxFQUFDTixjQUN4Qk8sYUFBYUYsaUJBQWlCLEdBQUc7Z0JBRXZDLElBQUlHLG9CQUFvQixJQUFJLEVBQUUsR0FBRztnQkFFakMsSUFBSUosa0JBQWtCLElBQUksRUFBRTtvQkFDMUJJLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0wsZUFBZUcsWUFBWXJCO2dCQUNqRSxDQUFDO2dCQUVELElBQUlzQixtQkFBbUI7b0JBQ3JCLElBQU1FLE9BQU9DLGFBQUksQ0FBQ0MsK0JBQStCLENBQUN0QixRQUFRRyxVQUFVYztvQkFFcEUxQixZQUFZZ0MsT0FBTyxDQUFDSDtvQkFFcEI1QixlQUFlLElBQUk7Z0JBQ3JCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJQSxjQUFjO1FBQ2hCRCxZQUFZaUMsSUFBSSxDQUFDLEFBQUMsaUJBQTZCLE9BQWI5QixjQUFhLFlBQVVKO0lBQzNELENBQUM7SUFFRCxPQUFPRTtBQUNUIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcnVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFJ1bGUgZnJvbSBcIi4uL3J1bGVcIjtcbmltcG9ydCB2ZXJpZnlMYWJlbHMgZnJvbSBcIi4uL3ZlcmlmeS9sYWJlbHNcIjtcbmltcG9ydCB2ZXJpZnlQcmVtaXNlIGZyb20gXCIuLi92ZXJpZnkvcHJlbWlzZVwiO1xuaW1wb3J0IHZlcmlmeVJ1bGVQcm9vZiBmcm9tIFwiLi4vdmVyaWZ5L3J1bGVQcm9vZlwiO1xuaW1wb3J0IE1ldGFwcm9vZkNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbWV0YXByb29mXCI7XG5pbXBvcnQgdmVyaWZ5Q29uY2x1c2lvbiBmcm9tIFwiLi4vdmVyaWZ5L2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcnVsZS9sYWJlbFwiKSxcbiAgICAgIHByZW1pc2VzTm9kZVF1ZXJ5ID0gbm9kZXNRdWVyeShcIi9ydWxlL3ByZW1pc2VcIiksXG4gICAgICBydWxlUHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcnVsZS9ydWxlUHJvb2YhXCIpLFxuICAgICAgY29uY2x1c2lvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9ydWxlL2NvbmNsdXNpb24hXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlSdWxlKHJ1bGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgcnVsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbGFiZWxOb2RlcyA9IGxhYmVsTm9kZXNRdWVyeShydWxlTm9kZSksXG4gICAgICAgIGxhYmVsc1N0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVzQXNTdHJpbmcobGFiZWxOb2RlcyksXG4gICAgICAgIG1ldGFQcm9vZkNvbnRleHQgPSBNZXRhcHJvb2ZDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCk7XG5cbiAgZmlsZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7bGFiZWxzU3RyaW5nfScgcnVsZS4uLmAsIHJ1bGVOb2RlKTtcblxuICBjb25zdCBsYWJlbHMgPSBbXSxcbiAgICAgICAgbGFiZWxzVmVyaWZpZWQgPSB2ZXJpZnlMYWJlbHMobGFiZWxOb2RlcywgbGFiZWxzLCBmaWxlQ29udGV4dCk7XG5cbiAgaWYgKGxhYmVsc1ZlcmlmaWVkKSB7XG4gICAgY29uc3QgcHJlbWlzZXMgPSBbXSxcbiAgICAgICAgICBwcmVtaXNlTm9kZXMgPSBwcmVtaXNlc05vZGVRdWVyeShydWxlTm9kZSksXG4gICAgICAgICAgcHJlbWlzZXNWZXJpZmllZCA9IHByZW1pc2VOb2Rlcy5ldmVyeSgocHJlbWlzZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByZW1pc2VWZXJpZmllZCA9IHZlcmlmeVByZW1pc2UocHJlbWlzZU5vZGUsIHByZW1pc2VzLCBtZXRhUHJvb2ZDb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHByZW1pc2VWZXJpZmllZCkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmIChwcmVtaXNlc1ZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBjb25jbHVzaW9ucyA9IFtdLFxuICAgICAgICAgICAgY29uY2x1c2lvbk5vZGUgPSBjb25jbHVzaW9uTm9kZVF1ZXJ5KHJ1bGVOb2RlKSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25WZXJpZmllZCA9IHZlcmlmeUNvbmNsdXNpb24oY29uY2x1c2lvbk5vZGUsIGNvbmNsdXNpb25zLCBtZXRhUHJvb2ZDb250ZXh0KTtcblxuICAgICAgaWYgKGNvbmNsdXNpb25WZXJpZmllZCkge1xuICAgICAgICBjb25zdCBydWxlUHJvb2ZOb2RlID0gcnVsZVByb29mTm9kZVF1ZXJ5KHJ1bGVOb2RlKSxcbiAgICAgICAgICAgICAgZmlyc3RDb25jbHVzaW9uID0gZmlyc3QoY29uY2x1c2lvbnMpLFxuICAgICAgICAgICAgICBjb25jbHVzaW9uID0gZmlyc3RDb25jbHVzaW9uOyAvLy9cblxuICAgICAgICBsZXQgcnVsZVByb29mVmVyaWZpZWQgPSB0cnVlOyAvLy9cblxuICAgICAgICBpZiAocnVsZVByb29mTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHJ1bGVQcm9vZlZlcmlmaWVkID0gdmVyaWZ5UnVsZVByb29mKHJ1bGVQcm9vZk5vZGUsIGNvbmNsdXNpb24sIG1ldGFQcm9vZkNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJ1bGVQcm9vZlZlcmlmaWVkKSB7XG4gICAgICAgICAgY29uc3QgcnVsZSA9IFJ1bGUuZnJvbUxhYmVsc1ByZW1pc2VzQ29uY2x1c2lvbkFuZEZpbGVDb250ZXh0KGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24sIGZpbGVDb250ZXh0KTtcblxuICAgICAgICAgIGZpbGVDb250ZXh0LmFkZFJ1bGUocnVsZSk7XG5cbiAgICAgICAgICBydWxlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHJ1bGVWZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtsYWJlbHNTdHJpbmd9JyBydWxlLmAsIHJ1bGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBydWxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UnVsZSIsImxhYmVsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJwcmVtaXNlc05vZGVRdWVyeSIsInJ1bGVQcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImNvbmNsdXNpb25Ob2RlUXVlcnkiLCJydWxlTm9kZSIsImZpbGVDb250ZXh0IiwicnVsZVZlcmlmaWVkIiwibGFiZWxOb2RlcyIsImxhYmVsc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJtZXRhUHJvb2ZDb250ZXh0IiwiTWV0YXByb29mQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsImRlYnVnIiwibGFiZWxzIiwibGFiZWxzVmVyaWZpZWQiLCJ2ZXJpZnlMYWJlbHMiLCJwcmVtaXNlcyIsInByZW1pc2VOb2RlcyIsInByZW1pc2VzVmVyaWZpZWQiLCJldmVyeSIsInByZW1pc2VOb2RlIiwicHJlbWlzZVZlcmlmaWVkIiwidmVyaWZ5UHJlbWlzZSIsImNvbmNsdXNpb25zIiwiY29uY2x1c2lvbk5vZGUiLCJjb25jbHVzaW9uVmVyaWZpZWQiLCJ2ZXJpZnlDb25jbHVzaW9uIiwicnVsZVByb29mTm9kZSIsImZpcnN0Q29uY2x1c2lvbiIsImZpcnN0IiwiY29uY2x1c2lvbiIsInJ1bGVQcm9vZlZlcmlmaWVkIiwidmVyaWZ5UnVsZVByb29mIiwicnVsZSIsIlJ1bGUiLCJmcm9tTGFiZWxzUHJlbWlzZXNDb25jbHVzaW9uQW5kRmlsZUNvbnRleHQiLCJhZGRSdWxlIiwiaW5mbyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7eURBZlA7MkRBQ1E7NERBQ0M7OERBQ0U7OERBQ0M7K0RBQ0E7cUJBRVA7cUJBQ2dCOzs7Ozs7QUFFdEMsSUFBTUMsa0JBQWtCQyxJQUFBQSxpQkFBVSxFQUFDLGdCQUM3QkMsb0JBQW9CRCxJQUFBQSxpQkFBVSxFQUFDLGtCQUMvQkUscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLHFCQUMvQkMsc0JBQXNCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXZCLFNBQVNMLFdBQVdPLFFBQVEsRUFBRUMsV0FBVyxFQUFFO0lBQ3hELElBQUlDLGVBQWUsS0FBSztJQUV4QixJQUFNQyxhQUFhVCxnQkFBZ0JNLFdBQzdCSSxlQUFlSCxZQUFZSSxhQUFhLENBQUNGLGFBQ3pDRyxtQkFBbUJDLGtCQUFnQixDQUFDQyxlQUFlLENBQUNQO0lBRTFEQSxZQUFZUSxLQUFLLENBQUMsQUFBQyxrQkFBOEIsT0FBYkwsY0FBYSxjQUFZSjtJQUU3RCxJQUFNVSxTQUFTLEVBQUUsRUFDWEMsaUJBQWlCQyxJQUFBQSxlQUFZLEVBQUNULFlBQVlPLFFBQVFUO0lBRXhELElBQUlVLGdCQUFnQjtRQUNsQixJQUFNRSxXQUFXLEVBQUUsRUFDYkMsZUFBZWxCLGtCQUFrQkksV0FDakNlLG1CQUFtQkQsYUFBYUUsS0FBSyxDQUFDLFNBQUNDLGFBQWdCO1lBQ3JELElBQU1DLGtCQUFrQkMsSUFBQUEsZ0JBQWEsRUFBQ0YsYUFBYUosVUFBVVA7WUFFN0QsSUFBSVksaUJBQWlCO2dCQUNuQixPQUFPLElBQUk7WUFDYixDQUFDO1FBQ0g7UUFFTixJQUFJSCxrQkFBa0I7WUFDcEIsSUFBTUssY0FBYyxFQUFFLEVBQ2hCQyxpQkFBaUJ0QixvQkFBb0JDLFdBQ3JDc0IscUJBQXFCQyxJQUFBQSxtQkFBZ0IsRUFBQ0YsZ0JBQWdCRCxhQUFhZDtZQUV6RSxJQUFJZ0Isb0JBQW9CO2dCQUN0QixJQUFNRSxnQkFBZ0IzQixtQkFBbUJHLFdBQ25DeUIsa0JBQWtCQyxJQUFBQSxZQUFLLEVBQUNOLGNBQ3hCTyxhQUFhRixpQkFBaUIsR0FBRztnQkFFdkMsSUFBSUcsb0JBQW9CLElBQUksRUFBRSxHQUFHO2dCQUVqQyxJQUFJSixrQkFBa0IsSUFBSSxFQUFFO29CQUMxQkksb0JBQW9CQyxJQUFBQSxrQkFBZSxFQUFDTCxlQUFlRyxZQUFZckI7Z0JBQ2pFLENBQUM7Z0JBRUQsSUFBSXNCLG1CQUFtQjtvQkFDckIsSUFBTUUsT0FBT0MsYUFBSSxDQUFDQywwQ0FBMEMsQ0FBQ3RCLFFBQVFHLFVBQVVjLFlBQVkxQjtvQkFFM0ZBLFlBQVlnQyxPQUFPLENBQUNIO29CQUVwQjVCLGVBQWUsSUFBSTtnQkFDckIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLGNBQWM7UUFDaEJELFlBQVlpQyxJQUFJLENBQUMsQUFBQyxpQkFBNkIsT0FBYjlCLGNBQWEsWUFBVUo7SUFDM0QsQ0FBQztJQUVELE9BQU9FO0FBQ1QifQ==
@@ -14,41 +14,41 @@ function verifyQualifiedStatement(qualifiedStatementNode, assignments, derived,
14
14
  var qualifiedStatementVerified = false;
15
15
  var statementNode = statementNodeQuery(qualifiedStatementNode);
16
16
  if (statementNode !== null) {
17
- var statementString = proofContext.nodeAsString(statementNode);
17
+ var statementString = proofContext.nodeAsString(statementNode), statementProofContext = proofContext; ///
18
18
  proofContext.debug("Verifying the '".concat(statementString, "' qualified statement..."), qualifiedStatementNode);
19
19
  var referenceNode = referenceNodeQuery(qualifiedStatementNode), referenceName = (0, _query.referenceNameFromReferenceNode)(referenceNode);
20
20
  if (!qualifiedStatementVerified) {
21
21
  var rule = proofContext.findRuleByReferenceName(referenceName);
22
22
  if (rule !== null) {
23
- var ruleMatchesStatement = rule.matchStatement(statementNode, proofContext);
23
+ var ruleMatchesStatement = rule.matchStatement(statementNode, statementProofContext);
24
24
  qualifiedStatementVerified = ruleMatchesStatement; ///
25
25
  }
26
26
  }
27
27
  if (!qualifiedStatementVerified) {
28
28
  var axiom = proofContext.findAxiomByReferenceName(referenceName);
29
29
  if (axiom !== null) {
30
- var axiomMatchesStatement = axiom.matchStatement(statementNode, proofContext);
30
+ var axiomMatchesStatement = axiom.matchStatement(statementNode, statementProofContext);
31
31
  qualifiedStatementVerified = axiomMatchesStatement; ///
32
32
  }
33
33
  }
34
34
  if (!qualifiedStatementVerified) {
35
35
  var lemma = proofContext.findLemmaByReferenceName(referenceName);
36
36
  if (lemma !== null) {
37
- var lemmaMatchesStatement = lemma.matchStatement(statementNode, proofContext);
37
+ var lemmaMatchesStatement = lemma.matchStatement(statementNode, statementProofContext);
38
38
  qualifiedStatementVerified = lemmaMatchesStatement; ///
39
39
  }
40
40
  }
41
41
  if (!qualifiedStatementVerified) {
42
42
  var theorem = proofContext.findTheoremByReferenceName(referenceName);
43
43
  if (theorem !== null) {
44
- var theoremMatchesStatement = theorem.matchStatement(statementNode, proofContext);
44
+ var theoremMatchesStatement = theorem.matchStatement(statementNode, statementProofContext);
45
45
  qualifiedStatementVerified = theoremMatchesStatement; ///
46
46
  }
47
47
  }
48
48
  if (!qualifiedStatementVerified) {
49
49
  var conjecture = proofContext.findConjectureByReferenceName(referenceName);
50
50
  if (conjecture !== null) {
51
- var conjectureMatchesStatement = conjecture.matchStatement(statementNode, proofContext);
51
+ var conjectureMatchesStatement = conjecture.matchStatement(statementNode, statementProofContext);
52
52
  qualifiedStatementVerified = conjectureMatchesStatement; ///
53
53
  }
54
54
  }
@@ -60,4 +60,4 @@ function verifyQualifiedStatement(qualifiedStatementNode, assignments, derived,
60
60
  return qualifiedStatementVerified;
61
61
  }
62
62
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5LCByZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHJlZmVyZW5jZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcXVhbGlmaWNhdGlvbiEvcmVmZXJlbmNlIVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHByb29mQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBwcm9vZkNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudC4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3QgcmVmZXJlbmNlTm9kZSA9IHJlZmVyZW5jZU5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICByZWZlcmVuY2VOYW1lID0gcmVmZXJlbmNlTmFtZUZyb21SZWZlcmVuY2VOb2RlKHJlZmVyZW5jZU5vZGUpO1xuXG4gICAgaWYgKCFxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3QgcnVsZSA9IHByb29mQ29udGV4dC5maW5kUnVsZUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKTtcblxuICAgICAgaWYgKHJ1bGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgcnVsZU1hdGNoZXNTdGF0ZW1lbnQgPSBydWxlLm1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBydWxlTWF0Y2hlc1N0YXRlbWVudDsgIC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGF4aW9tID0gcHJvb2ZDb250ZXh0LmZpbmRBeGlvbUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKTtcblxuICAgICAgaWYgKGF4aW9tICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGF4aW9tTWF0Y2hlc1N0YXRlbWVudCA9IGF4aW9tLm1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBheGlvbU1hdGNoZXNTdGF0ZW1lbnQ7IC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGxlbW1hID0gcHJvb2ZDb250ZXh0LmZpbmRMZW1tYUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKTtcblxuICAgICAgaWYgKGxlbW1hICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGxlbW1hTWF0Y2hlc1N0YXRlbWVudCA9IGxlbW1hLm1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBsZW1tYU1hdGNoZXNTdGF0ZW1lbnQ7IC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IHRoZW9yZW0gPSBwcm9vZkNvbnRleHQuZmluZFRoZW9yZW1CeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSk7XG5cbiAgICAgIGlmICh0aGVvcmVtICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHRoZW9yZW1NYXRjaGVzU3RhdGVtZW50ID0gdGhlb3JlbS5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdGhlb3JlbU1hdGNoZXNTdGF0ZW1lbnQ7IC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGNvbmplY3R1cmUgPSBwcm9vZkNvbnRleHQuZmluZENvbmplY3R1cmVCeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSk7XG5cbiAgICAgIGlmIChjb25qZWN0dXJlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGNvbmplY3R1cmVNYXRjaGVzU3RhdGVtZW50ID0gY29uamVjdHVyZS5tYXRjaFN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuXG4gICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gY29uamVjdHVyZU1hdGNoZXNTdGF0ZW1lbnQ7IC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHByb29mQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBwcm9vZkNvbnRleHQuaW5mbyhgVmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQuYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50IiwicmVmZXJlbmNlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsInByb29mQ29udGV4dCIsInF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwicmVmZXJlbmNlTm9kZSIsInJlZmVyZW5jZU5hbWUiLCJyZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUiLCJydWxlIiwiZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUiLCJydWxlTWF0Y2hlc1N0YXRlbWVudCIsIm1hdGNoU3RhdGVtZW50IiwiYXhpb20iLCJmaW5kQXhpb21CeVJlZmVyZW5jZU5hbWUiLCJheGlvbU1hdGNoZXNTdGF0ZW1lbnQiLCJsZW1tYSIsImZpbmRMZW1tYUJ5UmVmZXJlbmNlTmFtZSIsImxlbW1hTWF0Y2hlc1N0YXRlbWVudCIsInRoZW9yZW0iLCJmaW5kVGhlb3JlbUJ5UmVmZXJlbmNlTmFtZSIsInRoZW9yZW1NYXRjaGVzU3RhdGVtZW50IiwiY29uamVjdHVyZSIsImZpbmRDb25qZWN0dXJlQnlSZWZlcmVuY2VOYW1lIiwiY29uamVjdHVyZU1hdGNoZXNTdGF0ZW1lbnQiLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQXdCQTs7O3FCQUxrQztBQUUxRCxJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMsa0RBQy9CQyxxQkFBcUJELElBQUFBLGdCQUFTLEVBQUM7QUFFdEIsU0FBU0YseUJBQXlCSSxzQkFBc0IsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFlBQVksRUFBRTtJQUMzRyxJQUFJQyw2QkFBNkIsS0FBSztJQUV0QyxJQUFNQyxnQkFBZ0JOLG1CQUFtQkM7SUFFekMsSUFBSUssa0JBQWtCLElBQUksRUFBRTtRQUMxQixJQUFNQyxrQkFBa0JILGFBQWFJLFlBQVksQ0FBQ0Y7UUFFbERGLGFBQWFLLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCLDZCQUEyQk47UUFFaEYsSUFBTVMsZ0JBQWdCWixtQkFBbUJHLHlCQUNuQ1UsZ0JBQWdCQyxJQUFBQSxxQ0FBOEIsRUFBQ0Y7UUFFckQsSUFBSSxDQUFDTCw0QkFBNEI7WUFDL0IsSUFBTVEsT0FBT1QsYUFBYVUsdUJBQXVCLENBQUNIO1lBRWxELElBQUlFLFNBQVMsSUFBSSxFQUFFO2dCQUNqQixJQUFNRSx1QkFBdUJGLEtBQUtHLGNBQWMsQ0FBQ1YsZUFBZUY7Z0JBRWhFQyw2QkFBNkJVLHNCQUF1QixHQUFHO1lBQ3pELENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDViw0QkFBNEI7WUFDL0IsSUFBTVksUUFBUWIsYUFBYWMsd0JBQXdCLENBQUNQO1lBRXBELElBQUlNLFVBQVUsSUFBSSxFQUFFO2dCQUNsQixJQUFNRSx3QkFBd0JGLE1BQU1ELGNBQWMsQ0FBQ1YsZUFBZUY7Z0JBRWxFQyw2QkFBNkJjLHVCQUF1QixHQUFHO1lBQ3pELENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDZCw0QkFBNEI7WUFDL0IsSUFBTWUsUUFBUWhCLGFBQWFpQix3QkFBd0IsQ0FBQ1Y7WUFFcEQsSUFBSVMsVUFBVSxJQUFJLEVBQUU7Z0JBQ2xCLElBQU1FLHdCQUF3QkYsTUFBTUosY0FBYyxDQUFDVixlQUFlRjtnQkFFbEVDLDZCQUE2QmlCLHVCQUF1QixHQUFHO1lBQ3pELENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDakIsNEJBQTRCO1lBQy9CLElBQU1rQixVQUFVbkIsYUFBYW9CLDBCQUEwQixDQUFDYjtZQUV4RCxJQUFJWSxZQUFZLElBQUksRUFBRTtnQkFDcEIsSUFBTUUsMEJBQTBCRixRQUFRUCxjQUFjLENBQUNWLGVBQWVGO2dCQUV0RUMsNkJBQTZCb0IseUJBQXlCLEdBQUc7WUFDM0QsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUNwQiw0QkFBNEI7WUFDL0IsSUFBTXFCLGFBQWF0QixhQUFhdUIsNkJBQTZCLENBQUNoQjtZQUU5RCxJQUFJZSxlQUFlLElBQUksRUFBRTtnQkFDdkIsSUFBTUUsNkJBQTZCRixXQUFXVixjQUFjLENBQUNWLGVBQWVGO2dCQUU1RUMsNkJBQTZCdUIsNEJBQTRCLEdBQUc7WUFDOUQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSXZCLDRCQUE0QjtRQUM5QixJQUFNRSxtQkFBa0JILGFBQWFJLFlBQVksQ0FBQ0Y7UUFFbERGLGFBQWF5QixJQUFJLENBQUMsQUFBQyxpQkFBZ0MsT0FBaEJ0QixrQkFBZ0IsMkJBQXlCTjtJQUM5RSxDQUFDO0lBRUQsT0FBT0k7QUFDVCJ9
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5LCByZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHJlZmVyZW5jZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcXVhbGlmaWNhdGlvbiEvcmVmZXJlbmNlIVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBwcm9vZkNvbnRleHQpIHtcbiAgbGV0IHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHByb29mQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgc3RhdGVtZW50UHJvb2ZDb250ZXh0ID0gcHJvb2ZDb250ZXh0OyAvLy9cblxuICAgIHByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50Li4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCByZWZlcmVuY2VOb2RlID0gcmVmZXJlbmNlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSByZWZlcmVuY2VOYW1lRnJvbVJlZmVyZW5jZU5vZGUocmVmZXJlbmNlTm9kZSk7XG5cbiAgICBpZiAoIXF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBydWxlID0gcHJvb2ZDb250ZXh0LmZpbmRSdWxlQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpO1xuXG4gICAgICBpZiAocnVsZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBydWxlTWF0Y2hlc1N0YXRlbWVudCA9IHJ1bGUubWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50UHJvb2ZDb250ZXh0KTtcblxuICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHJ1bGVNYXRjaGVzU3RhdGVtZW50OyAgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3QgYXhpb20gPSBwcm9vZkNvbnRleHQuZmluZEF4aW9tQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpO1xuXG4gICAgICBpZiAoYXhpb20gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgYXhpb21NYXRjaGVzU3RhdGVtZW50ID0gYXhpb20ubWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50UHJvb2ZDb250ZXh0KTtcblxuICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IGF4aW9tTWF0Y2hlc1N0YXRlbWVudDsgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3QgbGVtbWEgPSBwcm9vZkNvbnRleHQuZmluZExlbW1hQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpO1xuXG4gICAgICBpZiAobGVtbWEgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbGVtbWFNYXRjaGVzU3RhdGVtZW50ID0gbGVtbWEubWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50UHJvb2ZDb250ZXh0KTtcblxuICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IGxlbW1hTWF0Y2hlc1N0YXRlbWVudDsgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3QgdGhlb3JlbSA9IHByb29mQ29udGV4dC5maW5kVGhlb3JlbUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKTtcblxuICAgICAgaWYgKHRoZW9yZW0gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgdGhlb3JlbU1hdGNoZXNTdGF0ZW1lbnQgPSB0aGVvcmVtLm1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHN0YXRlbWVudFByb29mQ29udGV4dCk7XG5cbiAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB0aGVvcmVtTWF0Y2hlc1N0YXRlbWVudDsgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgY29uc3QgY29uamVjdHVyZSA9IHByb29mQ29udGV4dC5maW5kQ29uamVjdHVyZUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKTtcblxuICAgICAgaWYgKGNvbmplY3R1cmUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY29uamVjdHVyZU1hdGNoZXNTdGF0ZW1lbnQgPSBjb25qZWN0dXJlLm1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHN0YXRlbWVudFByb29mQ29udGV4dCk7XG5cbiAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBjb25qZWN0dXJlTWF0Y2hlc1N0YXRlbWVudDsgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gcHJvb2ZDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIHByb29mQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudC5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJyZWZlcmVuY2VOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJxdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwicHJvb2ZDb250ZXh0IiwicXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwic3RhdGVtZW50UHJvb2ZDb250ZXh0IiwiZGVidWciLCJyZWZlcmVuY2VOb2RlIiwicmVmZXJlbmNlTmFtZSIsInJlZmVyZW5jZU5hbWVGcm9tUmVmZXJlbmNlTm9kZSIsInJ1bGUiLCJmaW5kUnVsZUJ5UmVmZXJlbmNlTmFtZSIsInJ1bGVNYXRjaGVzU3RhdGVtZW50IiwibWF0Y2hTdGF0ZW1lbnQiLCJheGlvbSIsImZpbmRBeGlvbUJ5UmVmZXJlbmNlTmFtZSIsImF4aW9tTWF0Y2hlc1N0YXRlbWVudCIsImxlbW1hIiwiZmluZExlbW1hQnlSZWZlcmVuY2VOYW1lIiwibGVtbWFNYXRjaGVzU3RhdGVtZW50IiwidGhlb3JlbSIsImZpbmRUaGVvcmVtQnlSZWZlcmVuY2VOYW1lIiwidGhlb3JlbU1hdGNoZXNTdGF0ZW1lbnQiLCJjb25qZWN0dXJlIiwiZmluZENvbmplY3R1cmVCeVJlZmVyZW5jZU5hbWUiLCJj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
@@ -328,11 +328,11 @@ function verifyStatementAsEquality(statementNode, assignments, derived, context)
328
328
  } else {
329
329
  var leftVariableTypeSuperTypeOfRightVariableType = leftVariableType.isSuperTypeOf(rightVariableType), rightVariableTypeSuperTypeOfLeftVariableType = rightVariableType.isSuperTypeOf(leftVariableType);
330
330
  if (leftVariableTypeSuperTypeOfRightVariableType) {
331
- var type = rightVariableType, name = leftVariableName, variable = _variable.default.fromTypeAndName(type, name), assignment = _assignment.default.fromVariable(variable);
331
+ var name = leftVariableName, type = rightVariableType, variable = _variable.default.fromNameAndType(name, type), assignment = _assignment.default.fromVariable(variable);
332
332
  assignments.push(assignment);
333
333
  }
334
334
  if (rightVariableTypeSuperTypeOfLeftVariableType) {
335
- var type1 = leftVariableType, name1 = rightVariableName, variable1 = _variable.default.fromTypeAndName(type1, name1), assignment1 = _assignment.default.fromVariable(variable1);
335
+ var name1 = rightVariableName, type1 = leftVariableType, variable1 = _variable.default.fromNameAndType(name1, type1), assignment1 = _assignment.default.fromVariable(variable1);
336
336
  assignments.push(assignment1);
337
337
  }
338
338
  statementVerifiedAsEquality = true;
@@ -345,7 +345,7 @@ function verifyStatementAsEquality(statementNode, assignments, derived, context)
345
345
  var rightTermString = context.nodeAsString(rightTermNode), rightTermTypeName = rightTermType.getName(), leftVariableTypeName1 = leftVariableType1.getName();
346
346
  context.error("The left '".concat(leftVariableName1, "' variable's '").concat(leftVariableTypeName1, "' type is not equal to or a super-type of the right '").concat(rightTermString, "' term's '").concat(rightTermTypeName, "' type."), statementNode);
347
347
  } else {
348
- var type2 = rightTermType, name2 = leftVariableName1, variable2 = _variable.default.fromTypeAndName(type2, name2), assignment2 = _assignment.default.fromVariable(variable2);
348
+ var name2 = leftVariableName1, type2 = rightTermType, variable2 = _variable.default.fromNameAndType(name2, type2), assignment2 = _assignment.default.fromVariable(variable2);
349
349
  assignments.push(assignment2);
350
350
  statementVerifiedAsEquality = true;
351
351
  }
@@ -357,7 +357,7 @@ function verifyStatementAsEquality(statementNode, assignments, derived, context)
357
357
  var leftTermString = context.nodeAsString(leftTermNode), leftTermTypeName = leftTermType.getName(), rightVariableTypeName1 = rightVariableType1.getName();
358
358
  context.error("The right '".concat(rightVariableName1, "' variable's '").concat(rightVariableTypeName1, "' type is not equal to or a super-type of the left '").concat(leftTermString, "' term's '").concat(leftTermTypeName, "' type."), statementNode);
359
359
  } else {
360
- var type3 = leftTermType, name3 = rightVariableName1, variable3 = _variable.default.fromTypeAndName(type3, name3), assignment3 = _assignment.default.fromVariable(variable3);
360
+ var name3 = rightVariableName1, type3 = leftTermType, variable3 = _variable.default.fromNameAndType(name3, type3), assignment3 = _assignment.default.fromVariable(variable3);
361
361
  assignments.push(assignment3);
362
362
  statementVerifiedAsEquality = true;
363
363
  }
@@ -382,4 +382,4 @@ function verifyStatementAsEquality(statementNode, assignments, derived, context)
382
382
  return statementVerifiedAsEquality;
383
383
  }
384
384
 
385
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyXCI7XG5pbXBvcnQgVmFyaWFibGUgZnJvbSBcIi4uL3ZhcmlhYmxlXCI7XG5pbXBvcnQgRXF1YWxpdHkgZnJvbSBcIi4uL2VxdWFsaXR5XCI7XG5pbXBvcnQgQXNzaWdubWVudCBmcm9tIFwiLi4vYXNzaWdubWVudFwiO1xuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4uL3ZlcmlmeS90ZXJtXCI7XG5pbXBvcnQgZXF1YWxpdHlDb21iaW5hdG9yIGZyb20gXCIuLi9vY21iaW5hdG9yL2VxdWFsaXR5XCI7XG5pbXBvcnQgYnJhY2tldGVkQ29tYmluYXRvciBmcm9tIFwiLi4vb2NtYmluYXRvci9icmFja2V0ZWRcIjtcbmltcG9ydCB2ZXJpZnlUeXBlQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvYXNzZXJ0aW9uL3R5cGVcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuLi90eXBlXCI7XG5pbXBvcnQgeyBmaXJzdCwgc2Vjb25kIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgT0JKRUNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IFNUQVRFTUVOVF9NRVRBX1RZUEUgfSBmcm9tIFwiLi4vbWV0YVR5cGVzXCI7XG5pbXBvcnQgeyB2ZXJpZnlUZXJtQXNWYXJpYWJsZSB9IGZyb20gXCIuLi92ZXJpZnkvdGVybVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCB0eXBlTmFtZUZyb21UeXBlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IEFSR1VNRU5UX1JVTEVfTkFNRSwgTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQvdGVybSFcIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3R5cGUhXCIpLFxuICAgICAgbWV0YVR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YUFyZ3VtZW50L21ldGFUeXBlIVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhQXJndW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L3R5cGVBc3NlcnRpb24hXCIpLFxuICAgICAgbWV0YVR5cGVUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhVHlwZS9AbWV0YS10eXBlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKCFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yczsgIC8vL1xuICB9XG5cbiAgaWYgKCFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0KTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkID0gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247IC8vL1xuICB9XG5cbiAgaWYgKCFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHkoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHk7ICAvL1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkO1xufVxuXG5jbGFzcyBTdGF0ZW1lbnRWZXJpZmllciBleHRlbmRzIFZlcmlmaWVyIHtcbiAgdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIGNvbnRleHQpIHtcbiAgICBsZXQgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vblRlcm1pbmFsTm9kZUEsIC8vL1xuICAgICAgICAgIGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUgPSBub25UZXJtaW5hbE5vZGVCOyAvLy9cblxuICAgIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksIC8vL1xuICAgICAgY29tYmluYXRvclJ1bGVOYW1lID0gY29tYmluYXRvck5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICAgIGlmIChydWxlTmFtZSA9PT0gY29tYmluYXRvclJ1bGVOYW1lKSB7XG4gICAgICBzd2l0Y2ggKHJ1bGVOYW1lKSB7XG4gICAgICAgIGNhc2UgQVJHVU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICAgICAgY29uc3QgYXJndW1lbnROb2RlID0gbm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgICAgICBjb21iaW5hdG9yQXJndW1lbnROb2RlID0gY29tYmluYXRvck5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICAgICAgYXJndW1lbnROb2RlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeUFyZ3VtZW50Tm9kZShhcmd1bWVudE5vZGUsIGNvbWJpbmF0b3JBcmd1bWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBhcmd1bWVudE5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgTUVUQV9BUkdVTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgICAgICBjb25zdCBtZXRhQXJndW1lbnROb2RlID0gbm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgICAgICBjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSA9IGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgICAgIG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5TWV0YWFyZ3VtZW50Tm9kZShtZXRhQXJndW1lbnROb2RlLCBjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICBjb21iaW5hdG9yQ2hpbGROb2RlcyA9IGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgIG5vZGVzQSA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICAgIG5vZGVzQiA9IGNvbWJpbmF0b3JDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICBub2Rlc1ZlcmlmaWVkID0gdGhpcy52ZXJpZnlOb2Rlcyhub2Rlc0EsIG5vZGVzQiwgY29udGV4dCk7XG5cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG5vZGVzVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlBcmd1bWVudE5vZGUoYXJndW1lbnROb2RlLCBjb21iaW5hdG9yQXJndW1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGFyZ3VtZW50Tm9kZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICAgIGlmICh0ZXJtTm9kZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgYXJndW1lbnRTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhhcmd1bWVudE5vZGUpO1xuXG4gICAgICBjb250ZXh0LmVycm9yKGBUaGUgJHthcmd1bWVudFN0cmluZ30gYXJndW1lbnQgc2hvdWxkIGJlIGEgdGVybSwgbm90IGEgdHlwZWAsIGFyZ3VtZW50Tm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHR5cGVzID0gW10sXG4gICAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0eXBlcywgY29udGV4dCk7XG5cbiAgICAgIGlmICh0ZXJtVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgZmlyc3RUeXBlID0gZmlyc3QodHlwZXMpLFxuICAgICAgICAgICAgICB0ZXJtVHlwZSA9IGZpcnN0VHlwZSwgLy8vXG4gICAgICAgICAgICAgIHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeShjb21iaW5hdG9yQXJndW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgICAgICAgIHR5cGUgPSAodHlwZU5hbWUgPT09IE9CSkVDVF9UWVBFX05BTUUpID9cbiAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0VHlwZSA6ICAvLy9cbiAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSksXG4gICAgICAgICAgICAgIHN0YXRlbWVudFR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZUeXBlID0gdGVybVR5cGUuaXNFcXVhbFRvT3JTdWJUeXBlT2YodHlwZSk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZUeXBlKSB7XG4gICAgICAgICAgYXJndW1lbnROb2RlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFyZ3VtZW50Tm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5TWV0YWFyZ3VtZW50Tm9kZShtZXRhQXJndW1lbnROb2RlLCBjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGxldCBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkobWV0YUFyZ3VtZW50Tm9kZSksXG4gICAgICAgICAgY29tYmluYXRvck1ldGFUWXBlTm9kZSA9IG1ldGFUeXBlTm9kZVF1ZXJ5KGNvbWJpbmF0b3JNZXRhYXJndW1lbnROb2RlKTtcblxuICAgIGlmIChzdGF0ZW1lbnROb2RlID09PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhQXJndW1lbnRTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhQXJndW1lbnROb2RlKTtcblxuICAgICAgY29udGV4dC5lcnJvcihgRXhwZWN0ZWQgYSBzdGF0ZW1lbnQgYnV0IGdvdCBhICcke21ldGFBcmd1bWVudFN0cmluZ30nIG1ldGEtdHlwZS5gLCBtZXRhQXJndW1lbnROb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNvbWJpbmF0b3JNZXRhVFlwZU5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY29tYmluYXRvck1ldGFhcmd1bWVudFN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKGNvbWJpbmF0b3JNZXRhYXJndW1lbnROb2RlKTtcblxuICAgICAgICBjb250ZXh0LmVycm9yKGBFeHBlY3RlZCBhIG1ldGEtdHlwZSBidXQgZ290IGEgJyR7Y29tYmluYXRvck1ldGFhcmd1bWVudFN0cmluZ30nIHN0YXRlbWVudC5gLCBtZXRhQXJndW1lbnROb2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmF0b3JNZXRhVHlwZVRlcm1pbmFsTm9kZSA9IG1ldGFUeXBlVGVybWluYWxOb2RlUXVlcnkoY29tYmluYXRvck1ldGFUWXBlTm9kZSksXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb21iaW5hdG9yTWV0YVR5cGVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgICBjb250ZW50U3RhdGVtZW50TWV0YVR5cGUgPSAoY29udGVudCA9PT0gU1RBVEVNRU5UX01FVEFfVFlQRSk7XG5cbiAgICAgICAgaWYgKCFjb250ZW50U3RhdGVtZW50TWV0YVR5cGUpIHtcbiAgICAgICAgICBjb250ZXh0LmVycm9yKGBFeHBlY3RlZCB0aGUgbWV0YS10eXBlIHRvIGJlICdTdGF0ZW1lbnQnIGJ1dCBnb3QgJyR7Y29udGVudH0nLmAsIG1ldGFBcmd1bWVudE5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YUFyZ3VtZW50Tm9kZVZlcmlmaWVkO1xuICB9XG59XG5cbmNvbnN0IHN0YXRlbWVudFZlcmlmaWVyID0gbmV3IFN0YXRlbWVudFZlcmlmaWVyKCk7XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyhzdGF0ZW1lbnROb2RlLCBjb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyA9IGZhbHNlO1xuXG4gIGxldCBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTtcblxuICBjb21iaW5hdG9ycyA9IFsgLy8vXG4gICAgYnJhY2tldGVkQ29tYmluYXRvcixcbiAgICAuLi5jb21iaW5hdG9yc1xuICBdO1xuXG4gIGNvbnN0IGNvbWJpbmF0b3IgPSBjb21iaW5hdG9ycy5maW5kKChjb21iaW5hdG9yKSA9PiB7XG4gICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGNvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICBpZiAoY29tYmluYXRvciAhPT0gbnVsbCkge1xuICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycztcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgY29udGV4dCkge1xuICBjb25zdCBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICBub25UZXJtaW5hbE5vZGVBID0gc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gY29tYmluYXRvclN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBub2RlVmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgY29udGV4dCksXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IgPSBub2RlVmVyaWZpZWQ7ICAvLy9cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHR5cGVBc3NlcnRpb25Ob2RlID0gdHlwZUFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAodHlwZUFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgY29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHkoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbWJpbmF0b3IgPSBlcXVhbGl0eUNvbWJpbmF0b3IsICAvLy9cbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGNvbnRleHQpO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yKSB7XG4gICAgY29uc3QgZXF1YWxpdHkgPSBFcXVhbGl0eS5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChkZXJpdmVkKSB7XG4gICAgICBjb25zdCBlcXVhbGl0aWVzID0gY29udGV4dC5nZXRFcXVhbGl0aWVzKCksXG4gICAgICAgICAgICBlcXVhbGl0eVZlcmlmaWVkID0gZXF1YWxpdHkudmVyaWZ5KGVxdWFsaXRpZXMsIGNvbnRleHQpO1xuXG4gICAgICBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkgPSBlcXVhbGl0eVZlcmlmaWVkOyAgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICAgICAgbGVmdFRlcm1Ob2RlID0gZXF1YWxpdHkuZ2V0TGVmdFRlcm1Ob2RlKCksXG4gICAgICAgICAgICByaWdodFRlcm1Ob2RlID0gZXF1YWxpdHkuZ2V0UmlnaHRUZXJtTm9kZSgpLFxuICAgICAgICAgICAgbGVmdFRlcm1WZXJpZmllZEFzVmFyaWFibGUgPSB2ZXJpZnlUZXJtQXNWYXJpYWJsZShsZWZ0VGVybU5vZGUsIHZhcmlhYmxlcywgY29udGV4dCksXG4gICAgICAgICAgICByaWdodFRlcm1WZXJpZmllZEFzVmFyaWFibGUgPSB2ZXJpZnlUZXJtQXNWYXJpYWJsZShyaWdodFRlcm1Ob2RlLCB2YXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICBpZiAobGVmdFRlcm1WZXJpZmllZEFzVmFyaWFibGUgJiYgcmlnaHRUZXJtVmVyaWZpZWRBc1ZhcmlhYmxlKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0VmFyaWFibGUgPSBmaXJzdCh2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICBzZWNvbmRWYXJpYWJsZSA9IHNlY29uZCh2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICBsZWZ0VmFyaWFibGUgPSBmaXJzdFZhcmlhYmxlLCAvLy9cbiAgICAgICAgICAgICAgcmlnaHRWYXJpYWJsZSA9IHNlY29uZFZhcmlhYmxlLCAvLy9cbiAgICAgICAgICAgICAgbGVmdFZhcmlhYmxlTmFtZSA9IGxlZnRWYXJpYWJsZS5nZXROYW1lKCksXG4gICAgICAgICAgICAgIGxlZnRWYXJpYWJsZVR5cGUgPSBsZWZ0VmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICByaWdodFZhcmlhYmxlTmFtZSA9IHJpZ2h0VmFyaWFibGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICByaWdodFZhcmlhYmxlVHlwZSA9IHJpZ2h0VmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICBsZWZ0VmFyaWFibGVUeXBlRXF1YWxUb09yU3ViVHlwZU9mT2ZTdXBlclR5cGVPZlJpZ2h0VmFyaWFibGVUeXBlID0gbGVmdFZhcmlhYmxlVHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2YocmlnaHRWYXJpYWJsZVR5cGUpO1xuXG4gICAgICAgIGlmICghbGVmdFZhcmlhYmxlVHlwZUVxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2ZSaWdodFZhcmlhYmxlVHlwZSkge1xuICAgICAgICAgIGNvbnN0IGxlZnRWYXJpYWJsZVR5cGVOYW1lID0gbGVmdFZhcmlhYmxlVHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgICAgICAgcmlnaHRWYXJpYWJsZVR5cGVOYW1lID0gcmlnaHRWYXJpYWJsZVR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICAgICAgY29udGV4dC5lcnJvcihgVGhlIGxlZnQgJyR7bGVmdFZhcmlhYmxlTmFtZX0nIHZhcmlhYmxlJ3MgJyR7bGVmdFZhcmlhYmxlVHlwZU5hbWV9JyB0eXBlIGlzIG5vdCBlcXVhbCB0bywgYSBzdWItdHlwZSBvZiBvciBhIHN1cGVyLXR5cGUgb2YgdGhlIHJpZ2h0ICcke3JpZ2h0VmFyaWFibGVOYW1lfScgdmFyaWFibGUncyAnJHtyaWdodFZhcmlhYmxlVHlwZU5hbWV9JyB0eXBlLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGxlZnRWYXJpYWJsZVR5cGVTdXBlclR5cGVPZlJpZ2h0VmFyaWFibGVUeXBlID0gbGVmdFZhcmlhYmxlVHlwZS5pc1N1cGVyVHlwZU9mKHJpZ2h0VmFyaWFibGVUeXBlKSxcbiAgICAgICAgICAgICAgICByaWdodFZhcmlhYmxlVHlwZVN1cGVyVHlwZU9mTGVmdFZhcmlhYmxlVHlwZSA9IHJpZ2h0VmFyaWFibGVUeXBlLmlzU3VwZXJUeXBlT2YobGVmdFZhcmlhYmxlVHlwZSk7XG5cbiAgICAgICAgICBpZiAobGVmdFZhcmlhYmxlVHlwZVN1cGVyVHlwZU9mUmlnaHRWYXJpYWJsZVR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSByaWdodFZhcmlhYmxlVHlwZSwgIC8vL1xuICAgICAgICAgICAgICAgICAgbmFtZSA9IGxlZnRWYXJpYWJsZU5hbWUsIC8vL1xuICAgICAgICAgICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tVHlwZUFuZE5hbWUodHlwZSwgbmFtZSksXG4gICAgICAgICAgICAgICAgICBhc3NpZ25tZW50ID0gQXNzaWdubWVudC5mcm9tVmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgICAgICAgICBhc3NpZ25tZW50cy5wdXNoKGFzc2lnbm1lbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyaWdodFZhcmlhYmxlVHlwZVN1cGVyVHlwZU9mTGVmdFZhcmlhYmxlVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgdHlwZSA9IGxlZnRWYXJpYWJsZVR5cGUsICAvLy9cbiAgICAgICAgICAgICAgICAgIG5hbWUgPSByaWdodFZhcmlhYmxlTmFtZSwgLy8vXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UeXBlQW5kTmFtZSh0eXBlLCBuYW1lKSxcbiAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnQgPSBBc3NpZ25tZW50LmZyb21WYXJpYWJsZSh2YXJpYWJsZSk7XG5cbiAgICAgICAgICAgIGFzc2lnbm1lbnRzLnB1c2goYXNzaWdubWVudCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChsZWZ0VGVybVZlcmlmaWVkQXNWYXJpYWJsZSkge1xuICAgICAgICBjb25zdCB0eXBlcyA9IFtdO1xuXG4gICAgICAgIHZlcmlmeVRlcm0ocmlnaHRUZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnN0IGZpcnN0VHlwZSA9IGZpcnN0KHR5cGVzKSxcbiAgICAgICAgICAgICAgZmlyc3RWYXJpYWJsZSA9IGZpcnN0KHZhcmlhYmxlcyksXG4gICAgICAgICAgICAgIGxlZnRWYXJpYWJsZSA9IGZpcnN0VmFyaWFibGUsIC8vL1xuICAgICAgICAgICAgICByaWdodFRlcm1UeXBlID0gZmlyc3RUeXBlLCAgLy8vXG4gICAgICAgICAgICAgIGxlZnRWYXJpYWJsZU5hbWUgPSBsZWZ0VmFyaWFibGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICBsZWZ0VmFyaWFibGVUeXBlID0gbGVmdFZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgbGVmdFZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mUmlnaHRUZXJtVHlwZSA9IGxlZnRWYXJpYWJsZVR5cGUuaXNFcXVhbFRvT3JTdXBlclR5cGVPZihyaWdodFRlcm1UeXBlKTtcblxuICAgICAgICBpZiAoIWxlZnRWYXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlJpZ2h0VGVybVR5cGUpIHtcbiAgICAgICAgICBjb25zdCByaWdodFRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhyaWdodFRlcm1Ob2RlKSxcbiAgICAgICAgICAgICAgICByaWdodFRlcm1UeXBlTmFtZSA9IHJpZ2h0VGVybVR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgIGxlZnRWYXJpYWJsZVR5cGVOYW1lID0gbGVmdFZhcmlhYmxlVHlwZS5nZXROYW1lKCk7XG5cbiAgICAgICAgICBjb250ZXh0LmVycm9yKGBUaGUgbGVmdCAnJHtsZWZ0VmFyaWFibGVOYW1lfScgdmFyaWFibGUncyAnJHtsZWZ0VmFyaWFibGVUeXBlTmFtZX0nIHR5cGUgaXMgbm90IGVxdWFsIHRvIG9yIGEgc3VwZXItdHlwZSBvZiB0aGUgcmlnaHQgJyR7cmlnaHRUZXJtU3RyaW5nfScgdGVybSdzICcke3JpZ2h0VGVybVR5cGVOYW1lfScgdHlwZS5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0eXBlID0gcmlnaHRUZXJtVHlwZSwgLy8vXG4gICAgICAgICAgICAgICAgbmFtZSA9IGxlZnRWYXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UeXBlQW5kTmFtZSh0eXBlLCBuYW1lKSxcbiAgICAgICAgICAgICAgICBhc3NpZ25tZW50ID0gQXNzaWdubWVudC5mcm9tVmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcblxuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocmlnaHRUZXJtVmVyaWZpZWRBc1ZhcmlhYmxlKSB7XG4gICAgICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICAgICAgdmVyaWZ5VGVybShsZWZ0VGVybU5vZGUsIHR5cGVzLCBjb250ZXh0KTtcblxuICAgICAgICBjb25zdCBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgICAgIGZpcnN0VmFyaWFibGUgPSBmaXJzdCh2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICBsZWZ0VGVybVR5cGUgPSBmaXJzdFR5cGUsICAvLy9cbiAgICAgICAgICAgICAgcmlnaHRWYXJpYWJsZSA9IGZpcnN0VmFyaWFibGUsIC8vL1xuICAgICAgICAgICAgICByaWdodFZhcmlhYmxlTmFtZSA9IHJpZ2h0VmFyaWFibGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICByaWdodFZhcmlhYmxlVHlwZSA9IHJpZ2h0VmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICByaWdodFZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mUmlnaHRUZXJtVHlwZSA9IHJpZ2h0VmFyaWFibGVUeXBlLmlzRXF1YWxUb09yU3VwZXJUeXBlT2YobGVmdFRlcm1UeXBlKTtcblxuICAgICAgICBpZiAoIXJpZ2h0VmFyaWFibGVUeXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZSaWdodFRlcm1UeXBlKSB7XG4gICAgICAgICAgY29uc3QgbGVmdFRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhsZWZ0VGVybU5vZGUpLFxuICAgICAgICAgICAgICAgIGxlZnRUZXJtVHlwZU5hbWUgPSBsZWZ0VGVybVR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgIHJpZ2h0VmFyaWFibGVUeXBlTmFtZSA9IHJpZ2h0VmFyaWFibGVUeXBlLmdldE5hbWUoKTtcblxuICAgICAgICAgIGNvbnRleHQuZXJyb3IoYFRoZSByaWdodCAnJHtyaWdodFZhcmlhYmxlTmFtZX0nIHZhcmlhYmxlJ3MgJyR7cmlnaHRWYXJpYWJsZVR5cGVOYW1lfScgdHlwZSBpcyBub3QgZXF1YWwgdG8gb3IgYSBzdXBlci10eXBlIG9mIHRoZSBsZWZ0ICcke2xlZnRUZXJtU3RyaW5nfScgdGVybSdzICcke2xlZnRUZXJtVHlwZU5hbWV9JyB0eXBlLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHR5cGUgPSBsZWZ0VGVybVR5cGUsIC8vL1xuICAgICAgICAgICAgICAgIG5hbWUgPSByaWdodFZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbVR5cGVBbmROYW1lKHR5cGUsIG5hbWUpLFxuICAgICAgICAgICAgICAgIGFzc2lnbm1lbnQgPSBBc3NpZ25tZW50LmZyb21WYXJpYWJsZSh2YXJpYWJsZSk7XG5cbiAgICAgICAgICBhc3NpZ25tZW50cy5wdXNoKGFzc2lnbm1lbnQpO1xuXG4gICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdHlwZXMgPSBbXTtcblxuICAgICAgICB2ZXJpZnlUZXJtKGxlZnRUZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIHZlcmlmeVRlcm0ocmlnaHRUZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnN0IGZpcnN0VHlwZSA9IGZpcnN0KHR5cGVzKSxcbiAgICAgICAgICAgICAgc2Vjb25kVHlwZSA9IHNlY29uZCh0eXBlcyksXG4gICAgICAgICAgICAgIGxlZnRUZXJtVHlwZSA9IGZpcnN0VHlwZSwgLy8vXG4gICAgICAgICAgICAgIHJpZ2h0VGVybVR5cGUgPSBzZWNvbmRUeXBlLCAvLy9cbiAgICAgICAgICAgICAgbGVmdFRlcm1UeXBlRXF1YWxUb09yU3ViVHlwZU9mT2ZTdXBlclR5cGVPZiA9IGxlZnRUZXJtVHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2YocmlnaHRUZXJtVHlwZSk7XG5cbiAgICAgICAgaWYgKCFsZWZ0VGVybVR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZPZlN1cGVyVHlwZU9mKSB7XG4gICAgICAgICAgY29uc3QgbGVmdFRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhsZWZ0VGVybU5vZGUpLFxuICAgICAgICAgICAgICAgIHJpZ2h0VGVybVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHJpZ2h0VGVybU5vZGUpLFxuICAgICAgICAgICAgICAgIGxlZnRUZXJtVHlwZU5hbWUgPSBsZWZ0VGVybVR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgIHJpZ2h0VGVybVR5cGVOYW1lID0gcmlnaHRUZXJtVHlwZS5nZXROYW1lKCk7XG5cbiAgICAgICAgICBjb250ZXh0LmVycm9yKGBUaGUgbGVmdCAnJHtsZWZ0VGVybVN0cmluZ30nIHRlcm0ncyAnJHtsZWZ0VGVybVR5cGVOYW1lfScgdHlwZSBpcyBub3QgZXF1YWwgdG8sIGEgc3ViLXR5cGUgb2Ygb3IgYSBzdXBlci10eXBlIG9mIHRoZSByaWdodCAnJHtyaWdodFRlcm1TdHJpbmd9JyB0ZXJtJ3MgJyR7cmlnaHRUZXJtVHlwZU5hbWV9JyB0eXBlLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5O1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN0YXRlbWVudCIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5IiwibWV0YVR5cGVOb2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJ0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwibWV0YVR5cGVUZXJtaW5hbE5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJjb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWQiLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyIsInZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyIsInN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5IiwidmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eSIsIlN0YXRlbWVudFZlcmlmaWVyIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsIm5vblRlcm1pbmFsTm9kZSIsImNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiY29tYmluYXRvclJ1bGVOYW1lIiwiQVJHVU1FTlRfUlVMRV9OQU1FIiwiYXJndW1lbnROb2RlIiwiY29tYmluYXRvckFyZ3VtZW50Tm9kZSIsImFyZ3VtZW50Tm9kZVZlcmlmaWVkIiwidmVyaWZ5QXJndW1lbnROb2RlIiwiTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUiLCJtZXRhQXJndW1lbnROb2RlIiwiY29tYmluYXRvck1ldGFhcmd1bWVudE5vZGUiLCJtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhYXJndW1lbnROb2RlIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjb21iaW5hdG9yQ2hpbGROb2RlcyIsIm5vZGVzQSIsIm5vZGVzQiIsIm5vZGVzVmVyaWZpZWQiLCJ2ZXJpZnlOb2RlcyIsInRlcm1Ob2RlIiwiYXJndW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJlcnJvciIsInR5cGVzIiwidGVybVZlcmlmaWVkIiwidmVyaWZ5VGVybSIsImZpcnN0VHlwZSIsImZpcnN0IiwidGVybVR5cGUiLCJ0eXBlTm9kZSIsInR5cGVOYW1lIiwidHlwZU5hbWVGcm9tVHlwZU5vZGUiLCJ0eXBlIiwiT0JKRUNUX1RZUEVfTkFNRSIsIm9iamVjdFR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJzdGF0ZW1lbnRUeXBlRXF1YWxUb09yU3ViVHlwZU9mVHlwZSIsImlzRXF1YWxUb09yU3ViVHlwZU9mIiwiY29tYmluYXRvck1ldGFUWXBlTm9kZSIsIm1ldGFBcmd1bWVudFN0cmluZyIsImNvbWJpbmF0b3JNZXRhYXJndW1lbnRTdHJpbmciLCJjb21iaW5hdG9yTWV0YVR5cGVUZXJtaW5hbE5vZGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsImNvbnRlbnRTdGF0ZW1lbnRNZXRhVHlwZSIsIlNUQVRFTUVOVF9NRVRBX1RZUEUiLCJWZXJpZmllciIsInN0YXRlbWVudFZlcmlmaWVyIiwiY29tYmluYXRvcnMiLCJnZXRDb21iaW5hdG9ycyIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJjb21iaW5hdG9yIiwiZmluZCIsInN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IiLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvciIsImNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsIm5vZGVWZXJpZmllZCIsInR5cGVBc3NlcnRpb25Ob2RlIiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5VHlwZUFzc2VydGlvbiIsImVxdWFsaXR5Q29tYmluYXRvciIsImVxdWFsaXR5IiwiRXF1YWxpdHkiLCJmcm9tU3RhdGVtZW50Tm9kZSIsImVxdWFsaXRpZXMiLCJnZXRFcXVhbGl0aWVzIiwiZXF1YWxpdHlWZXJpZmllZCIsInZlcmlmeSIsInZhcmlhYmxlcyIsImxlZnRUZXJtTm9kZSIsImdldExlZnRUZXJtTm9kZSIsInJpZ2h0VGVybU5vZGUiLCJnZXRSaWdodFRlcm1Ob2RlIiwibGVmdFRlcm1WZXJpZmllZEFzVmFyaWFibGUiLCJ2ZXJpZnlUZXJtQXNWYXJpYWJsZSIsInJpZ2h0VGVybVZlcmlmaWVkQXNWYXJpYWJsZSIsImZpcnN0VmFyaWFibGUiLCJzZWNvbmRWYXJpYWJsZSIsInNlY29uZCIsImxlZnRWYXJpYWJsZSIsInJpZ2h0VmFyaWFibGUiLCJsZWZ0VmFyaWFibGVOYW1lIiwiZ2V0TmFtZSIsImxlZnRWYXJpYWJsZVR5cGUiLCJnZXRUeXBlIiwicmlnaHRWYXJpYWJsZU5hbWUiLCJyaWdodFZhcmlhYmxlVHlwZSIsImxlZnRWYXJpYWJsZVR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZPZlN1cGVyVHlwZU9mUmlnaHRWYXJpYWJsZVR5cGUiLCJpc0VxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2YiLCJsZWZ0VmFyaWFibGVUeXBlTmFtZSIsInJpZ2h0VmFyaWFibGVUeXBlTmFtZSIsImxlZnRWYXJpYWJsZVR5cGVTdXBlclR5cGVPZlJpZ2h0VmFyaWFibGVUeXBlIiwiaXNTdXBlclR5cGVPZiIsInJpZ2h0VmFyaWFibGVUeXBlU3VwZXJUeXBlT2ZMZWZ0VmFyaWFibGVUeXBlIiwibmFtZSIsInZhcmlhYmxlIiwiVmFyaWFibGUiLCJmcm9tVHlwZUFuZE5hbWUiLCJhc3NpZ25tZW50IiwiQXNzaWdubWVudCIsImZyb21WYXJpYWJsZSIsInB1c2giLCJyaWdodFRlcm1UeXBlIiwibGVmdFZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mUmlnaHRUZXJtVHlwZSIsImlzRXF1YWxUb09yU3VwZXJUeXBlT2YiLCJyaWdodFRlcm1TdHJpbmciLCJyaWdodFRlcm1UeXBlTmFtZSIsImxlZnRUZXJtVHlwZSIsInJpZ2h0VmFyaWFibGVUeXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZSaWdodFRlcm1UeXBlIiwibGVmdFRlcm1TdHJpbmciLCJsZWZ0VGVybVR5cGVOYW1lIiwic2Vjb25kVHlwZSIsImxlZnRUZXJtVHlwZUVxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2YiLCJzdGF0ZW1lbnRTdHJpbmciLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEwQkE7OztlQUF3QkE7Ozs2REF4Qkg7NkRBQ0E7NkRBQ0E7K0RBQ0U7MERBQ0E7OERBQ1E7OERBQ0M7eURBQ0E7cUJBRUw7cUJBQ0c7eUJBQ0c7eUJBQ0c7cUJBRVk7eUJBQ1k7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVELElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxvQkFDMUJDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQyxvQkFDMUJFLG9CQUFvQkYsSUFBQUEsZ0JBQVMsRUFBQyw0QkFDOUJHLHFCQUFxQkgsSUFBQUEsZ0JBQVMsRUFBQyw2QkFDL0JJLHlCQUF5QkosSUFBQUEsZ0JBQVMsRUFBQyw4QkFDbkNLLDRCQUE0QkwsSUFBQUEsZ0JBQVMsRUFBQztBQUU3QixTQUFTRixnQkFBZ0JRLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLE9BQU8sRUFBRTtJQUNwRixJQUFJQyxvQkFBb0IsS0FBSztJQUU3QixJQUFJLENBQUNBLG1CQUFtQjtRQUN0QixJQUFNQyxzQ0FBc0NDLGtDQUFrQ04sZUFBZUc7UUFFN0ZDLG9CQUFvQkMscUNBQXNDLEdBQUc7SUFDL0QsQ0FBQztJQUVELElBQUksQ0FBQ0QsbUJBQW1CO1FBQ3RCLElBQU1HLG1DQUFtQ0MsK0JBQStCUixlQUFlQyxhQUFhQyxTQUFTQztRQUU3R0Msb0JBQW9CRyxrQ0FBa0MsR0FBRztJQUMzRCxDQUFDO0lBRUQsSUFBSSxDQUFDSCxtQkFBbUI7UUFDdEIsSUFBTUssOEJBQThCQywwQkFBMEJW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
385
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyXCI7XG5pbXBvcnQgVmFyaWFibGUgZnJvbSBcIi4uL3ZhcmlhYmxlXCI7XG5pbXBvcnQgRXF1YWxpdHkgZnJvbSBcIi4uL2VxdWFsaXR5XCI7XG5pbXBvcnQgQXNzaWdubWVudCBmcm9tIFwiLi4vYXNzaWdubWVudFwiO1xuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4uL3ZlcmlmeS90ZXJtXCI7XG5pbXBvcnQgZXF1YWxpdHlDb21iaW5hdG9yIGZyb20gXCIuLi9vY21iaW5hdG9yL2VxdWFsaXR5XCI7XG5pbXBvcnQgYnJhY2tldGVkQ29tYmluYXRvciBmcm9tIFwiLi4vb2NtYmluYXRvci9icmFja2V0ZWRcIjtcbmltcG9ydCB2ZXJpZnlUeXBlQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvYXNzZXJ0aW9uL3R5cGVcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuLi90eXBlXCI7XG5pbXBvcnQgeyBmaXJzdCwgc2Vjb25kIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgT0JKRUNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IFNUQVRFTUVOVF9NRVRBX1RZUEUgfSBmcm9tIFwiLi4vbWV0YVR5cGVzXCI7XG5pbXBvcnQgeyB2ZXJpZnlUZXJtQXNWYXJpYWJsZSB9IGZyb20gXCIuLi92ZXJpZnkvdGVybVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCB0eXBlTmFtZUZyb21UeXBlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IEFSR1VNRU5UX1JVTEVfTkFNRSwgTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQvdGVybSFcIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3R5cGUhXCIpLFxuICAgICAgbWV0YVR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YUFyZ3VtZW50L21ldGFUeXBlIVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhQXJndW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIHR5cGVBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L3R5cGVBc3NlcnRpb24hXCIpLFxuICAgICAgbWV0YVR5cGVUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhVHlwZS9AbWV0YS10eXBlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKCFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yczsgIC8vL1xuICB9XG5cbiAgaWYgKCFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0KTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkID0gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247IC8vL1xuICB9XG5cbiAgaWYgKCFzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHkoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQpO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHk7ICAvL1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkO1xufVxuXG5jbGFzcyBTdGF0ZW1lbnRWZXJpZmllciBleHRlbmRzIFZlcmlmaWVyIHtcbiAgdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIGNvbnRleHQpIHtcbiAgICBsZXQgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vblRlcm1pbmFsTm9kZUEsIC8vL1xuICAgICAgICAgIGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUgPSBub25UZXJtaW5hbE5vZGVCOyAvLy9cblxuICAgIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksIC8vL1xuICAgICAgY29tYmluYXRvclJ1bGVOYW1lID0gY29tYmluYXRvck5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICAgIGlmIChydWxlTmFtZSA9PT0gY29tYmluYXRvclJ1bGVOYW1lKSB7XG4gICAgICBzd2l0Y2ggKHJ1bGVOYW1lKSB7XG4gICAgICAgIGNhc2UgQVJHVU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICAgICAgY29uc3QgYXJndW1lbnROb2RlID0gbm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgICAgICBjb21iaW5hdG9yQXJndW1lbnROb2RlID0gY29tYmluYXRvck5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICAgICAgYXJndW1lbnROb2RlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeUFyZ3VtZW50Tm9kZShhcmd1bWVudE5vZGUsIGNvbWJpbmF0b3JBcmd1bWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBhcmd1bWVudE5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgTUVUQV9BUkdVTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgICAgICBjb25zdCBtZXRhQXJndW1lbnROb2RlID0gbm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgICAgICBjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSA9IGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgICAgIG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5TWV0YWFyZ3VtZW50Tm9kZShtZXRhQXJndW1lbnROb2RlLCBjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICBjb21iaW5hdG9yQ2hpbGROb2RlcyA9IGNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgIG5vZGVzQSA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICAgIG5vZGVzQiA9IGNvbWJpbmF0b3JDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICBub2Rlc1ZlcmlmaWVkID0gdGhpcy52ZXJpZnlOb2Rlcyhub2Rlc0EsIG5vZGVzQiwgY29udGV4dCk7XG5cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG5vZGVzVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlBcmd1bWVudE5vZGUoYXJndW1lbnROb2RlLCBjb21iaW5hdG9yQXJndW1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGFyZ3VtZW50Tm9kZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICAgIGlmICh0ZXJtTm9kZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgYXJndW1lbnRTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhhcmd1bWVudE5vZGUpO1xuXG4gICAgICBjb250ZXh0LmVycm9yKGBUaGUgJHthcmd1bWVudFN0cmluZ30gYXJndW1lbnQgc2hvdWxkIGJlIGEgdGVybSwgbm90IGEgdHlwZWAsIGFyZ3VtZW50Tm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHR5cGVzID0gW10sXG4gICAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0eXBlcywgY29udGV4dCk7XG5cbiAgICAgIGlmICh0ZXJtVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgZmlyc3RUeXBlID0gZmlyc3QodHlwZXMpLFxuICAgICAgICAgICAgICB0ZXJtVHlwZSA9IGZpcnN0VHlwZSwgLy8vXG4gICAgICAgICAgICAgIHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeShjb21iaW5hdG9yQXJndW1lbnROb2RlKSxcbiAgICAgICAgICAgICAgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgICAgICAgIHR5cGUgPSAodHlwZU5hbWUgPT09IE9CSkVDVF9UWVBFX05BTUUpID9cbiAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0VHlwZSA6ICAvLy9cbiAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSksXG4gICAgICAgICAgICAgIHN0YXRlbWVudFR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZUeXBlID0gdGVybVR5cGUuaXNFcXVhbFRvT3JTdWJUeXBlT2YodHlwZSk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZUeXBlKSB7XG4gICAgICAgICAgYXJndW1lbnROb2RlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFyZ3VtZW50Tm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5TWV0YWFyZ3VtZW50Tm9kZShtZXRhQXJndW1lbnROb2RlLCBjb21iaW5hdG9yTWV0YWFyZ3VtZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGxldCBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkobWV0YUFyZ3VtZW50Tm9kZSksXG4gICAgICAgICAgY29tYmluYXRvck1ldGFUWXBlTm9kZSA9IG1ldGFUeXBlTm9kZVF1ZXJ5KGNvbWJpbmF0b3JNZXRhYXJndW1lbnROb2RlKTtcblxuICAgIGlmIChzdGF0ZW1lbnROb2RlID09PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhQXJndW1lbnRTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhQXJndW1lbnROb2RlKTtcblxuICAgICAgY29udGV4dC5lcnJvcihgRXhwZWN0ZWQgYSBzdGF0ZW1lbnQgYnV0IGdvdCBhICcke21ldGFBcmd1bWVudFN0cmluZ30nIG1ldGEtdHlwZS5gLCBtZXRhQXJndW1lbnROb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNvbWJpbmF0b3JNZXRhVFlwZU5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY29tYmluYXRvck1ldGFhcmd1bWVudFN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKGNvbWJpbmF0b3JNZXRhYXJndW1lbnROb2RlKTtcblxuICAgICAgICBjb250ZXh0LmVycm9yKGBFeHBlY3RlZCBhIG1ldGEtdHlwZSBidXQgZ290IGEgJyR7Y29tYmluYXRvck1ldGFhcmd1bWVudFN0cmluZ30nIHN0YXRlbWVudC5gLCBtZXRhQXJndW1lbnROb2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmF0b3JNZXRhVHlwZVRlcm1pbmFsTm9kZSA9IG1ldGFUeXBlVGVybWluYWxOb2RlUXVlcnkoY29tYmluYXRvck1ldGFUWXBlTm9kZSksXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSBjb21iaW5hdG9yTWV0YVR5cGVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgICBjb250ZW50U3RhdGVtZW50TWV0YVR5cGUgPSAoY29udGVudCA9PT0gU1RBVEVNRU5UX01FVEFfVFlQRSk7XG5cbiAgICAgICAgaWYgKCFjb250ZW50U3RhdGVtZW50TWV0YVR5cGUpIHtcbiAgICAgICAgICBjb250ZXh0LmVycm9yKGBFeHBlY3RlZCB0aGUgbWV0YS10eXBlIHRvIGJlICdTdGF0ZW1lbnQnIGJ1dCBnb3QgJyR7Y29udGVudH0nLmAsIG1ldGFBcmd1bWVudE5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YUFyZ3VtZW50Tm9kZVZlcmlmaWVkO1xuICB9XG59XG5cbmNvbnN0IHN0YXRlbWVudFZlcmlmaWVyID0gbmV3IFN0YXRlbWVudFZlcmlmaWVyKCk7XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyhzdGF0ZW1lbnROb2RlLCBjb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyA9IGZhbHNlO1xuXG4gIGxldCBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTtcblxuICBjb21iaW5hdG9ycyA9IFsgLy8vXG4gICAgYnJhY2tldGVkQ29tYmluYXRvcixcbiAgICAuLi5jb21iaW5hdG9yc1xuICBdO1xuXG4gIGNvbnN0IGNvbWJpbmF0b3IgPSBjb21iaW5hdG9ycy5maW5kKChjb21iaW5hdG9yKSA9PiB7XG4gICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGNvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICBpZiAoY29tYmluYXRvciAhPT0gbnVsbCkge1xuICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycztcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgY29udGV4dCkge1xuICBjb25zdCBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICBub25UZXJtaW5hbE5vZGVBID0gc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gY29tYmluYXRvclN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBub2RlVmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgY29udGV4dCksXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IgPSBub2RlVmVyaWZpZWQ7ICAvLy9cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBjb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHR5cGVBc3NlcnRpb25Ob2RlID0gdHlwZUFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAodHlwZUFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgY29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHkoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbWJpbmF0b3IgPSBlcXVhbGl0eUNvbWJpbmF0b3IsICAvLy9cbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGNvbnRleHQpO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yKSB7XG4gICAgY29uc3QgZXF1YWxpdHkgPSBFcXVhbGl0eS5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChkZXJpdmVkKSB7XG4gICAgICBjb25zdCBlcXVhbGl0aWVzID0gY29udGV4dC5nZXRFcXVhbGl0aWVzKCksXG4gICAgICAgICAgICBlcXVhbGl0eVZlcmlmaWVkID0gZXF1YWxpdHkudmVyaWZ5KGVxdWFsaXRpZXMsIGNvbnRleHQpO1xuXG4gICAgICBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkgPSBlcXVhbGl0eVZlcmlmaWVkOyAgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICAgICAgbGVmdFRlcm1Ob2RlID0gZXF1YWxpdHkuZ2V0TGVmdFRlcm1Ob2RlKCksXG4gICAgICAgICAgICByaWdodFRlcm1Ob2RlID0gZXF1YWxpdHkuZ2V0UmlnaHRUZXJtTm9kZSgpLFxuICAgICAgICAgICAgbGVmdFRlcm1WZXJpZmllZEFzVmFyaWFibGUgPSB2ZXJpZnlUZXJtQXNWYXJpYWJsZShsZWZ0VGVybU5vZGUsIHZhcmlhYmxlcywgY29udGV4dCksXG4gICAgICAgICAgICByaWdodFRlcm1WZXJpZmllZEFzVmFyaWFibGUgPSB2ZXJpZnlUZXJtQXNWYXJpYWJsZShyaWdodFRlcm1Ob2RlLCB2YXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgICBpZiAobGVmdFRlcm1WZXJpZmllZEFzVmFyaWFibGUgJiYgcmlnaHRUZXJtVmVyaWZpZWRBc1ZhcmlhYmxlKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0VmFyaWFibGUgPSBmaXJzdCh2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICBzZWNvbmRWYXJpYWJsZSA9IHNlY29uZCh2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICBsZWZ0VmFyaWFibGUgPSBmaXJzdFZhcmlhYmxlLCAvLy9cbiAgICAgICAgICAgICAgcmlnaHRWYXJpYWJsZSA9IHNlY29uZFZhcmlhYmxlLCAvLy9cbiAgICAgICAgICAgICAgbGVmdFZhcmlhYmxlTmFtZSA9IGxlZnRWYXJpYWJsZS5nZXROYW1lKCksXG4gICAgICAgICAgICAgIGxlZnRWYXJpYWJsZVR5cGUgPSBsZWZ0VmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICByaWdodFZhcmlhYmxlTmFtZSA9IHJpZ2h0VmFyaWFibGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICByaWdodFZhcmlhYmxlVHlwZSA9IHJpZ2h0VmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICBsZWZ0VmFyaWFibGVUeXBlRXF1YWxUb09yU3ViVHlwZU9mT2ZTdXBlclR5cGVPZlJpZ2h0VmFyaWFibGVUeXBlID0gbGVmdFZhcmlhYmxlVHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2YocmlnaHRWYXJpYWJsZVR5cGUpO1xuXG4gICAgICAgIGlmICghbGVmdFZhcmlhYmxlVHlwZUVxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2ZSaWdodFZhcmlhYmxlVHlwZSkge1xuICAgICAgICAgIGNvbnN0IGxlZnRWYXJpYWJsZVR5cGVOYW1lID0gbGVmdFZhcmlhYmxlVHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgICAgICAgcmlnaHRWYXJpYWJsZVR5cGVOYW1lID0gcmlnaHRWYXJpYWJsZVR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICAgICAgY29udGV4dC5lcnJvcihgVGhlIGxlZnQgJyR7bGVmdFZhcmlhYmxlTmFtZX0nIHZhcmlhYmxlJ3MgJyR7bGVmdFZhcmlhYmxlVHlwZU5hbWV9JyB0eXBlIGlzIG5vdCBlcXVhbCB0bywgYSBzdWItdHlwZSBvZiBvciBhIHN1cGVyLXR5cGUgb2YgdGhlIHJpZ2h0ICcke3JpZ2h0VmFyaWFibGVOYW1lfScgdmFyaWFibGUncyAnJHtyaWdodFZhcmlhYmxlVHlwZU5hbWV9JyB0eXBlLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGxlZnRWYXJpYWJsZVR5cGVTdXBlclR5cGVPZlJpZ2h0VmFyaWFibGVUeXBlID0gbGVmdFZhcmlhYmxlVHlwZS5pc1N1cGVyVHlwZU9mKHJpZ2h0VmFyaWFibGVUeXBlKSxcbiAgICAgICAgICAgICAgICByaWdodFZhcmlhYmxlVHlwZVN1cGVyVHlwZU9mTGVmdFZhcmlhYmxlVHlwZSA9IHJpZ2h0VmFyaWFibGVUeXBlLmlzU3VwZXJUeXBlT2YobGVmdFZhcmlhYmxlVHlwZSk7XG5cbiAgICAgICAgICBpZiAobGVmdFZhcmlhYmxlVHlwZVN1cGVyVHlwZU9mUmlnaHRWYXJpYWJsZVR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBsZWZ0VmFyaWFibGVOYW1lLCAvLy9cbiAgICAgICAgICAgICAgICAgIHR5cGUgPSByaWdodFZhcmlhYmxlVHlwZSwgIC8vL1xuICAgICAgICAgICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tTmFtZUFuZFR5cGUobmFtZSwgdHlwZSksXG4gICAgICAgICAgICAgICAgICBhc3NpZ25tZW50ID0gQXNzaWdubWVudC5mcm9tVmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgICAgICAgICBhc3NpZ25tZW50cy5wdXNoKGFzc2lnbm1lbnQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyaWdodFZhcmlhYmxlVHlwZVN1cGVyVHlwZU9mTGVmdFZhcmlhYmxlVHlwZSkge1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IHJpZ2h0VmFyaWFibGVOYW1lLCAvLy9cbiAgICAgICAgICAgICAgICAgIHR5cGUgPSBsZWZ0VmFyaWFibGVUeXBlLCAgLy8vXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKSxcbiAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnQgPSBBc3NpZ25tZW50LmZyb21WYXJpYWJsZSh2YXJpYWJsZSk7XG5cbiAgICAgICAgICAgIGFzc2lnbm1lbnRzLnB1c2goYXNzaWdubWVudCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChsZWZ0VGVybVZlcmlmaWVkQXNWYXJpYWJsZSkge1xuICAgICAgICBjb25zdCB0eXBlcyA9IFtdO1xuXG4gICAgICAgIHZlcmlmeVRlcm0ocmlnaHRUZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnN0IGZpcnN0VHlwZSA9IGZpcnN0KHR5cGVzKSxcbiAgICAgICAgICAgICAgZmlyc3RWYXJpYWJsZSA9IGZpcnN0KHZhcmlhYmxlcyksXG4gICAgICAgICAgICAgIGxlZnRWYXJpYWJsZSA9IGZpcnN0VmFyaWFibGUsIC8vL1xuICAgICAgICAgICAgICByaWdodFRlcm1UeXBlID0gZmlyc3RUeXBlLCAgLy8vXG4gICAgICAgICAgICAgIGxlZnRWYXJpYWJsZU5hbWUgPSBsZWZ0VmFyaWFibGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICBsZWZ0VmFyaWFibGVUeXBlID0gbGVmdFZhcmlhYmxlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgbGVmdFZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mUmlnaHRUZXJtVHlwZSA9IGxlZnRWYXJpYWJsZVR5cGUuaXNFcXVhbFRvT3JTdXBlclR5cGVPZihyaWdodFRlcm1UeXBlKTtcblxuICAgICAgICBpZiAoIWxlZnRWYXJpYWJsZVR5cGVFcXVhbFRvT3JTdXBlclR5cGVPZlJpZ2h0VGVybVR5cGUpIHtcbiAgICAgICAgICBjb25zdCByaWdodFRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhyaWdodFRlcm1Ob2RlKSxcbiAgICAgICAgICAgICAgICByaWdodFRlcm1UeXBlTmFtZSA9IHJpZ2h0VGVybVR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgIGxlZnRWYXJpYWJsZVR5cGVOYW1lID0gbGVmdFZhcmlhYmxlVHlwZS5nZXROYW1lKCk7XG5cbiAgICAgICAgICBjb250ZXh0LmVycm9yKGBUaGUgbGVmdCAnJHtsZWZ0VmFyaWFibGVOYW1lfScgdmFyaWFibGUncyAnJHtsZWZ0VmFyaWFibGVUeXBlTmFtZX0nIHR5cGUgaXMgbm90IGVxdWFsIHRvIG9yIGEgc3VwZXItdHlwZSBvZiB0aGUgcmlnaHQgJyR7cmlnaHRUZXJtU3RyaW5nfScgdGVybSdzICcke3JpZ2h0VGVybVR5cGVOYW1lfScgdHlwZS5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBuYW1lID0gbGVmdFZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgICAgICAgIHR5cGUgPSByaWdodFRlcm1UeXBlLCAvLy9cbiAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKSxcbiAgICAgICAgICAgICAgICBhc3NpZ25tZW50ID0gQXNzaWdubWVudC5mcm9tVmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcblxuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocmlnaHRUZXJtVmVyaWZpZWRBc1ZhcmlhYmxlKSB7XG4gICAgICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICAgICAgdmVyaWZ5VGVybShsZWZ0VGVybU5vZGUsIHR5cGVzLCBjb250ZXh0KTtcblxuICAgICAgICBjb25zdCBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgICAgIGZpcnN0VmFyaWFibGUgPSBmaXJzdCh2YXJpYWJsZXMpLFxuICAgICAgICAgICAgICBsZWZ0VGVybVR5cGUgPSBmaXJzdFR5cGUsICAvLy9cbiAgICAgICAgICAgICAgcmlnaHRWYXJpYWJsZSA9IGZpcnN0VmFyaWFibGUsIC8vL1xuICAgICAgICAgICAgICByaWdodFZhcmlhYmxlTmFtZSA9IHJpZ2h0VmFyaWFibGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICByaWdodFZhcmlhYmxlVHlwZSA9IHJpZ2h0VmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICByaWdodFZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mUmlnaHRUZXJtVHlwZSA9IHJpZ2h0VmFyaWFibGVUeXBlLmlzRXF1YWxUb09yU3VwZXJUeXBlT2YobGVmdFRlcm1UeXBlKTtcblxuICAgICAgICBpZiAoIXJpZ2h0VmFyaWFibGVUeXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZSaWdodFRlcm1UeXBlKSB7XG4gICAgICAgICAgY29uc3QgbGVmdFRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhsZWZ0VGVybU5vZGUpLFxuICAgICAgICAgICAgICAgIGxlZnRUZXJtVHlwZU5hbWUgPSBsZWZ0VGVybVR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgIHJpZ2h0VmFyaWFibGVUeXBlTmFtZSA9IHJpZ2h0VmFyaWFibGVUeXBlLmdldE5hbWUoKTtcblxuICAgICAgICAgIGNvbnRleHQuZXJyb3IoYFRoZSByaWdodCAnJHtyaWdodFZhcmlhYmxlTmFtZX0nIHZhcmlhYmxlJ3MgJyR7cmlnaHRWYXJpYWJsZVR5cGVOYW1lfScgdHlwZSBpcyBub3QgZXF1YWwgdG8gb3IgYSBzdXBlci10eXBlIG9mIHRoZSBsZWZ0ICcke2xlZnRUZXJtU3RyaW5nfScgdGVybSdzICcke2xlZnRUZXJtVHlwZU5hbWV9JyB0eXBlLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IG5hbWUgPSByaWdodFZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgICAgICAgIHR5cGUgPSBsZWZ0VGVybVR5cGUsIC8vL1xuICAgICAgICAgICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbU5hbWVBbmRUeXBlKG5hbWUsIHR5cGUpLFxuICAgICAgICAgICAgICAgIGFzc2lnbm1lbnQgPSBBc3NpZ25tZW50LmZyb21WYXJpYWJsZSh2YXJpYWJsZSk7XG5cbiAgICAgICAgICBhc3NpZ25tZW50cy5wdXNoKGFzc2lnbm1lbnQpO1xuXG4gICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdHlwZXMgPSBbXTtcblxuICAgICAgICB2ZXJpZnlUZXJtKGxlZnRUZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIHZlcmlmeVRlcm0ocmlnaHRUZXJtTm9kZSwgdHlwZXMsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnN0IGZpcnN0VHlwZSA9IGZpcnN0KHR5cGVzKSxcbiAgICAgICAgICAgICAgc2Vjb25kVHlwZSA9IHNlY29uZCh0eXBlcyksXG4gICAgICAgICAgICAgIGxlZnRUZXJtVHlwZSA9IGZpcnN0VHlwZSwgLy8vXG4gICAgICAgICAgICAgIHJpZ2h0VGVybVR5cGUgPSBzZWNvbmRUeXBlLCAvLy9cbiAgICAgICAgICAgICAgbGVmdFRlcm1UeXBlRXF1YWxUb09yU3ViVHlwZU9mT2ZTdXBlclR5cGVPZiA9IGxlZnRUZXJtVHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2YocmlnaHRUZXJtVHlwZSk7XG5cbiAgICAgICAgaWYgKCFsZWZ0VGVybVR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZPZlN1cGVyVHlwZU9mKSB7XG4gICAgICAgICAgY29uc3QgbGVmdFRlcm1TdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhsZWZ0VGVybU5vZGUpLFxuICAgICAgICAgICAgICAgIHJpZ2h0VGVybVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKHJpZ2h0VGVybU5vZGUpLFxuICAgICAgICAgICAgICAgIGxlZnRUZXJtVHlwZU5hbWUgPSBsZWZ0VGVybVR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgICAgIHJpZ2h0VGVybVR5cGVOYW1lID0gcmlnaHRUZXJtVHlwZS5nZXROYW1lKCk7XG5cbiAgICAgICAgICBjb250ZXh0LmVycm9yKGBUaGUgbGVmdCAnJHtsZWZ0VGVybVN0cmluZ30nIHRlcm0ncyAnJHtsZWZ0VGVybVR5cGVOYW1lfScgdHlwZSBpcyBub3QgZXF1YWwgdG8sIGEgc3ViLXR5cGUgb2Ygb3IgYSBzdXBlci10eXBlIG9mIHRoZSByaWdodCAnJHtyaWdodFRlcm1TdHJpbmd9JyB0ZXJtJ3MgJyR7cmlnaHRUZXJtVHlwZU5hbWV9JyB0eXBlLmAsIHN0YXRlbWVudE5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5O1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN0YXRlbWVudCIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5IiwibWV0YVR5cGVOb2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJ0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwibWV0YVR5cGVUZXJtaW5hbE5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJjb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWQiLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyIsInZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9ycyIsInN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5IiwidmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eSIsIlN0YXRlbWVudFZlcmlmaWVyIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsIm5vblRlcm1pbmFsTm9kZSIsImNvbWJpbmF0b3JOb25UZXJtaW5hbE5vZGUiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiY29tYmluYXRvclJ1bGVOYW1lIiwiQVJHVU1FTlRfUlVMRV9OQU1FIiwiYXJndW1lbnROb2RlIiwiY29tYmluYXRvckFyZ3VtZW50Tm9kZSIsImFyZ3VtZW50Tm9kZVZlcmlmaWVkIiwidmVyaWZ5QXJndW1lbnROb2RlIiwiTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUiLCJtZXRhQXJndW1lbnROb2RlIiwiY29tYmluYXRvck1ldGFhcmd1bWVudE5vZGUiLCJtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhYXJndW1lbnROb2RlIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjb21iaW5hdG9yQ2hpbGROb2RlcyIsIm5vZGVzQSIsIm5vZGVzQiIsIm5vZGVzVmVyaWZpZWQiLCJ2ZXJpZnlOb2RlcyIsInRlcm1Ob2RlIiwiYXJndW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJlcnJvciIsInR5cGVzIiwidGVybVZlcmlmaWVkIiwidmVyaWZ5VGVybSIsImZpcnN0VHlwZSIsImZpcnN0IiwidGVybVR5cGUiLCJ0eXBlTm9kZSIsInR5cGVOYW1lIiwidHlwZU5hbWVGcm9tVHlwZU5vZGUiLCJ0eXBlIiwiT0JKRUNUX1RZUEVfTkFNRSIsIm9iamVjdFR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJzdGF0ZW1lbnRUeXBlRXF1YWxUb09yU3ViVHlwZU9mVHlwZSIsImlzRXF1YWxUb09yU3ViVHlwZU9mIiwiY29tYmluYXRvck1ldGFUWXBlTm9kZSIsIm1ldGFBcmd1bWVudFN0cmluZyIsImNvbWJpbmF0b3JNZXRhYXJndW1lbnRTdHJpbmciLCJjb21iaW5hdG9yTWV0YVR5cGVUZXJtaW5hbE5vZGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsImNvbnRlbnRTdGF0ZW1lbnRNZXRhVHlwZSIsIlNUQVRFTUVOVF9NRVRBX1RZUEUiLCJWZXJpZmllciIsInN0YXRlbWVudFZlcmlmaWVyIiwiY29tYmluYXRvcnMiLCJnZXRDb21iaW5hdG9ycyIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJjb21iaW5hdG9yIiwiZmluZCIsInN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IiLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvciIsImNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsIm5vZGVWZXJpZmllZCIsInR5cGVBc3NlcnRpb25Ob2RlIiwidHlwZUFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5VHlwZUFzc2VydGlvbiIsImVxdWFsaXR5Q29tYmluYXRvciIsImVxdWFsaXR5IiwiRXF1YWxpdHkiLCJmcm9tU3RhdGVtZW50Tm9kZSIsImVxdWFsaXRpZXMiLCJnZXRFcXVhbGl0aWVzIiwiZXF1YWxpdHlWZXJpZmllZCIsInZlcmlmeSIsInZhcmlhYmxlcyIsImxlZnRUZXJtTm9kZSIsImdldExlZnRUZXJtTm9kZSIsInJpZ2h0VGVybU5vZGUiLCJnZXRSaWdodFRlcm1Ob2RlIiwibGVmdFRlcm1WZXJpZmllZEFzVmFyaWFibGUiLCJ2ZXJpZnlUZXJtQXNWYXJpYWJsZSIsInJpZ2h0VGVybVZlcmlmaWVkQXNWYXJpYWJsZSIsImZpcnN0VmFyaWFibGUiLCJzZWNvbmRWYXJpYWJsZSIsInNlY29uZCIsImxlZnRWYXJpYWJsZSIsInJpZ2h0VmFyaWFibGUiLCJsZWZ0VmFyaWFibGVOYW1lIiwiZ2V0TmFtZSIsImxlZnRWYXJpYWJsZVR5cGUiLCJnZXRUeXBlIiwicmlnaHRWYXJpYWJsZU5hbWUiLCJyaWdodFZhcmlhYmxlVHlwZSIsImxlZnRWYXJpYWJsZVR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZPZlN1cGVyVHlwZU9mUmlnaHRWYXJpYWJsZVR5cGUiLCJpc0VxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2YiLCJsZWZ0VmFyaWFibGVUeXBlTmFtZSIsInJpZ2h0VmFyaWFibGVUeXBlTmFtZSIsImxlZnRWYXJpYWJsZVR5cGVTdXBlclR5cGVPZlJpZ2h0VmFyaWFibGVUeXBlIiwiaXNTdXBlclR5cGVPZiIsInJpZ2h0VmFyaWFibGVUeXBlU3VwZXJUeXBlT2ZMZWZ0VmFyaWFibGVUeXBlIiwibmFtZSIsInZhcmlhYmxlIiwiVmFyaWFibGUiLCJmcm9tTmFtZUFuZFR5cGUiLCJhc3NpZ25tZW50IiwiQXNzaWdubWVudCIsImZyb21WYXJpYWJsZSIsInB1c2giLCJyaWdodFRlcm1UeXBlIiwibGVmdFZhcmlhYmxlVHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mUmlnaHRUZXJtVHlwZSIsImlzRXF1YWxUb09yU3VwZXJUeXBlT2YiLCJyaWdodFRlcm1TdHJpbmciLCJyaWdodFRlcm1UeXBlTmFtZSIsImxlZnRUZXJtVHlwZSIsInJpZ2h0VmFyaWFibGVUeXBlRXF1YWxUb09yU3VwZXJUeXBlT2ZSaWdodFRlcm1UeXBlIiwibGVmdFRlcm1TdHJpbmciLCJsZWZ0VGVybVR5cGVOYW1lIiwic2Vjb25kVHlwZSIsImxlZnRUZXJtVHlwZUVxdWFsVG9PclN1YlR5cGVPZk9mU3VwZXJUeXBlT2YiLCJzdGF0ZW1lbnRTdHJpbmciLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEwQkE7OztlQUF3QkE7Ozs2REF4Qkg7NkRBQ0E7NkRBQ0E7K0RBQ0U7MERBQ0E7OERBQ1E7OERBQ0M7eURBQ0E7cUJBRUw7cUJBQ0c7eUJBQ0c7eUJBQ0c7cUJBRVk7eUJBQ1k7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVELElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxvQkFDMUJDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQyxvQkFDMUJFLG9CQUFvQkYsSUFBQUEsZ0JBQVMsRUFBQyw0QkFDOUJHLHFCQUFxQkgsSUFBQUEsZ0JBQVMsRUFBQyw2QkFDL0JJLHlCQUF5QkosSUFBQUEsZ0JBQVMsRUFBQyw4QkFDbkNLLDRCQUE0QkwsSUFBQUEsZ0JBQVMsRUFBQztBQUU3QixTQUFTRixnQkFBZ0JRLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLE9BQU8sRUFBRTtJQUNwRixJQUFJQyxvQkFBb0IsS0FBSztJQUU3QixJQUFJLENBQUNBLG1CQUFtQjtRQUN0QixJQUFNQyxzQ0FBc0NDLGtDQUFrQ04sZUFBZUc7UUFFN0ZDLG9CQUFvQkMscUNBQXNDLEdBQUc7SUFDL0QsQ0FBQztJQUVELElBQUksQ0FBQ0QsbUJBQW1CO1FBQ3RCLElBQU1HLG1DQUFtQ0MsK0JBQStCUixlQUFlQyxhQUFhQyxTQUFTQztRQUU3R0Msb0JBQW9CRyxrQ0FBa0MsR0FBRztJQUMzRCxDQUFDO0lBRUQsSUFBSSxDQUFDSCxtQkFBbUI7UUFDdEIsSUFBTUssOEJBQThCQywwQkFBMEJW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