highmark-markdown 0.0.383 → 0.0.388

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 (70) hide show
  1. package/example.js +2972 -865
  2. package/lib/defaultMarkdownStyle.js +2 -2
  3. package/lib/elementMap.js +4 -4
  4. package/lib/example/constants.js +6 -2
  5. package/lib/example/view.js +5 -4
  6. package/lib/markdown/bnf.js +2 -2
  7. package/lib/mixins/node.js +6 -1
  8. package/lib/node/markdown/contentsItem.js +8 -30
  9. package/lib/node/markdown/contentsLink.js +9 -30
  10. package/lib/node/markdown/contentsList.js +8 -33
  11. package/lib/node/markdown/directive/embee.js +8 -8
  12. package/lib/node/markdown/division.js +90 -103
  13. package/lib/node/markdown/{footnoteItem.js → footnotesItem.js} +12 -12
  14. package/lib/node/markdown/footnotesList.js +9 -47
  15. package/lib/node/markdown/subDivision.js +2 -3
  16. package/lib/node/markdown.js +25 -1
  17. package/lib/nodeMap.js +6 -3
  18. package/lib/replacement/contentsItem.js +145 -0
  19. package/lib/replacement/contentsLink.js +157 -0
  20. package/lib/replacement/contentsList.js +212 -0
  21. package/lib/replacement/footnote.js +122 -0
  22. package/lib/replacement/footnotesItem.js +140 -0
  23. package/lib/replacement/footnotesList.js +189 -0
  24. package/lib/replacement/imported.js +151 -0
  25. package/lib/replacement/line.js +127 -0
  26. package/lib/replacement/subDivision/contentsDirective.js +126 -0
  27. package/lib/replacement/subDivision/footnote.js +126 -0
  28. package/lib/replacement/subDivision/footnotesDirective.js +126 -0
  29. package/lib/replacement/subDivision/pageNumberDirective.js +126 -0
  30. package/lib/replacement/subDivision.js +175 -0
  31. package/lib/replacement.js +139 -46
  32. package/lib/ruleNames.js +6 -6
  33. package/lib/utilities/markdown.js +8 -8
  34. package/lib/utilities/node.js +1 -72
  35. package/lib/utilities/replacement.js +104 -0
  36. package/package.json +1 -1
  37. package/src/defaultMarkdownStyle.js +20 -1
  38. package/src/elementMap.js +5 -5
  39. package/src/example/constants.js +2 -1
  40. package/src/example/view.js +13 -12
  41. package/src/markdown/bnf.js +23 -9
  42. package/src/mixins/node.js +10 -0
  43. package/src/node/markdown/contentsItem.js +7 -38
  44. package/src/node/markdown/contentsLink.js +8 -41
  45. package/src/node/markdown/contentsList.js +7 -39
  46. package/src/node/markdown/directive/embee.js +9 -9
  47. package/src/node/markdown/division.js +90 -158
  48. package/src/node/markdown/{footnoteItem.js → footnotesItem.js} +5 -5
  49. package/src/node/markdown/footnotesList.js +10 -78
  50. package/src/node/markdown/subDivision.js +1 -5
  51. package/src/node/markdown.js +28 -0
  52. package/src/nodeMap.js +12 -3
  53. package/src/replacement/contentsItem.js +49 -0
  54. package/src/replacement/contentsLink.js +29 -0
  55. package/src/replacement/contentsList.js +111 -0
  56. package/src/replacement/footnote.js +16 -0
  57. package/src/replacement/footnotesItem.js +38 -0
  58. package/src/replacement/footnotesList.js +73 -0
  59. package/src/replacement/imported.js +13 -0
  60. package/src/replacement/line.js +14 -0
  61. package/src/replacement/subDivision/contentsDirective.js +20 -0
  62. package/src/replacement/subDivision/footnote.js +20 -0
  63. package/src/replacement/subDivision/footnotesDirective.js +20 -0
  64. package/src/replacement/subDivision/pageNumberDirective.js +20 -0
  65. package/src/replacement/subDivision.js +42 -0
  66. package/src/replacement.js +108 -53
  67. package/src/ruleNames.js +2 -2
  68. package/src/utilities/markdown.js +9 -9
  69. package/src/utilities/node.js +0 -48
  70. package/src/utilities/replacement.js +66 -0
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _markdown = /*#__PURE__*/ _interop_require_default(require("../../node/markdown"));
12
- var _contentsItem = /*#__PURE__*/ _interop_require_default(require("../../node/markdown/contentsItem"));
13
- var _contents = require("../../utilities/contents");
14
12
  var _ruleNames = require("../../ruleNames");
15
13
  function _assert_this_initialized(self) {
16
14
  if (self === void 0) {
@@ -109,42 +107,19 @@ var ContentsListMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
109
107
  _class_call_check(this, ContentsListMarkdownNode);
110
108
  return _super.apply(this, arguments);
111
109
  }
112
- _create_class(ContentsListMarkdownNode, [
110
+ _create_class(ContentsListMarkdownNode, null, [
113
111
  {
114
- key: "getTokens",
115
- value: function getTokens() {
116
- var tokens = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
117
- var childNodes = this.getChildNodes(), contentsItemMarkdownNodes = childNodes; ///
118
- contentsItemMarkdownNodes.forEach(function(contentsItemMarkdownNode) {
119
- contentsItemMarkdownNode.getTokens(tokens);
120
- });
121
- return tokens;
122
- }
123
- }
124
- ], [
125
- {
126
- key: "fromHeadingMarkdownNodes",
127
- value: function fromHeadingMarkdownNodes(headingMarkdownNodes, context) {
128
- var nodes = headingMarkdownNodes, nestedNode = (0, _contents.nestNodes)(nodes), childNestedNodes = nestedNode.getChildNestedNodes(), nestedHeadingMarkdownNodes = childNestedNodes, ruleName = _ruleNames.CONTENTS_LIST_RULE_NAME, childNodes = childNodesFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context), opacity = null, contentsListMarkdownNode = _markdown.default.fromRuleNameChildNodesAndOpacity(ContentsListMarkdownNode, ruleName, childNodes, opacity);
129
- return contentsListMarkdownNode;
130
- }
131
- },
132
- {
133
- key: "fromNestedHeadingMarkdownNodes",
134
- value: function fromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context) {
135
- var ruleName = _ruleNames.CONTENTS_LIST_RULE_NAME, childNodes = childNodesFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context), opacity = null, contentsListMarkdownNode = _markdown.default.fromRuleNameChildNodesAndOpacity(ContentsListMarkdownNode, ruleName, childNodes, opacity);
112
+ key: "fromContentsItemReplacements",
113
+ value: function fromContentsItemReplacements(contentsItemReplacements) {
114
+ var ruleName = _ruleNames.CONTENTS_LIST_RULE_NAME, childNodes = contentsItemReplacements.map(function(contentsItemReplacement) {
115
+ var contentsItemReplacementNode = contentsItemReplacement.getNode(), childNode = contentsItemReplacementNode; ///
116
+ return childNode;
117
+ }), opacity = null, contentsListMarkdownNode = _markdown.default.fromRuleNameChildNodesAndOpacity(ContentsListMarkdownNode, ruleName, childNodes, opacity);
136
118
  return contentsListMarkdownNode;
137
119
  }
138
120
  }
139
121
  ]);
140
122
  return ContentsListMarkdownNode;
141
123
  }(_markdown.default);
142
- function childNodesFromNestedHeadingMarkdownNodes(nestedHeadingMarkdownNodes, context) {
143
- var childNodes = nestedHeadingMarkdownNodes.map(function(nestedHeadingMarkdownNode) {
144
- var contentsItemMarkdownNode = _contentsItem.default.fromContentsListMarkdownNodeAndNestedHeadingMarkdownNode(ContentsListMarkdownNode, nestedHeadingMarkdownNode, context), childNode = contentsItemMarkdownNode; ///
145
- return childNode;
146
- });
147
- return childNodes;
148
- }
149
124
 
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2NvbnRlbnRzTGlzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuaW1wb3J0IENvbnRlbnRzSXRlbU1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93bi9jb250ZW50c0l0ZW1cIjtcblxuaW1wb3J0IHsgbmVzdE5vZGVzIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9jb250ZW50c1wiO1xuaW1wb3J0IHsgQ09OVEVOVFNfTElTVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vLi4vcnVsZU5hbWVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRlbnRzTGlzdE1hcmtkb3duTm9kZSBleHRlbmRzIE1hcmtkb3duTm9kZSB7XG4gIGdldFRva2Vucyh0b2tlbnMgPSBbXSkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSB0aGlzLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjb250ZW50c0l0ZW1NYXJrZG93bk5vZGVzID0gY2hpbGROb2RlczsgIC8vL1xuXG4gICAgY29udGVudHNJdGVtTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChjb250ZW50c0l0ZW1NYXJrZG93bk5vZGUpID0+IHtcbiAgICAgIGNvbnRlbnRzSXRlbU1hcmtkb3duTm9kZS5nZXRUb2tlbnModG9rZW5zKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0b2tlbnM7XG4gIH1cblxuICBzdGF0aWMgZnJvbUhlYWRpbmdNYXJrZG93bk5vZGVzKGhlYWRpbmdNYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZXMgPSBoZWFkaW5nTWFya2Rvd25Ob2RlcywgLy8vXG4gICAgICAgICAgbmVzdGVkTm9kZSA9IG5lc3ROb2Rlcyhub2RlcyksXG4gICAgICAgICAgY2hpbGROZXN0ZWROb2RlcyA9IG5lc3RlZE5vZGUuZ2V0Q2hpbGROZXN0ZWROb2RlcygpLFxuICAgICAgICAgIG5lc3RlZEhlYWRpbmdNYXJrZG93bk5vZGVzID0gY2hpbGROZXN0ZWROb2RlcywgIC8vL1xuICAgICAgICAgIHJ1bGVOYW1lID0gQ09OVEVOVFNfTElTVF9SVUxFX05BTUUsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IGNoaWxkTm9kZXNGcm9tTmVzdGVkSGVhZGluZ01hcmtkb3duTm9kZXMobmVzdGVkSGVhZGluZ01hcmtkb3duTm9kZXMsIGNvbnRleHQpLFxuICAgICAgICAgIG9wYWNpdHkgPSBudWxsLFxuICAgICAgICAgIGNvbnRlbnRzTGlzdE1hcmtkb3duTm9kZSA9IE1hcmtkb3duTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShDb250ZW50c0xpc3RNYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KTtcblxuICAgIHJldHVybiBjb250ZW50c0xpc3RNYXJrZG93bk5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5lc3RlZEhlYWRpbmdNYXJrZG93bk5vZGVzKG5lc3RlZEhlYWRpbmdNYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBDT05URU5UU19MSVNUX1JVTEVfTkFNRSxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gY2hpbGROb2Rlc0Zyb21OZXN0ZWRIZWFkaW5nTWFya2Rvd25Ob2RlcyhuZXN0ZWRIZWFkaW5nTWFya2Rvd25Ob2RlcywgY29udGV4dCksXG4gICAgICAgICAgb3BhY2l0eSA9IG51bGwsXG4gICAgICAgICAgY29udGVudHNMaXN0TWFya2Rvd25Ob2RlID0gTWFya2Rvd25Ob2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KENvbnRlbnRzTGlzdE1hcmtkb3duTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHkpO1xuXG4gICAgcmV0dXJuIGNvbnRlbnRzTGlzdE1hcmtkb3duTm9kZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjaGlsZE5vZGVzRnJvbU5lc3RlZEhlYWRpbmdNYXJrZG93bk5vZGVzKG5lc3RlZEhlYWRpbmdNYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IGNoaWxkTm9kZXMgPSBuZXN0ZWRIZWFkaW5nTWFya2Rvd25Ob2Rlcy5tYXAoKG5lc3RlZEhlYWRpbmdNYXJrZG93bk5vZGUpID0+IHtcbiAgICBjb25zdCBjb250ZW50c0l0ZW1NYXJrZG93bk5vZGUgPSBDb250ZW50c0l0ZW1NYXJrZG93bk5vZGUuZnJvbUNvbnRlbnRzTGlzdE1hcmtkb3duTm9kZUFuZE5lc3RlZEhlYWRpbmdNYXJrZG93bk5vZGUoQ29udGVudHNMaXN0TWFya2Rvd25Ob2RlLCBuZXN0ZWRIZWFkaW5nTWFya2Rvd25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICBjaGlsZE5vZGUgPSBjb250ZW50c0l0ZW1NYXJrZG93bk5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIGNoaWxkTm9kZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNoaWxkTm9kZXM7XG59XG4iXSwibmFtZXMiOlsiQ29udGVudHNMaXN0TWFya2Rvd25Ob2RlIiwiZ2V0VG9rZW5zIiwidG9rZW5zIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjb250ZW50c0l0ZW1NYXJrZG93bk5vZGVzIiwiZm9yRWFjaCIsImNvbnRlbnRzSXRlbU1hcmtkb3duTm9kZSIsImZyb21IZWFkaW5nTWFya2Rvd25Ob2RlcyIsImhlYWRpbmdNYXJrZG93bk5vZGVzIiwiY29udGV4dCIsIm5vZGVzIiwibmVzdGVkTm9kZSIsIm5lc3ROb2RlcyIsImNoaWxkTmVzdGVkTm9kZXMiLCJnZXRDaGlsZE5lc3RlZE5vZGVzIiwibmVzdGVkSGVhZGluZ01hcmtkb3duTm9kZXMiLCJydWxlTmFtZSIsIkNPTlRFTlRTX0xJU1RfUlVMRV9OQU1FIiwiY2hpbGROb2Rlc0Zyb21OZXN0ZWRIZWFkaW5nTWFya2Rvd25Ob2RlcyIsIm9wYWNpdHkiLCJjb250ZW50c0xpc3RNYXJrZG93bk5vZGUiLCJNYXJrZG93bk5vZGUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSIsImZyb21OZXN0ZWRIZWFkaW5nTWFya2Rvd25Ob2RlcyIsIm1hcCIsIm5lc3RlZEhlYWRpbmdNYXJrZG93bk5vZGUiLCJDb250ZW50c0l0ZW1NYXJrZG93bk5vZGUiLCJmcm9tQ29udGVudHNMaXN0TWFya2Rvd25Ob2RlQW5kTmVzdGVkSGVhZGluZ01hcmtkb3duTm9kZSIsImNoaWxkTm9kZSJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBUXFCQTs7OytEQU5JO21FQUNZO3dCQUVYO3lCQUNjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpCLElBQUEsQUFBTUEseUNBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNuQkMsS0FBQUE7bUJBQUFBLFNBQUFBO29CQUFVQyxTQUFBQSxpRUFBUyxFQUFFO2dCQUNuQixJQUFNQyxhQUFhLElBQUksQ0FBQ0MsYUFBYSxJQUMvQkMsNEJBQTRCRixZQUFhLEdBQUc7Z0JBRWxERSwwQkFBMEJDLE9BQU8sQ0FBQyxTQUFDQztvQkFDakNBLHlCQUF5Qk4sU0FBUyxDQUFDQztnQkFDckM7Z0JBRUEsT0FBT0E7WUFDVDs7OztZQUVPTSxLQUFBQTttQkFBUCxTQUFPQSx5QkFBeUJDLG9CQUFvQixFQUFFQyxPQUFPO2dCQUMzRCxJQUFNQyxRQUFRRixzQkFDUkcsYUFBYUMsSUFBQUEsbUJBQVMsRUFBQ0YsUUFDdkJHLG1CQUFtQkYsV0FBV0csbUJBQW1CLElBQ2pEQyw2QkFBNkJGLGtCQUM3QkcsV0FBV0Msa0NBQXVCLEVBQ2xDZixhQUFhZ0IseUNBQXlDSCw0QkFBNEJOLFVBQ2xGVSxVQUFVLE1BQ1ZDLDJCQUEyQkMsaUJBQVksQ0FBQ0MsZ0NBQWdDLENBcEI3RHZCLDBCQW9Cd0ZpQixVQUFVZCxZQUFZaUI7Z0JBRS9ILE9BQU9DO1lBQ1Q7OztZQUVPRyxLQUFBQTttQkFBUCxTQUFPQSwrQkFBK0JSLDBCQUEwQixFQUFFTixPQUFPO2dCQUN2RSxJQUFNTyxXQUFXQyxrQ0FBdUIsRUFDbENmLGFBQWFnQix5Q0FBeUNILDRCQUE0Qk4sVUFDbEZVLFVBQVUsTUFDVkMsMkJBQTJCQyxpQkFBWSxDQUFDQyxnQ0FBZ0MsQ0E3QjdEdkIsMEJBNkJ3RmlCLFVBQVVkLFlBQVlpQjtnQkFFL0gsT0FBT0M7WUFDVDs7O1dBaENtQnJCO0VBQWlDc0IsaUJBQVk7QUFtQ2xFLFNBQVNILHlDQUF5Q0gsMEJBQTBCLEVBQUVOLE9BQU87SUFDbkYsSUFBTVAsYUFBYWEsMkJBQTJCUyxHQUFHLENBQUMsU0FBQ0M7UUFDakQsSUFBTW5CLDJCQUEyQm9CLHFCQUF3QixDQUFDQyx3REFBd0QsQ0FBQzVCLDBCQUEwQjBCLDJCQUEyQmhCLFVBQ2xLbUIsWUFBWXRCLDBCQUEwQixHQUFHO1FBRS9DLE9BQU9zQjtJQUNUO0lBRUEsT0FBTzFCO0FBQ1QifQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2NvbnRlbnRzTGlzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuXG5pbXBvcnQgeyBDT05URU5UU19MSVNUX1JVTEVfTkFNRSB9IGZyb20gXCIuLi8uLi9ydWxlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGVudHNMaXN0TWFya2Rvd25Ob2RlIGV4dGVuZHMgTWFya2Rvd25Ob2RlIHtcbiAgc3RhdGljIGZyb21Db250ZW50c0l0ZW1SZXBsYWNlbWVudHMoY29udGVudHNJdGVtUmVwbGFjZW1lbnRzKSB7XG4gICAgY29uc3QgcnVsZU5hbWUgPSBDT05URU5UU19MSVNUX1JVTEVfTkFNRSxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gY29udGVudHNJdGVtUmVwbGFjZW1lbnRzLm1hcCgoY29udGVudHNJdGVtUmVwbGFjZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRzSXRlbVJlcGxhY2VtZW50Tm9kZSA9IGNvbnRlbnRzSXRlbVJlcGxhY2VtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICAgICAgICAgIGNoaWxkTm9kZSA9IGNvbnRlbnRzSXRlbVJlcGxhY2VtZW50Tm9kZTsgIC8vL1xuXG4gICAgICAgICAgICByZXR1cm4gY2hpbGROb2RlO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG9wYWNpdHkgPSBudWxsLFxuICAgICAgICAgIGNvbnRlbnRzTGlzdE1hcmtkb3duTm9kZSA9IE1hcmtkb3duTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShDb250ZW50c0xpc3RNYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KTtcblxuICAgIHJldHVybiBjb250ZW50c0xpc3RNYXJrZG93bk5vZGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDb250ZW50c0xpc3RNYXJrZG93bk5vZGUiLCJmcm9tQ29udGVudHNJdGVtUmVwbGFjZW1lbnRzIiwiY29udGVudHNJdGVtUmVwbGFjZW1lbnRzIiwicnVsZU5hbWUiLCJDT05URU5UU19MSVNUX1JVTEVfTkFNRSIsImNoaWxkTm9kZXMiLCJtYXAiLCJjb250ZW50c0l0ZW1SZXBsYWNlbWVudCIsImNvbnRlbnRzSXRlbVJlcGxhY2VtZW50Tm9kZSIsImdldE5vZGUiLCJjaGlsZE5vZGUiLCJvcGFjaXR5IiwiY29udGVudHNMaXN0TWFya2Rvd25Ob2RlIiwiTWFya2Rvd25Ob2RlIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7OytEQUpJO3lCQUVlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpCLElBQUEsQUFBTUEseUNBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNaQyxLQUFBQTttQkFBUCxTQUFPQSw2QkFBNkJDLHdCQUF3QjtnQkFDMUQsSUFBTUMsV0FBV0Msa0NBQXVCLEVBQ2xDQyxhQUFhSCx5QkFBeUJJLEdBQUcsQ0FBQyxTQUFDQztvQkFDekMsSUFBTUMsOEJBQThCRCx3QkFBd0JFLE9BQU8sSUFDN0RDLFlBQVlGLDZCQUE4QixHQUFHO29CQUVuRCxPQUFPRTtnQkFDVCxJQUNBQyxVQUFVLE1BQ1ZDLDJCQUEyQkMsaUJBQVksQ0FBQ0MsZ0NBQWdDLENBVjdEZCwwQkFVd0ZHLFVBQVVFLFlBQVlNO2dCQUUvSCxPQUFPQztZQUNUOzs7V0FibUJaO0VBQWlDYSxpQkFBWSJ9
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _necessary = require("necessary");
12
- var _replacement = /*#__PURE__*/ _interop_require_default(require("../../../replacement"));
12
+ var _imported = /*#__PURE__*/ _interop_require_default(require("../../../replacement/imported"));
13
13
  var _directive = /*#__PURE__*/ _interop_require_default(require("../../../node/markdown/directive"));
14
14
  function _assert_this_initialized(self) {
15
15
  if (self === void 0) {
@@ -111,23 +111,23 @@ var EmbedDirectiveMarkdownNode = /*#__PURE__*/ function(DirectiveMarkdownNode) {
111
111
  }
112
112
  _create_class(EmbedDirectiveMarkdownNode, [
113
113
  {
114
- key: "replacement",
115
- value: function replacement(context) {
116
- var replacement = null;
114
+ key: "import",
115
+ value: function _import(context) {
116
+ var importedReplacement = null;
117
117
  var _context_importer = context.importer, importer = _context_importer === void 0 ? null : _context_importer;
118
118
  if (importer !== null) {
119
119
  var filePath = this.filePath(context);
120
120
  importer(filePath, context);
121
121
  var _context_importedNode = context.importedNode, importedNode = _context_importedNode === void 0 ? null : _context_importedNode, _context_importedTokens = context.importedTokens, importedTokens = _context_importedTokens === void 0 ? null : _context_importedTokens;
122
122
  if (importedNode !== null) {
123
+ var node = importedNode, tokens = importedTokens; ///
124
+ importedReplacement = _imported.default.fromNodeAndTokens(node, tokens);
123
125
  delete context.importedNode;
124
126
  delete context.importedTokens;
125
127
  delete context.importedClassName;
126
- var node = importedNode, tokens = importedTokens; ///
127
- replacement = _replacement.default.fromNodeAndTokens(node, tokens);
128
128
  }
129
129
  }
130
- return replacement;
130
+ return importedReplacement;
131
131
  }
132
132
  },
133
133
  {
@@ -148,4 +148,4 @@ var EmbedDirectiveMarkdownNode = /*#__PURE__*/ function(DirectiveMarkdownNode) {
148
148
  return EmbedDirectiveMarkdownNode;
149
149
  }(_directive.default);
150
150
 
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2RpcmVjdGl2ZS9lbWJlZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBSZXBsYWNlbWVudCBmcm9tIFwiLi4vLi4vLi4vcmVwbGFjZW1lbnRcIjtcbmltcG9ydCBEaXJlY3RpdmVNYXJrZG93bk5vZGUgZnJvbSBcIi4uLy4uLy4uL25vZGUvbWFya2Rvd24vZGlyZWN0aXZlXCI7XG5cbmNvbnN0IHsgbGFzdCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlIGV4dGVuZHMgRGlyZWN0aXZlTWFya2Rvd25Ob2RlIHtcbiAgcmVwbGFjZW1lbnQoY29udGV4dCkge1xuICAgIGxldCByZXBsYWNlbWVudCA9IG51bGw7XG5cbiAgICBjb25zdCB7IGltcG9ydGVyID0gbnVsbCB9ID0gY29udGV4dDtcblxuICAgIGlmIChpbXBvcnRlciAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLmZpbGVQYXRoKGNvbnRleHQpO1xuXG4gICAgICBpbXBvcnRlcihmaWxlUGF0aCwgY29udGV4dCk7XG5cbiAgICAgIGNvbnN0IHsgaW1wb3J0ZWROb2RlID0gbnVsbCxcbiAgICAgICAgICAgICAgaW1wb3J0ZWRUb2tlbnMgPSBudWxsIH0gPSBjb250ZXh0O1xuXG4gICAgICBpZiAoaW1wb3J0ZWROb2RlICE9PSBudWxsKSB7XG4gICAgICAgIGRlbGV0ZSBjb250ZXh0LmltcG9ydGVkTm9kZTtcbiAgICAgICAgZGVsZXRlIGNvbnRleHQuaW1wb3J0ZWRUb2tlbnM7XG4gICAgICAgIGRlbGV0ZSBjb250ZXh0LmltcG9ydGVkQ2xhc3NOYW1lO1xuXG4gICAgICAgIGNvbnN0IG5vZGUgPSBpbXBvcnRlZE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgdG9rZW5zID0gaW1wb3J0ZWRUb2tlbnM7ICAvLy9cblxuICAgICAgICByZXBsYWNlbWVudCA9IFJlcGxhY2VtZW50LmZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2Vucyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcGxhY2VtZW50O1xuICB9XG5cbiAgZmlsZVBhdGgoY29udGV4dCkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSB0aGlzLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBsYXN0Q2hpbGROb2RlID0gbGFzdChjaGlsZE5vZGVzKSxcbiAgICAgICAgICBwYXRoVGVybWluYWxOb2RlICA9IGxhc3RDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgIHBhdGhUZXJtaW5hbE5vZGVDb250ZW50ID0gcGF0aFRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgZmlsZVBhdGggPSBwYXRoVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgICByZXR1cm4gZmlsZVBhdGg7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkocnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHkpIHsgcmV0dXJuIERpcmVjdGl2ZU1hcmtkb3duTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShFbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZSwgcnVsZU5hbWUsIGNoaWxkTm9kZXMsIG9wYWNpdHkpOyB9XG59XG4iXSwibmFtZXMiOlsiRW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGUiLCJsYXN0IiwiYXJyYXlVdGlsaXRpZXMiLCJyZXBsYWNlbWVudCIsImNvbnRleHQiLCJpbXBvcnRlciIsImZpbGVQYXRoIiwiaW1wb3J0ZWROb2RlIiwiaW1wb3J0ZWRUb2tlbnMiLCJpbXBvcnRlZENsYXNzTmFtZSIsIm5vZGUiLCJ0b2tlbnMiLCJSZXBsYWNlbWVudCIsImZyb21Ob2RlQW5kVG9rZW5zIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJsYXN0Q2hpbGROb2RlIiwicGF0aFRlcm1pbmFsTm9kZSIsInBhdGhUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5IiwicnVsZU5hbWUiLCJvcGFjaXR5IiwiRGlyZWN0aXZlTWFya2Rvd25Ob2RlIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBU3FCQTs7O3lCQVBVO2tFQUVQO2dFQUNVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxDLElBQU0sQUFBRUMsT0FBU0MseUJBQWMsQ0FBdkJEO0FBRU8sSUFBQSxBQUFNRCwyQ0FBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztrQkFBQUE7O1lBQ25CRyxLQUFBQTttQkFBQUEsU0FBQUEsWUFBWUMsT0FBTztnQkFDakIsSUFBSUQsY0FBYztnQkFFbEIsd0JBQTRCQyxRQUFwQkMsVUFBQUEsMENBQVc7Z0JBRW5CLElBQUlBLGFBQWEsTUFBTTtvQkFDckIsSUFBTUMsV0FBVyxJQUFJLENBQUNBLFFBQVEsQ0FBQ0Y7b0JBRS9CQyxTQUFTQyxVQUFVRjtvQkFFbkIsNEJBQ2tDQSxRQUQxQkcsY0FBQUEsa0RBQWUsd0RBQ1dILFFBQTFCSSxnQkFBQUEsc0RBQWlCO29CQUV6QixJQUFJRCxpQkFBaUIsTUFBTTt3QkFDekIsT0FBT0gsUUFBUUcsWUFBWTt3QkFDM0IsT0FBT0gsUUFBUUksY0FBYzt3QkFDN0IsT0FBT0osUUFBUUssaUJBQWlCO3dCQUVoQyxJQUFNQyxPQUFPSCxjQUNQSSxTQUFTSCxnQkFBaUIsR0FBRzt3QkFFbkNMLGNBQWNTLG9CQUFXLENBQUNDLGlCQUFpQixDQUFDSCxNQUFNQztvQkFDcEQ7Z0JBQ0Y7Z0JBRUEsT0FBT1I7WUFDVDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTRixPQUFPO2dCQUNkLElBQU1VLGFBQWEsSUFBSSxDQUFDQyxhQUFhLElBQy9CQyxnQkFBZ0JmLEtBQUthLGFBQ3JCRyxtQkFBb0JELGVBQ3BCRSwwQkFBMEJELGlCQUFpQkUsVUFBVSxJQUNyRGIsV0FBV1kseUJBQXlCLEdBQUc7Z0JBRTdDLE9BQU9aO1lBQ1Q7Ozs7WUFFT2MsS0FBQUE7bUJBQVAsU0FBT0EsaUNBQWlDQyxRQUFRLEVBQUVQLFVBQVUsRUFBRVEsT0FBTztnQkFBSSxPQUFPQyxrQkFBcUIsQ0FBQ0gsZ0NBQWdDLENBdkNuSHBCLDRCQXVDZ0pxQixVQUFVUCxZQUFZUTtZQUFVOzs7V0F2Q2hMdEI7RUFBbUN1QixrQkFBcUIifQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2RpcmVjdGl2ZS9lbWJlZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBJbXBvcnRlZFJlcGxhY2VtZW50IGZyb20gXCIuLi8uLi8uLi9yZXBsYWNlbWVudC9pbXBvcnRlZFwiO1xuaW1wb3J0IERpcmVjdGl2ZU1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vLi4vbm9kZS9tYXJrZG93bi9kaXJlY3RpdmVcIjtcblxuY29uc3QgeyBsYXN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGUgZXh0ZW5kcyBEaXJlY3RpdmVNYXJrZG93bk5vZGUge1xuICBpbXBvcnQoY29udGV4dCkge1xuICAgIGxldCBpbXBvcnRlZFJlcGxhY2VtZW50ID0gbnVsbDtcblxuICAgIGNvbnN0IHsgaW1wb3J0ZXIgPSBudWxsIH0gPSBjb250ZXh0O1xuXG4gICAgaWYgKGltcG9ydGVyICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuZmlsZVBhdGgoY29udGV4dCk7XG5cbiAgICAgIGltcG9ydGVyKGZpbGVQYXRoLCBjb250ZXh0KTtcblxuICAgICAgY29uc3QgeyBpbXBvcnRlZE5vZGUgPSBudWxsLFxuICAgICAgICAgICAgICBpbXBvcnRlZFRva2VucyA9IG51bGwgfSA9IGNvbnRleHQ7XG5cbiAgICAgIGlmIChpbXBvcnRlZE5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IGltcG9ydGVkTm9kZSwgIC8vL1xuICAgICAgICAgICAgICB0b2tlbnMgPSBpbXBvcnRlZFRva2VuczsgIC8vL1xuXG4gICAgICAgIGltcG9ydGVkUmVwbGFjZW1lbnQgPSBJbXBvcnRlZFJlcGxhY2VtZW50LmZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2Vucyk7XG5cbiAgICAgICAgZGVsZXRlIGNvbnRleHQuaW1wb3J0ZWROb2RlO1xuICAgICAgICBkZWxldGUgY29udGV4dC5pbXBvcnRlZFRva2VucztcbiAgICAgICAgZGVsZXRlIGNvbnRleHQuaW1wb3J0ZWRDbGFzc05hbWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGltcG9ydGVkUmVwbGFjZW1lbnQ7XG4gIH1cblxuICBmaWxlUGF0aChjb250ZXh0KSB7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IHRoaXMuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIGxhc3RDaGlsZE5vZGUgPSBsYXN0KGNoaWxkTm9kZXMpLFxuICAgICAgICAgIHBhdGhUZXJtaW5hbE5vZGUgID0gbGFzdENoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgcGF0aFRlcm1pbmFsTm9kZUNvbnRlbnQgPSBwYXRoVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICBmaWxlUGF0aCA9IHBhdGhUZXJtaW5hbE5vZGVDb250ZW50OyAvLy9cblxuICAgIHJldHVybiBmaWxlUGF0aDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSkgeyByZXR1cm4gRGlyZWN0aXZlTWFya2Rvd25Ob2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KEVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSk7IH1cbn1cbiJdLCJuYW1lcyI6WyJFbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImxhc3QiLCJhcnJheVV0aWxpdGllcyIsImltcG9ydCIsImNvbnRleHQiLCJpbXBvcnRlZFJlcGxhY2VtZW50IiwiaW1wb3J0ZXIiLCJmaWxlUGF0aCIsImltcG9ydGVkTm9kZSIsImltcG9ydGVkVG9rZW5zIiwibm9kZSIsInRva2VucyIsIkltcG9ydGVkUmVwbGFjZW1lbnQiLCJmcm9tTm9kZUFuZFRva2VucyIsImltcG9ydGVkQ2xhc3NOYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJsYXN0Q2hpbGROb2RlIiwicGF0aFRlcm1pbmFsTm9kZSIsInBhdGhUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5IiwicnVsZU5hbWUiLCJvcGFjaXR5IiwiRGlyZWN0aXZlTWFya2Rvd25Ob2RlIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBU3FCQTs7O3lCQVBVOytEQUVDO2dFQUNFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxDLElBQU0sQUFBRUMsT0FBU0MseUJBQWMsQ0FBdkJEO0FBRU8sSUFBQSxBQUFNRCwyQ0FBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztrQkFBQUE7O1lBQ25CRyxLQUFBQTttQkFBQUEsU0FBQUEsUUFBT0MsT0FBTztnQkFDWixJQUFJQyxzQkFBc0I7Z0JBRTFCLHdCQUE0QkQsUUFBcEJFLFVBQUFBLDBDQUFXO2dCQUVuQixJQUFJQSxhQUFhLE1BQU07b0JBQ3JCLElBQU1DLFdBQVcsSUFBSSxDQUFDQSxRQUFRLENBQUNIO29CQUUvQkUsU0FBU0MsVUFBVUg7b0JBRW5CLDRCQUNrQ0EsUUFEMUJJLGNBQUFBLGtEQUFlLHdEQUNXSixRQUExQkssZ0JBQUFBLHNEQUFpQjtvQkFFekIsSUFBSUQsaUJBQWlCLE1BQU07d0JBQ3pCLElBQU1FLE9BQU9GLGNBQ1BHLFNBQVNGLGdCQUFpQixHQUFHO3dCQUVuQ0osc0JBQXNCTyxpQkFBbUIsQ0FBQ0MsaUJBQWlCLENBQUNILE1BQU1DO3dCQUVsRSxPQUFPUCxRQUFRSSxZQUFZO3dCQUMzQixPQUFPSixRQUFRSyxjQUFjO3dCQUM3QixPQUFPTCxRQUFRVSxpQkFBaUI7b0JBQ2xDO2dCQUNGO2dCQUVBLE9BQU9UO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsU0FBU0gsT0FBTztnQkFDZCxJQUFNVyxhQUFhLElBQUksQ0FBQ0MsYUFBYSxJQUMvQkMsZ0JBQWdCaEIsS0FBS2MsYUFDckJHLG1CQUFvQkQsZUFDcEJFLDBCQUEwQkQsaUJBQWlCRSxVQUFVLElBQ3JEYixXQUFXWSx5QkFBeUIsR0FBRztnQkFFN0MsT0FBT1o7WUFDVDs7OztZQUVPYyxLQUFBQTttQkFBUCxTQUFPQSxpQ0FBaUNDLFFBQVEsRUFBRVAsVUFBVSxFQUFFUSxPQUFPO2dCQUFJLE9BQU9DLGtCQUFxQixDQUFDSCxnQ0FBZ0MsQ0F2Q25IckIsNEJBdUNnSnNCLFVBQVVQLFlBQVlRO1lBQVU7OztXQXZDaEx2QjtFQUFtQ3dCLGtCQUFxQiJ9
@@ -9,13 +9,16 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _necessary = require("necessary");
12
- var _replacement = /*#__PURE__*/ _interop_require_default(require("../../replacement"));
13
12
  var _markdown = /*#__PURE__*/ _interop_require_default(require("../../node/markdown"));
14
- var _contentsList = /*#__PURE__*/ _interop_require_default(require("../../node/markdown/contentsList"));
15
- var _footnotesList = /*#__PURE__*/ _interop_require_default(require("../../node/markdown/footnotesList"));
13
+ var _footnote = /*#__PURE__*/ _interop_require_default(require("../../replacement/footnote"));
14
+ var _contentsList = /*#__PURE__*/ _interop_require_default(require("../../replacement/contentsList"));
15
+ var _footnotesList = /*#__PURE__*/ _interop_require_default(require("../../replacement/footnotesList"));
16
+ var _footnote1 = /*#__PURE__*/ _interop_require_default(require("../../replacement/subDivision/footnote"));
17
+ var _contentsDirective = /*#__PURE__*/ _interop_require_default(require("../../replacement/subDivision/contentsDirective"));
18
+ var _footnotesDirective = /*#__PURE__*/ _interop_require_default(require("../../replacement/subDivision/footnotesDirective"));
19
+ var _pageNumberDirective = /*#__PURE__*/ _interop_require_default(require("../../replacement/subDivision/pageNumberDirective"));
16
20
  var _constants = require("../../constants");
17
21
  var _ruleNames = require("../../ruleNames");
18
- var _node = require("../../utilities/node");
19
22
  var _query = require("../../utilities/query");
20
23
  function _array_like_to_array(arr, len) {
21
24
  if (len == null || len > arr.length) len = arr.length;
@@ -155,7 +158,7 @@ function _create_super(Derived) {
155
158
  return _possible_constructor_return(this, result);
156
159
  };
157
160
  }
158
- var clear = _necessary.arrayUtilities.clear, filter = _necessary.arrayUtilities.filter;
161
+ var clear = _necessary.arrayUtilities.clear;
159
162
  var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
160
163
  _inherits(DivisionMarkdownNode, MarkdownNode);
161
164
  var _super = _create_super(DivisionMarkdownNode);
@@ -193,49 +196,25 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
193
196
  return ignored;
194
197
  }
195
198
  },
196
- {
197
- key: "findParentNode",
198
- value: function findParentNode(childNode) {
199
- var _this = this;
200
- var node = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this;
201
- var parentNode = null;
202
- var nodeNonTerminalNode = node.isNonTerminalNode();
203
- if (nodeNonTerminalNode) {
204
- var nonTerminalNode = node, childNodes = nonTerminalNode.getChildNodes(), index = childNodes.indexOf(childNode);
205
- if (index !== -1) {
206
- parentNode = node; ///
207
- } else {
208
- var nodes = childNodes; ///
209
- nodes.some(function(node) {
210
- parentNode = _this.findParentNode(childNode, node);
211
- if (parentNode !== null) {
212
- return true;
213
- }
214
- });
215
- }
216
- }
217
- return parentNode;
218
- }
219
- },
220
199
  {
221
200
  key: "paginate",
222
201
  value: function paginate(context) {
223
202
  var _this = this;
224
- var linesPerPage = context.linesPerPage, childNodes = this.getChildNodes(), paginatedChildNodes = [], divisionMarkdownNodes = [], subDivisionReplacements = this.removeSubdivisionMarkdownNodes(_query.pageNumberDirectiveMarkdownNodeFromNode, context);
203
+ var linesPerPage = context.linesPerPage, childNodes = this.getChildNodes(), paginatedChildNodes = [], divisionMarkdownNodes = [], pageNumberDirectiveSubDivisionReplacement = this.removeSubDivisionMarkdownNode(_pageNumberDirective.default, context);
225
204
  var totalLines = 0;
226
205
  childNodes.forEach(function(childNode) {
227
206
  var lines = childNode.lines(context), paginatedChildNode = childNode; ///
228
207
  totalLines += lines;
229
208
  paginatedChildNodes.push(paginatedChildNode);
230
209
  if (totalLines > linesPerPage) {
231
- var divisionMarkdownNode = DivisionMarkdownNode.fromSubdivisionReplacementsPaginatedChildNodesAndDivisionClassName(subDivisionReplacements, paginatedChildNodes, _this.divisionClassName, context);
210
+ var divisionMarkdownNode = DivisionMarkdownNode.fromPageNumberDirectiveSubDivisionReplacementPaginatedChildNodesAndDivisionClassName(pageNumberDirectiveSubDivisionReplacement, paginatedChildNodes, _this.divisionClassName, context);
232
211
  divisionMarkdownNodes.push(divisionMarkdownNode);
233
212
  clear(paginatedChildNodes);
234
213
  totalLines = 0;
235
214
  }
236
215
  });
237
216
  if (totalLines > 0) {
238
- var divisionMarkdownNode = DivisionMarkdownNode.fromSubdivisionReplacementsPaginatedChildNodesAndDivisionClassName(subDivisionReplacements, paginatedChildNodes, this.divisionClassName, context);
217
+ var divisionMarkdownNode = DivisionMarkdownNode.fromPageNumberDirectiveSubDivisionReplacementPaginatedChildNodesAndDivisionClassName(pageNumberDirectiveSubDivisionReplacement, paginatedChildNodes, this.divisionClassName, context);
239
218
  divisionMarkdownNodes.push(divisionMarkdownNode);
240
219
  }
241
220
  return divisionMarkdownNodes;
@@ -254,16 +233,13 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
254
233
  key: "createContents",
255
234
  value: function createContents(divisionMarkdownNodes, context) {
256
235
  var contentsCreated = false;
257
- var node = this, contentsDirectiveMarkdownNode = (0, _query.contentsDirectiveMarkdownNodeFromNode)(node);
258
- if (contentsDirectiveMarkdownNode !== null) {
259
- var divisionMarkdownNode = this, headingMarkdownNodes = headingMarkdownNodesFromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context), headingMarkdownNodesLength = headingMarkdownNodes.length;
260
- if (headingMarkdownNodesLength === 0) {
261
- return;
236
+ var contentsDirectiveSubDivisionReplacement = this.findSubDivisionReplacement(_contentsDirective.default, context);
237
+ if (contentsDirectiveSubDivisionReplacement !== null) {
238
+ var divisionMarkdownNode = this, contentsListReplacement = _contentsList.default.fromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context);
239
+ if (contentsListReplacement !== null) {
240
+ contentsListReplacement.replaceContentsDirectiveSubdivisionReplacement(contentsDirectiveSubDivisionReplacement, divisionMarkdownNode, context);
241
+ contentsCreated = true;
262
242
  }
263
- var tokens = context.tokens, contentsListMarkdownNode = _contentsList.default.fromHeadingMarkdownNodes(headingMarkdownNodes, context), contentsListMarkdownNodeTokens = contentsListMarkdownNode.getTokens(), childNode = contentsDirectiveMarkdownNode, parentNode = this.findParentNode(childNode), replacedNode = contentsDirectiveMarkdownNode, replacementNode = contentsListMarkdownNode, replacementTokens = contentsListMarkdownNodeTokens; ///
264
- (0, _node.replaceNode)(replacementNode, replacedNode, parentNode);
265
- (0, _node.replaceTokens)(replacementTokens, replacedNode, tokens);
266
- contentsCreated = true;
267
243
  }
268
244
  return contentsCreated;
269
245
  }
@@ -271,26 +247,24 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
271
247
  {
272
248
  key: "createFootnotes",
273
249
  value: function createFootnotes(footnoteReplacements, context) {
274
- if (footnoteReplacements === null) {
275
- return;
276
- }
277
- var divisionMarkdownNode = this, footnotesListMarkdownNode = _footnotesList.default.fromFootnoteReplacementsAndDivisionMarkdownNode(footnoteReplacements, divisionMarkdownNode, context);
278
- if (footnotesListMarkdownNode === null) {
279
- return;
250
+ if (footnoteReplacements !== null) {
251
+ var divisionMarkdownNode = this, footnotesListReplacement = _footnotesList.default.fromFootnoteReplacementsAndDivisionMarkdownNode(footnoteReplacements, divisionMarkdownNode, context);
252
+ if (footnotesListReplacement !== null) {
253
+ footnotesListReplacement.appendToDivisionMarkdownNode(divisionMarkdownNode, context);
254
+ }
280
255
  }
281
- var node = footnotesListMarkdownNode, replacement = _replacement.default.fromNode(node, context);
282
- replacement.appendTo(divisionMarkdownNode, context);
283
256
  }
284
257
  },
285
258
  {
286
259
  key: "prepareFootnotes",
287
260
  value: function prepareFootnotes(context) {
288
- var subdivisionReplacements;
289
- subdivisionReplacements = this.removeSubdivisionMarkdownNodes(_query.footnoteMarkdownNodsFromNode, context);
290
- var footnoteReplacements = footnoteReplacementsFromSubdivisionReplacements(subdivisionReplacements);
291
- subdivisionReplacements = this.removeSubdivisionMarkdownNodes(_query.footnotesDirectiveMarkdownNodeFromNode, context);
292
- var subdivisionReplacementsLength = subdivisionReplacements.length;
293
- if (subdivisionReplacementsLength === 0) {
261
+ var footnoteSubDivisionReplacements = this.removeSubDivisionMarkdownNodes(_footnote1.default, context);
262
+ var footnoteReplacements = footnoteSubDivisionReplacements.map(function(footnoteSubDivisionReplacement) {
263
+ var footnoteReplacement = _footnote.default.fromFootnoteSubDivisionReplacement(footnoteSubDivisionReplacement);
264
+ return footnoteReplacement;
265
+ });
266
+ var footnotesDirectiveSubDivisionReplacement = this.removeSubDivisionMarkdownNode(_footnotesDirective.default, context);
267
+ if (footnotesDirectiveSubDivisionReplacement === null) {
294
268
  footnoteReplacements = null;
295
269
  }
296
270
  return footnoteReplacements;
@@ -302,40 +276,75 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
302
276
  var _this = this;
303
277
  var node = this, embedDirectiveMarkdownNodes = (0, _query.embedDirectiveMarkdownNodesFromNode)(node);
304
278
  embedDirectiveMarkdownNodes.map(function(embedDirectiveMarkdownNode) {
305
- var replacement = embedDirectiveMarkdownNode.replacement(context);
306
- if (replacement !== null) {
307
- var tokens;
308
- tokens = replacement.getTokens();
309
- var childNodes = replacement.getChildNodes(), replacementNodes = childNodes, replacementTokens = tokens; ///
310
- tokens = context.tokens;
311
- var childNode = embedDirectiveMarkdownNode, parentNode = _this.findParentNode(childNode), replacedNode = embedDirectiveMarkdownNode; ///
312
- (0, _node.replaceNodes)(replacementNodes, replacedNode, parentNode);
313
- (0, _node.replaceTokens)(replacementTokens, replacedNode, tokens);
279
+ var importedReplacement = embedDirectiveMarkdownNode.import(context);
280
+ if (importedReplacement !== null) {
281
+ var childNode = embedDirectiveMarkdownNode, parentNode = _this.findParentNode(childNode);
282
+ importedReplacement.replaceEmbedDirectiveMarkdownNode(embedDirectiveMarkdownNode, parentNode, context);
314
283
  }
315
284
  });
316
285
  }
317
286
  },
318
287
  {
319
- key: "removeSubdivisionMarkdownNodes",
320
- value: function removeSubdivisionMarkdownNodes(markdownNodeFromNode, context) {
321
- var tokens = context.tokens, node = this, parentNode = this, subDivisionMarkdownNodes = (0, _query.subDivisionMarkdownNodesFromNode)(node), subDivisionReplacements = subDivisionMarkdownNodes.reduce(function(subDivisionReplacements, subDivisionMarkdownNode) {
322
- var node = subDivisionMarkdownNode, markdownNode = markdownNodeFromNode(node);
323
- if (markdownNode !== null) {
324
- var removedNode = subDivisionMarkdownNode, subDivisionReplacement = _replacement.default.fromNode(subDivisionMarkdownNode, context);
288
+ key: "findSubDivisionReplacement",
289
+ value: function findSubDivisionReplacement(SubDivisionReplacement, context) {
290
+ var subDivisionReplacement = null;
291
+ var subDivisionMarkdownNodes = this.findSubDivisionMarkdownNodes();
292
+ subDivisionMarkdownNodes.some(function(subDivisionMarkdownNode) {
293
+ subDivisionReplacement = SubDivisionReplacement.fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context);
294
+ if (subDivisionReplacement !== null) {
295
+ return true;
296
+ }
297
+ });
298
+ return subDivisionReplacement;
299
+ }
300
+ },
301
+ {
302
+ key: "findSubDivisionReplacements",
303
+ value: function findSubDivisionReplacements(SubDivisionReplacement, context) {
304
+ var subDivisionMarkdownNodes = this.findSubDivisionMarkdownNodes(), subDivisionReplacements = subDivisionMarkdownNodes.reduce(function(subDivisionReplacements, subDivisionMarkdownNode) {
305
+ var subDivisionReplacement = SubDivisionReplacement.fromSubDivisionMarkdownNode(subDivisionMarkdownNode, context);
306
+ if (subDivisionReplacement !== null) {
325
307
  subDivisionReplacements.push(subDivisionReplacement);
326
- (0, _node.removeTokens)(removedNode, tokens);
327
- (0, _node.removeNode)(removedNode, parentNode);
328
308
  }
329
309
  return subDivisionReplacements;
330
310
  }, []);
331
311
  return subDivisionReplacements;
332
312
  }
333
313
  },
314
+ {
315
+ key: "findSubDivisionMarkdownNodes",
316
+ value: function findSubDivisionMarkdownNodes() {
317
+ var node = this, subDivisionMarkdownNodes = (0, _query.subDivisionMarkdownNodesFromNode)(node);
318
+ return subDivisionMarkdownNodes;
319
+ }
320
+ },
321
+ {
322
+ key: "removeSubDivisionMarkdownNode",
323
+ value: function removeSubDivisionMarkdownNode(SubDivisionReplacement, context) {
324
+ var divisionMarkdownNode = this, subDivisionReplacement = this.findSubDivisionReplacement(SubDivisionReplacement, context);
325
+ if (subDivisionReplacement !== null) {
326
+ subDivisionReplacement.removeFromDivisionMarkdownNode(divisionMarkdownNode, context);
327
+ }
328
+ return subDivisionReplacement;
329
+ }
330
+ },
331
+ {
332
+ key: "removeSubDivisionMarkdownNodes",
333
+ value: function removeSubDivisionMarkdownNodes(SubDivisionReplacement, context) {
334
+ var divisionMarkdownNode = this, subDivisionReplacements = this.findSubDivisionReplacements(SubDivisionReplacement, context);
335
+ subDivisionReplacements.forEach(function(subDivisionReplacement) {
336
+ subDivisionReplacement.removeFromDivisionMarkdownNode(divisionMarkdownNode, context);
337
+ });
338
+ return subDivisionReplacements;
339
+ }
340
+ },
334
341
  {
335
342
  key: "createFootnotesListMarkdownNode",
336
343
  value: function createFootnotesListMarkdownNode(context) {
337
- var divisionMarkdownNode = this, footnotesListMarkdownNode = _footnotesList.default.fromDivisionMarkdownNode(divisionMarkdownNode, context);
338
- return footnotesListMarkdownNode;
344
+ // const divisionMarkdownNode = this, ///
345
+ // footnotesListMarkdownNode = FootnotesListMarkdownNode.fromDivisionMarkdownNode(divisionMarkdownNode, context);
346
+ //
347
+ // return footnotesListMarkdownNode;
339
348
  }
340
349
  },
341
350
  {
@@ -365,40 +374,18 @@ var DivisionMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
365
374
  }
366
375
  },
367
376
  {
368
- key: "fromSubdivisionReplacementsPaginatedChildNodesAndDivisionClassName",
369
- value: function fromSubdivisionReplacementsPaginatedChildNodesAndDivisionClassName(subDivisionReplacements, paginatedChildNodes, divisionClassName, context) {
377
+ key: "fromPageNumberDirectiveSubDivisionReplacementPaginatedChildNodesAndDivisionClassName",
378
+ value: function fromPageNumberDirectiveSubDivisionReplacementPaginatedChildNodesAndDivisionClassName(pageNumberDirectiveSubDivisionReplacement, paginatedChildNodes, divisionClassName, context) {
370
379
  var ruleName = _ruleNames.DIVISION_RULE_NAME, childNodes = _to_consumable_array(paginatedChildNodes), opacity = null, divisionMarkdownNode = _markdown.default.fromRuleNameChildNodesAndOpacity(DivisionMarkdownNode, ruleName, childNodes, opacity, divisionClassName);
371
- subDivisionReplacements.some(function(subDivisionReplacement) {
372
- subDivisionReplacement.appendTo(divisionMarkdownNode, context);
373
- return true; ///
374
- });
380
+ if (pageNumberDirectiveSubDivisionReplacement !== null) {
381
+ pageNumberDirectiveSubDivisionReplacement = pageNumberDirectiveSubDivisionReplacement.clone(); ///
382
+ pageNumberDirectiveSubDivisionReplacement.appendToDivisionMarkdownNode(divisionMarkdownNode, context);
383
+ }
375
384
  return divisionMarkdownNode;
376
385
  }
377
386
  }
378
387
  ]);
379
388
  return DivisionMarkdownNode;
380
389
  }(_markdown.default);
381
- function footnoteReplacementsFromSubdivisionReplacements(subdivisionReplacements) {
382
- var footnoteReplacements = subdivisionReplacements.map(function(subdivisionReplacement) {
383
- var node = subdivisionReplacement.getNode(), footnoteMarkdownNode = (0, _query.footnoteMarkdownNodsFromNode)(node), descendentNode = footnoteMarkdownNode, footnoteReplacement = subdivisionReplacement.contract(descendentNode);
384
- return footnoteReplacement;
385
- });
386
- return footnoteReplacements;
387
- }
388
- function headingMarkdownNodesFromDivisionMarkdownNodesAndDivisionMarkdownNode(divisionMarkdownNodes, divisionMarkdownNode, context) {
389
- var headingMarkdownNodes = [], index = divisionMarkdownNodes.indexOf(divisionMarkdownNode), start = index + 1;
390
- divisionMarkdownNodes = divisionMarkdownNodes.slice(start); ///
391
- divisionMarkdownNodes.forEach(function(divisionMarkdownNode) {
392
- var node = divisionMarkdownNode; ///
393
- (0, _query.headingMarkdownNodesFromNode)(node, headingMarkdownNodes);
394
- });
395
- filter(headingMarkdownNodes, function(headingMarkdownNode) {
396
- var contentsDepth = context.contentsDepth, depth = headingMarkdownNode.getDepth();
397
- if (depth <= contentsDepth) {
398
- return true;
399
- }
400
- });
401
- return headingMarkdownNodes;
402
- }
403
390
 
404
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2RpdmlzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IFJlcGxhY2VtZW50IGZyb20gXCIuLi8uLi9yZXBsYWNlbWVudFwiO1xuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuaW1wb3J0IENvbnRlbnRzTGlzdE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93bi9jb250ZW50c0xpc3RcIjtcbmltcG9ydCBGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIGZyb20gXCIuLi8uLi9ub2RlL21hcmtkb3duL2Zvb3Rub3Rlc0xpc3RcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRElWSVNJT05fUlVMRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgcmVtb3ZlTm9kZSwgcmVtb3ZlVG9rZW5zLCByZXBsYWNlTm9kZSwgcmVwbGFjZU5vZGVzLCByZXBsYWNlVG9rZW5zIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9ub2RlXCI7XG5pbXBvcnQgeyBmb290bm90ZU1hcmtkb3duTm9kc0Zyb21Ob2RlLFxuICAgICAgICAgaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgICAgICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICAgICAgICAgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUsXG4gICAgICAgICBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgICAgICAgIGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gICAgICAgICBmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgICAgICAgIHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgeyBjbGVhciwgZmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGl2aXNpb25NYXJrZG93bk5vZGUgZXh0ZW5kcyBNYXJrZG93bk5vZGUge1xuICBjb25zdHJ1Y3RvcihydWxlTmFtZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSwgZG9tRWxlbWVudCwgZGl2aXNpb25DbGFzc05hbWUpIHtcbiAgICBzdXBlcihydWxlTmFtZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSwgZG9tRWxlbWVudCk7XG5cbiAgICB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lID0gZGl2aXNpb25DbGFzc05hbWU7XG4gIH1cblxuICBnZXREaXZpc2lvbkNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXZpc2lvbkNsYXNzTmFtZTtcbiAgfVxuXG4gIHNldERpdmlzaW9uQ2xhc3NOYW1lKGRpdmlzaW9uQ2xhc3NOYW1lKSB7XG4gICAgdGhpcy5kaXZpc2lvbkNsYXNzTmFtZSA9IGRpdmlzaW9uQ2xhc3NOYW1lO1xuICB9XG5cbiAgY2xhc3NOYW1lKGNvbnRleHQpIHtcbiAgICBjb25zdCBjbGFzc05hbWUgPSB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lOyAvLy9cblxuICAgIHJldHVybiBjbGFzc05hbWU7XG4gIH1cblxuICBpc0lnbm9yZWQoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsXG4gICAgICAgICAgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSksXG4gICAgICAgICAgaWdub3JlZCA9IChpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGUgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIGlnbm9yZWQ7XG4gIH1cblxuICBmaW5kUGFyZW50Tm9kZShjaGlsZE5vZGUsIG5vZGUgPSB0aGlzKSB7XG4gICAgbGV0IHBhcmVudE5vZGUgPSBudWxsO1xuXG4gICAgY29uc3Qgbm9kZU5vblRlcm1pbmFsTm9kZSA9IG5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgaW5kZXggPSBjaGlsZE5vZGVzLmluZGV4T2YoY2hpbGROb2RlKTtcblxuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBwYXJlbnROb2RlID0gbm9kZTsgIC8vL1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgbm9kZXMgPSBjaGlsZE5vZGVzOyAvLy9cblxuICAgICAgICBub2Rlcy5zb21lKChub2RlKSA9PiB7XG4gICAgICAgICAgcGFyZW50Tm9kZSA9IHRoaXMuZmluZFBhcmVudE5vZGUoY2hpbGROb2RlLCBub2RlKTtcblxuICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXJlbnROb2RlO1xuICB9XG5cbiAgcGFnaW5hdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHsgbGluZXNQZXJQYWdlIH0gPSBjb250ZXh0LFxuICAgICAgICAgIGNoaWxkTm9kZXMgPSB0aGlzLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBwYWdpbmF0ZWRDaGlsZE5vZGVzID0gW10sXG4gICAgICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gW10sXG4gICAgICAgICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMgPSB0aGlzLnJlbW92ZVN1YmRpdmlzaW9uTWFya2Rvd25Ob2RlcyhwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsIGNvbnRleHQpO1xuXG4gICAgbGV0IHRvdGFsTGluZXMgPSAwO1xuXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGxpbmVzID0gY2hpbGROb2RlLmxpbmVzKGNvbnRleHQpLFxuICAgICAgICAgICAgcGFnaW5hdGVkQ2hpbGROb2RlID0gY2hpbGROb2RlOyAgLy8vXG5cbiAgICAgIHRvdGFsTGluZXMgKz0gbGluZXM7XG5cbiAgICAgIHBhZ2luYXRlZENoaWxkTm9kZXMucHVzaChwYWdpbmF0ZWRDaGlsZE5vZGUpO1xuXG4gICAgICBpZiAodG90YWxMaW5lcyA+IGxpbmVzUGVyUGFnZSkge1xuICAgICAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IERpdmlzaW9uTWFya2Rvd25Ob2RlLmZyb21TdWJkaXZpc2lvblJlcGxhY2VtZW50c1BhZ2luYXRlZENoaWxkTm9kZXNBbmREaXZpc2lvbkNsYXNzTmFtZShzdWJEaXZpc2lvblJlcGxhY2VtZW50cywgcGFnaW5hdGVkQ2hpbGROb2RlcywgdGhpcy5kaXZpc2lvbkNsYXNzTmFtZSwgY29udGV4dCk7XG5cbiAgICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnB1c2goZGl2aXNpb25NYXJrZG93bk5vZGUpO1xuXG4gICAgICAgIGNsZWFyKHBhZ2luYXRlZENoaWxkTm9kZXMpO1xuXG4gICAgICAgIHRvdGFsTGluZXMgPSAwO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRvdGFsTGluZXMgPiAwKSB7XG4gICAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IERpdmlzaW9uTWFya2Rvd25Ob2RlLmZyb21TdWJkaXZpc2lvblJlcGxhY2VtZW50c1BhZ2luYXRlZENoaWxkTm9kZXNBbmREaXZpc2lvbkNsYXNzTmFtZShzdWJEaXZpc2lvblJlcGxhY2VtZW50cywgcGFnaW5hdGVkQ2hpbGROb2RlcywgdGhpcy5kaXZpc2lvbkNsYXNzTmFtZSwgY29udGV4dCk7XG5cbiAgICAgIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5wdXNoKGRpdmlzaW9uTWFya2Rvd25Ob2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGVzO1xuICB9XG5cbiAgc2V0UGFnZU51bWJlcihwYWdlTnVtYmVyKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsXG4gICAgICAgICAgcGFnZU51bWJlckRpcmVjdGl2ZSA9IHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKTtcblxuICAgIGlmIChwYWdlTnVtYmVyRGlyZWN0aXZlICE9PSBudWxsKSB7XG4gICAgICBwYWdlTnVtYmVyRGlyZWN0aXZlLnNldFBhZ2VOdW1iZXIocGFnZU51bWJlcik7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQ29udGVudHMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbnRlbnRzQ3JlYXRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZSA9IGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSk7XG5cbiAgICBpZiAoY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgICAgaGVhZGluZ01hcmtkb3duTm9kZXMgPSBoZWFkaW5nTWFya2Rvd25Ob2Rlc0Zyb21EaXZpc2lvbk1hcmtkb3duTm9kZXNBbmREaXZpc2lvbk1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGhlYWRpbmdNYXJrZG93bk5vZGVzTGVuZ3RoID0gaGVhZGluZ01hcmtkb3duTm9kZXMubGVuZ3RoO1xuXG4gICAgICBpZiAoaGVhZGluZ01hcmtkb3duTm9kZXNMZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHRva2VucyB9ID0gY29udGV4dCxcbiAgICAgICAgICAgIGNvbnRlbnRzTGlzdE1hcmtkb3duTm9kZSA9IENvbnRlbnRzTGlzdE1hcmtkb3duTm9kZS5mcm9tSGVhZGluZ01hcmtkb3duTm9kZXMoaGVhZGluZ01hcmtkb3duTm9kZXMsIGNvbnRleHQpLFxuICAgICAgICAgICAgY29udGVudHNMaXN0TWFya2Rvd25Ob2RlVG9rZW5zID0gY29udGVudHNMaXN0TWFya2Rvd25Ob2RlLmdldFRva2VucygpLFxuICAgICAgICAgICAgY2hpbGROb2RlID0gY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGUsICAvLy9cbiAgICAgICAgICAgIHBhcmVudE5vZGUgPSB0aGlzLmZpbmRQYXJlbnROb2RlKGNoaWxkTm9kZSksXG4gICAgICAgICAgICByZXBsYWNlZE5vZGUgPSBjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZSwgLy8vXG4gICAgICAgICAgICByZXBsYWNlbWVudE5vZGUgPSBjb250ZW50c0xpc3RNYXJrZG93bk5vZGUsICAvLy9cbiAgICAgICAgICAgIHJlcGxhY2VtZW50VG9rZW5zID0gY29udGVudHNMaXN0TWFya2Rvd25Ob2RlVG9rZW5zOyAvLy9cblxuICAgICAgcmVwbGFjZU5vZGUocmVwbGFjZW1lbnROb2RlLCByZXBsYWNlZE5vZGUsIHBhcmVudE5vZGUpO1xuXG4gICAgICByZXBsYWNlVG9rZW5zKHJlcGxhY2VtZW50VG9rZW5zLCByZXBsYWNlZE5vZGUsIHRva2Vucyk7XG5cbiAgICAgIGNvbnRlbnRzQ3JlYXRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRlbnRzQ3JlYXRlZDtcbiAgfVxuXG4gIGNyZWF0ZUZvb3Rub3Rlcyhmb290bm90ZVJlcGxhY2VtZW50cywgY29udGV4dCkge1xuICAgIGlmIChmb290bm90ZVJlcGxhY2VtZW50cyA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUgPSBGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlLmZyb21Gb290bm90ZVJlcGxhY2VtZW50c0FuZERpdmlzaW9uTWFya2Rvd25Ob2RlKGZvb3Rub3RlUmVwbGFjZW1lbnRzLCBkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG5cbiAgICBpZiAoZm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSBmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlLCAvLy9cbiAgICAgICAgICByZXBsYWNlbWVudCA9IFJlcGxhY2VtZW50LmZyb21Ob2RlKG5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmVwbGFjZW1lbnQuYXBwZW5kVG8oZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuICB9XG5cbiAgcHJlcGFyZUZvb3Rub3Rlcyhjb250ZXh0KSB7XG4gICAgbGV0IHN1YmRpdmlzaW9uUmVwbGFjZW1lbnRzO1xuXG4gICAgc3ViZGl2aXNpb25SZXBsYWNlbWVudHMgPSB0aGlzLnJlbW92ZVN1YmRpdmlzaW9uTWFya2Rvd25Ob2Rlcyhmb290bm90ZU1hcmtkb3duTm9kc0Zyb21Ob2RlLCBjb250ZXh0KTtcblxuICAgIGxldCBmb290bm90ZVJlcGxhY2VtZW50cyA9IGZvb3Rub3RlUmVwbGFjZW1lbnRzRnJvbVN1YmRpdmlzaW9uUmVwbGFjZW1lbnRzKHN1YmRpdmlzaW9uUmVwbGFjZW1lbnRzKTtcblxuICAgIHN1YmRpdmlzaW9uUmVwbGFjZW1lbnRzID0gdGhpcy5yZW1vdmVTdWJkaXZpc2lvbk1hcmtkb3duTm9kZXMoZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsIGNvbnRleHQpO1xuXG4gICAgY29uc3Qgc3ViZGl2aXNpb25SZXBsYWNlbWVudHNMZW5ndGggPSBzdWJkaXZpc2lvblJlcGxhY2VtZW50cy5sZW5ndGg7XG5cbiAgICBpZiAoc3ViZGl2aXNpb25SZXBsYWNlbWVudHNMZW5ndGggPT09IDApIHtcbiAgICAgIGZvb3Rub3RlUmVwbGFjZW1lbnRzID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9vdG5vdGVSZXBsYWNlbWVudHM7XG4gIH1cblxuICByZXNvbHZlRW1iZWRkaW5ncyhjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXMgPSBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlKTtcblxuICAgIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlcy5tYXAoKGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgICBjb25zdCByZXBsYWNlbWVudCA9IGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlLnJlcGxhY2VtZW50KGNvbnRleHQpO1xuXG4gICAgICBpZiAocmVwbGFjZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgbGV0IHRva2VucztcblxuICAgICAgICB0b2tlbnMgPSByZXBsYWNlbWVudC5nZXRUb2tlbnMoKTtcblxuICAgICAgICBjb25zdCBjaGlsZE5vZGVzID0gcmVwbGFjZW1lbnQuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICByZXBsYWNlbWVudE5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgIHJlcGxhY2VtZW50VG9rZW5zID0gdG9rZW5zOyAvLy9cblxuICAgICAgICAoeyB0b2tlbnMgfSA9IGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnN0IGNoaWxkTm9kZSA9IGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlLCAgLy8vXG4gICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB0aGlzLmZpbmRQYXJlbnROb2RlKGNoaWxkTm9kZSksXG4gICAgICAgICAgICAgIHJlcGxhY2VkTm9kZSA9IGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlOyAvLy9cblxuICAgICAgICByZXBsYWNlTm9kZXMocmVwbGFjZW1lbnROb2RlcywgcmVwbGFjZWROb2RlLCBwYXJlbnROb2RlKTtcblxuICAgICAgICByZXBsYWNlVG9rZW5zKHJlcGxhY2VtZW50VG9rZW5zLCByZXBsYWNlZE5vZGUsIHRva2Vucyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVTdWJkaXZpc2lvbk1hcmtkb3duTm9kZXMobWFya2Rvd25Ob2RlRnJvbU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHRva2VucyB9ID0gY29udGV4dCxcbiAgICAgICAgICBub2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIHBhcmVudE5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzID0gc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSksXG4gICAgICAgICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMgPSBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMucmVkdWNlKChzdWJEaXZpc2lvblJlcGxhY2VtZW50cywgc3ViRGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSwgLy8vXG4gICAgICAgICAgICAgICAgICBtYXJrZG93bk5vZGUgPSBtYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKTtcblxuICAgICAgICAgICAgaWYgKG1hcmtkb3duTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCByZW1vdmVkTm9kZSA9IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlLCAgLy8vXG4gICAgICAgICAgICAgICAgICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgPSBSZXBsYWNlbWVudC5mcm9tTm9kZShzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgICAgICAgc3ViRGl2aXNpb25SZXBsYWNlbWVudHMucHVzaChzdWJEaXZpc2lvblJlcGxhY2VtZW50KTtcblxuICAgICAgICAgICAgICByZW1vdmVUb2tlbnMocmVtb3ZlZE5vZGUsIHRva2Vucyk7XG5cbiAgICAgICAgICAgICAgcmVtb3ZlTm9kZShyZW1vdmVkTm9kZSwgcGFyZW50Tm9kZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzdWJEaXZpc2lvblJlcGxhY2VtZW50cztcbiAgICAgICAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gc3ViRGl2aXNpb25SZXBsYWNlbWVudHM7XG4gIH1cblxuICBjcmVhdGVGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlKGNvbnRleHQpIHtcbiAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlID0gRm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZS5mcm9tRGl2aXNpb25NYXJrZG93bk5vZGUoZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGU7XG4gIH1cblxuICBhc0hUTUwoY29udGV4dCkge1xuICAgIGxldCBodG1sID0gbnVsbDtcblxuICAgIGNvbnN0IGluZGVudCA9IEVNUFRZX1NUUklORyxcbiAgICAgICAgICBjaGlsZE5vZGVzSFRNTCA9IHRoaXMuY2hpbGROb2Rlc0FzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuXG4gICAgaWYgKGNoaWxkTm9kZXNIVE1MICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdGFydGluZ1RhZyA9IHRoaXMuc3RhcnRpbmdUYWcoY29udGV4dCksXG4gICAgICAgICAgICBjbG9zaW5nVGFnID0gdGhpcy5jbG9zaW5nVGFnKGNvbnRleHQpO1xuXG4gICAgICBodG1sID0gYCR7aW5kZW50fSR7c3RhcnRpbmdUYWd9XG4ke2NoaWxkTm9kZXNIVE1MfSR7aW5kZW50fSR7Y2xvc2luZ1RhZ31cbmA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICBjbG9uZSgpIHsgcmV0dXJuIHN1cGVyLmNsb25lKHRoaXMuZGl2aXNpb25DbGFzc05hbWUpOyB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KSB7XG4gICAgY29uc3QgZGl2aXNpb25DbGFzc05hbWUgPSBudWxsLFxuICAgICAgICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gTWFya2Rvd25Ob2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KERpdmlzaW9uTWFya2Rvd25Ob2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgZGl2aXNpb25DbGFzc05hbWUpO1xuXG4gICAgcmV0dXJuIGRpdmlzaW9uTWFya2Rvd25Ob2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdWJkaXZpc2lvblJlcGxhY2VtZW50c1BhZ2luYXRlZENoaWxkTm9kZXNBbmREaXZpc2lvbkNsYXNzTmFtZShzdWJEaXZpc2lvblJlcGxhY2VtZW50cywgcGFnaW5hdGVkQ2hpbGROb2RlcywgZGl2aXNpb25DbGFzc05hbWUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IERJVklTSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gW1xuICAgICAgICAgICAgLi4ucGFnaW5hdGVkQ2hpbGROb2Rlc1xuICAgICAgICAgIF0sXG4gICAgICAgICAgb3BhY2l0eSA9IG51bGwsXG4gICAgICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGUgPSBNYXJrZG93bk5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkoRGl2aXNpb25NYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBkaXZpc2lvbkNsYXNzTmFtZSk7XG5cbiAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50cy5zb21lKChzdWJEaXZpc2lvblJlcGxhY2VtZW50KSA9PiB7XG4gICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50LmFwcGVuZFRvKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHRydWU7ICAvLy9cbiAgICB9KTtcblxuICAgIHJldHVybiBkaXZpc2lvbk1hcmtkb3duTm9kZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb290bm90ZVJlcGxhY2VtZW50c0Zyb21TdWJkaXZpc2lvblJlcGxhY2VtZW50cyhzdWJkaXZpc2lvblJlcGxhY2VtZW50cykge1xuICBjb25zdCBmb290bm90ZVJlcGxhY2VtZW50cyA9IHN1YmRpdmlzaW9uUmVwbGFjZW1lbnRzLm1hcCgoc3ViZGl2aXNpb25SZXBsYWNlbWVudCkgPT4ge1xuICAgIGNvbnN0IG5vZGUgPSBzdWJkaXZpc2lvblJlcGxhY2VtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICBmb290bm90ZU1hcmtkb3duTm9kZSA9IGZvb3Rub3RlTWFya2Rvd25Ob2RzRnJvbU5vZGUobm9kZSksXG4gICAgICAgICAgZGVzY2VuZGVudE5vZGUgPSBmb290bm90ZU1hcmtkb3duTm9kZSwgIC8vL1xuICAgICAgICAgIGZvb3Rub3RlUmVwbGFjZW1lbnQgPSBzdWJkaXZpc2lvblJlcGxhY2VtZW50LmNvbnRyYWN0KGRlc2NlbmRlbnROb2RlKTtcblxuICAgIHJldHVybiBmb290bm90ZVJlcGxhY2VtZW50O1xuICB9KTtcblxuICByZXR1cm4gZm9vdG5vdGVSZXBsYWNlbWVudHM7XG59XG5cbmZ1bmN0aW9uIGhlYWRpbmdNYXJrZG93bk5vZGVzRnJvbURpdmlzaW9uTWFya2Rvd25Ob2Rlc0FuZERpdmlzaW9uTWFya2Rvd25Ob2RlKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgaGVhZGluZ01hcmtkb3duTm9kZXMgPSBbXSxcbiAgICAgICAgaW5kZXggPSBkaXZpc2lvbk1hcmtkb3duTm9kZXMuaW5kZXhPZihkaXZpc2lvbk1hcmtkb3duTm9kZSksXG4gICAgICAgIHN0YXJ0ID0gaW5kZXggKyAxO1xuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5zbGljZShzdGFydCk7IC8vL1xuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGNvbnN0IG5vZGUgPSBkaXZpc2lvbk1hcmtkb3duTm9kZTsgIC8vL1xuXG4gICAgaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBoZWFkaW5nTWFya2Rvd25Ob2Rlcyk7XG4gIH0pO1xuXG4gIGZpbHRlcihoZWFkaW5nTWFya2Rvd25Ob2RlcywgKGhlYWRpbmdNYXJrZG93bk5vZGUpID0+IHtcbiAgICBjb25zdCB7IGNvbnRlbnRzRGVwdGggfSA9IGNvbnRleHQsXG4gICAgICAgICAgZGVwdGggPSBoZWFkaW5nTWFya2Rvd25Ob2RlLmdldERlcHRoKCk7XG5cbiAgICBpZiAoZGVwdGggPD0gY29udGVudHNEZXB0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gaGVhZGluZ01hcmtkb3duTm9kZXM7XG59Il0sIm5hbWVzIjpbIkRpdmlzaW9uTWFya2Rvd25Ob2RlIiwiY2xlYXIiLCJhcnJheVV0aWxpdGllcyIsImZpbHRlciIsInJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsInByZWNlZGVuY2UiLCJvcGFjaXR5IiwiZG9tRWxlbWVudCIsImRpdmlzaW9uQ2xhc3NOYW1lIiwiZ2V0RGl2aXNpb25DbGFzc05hbWUiLCJzZXREaXZpc2lvbkNsYXNzTmFtZSIsImNsYXNzTmFtZSIsImNvbnRleHQiLCJpc0lnbm9yZWQiLCJub2RlIiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJpZ25vcmVkIiwiZmluZFBhcmVudE5vZGUiLCJjaGlsZE5vZGUiLCJwYXJlbnROb2RlIiwibm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiZ2V0Q2hpbGROb2RlcyIsImluZGV4IiwiaW5kZXhPZiIsIm5vZGVzIiwic29tZSIsInBhZ2luYXRlIiwibGluZXNQZXJQYWdlIiwicGFnaW5hdGVkQ2hpbGROb2RlcyIsImRpdmlzaW9uTWFya2Rvd25Ob2RlcyIsInN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzIiwicmVtb3ZlU3ViZGl2aXNpb25NYXJrZG93bk5vZGVzIiwicGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwidG90YWxMaW5lcyIsImZvckVhY2giLCJsaW5lcyIsInBhZ2luYXRlZENoaWxkTm9kZSIsInB1c2giLCJkaXZpc2lvbk1hcmtkb3duTm9kZSIsImZyb21TdWJkaXZpc2lvblJlcGxhY2VtZW50c1BhZ2luYXRlZENoaWxkTm9kZXNBbmREaXZpc2lvbkNsYXNzTmFtZSIsInNldFBhZ2VOdW1iZXIiLCJwYWdlTnVtYmVyIiwicGFnZU51bWJlckRpcmVjdGl2ZSIsImNyZWF0ZUNvbnRlbnRzIiwiY29udGVudHNDcmVhdGVkIiwiY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGUiLCJjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiaGVhZGluZ01hcmtkb3duTm9kZXMiLCJoZWFkaW5nTWFya2Rvd25Ob2Rlc0Zyb21EaXZpc2lvbk1hcmtkb3duTm9kZXNBbmREaXZpc2lvbk1hcmtkb3duTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwidG9rZW5zIiwiY29udGVudHNMaXN0TWFya2Rvd25Ob2RlIiwiQ29udGVudHNMaXN0TWFya2Rvd25Ob2RlIiwiZnJvbUhlYWRpbmdNYXJrZG93bk5vZGVzIiwiY29udGVudHNMaXN0TWFya2Rvd25Ob2RlVG9rZW5zIiwiZ2V0VG9rZW5zIiwicmVwbGFjZWROb2RlIiwicmVwbGFjZW1lbnROb2RlIiwicmVwbGFjZW1lbnRUb2tlbnMiLCJyZXBsYWNlTm9kZSIsInJlcGxhY2VUb2tlbnMiLCJjcmVhdGVGb290bm90ZXMiLCJmb290bm90ZVJlcGxhY2VtZW50cyIsImZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUiLCJGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIiwiZnJvbUZvb3Rub3RlUmVwbGFjZW1lbnRzQW5kRGl2aXNpb25NYXJrZG93bk5vZGUiLCJyZXBsYWNlbWVudCIsIlJlcGxhY2VtZW50IiwiZnJvbU5vZGUiLCJhcHBlbmRUbyIsInByZXBhcmVGb290bm90ZXMiLCJzdWJkaXZpc2lvblJlcGxhY2VtZW50cyIsImZvb3Rub3RlTWFya2Rvd25Ob2RzRnJvbU5vZGUiLCJmb290bm90ZVJlcGxhY2VtZW50c0Zyb21TdWJkaXZpc2lvblJlcGxhY2VtZW50cyIsImZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwic3ViZGl2aXNpb25SZXBsYWNlbWVudHNMZW5ndGgiLCJyZXNvbHZlRW1iZWRkaW5ncyIsImVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyIsImVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwibWFwIiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGUiLCJyZXBsYWNlbWVudE5vZGVzIiwicmVwbGFjZU5vZGVzIiwibWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZSIsInJlZHVjZSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlIiwibWFya2Rvd25Ob2RlIiwicmVtb3ZlZE5vZGUiLCJzdWJEaXZpc2lvblJlcGxhY2VtZW50IiwicmVtb3ZlVG9rZW5zIiwicmVtb3ZlTm9kZSIsImNyZWF0ZUZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUiLCJmcm9tRGl2aXNpb25NYXJrZG93bk5vZGUiLCJhc0hUTUwiLCJodG1sIiwiaW5kZW50IiwiRU1QVFlfU1RSSU5HIiwiY2hpbGROb2Rlc0hUTUwiLCJjaGlsZE5vZGVzQXNIVE1MIiwic3RhcnRpbmdUYWciLCJjbG9zaW5nVGFnIiwiY2xvbmUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSIsIk1hcmtkb3duTm9kZSIsIkRJVklTSU9OX1JVTEVfTkFNRSIsInN1YmRpdmlzaW9uUmVwbGFjZW1lbnQiLCJnZXROb2RlIiwiZm9vdG5vdGVNYXJrZG93bk5vZGUiLCJkZXNjZW5kZW50Tm9kZSIsImZvb3Rub3RlUmVwbGFjZW1lbnQiLCJjb250cmFjdCIsInN0YXJ0Iiwic2xpY2UiLCJoZWFkaW5nTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwiaGVhZGluZ01hcmtkb3duTm9kZSIsImNvbnRlbnRzRGVwdGgiLCJkZXB0aCIsImdldERlcHRoIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
391
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2RpdmlzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuaW1wb3J0IEZvb3Rub3RlUmVwbGFjZW1lbnQgZnJvbSBcIi4uLy4uL3JlcGxhY2VtZW50L2Zvb3Rub3RlXCI7XG5pbXBvcnQgQ29udGVudHNMaXN0UmVwbGFjZW1lbnQgZnJvbSBcIi4uLy4uL3JlcGxhY2VtZW50L2NvbnRlbnRzTGlzdFwiO1xuaW1wb3J0IEZvb3Rub3Rlc0xpc3RSZXBsYWNlbWVudCBmcm9tIFwiLi4vLi4vcmVwbGFjZW1lbnQvZm9vdG5vdGVzTGlzdFwiO1xuaW1wb3J0IEZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCBmcm9tIFwiLi4vLi4vcmVwbGFjZW1lbnQvc3ViRGl2aXNpb24vZm9vdG5vdGVcIjtcbmltcG9ydCBDb250ZW50c0RpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgZnJvbSBcIi4uLy4uL3JlcGxhY2VtZW50L3N1YkRpdmlzaW9uL2NvbnRlbnRzRGlyZWN0aXZlXCI7XG5pbXBvcnQgRm9vdG5vdGVzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCBmcm9tIFwiLi4vLi4vcmVwbGFjZW1lbnQvc3ViRGl2aXNpb24vZm9vdG5vdGVzRGlyZWN0aXZlXCI7XG5pbXBvcnQgUGFnZU51bWJlckRpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgZnJvbSBcIi4uLy4uL3JlcGxhY2VtZW50L3N1YkRpdmlzaW9uL3BhZ2VOdW1iZXJEaXJlY3RpdmVcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRElWSVNJT05fUlVMRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUsXG4gICAgICAgICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgICAgICAgIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLFxuICAgICAgICAgcGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB7IGNsZWFyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGl2aXNpb25NYXJrZG93bk5vZGUgZXh0ZW5kcyBNYXJrZG93bk5vZGUge1xuICBjb25zdHJ1Y3RvcihydWxlTmFtZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSwgZG9tRWxlbWVudCwgZGl2aXNpb25DbGFzc05hbWUpIHtcbiAgICBzdXBlcihydWxlTmFtZSwgY2hpbGROb2RlcywgcHJlY2VkZW5jZSwgb3BhY2l0eSwgZG9tRWxlbWVudCk7XG5cbiAgICB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lID0gZGl2aXNpb25DbGFzc05hbWU7XG4gIH1cblxuICBnZXREaXZpc2lvbkNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXZpc2lvbkNsYXNzTmFtZTtcbiAgfVxuXG4gIHNldERpdmlzaW9uQ2xhc3NOYW1lKGRpdmlzaW9uQ2xhc3NOYW1lKSB7XG4gICAgdGhpcy5kaXZpc2lvbkNsYXNzTmFtZSA9IGRpdmlzaW9uQ2xhc3NOYW1lO1xuICB9XG5cbiAgY2xhc3NOYW1lKGNvbnRleHQpIHtcbiAgICBjb25zdCBjbGFzc05hbWUgPSB0aGlzLmRpdmlzaW9uQ2xhc3NOYW1lOyAvLy9cblxuICAgIHJldHVybiBjbGFzc05hbWU7XG4gIH1cblxuICBpc0lnbm9yZWQoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsXG4gICAgICAgICAgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSksXG4gICAgICAgICAgaWdub3JlZCA9IChpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGUgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIGlnbm9yZWQ7XG4gIH1cblxuICBwYWdpbmF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgeyBsaW5lc1BlclBhZ2UgfSA9IGNvbnRleHQsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IHRoaXMuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHBhZ2luYXRlZENoaWxkTm9kZXMgPSBbXSxcbiAgICAgICAgICBkaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBbXSxcbiAgICAgICAgICBwYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCA9IHRoaXMucmVtb3ZlU3ViRGl2aXNpb25NYXJrZG93bk5vZGUoUGFnZU51bWJlckRpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgbGV0IHRvdGFsTGluZXMgPSAwO1xuXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGxpbmVzID0gY2hpbGROb2RlLmxpbmVzKGNvbnRleHQpLFxuICAgICAgICAgICAgcGFnaW5hdGVkQ2hpbGROb2RlID0gY2hpbGROb2RlOyAgLy8vXG5cbiAgICAgIHRvdGFsTGluZXMgKz0gbGluZXM7XG5cbiAgICAgIHBhZ2luYXRlZENoaWxkTm9kZXMucHVzaChwYWdpbmF0ZWRDaGlsZE5vZGUpO1xuXG4gICAgICBpZiAodG90YWxMaW5lcyA+IGxpbmVzUGVyUGFnZSkge1xuICAgICAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IERpdmlzaW9uTWFya2Rvd25Ob2RlLmZyb21QYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudFBhZ2luYXRlZENoaWxkTm9kZXNBbmREaXZpc2lvbkNsYXNzTmFtZShwYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgcGFnaW5hdGVkQ2hpbGROb2RlcywgdGhpcy5kaXZpc2lvbkNsYXNzTmFtZSwgY29udGV4dCk7XG5cbiAgICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnB1c2goZGl2aXNpb25NYXJrZG93bk5vZGUpO1xuXG4gICAgICAgIGNsZWFyKHBhZ2luYXRlZENoaWxkTm9kZXMpO1xuXG4gICAgICAgIHRvdGFsTGluZXMgPSAwO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRvdGFsTGluZXMgPiAwKSB7XG4gICAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IERpdmlzaW9uTWFya2Rvd25Ob2RlLmZyb21QYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudFBhZ2luYXRlZENoaWxkTm9kZXNBbmREaXZpc2lvbkNsYXNzTmFtZShwYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgcGFnaW5hdGVkQ2hpbGROb2RlcywgdGhpcy5kaXZpc2lvbkNsYXNzTmFtZSwgY29udGV4dCk7XG5cbiAgICAgIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5wdXNoKGRpdmlzaW9uTWFya2Rvd25Ob2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGVzO1xuICB9XG5cbiAgc2V0UGFnZU51bWJlcihwYWdlTnVtYmVyKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsXG4gICAgICAgICAgcGFnZU51bWJlckRpcmVjdGl2ZSA9IHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKTtcblxuICAgIGlmIChwYWdlTnVtYmVyRGlyZWN0aXZlICE9PSBudWxsKSB7XG4gICAgICBwYWdlTnVtYmVyRGlyZWN0aXZlLnNldFBhZ2VOdW1iZXIocGFnZU51bWJlcik7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQ29udGVudHMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbnRlbnRzQ3JlYXRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGVudHNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gdGhpcy5maW5kU3ViRGl2aXNpb25SZXBsYWNlbWVudChDb250ZW50c0RpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGNvbnRleHQpO1xuXG4gICAgaWYgKGNvbnRlbnRzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgICBjb250ZW50c0xpc3RSZXBsYWNlbWVudCA9IENvbnRlbnRzTGlzdFJlcGxhY2VtZW50LmZyb21EaXZpc2lvbk1hcmtkb3duTm9kZXNBbmREaXZpc2lvbk1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgaWYgKGNvbnRlbnRzTGlzdFJlcGxhY2VtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnRlbnRzTGlzdFJlcGxhY2VtZW50LnJlcGxhY2VDb250ZW50c0RpcmVjdGl2ZVN1YmRpdmlzaW9uUmVwbGFjZW1lbnQoY29udGVudHNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29udGVudHNDcmVhdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29udGVudHNDcmVhdGVkO1xuICB9XG5cbiAgY3JlYXRlRm9vdG5vdGVzKGZvb3Rub3RlUmVwbGFjZW1lbnRzLCBjb250ZXh0KSB7XG4gICAgaWYgKGZvb3Rub3RlUmVwbGFjZW1lbnRzICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICAgIGZvb3Rub3Rlc0xpc3RSZXBsYWNlbWVudCA9IEZvb3Rub3Rlc0xpc3RSZXBsYWNlbWVudC5mcm9tRm9vdG5vdGVSZXBsYWNlbWVudHNBbmREaXZpc2lvbk1hcmtkb3duTm9kZShmb290bm90ZVJlcGxhY2VtZW50cywgZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBpZiAoZm9vdG5vdGVzTGlzdFJlcGxhY2VtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGZvb3Rub3Rlc0xpc3RSZXBsYWNlbWVudC5hcHBlbmRUb0RpdmlzaW9uTWFya2Rvd25Ob2RlKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcmVwYXJlRm9vdG5vdGVzKGNvbnRleHQpIHtcbiAgICBjb25zdCBmb290bm90ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzID0gdGhpcy5yZW1vdmVTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoRm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KTtcblxuICAgIGxldCBmb290bm90ZVJlcGxhY2VtZW50cyA9IGZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudHMubWFwKChmb290bm90ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGZvb3Rub3RlUmVwbGFjZW1lbnQgPSBGb290bm90ZVJlcGxhY2VtZW50LmZyb21Gb290bm90ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQoZm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50KTtcblxuICAgICAgcmV0dXJuIGZvb3Rub3RlUmVwbGFjZW1lbnQ7XG4gICAgfSk7XG5cbiAgICBjb25zdCBmb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gdGhpcy5yZW1vdmVTdWJEaXZpc2lvbk1hcmtkb3duTm9kZShGb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KTtcblxuICAgIGlmIChmb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50ID09PSBudWxsKSB7XG4gICAgICBmb290bm90ZVJlcGxhY2VtZW50cyA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvb3Rub3RlUmVwbGFjZW1lbnRzO1xuICB9XG5cbiAgcmVzb2x2ZUVtYmVkZGluZ3MoY29udGV4dCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzID0gZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSk7XG5cbiAgICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXMubWFwKChlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZSkgPT4ge1xuICAgICAgY29uc3QgaW1wb3J0ZWRSZXBsYWNlbWVudCA9IGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlLmltcG9ydChjb250ZXh0KTtcblxuICAgICAgaWYgKGltcG9ydGVkUmVwbGFjZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgY2hpbGROb2RlID0gZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGUsICAvLy9cbiAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHRoaXMuZmluZFBhcmVudE5vZGUoY2hpbGROb2RlKTtcblxuICAgICAgICBpbXBvcnRlZFJlcGxhY2VtZW50LnJlcGxhY2VFbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZShlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZSwgcGFyZW50Tm9kZSwgY29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmaW5kU3ViRGl2aXNpb25SZXBsYWNlbWVudChTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KSB7XG4gICAgbGV0IHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgPSBudWxsO1xuXG4gICAgY29uc3Qgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzID0gdGhpcy5maW5kU3ViRGl2aXNpb25NYXJrZG93bk5vZGVzKCk7XG5cbiAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMuc29tZSgoc3ViRGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgPSBTdWJEaXZpc2lvblJlcGxhY2VtZW50LmZyb21TdWJEaXZpc2lvbk1hcmtkb3duTm9kZShzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIGlmIChzdWJEaXZpc2lvblJlcGxhY2VtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQ7XG4gIH1cblxuICBmaW5kU3ViRGl2aXNpb25SZXBsYWNlbWVudHMoU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IHRoaXMuZmluZFN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcygpLFxuICAgICAgICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzID0gc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzLnJlZHVjZSgoc3ViRGl2aXNpb25SZXBsYWNlbWVudHMsIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gU3ViRGl2aXNpb25SZXBsYWNlbWVudC5mcm9tU3ViRGl2aXNpb25NYXJrZG93bk5vZGUoc3ViRGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgICBpZiAoc3ViRGl2aXNpb25SZXBsYWNlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50cy5wdXNoKHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3ViRGl2aXNpb25SZXBsYWNlbWVudHM7XG4gICAgICAgICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzO1xuICB9XG5cbiAgZmluZFN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcygpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUpO1xuXG4gICAgcmV0dXJuIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcztcbiAgfVxuXG4gIHJlbW92ZVN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlKFN1YkRpdmlzaW9uUmVwbGFjZW1lbnQsIGNvbnRleHQpIHtcbiAgICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gdGhpcy5maW5kU3ViRGl2aXNpb25SZXBsYWNlbWVudChTdWJEaXZpc2lvblJlcGxhY2VtZW50LCBjb250ZXh0KTtcblxuICAgIGlmIChzdWJEaXZpc2lvblJlcGxhY2VtZW50ICE9PSBudWxsKSB7XG4gICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50LnJlbW92ZUZyb21EaXZpc2lvbk1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnQ7XG4gIH1cblxuICByZW1vdmVTdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMoU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCkge1xuICAgIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIHN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzID0gdGhpcy5maW5kU3ViRGl2aXNpb25SZXBsYWNlbWVudHMoU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgY29udGV4dCk7XG5cbiAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50cy5mb3JFYWNoKChzdWJEaXZpc2lvblJlcGxhY2VtZW50KSA9PiB7XG4gICAgICBzdWJEaXZpc2lvblJlcGxhY2VtZW50LnJlbW92ZUZyb21EaXZpc2lvbk1hcmtkb3duTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3ViRGl2aXNpb25SZXBsYWNlbWVudHM7XG4gIH1cblxuICBjcmVhdGVGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlKGNvbnRleHQpIHtcbiAgICAvLyBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZSA9IHRoaXMsICAvLy9cbiAgICAvLyAgICAgICBmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlID0gRm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZS5mcm9tRGl2aXNpb25NYXJrZG93bk5vZGUoZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpO1xuICAgIC8vXG4gICAgLy8gcmV0dXJuIGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGU7XG4gIH1cblxuICBhc0hUTUwoY29udGV4dCkge1xuICAgIGxldCBodG1sID0gbnVsbDtcblxuICAgIGNvbnN0IGluZGVudCA9IEVNUFRZX1NUUklORyxcbiAgICAgICAgICBjaGlsZE5vZGVzSFRNTCA9IHRoaXMuY2hpbGROb2Rlc0FzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuXG4gICAgaWYgKGNoaWxkTm9kZXNIVE1MICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdGFydGluZ1RhZyA9IHRoaXMuc3RhcnRpbmdUYWcoY29udGV4dCksXG4gICAgICAgICAgICBjbG9zaW5nVGFnID0gdGhpcy5jbG9zaW5nVGFnKGNvbnRleHQpO1xuXG4gICAgICBodG1sID0gYCR7aW5kZW50fSR7c3RhcnRpbmdUYWd9XG4ke2NoaWxkTm9kZXNIVE1MfSR7aW5kZW50fSR7Y2xvc2luZ1RhZ31cbmA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICBjbG9uZSgpIHsgcmV0dXJuIHN1cGVyLmNsb25lKHRoaXMuZGl2aXNpb25DbGFzc05hbWUpOyB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KSB7XG4gICAgY29uc3QgZGl2aXNpb25DbGFzc05hbWUgPSBudWxsLFxuICAgICAgICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlID0gTWFya2Rvd25Ob2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KERpdmlzaW9uTWFya2Rvd25Ob2RlLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgZGl2aXNpb25DbGFzc05hbWUpO1xuXG4gICAgcmV0dXJuIGRpdmlzaW9uTWFya2Rvd25Ob2RlO1xuICB9XG5cbiAgc3RhdGljIGZyb21QYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudFBhZ2luYXRlZENoaWxkTm9kZXNBbmREaXZpc2lvbkNsYXNzTmFtZShwYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCwgcGFnaW5hdGVkQ2hpbGROb2RlcywgZGl2aXNpb25DbGFzc05hbWUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBydWxlTmFtZSA9IERJVklTSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gW1xuICAgICAgICAgICAgLi4ucGFnaW5hdGVkQ2hpbGROb2Rlc1xuICAgICAgICAgIF0sXG4gICAgICAgICAgb3BhY2l0eSA9IG51bGwsXG4gICAgICAgICAgZGl2aXNpb25NYXJrZG93bk5vZGUgPSBNYXJrZG93bk5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkoRGl2aXNpb25NYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBkaXZpc2lvbkNsYXNzTmFtZSk7XG5cbiAgICBpZiAocGFnZU51bWJlckRpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHBhZ2VOdW1iZXJEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50ID0gcGFnZU51bWJlckRpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQuY2xvbmUoKTsgIC8vL1xuXG4gICAgICBwYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudC5hcHBlbmRUb0RpdmlzaW9uTWFya2Rvd25Ob2RlKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJEaXZpc2lvbk1hcmtkb3duTm9kZSIsImNsZWFyIiwiYXJyYXlVdGlsaXRpZXMiLCJydWxlTmFtZSIsImNoaWxkTm9kZXMiLCJwcmVjZWRlbmNlIiwib3BhY2l0eSIsImRvbUVsZW1lbnQiLCJkaXZpc2lvbkNsYXNzTmFtZSIsImdldERpdmlzaW9uQ2xhc3NOYW1lIiwic2V0RGl2aXNpb25DbGFzc05hbWUiLCJjbGFzc05hbWUiLCJjb250ZXh0IiwiaXNJZ25vcmVkIiwibm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiaWdub3JlZCIsInBhZ2luYXRlIiwibGluZXNQZXJQYWdlIiwiZ2V0Q2hpbGROb2RlcyIsInBhZ2luYXRlZENoaWxkTm9kZXMiLCJkaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJwYWdlTnVtYmVyRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsInJlbW92ZVN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlIiwiUGFnZU51bWJlckRpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJ0b3RhbExpbmVzIiwiZm9yRWFjaCIsImNoaWxkTm9kZSIsImxpbmVzIiwicGFnaW5hdGVkQ2hpbGROb2RlIiwicHVzaCIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwiZnJvbVBhZ2VOdW1iZXJEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50UGFnaW5hdGVkQ2hpbGROb2Rlc0FuZERpdmlzaW9uQ2xhc3NOYW1lIiwic2V0UGFnZU51bWJlciIsInBhZ2VOdW1iZXIiLCJwYWdlTnVtYmVyRGlyZWN0aXZlIiwicGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiY3JlYXRlQ29udGVudHMiLCJjb250ZW50c0NyZWF0ZWQiLCJjb250ZW50c0RpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJmaW5kU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsIkNvbnRlbnRzRGlyZWN0aXZlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsImNvbnRlbnRzTGlzdFJlcGxhY2VtZW50IiwiQ29udGVudHNMaXN0UmVwbGFjZW1lbnQiLCJmcm9tRGl2aXNpb25NYXJrZG93bk5vZGVzQW5kRGl2aXNpb25NYXJrZG93bk5vZGUiLCJyZXBsYWNlQ29udGVudHNEaXJlY3RpdmVTdWJkaXZpc2lvblJlcGxhY2VtZW50IiwiY3JlYXRlRm9vdG5vdGVzIiwiZm9vdG5vdGVSZXBsYWNlbWVudHMiLCJmb290bm90ZXNMaXN0UmVwbGFjZW1lbnQiLCJGb290bm90ZXNMaXN0UmVwbGFjZW1lbnQiLCJmcm9tRm9vdG5vdGVSZXBsYWNlbWVudHNBbmREaXZpc2lvbk1hcmtkb3duTm9kZSIsImFwcGVuZFRvRGl2aXNpb25NYXJrZG93bk5vZGUiLCJwcmVwYXJlRm9vdG5vdGVzIiwiZm9vdG5vdGVTdWJEaXZpc2lvblJlcGxhY2VtZW50cyIsInJlbW92ZVN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyIsIkZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsIm1hcCIsImZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsImZvb3Rub3RlUmVwbGFjZW1lbnQiLCJGb290bm90ZVJlcGxhY2VtZW50IiwiZnJvbUZvb3Rub3RlU3ViRGl2aXNpb25SZXBsYWNlbWVudCIsImZvb3Rub3Rlc0RpcmVjdGl2ZVN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJGb290bm90ZXNEaXJlY3RpdmVTdWJEaXZpc2lvblJlcGxhY2VtZW50IiwicmVzb2x2ZUVtYmVkZGluZ3MiLCJlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXMiLCJlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwiaW1wb3J0ZWRSZXBsYWNlbWVudCIsImltcG9ydCIsInBhcmVudE5vZGUiLCJmaW5kUGFyZW50Tm9kZSIsInJlcGxhY2VFbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZSIsIlN1YkRpdmlzaW9uUmVwbGFjZW1lbnQiLCJzdWJEaXZpc2lvblJlcGxhY2VtZW50Iiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzIiwiZmluZFN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyIsInNvbWUiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSIsImZyb21TdWJEaXZpc2lvbk1hcmtkb3duTm9kZSIsImZpbmRTdWJEaXZpc2lvblJlcGxhY2VtZW50cyIsInN1YkRpdmlzaW9uUmVwbGFjZW1lbnRzIiwicmVkdWNlIiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJyZW1vdmVGcm9tRGl2aXNpb25NYXJrZG93bk5vZGUiLCJjcmVhdGVGb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIiwiYXNIVE1MIiwiaHRtbCIsImluZGVudCIsIkVNUFRZX1NUUklORyIsImNoaWxkTm9kZXNIVE1MIiwiY2hpbGROb2Rlc0FzSFRNTCIsInN0YXJ0aW5nVGFnIiwiY2xvc2luZ1RhZyIsImNsb25lIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkiLCJNYXJrZG93bk5vZGUiLCJESVZJU0lPTl9SVUxFX05BTUUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFzQnFCQTs7O3lCQXBCVTsrREFFTjsrREFDTzttRUFDSTtvRUFDQztnRUFDTTt3RUFDUzt5RUFDQzswRUFDQzt5QkFFekI7eUJBQ007cUJBSXFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXhELElBQU0sQUFBRUMsUUFBVUMseUJBQWMsQ0FBeEJEO0FBRU8sSUFBQSxBQUFNRCxxQ0FBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQSxxQkFDUEcsUUFBUSxFQUFFQyxVQUFVLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLGlCQUFpQjtnQ0FEakVSOztrQ0FFWEcsVUFBVUMsWUFBWUMsWUFBWUMsU0FBU0M7UUFFakQsTUFBS0MsaUJBQWlCLEdBQUdBOzs7a0JBSlJSOztZQU9uQlMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxpQkFBaUI7WUFDL0I7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEscUJBQXFCRixpQkFBaUI7Z0JBQ3BDLElBQUksQ0FBQ0EsaUJBQWlCLEdBQUdBO1lBQzNCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVVDLE9BQU87Z0JBQ2YsSUFBTUQsWUFBWSxJQUFJLENBQUNILGlCQUFpQixFQUFFLEdBQUc7Z0JBRTdDLE9BQU9HO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsT0FBTyxJQUFJLEVBQ1hDLDhCQUE4QkMsSUFBQUEsMENBQW1DLEVBQUNGLE9BQ2xFRyxVQUFXRixnQ0FBZ0M7Z0JBRWpELE9BQU9FO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsU0FBU04sT0FBTzs7Z0JBQ2QsSUFBTSxBQUFFTyxlQUFpQlAsUUFBakJPLGNBQ0ZmLGFBQWEsSUFBSSxDQUFDZ0IsYUFBYSxJQUMvQkMsc0JBQXNCLEVBQUUsRUFDeEJDLHdCQUF3QixFQUFFLEVBQzFCQyw0Q0FBNEMsSUFBSSxDQUFDQyw2QkFBNkIsQ0FBQ0MsNEJBQXlDLEVBQUViO2dCQUVoSSxJQUFJYyxhQUFhO2dCQUVqQnRCLFdBQVd1QixPQUFPLENBQUMsU0FBQ0M7b0JBQ2xCLElBQU1DLFFBQVFELFVBQVVDLEtBQUssQ0FBQ2pCLFVBQ3hCa0IscUJBQXFCRixXQUFZLEdBQUc7b0JBRTFDRixjQUFjRztvQkFFZFIsb0JBQW9CVSxJQUFJLENBQUNEO29CQUV6QixJQUFJSixhQUFhUCxjQUFjO3dCQUM3QixJQUFNYSx1QkFBdUJoQyxBQS9DaEJBLHFCQStDcUNpQyxvRkFBb0YsQ0FBQ1YsMkNBQTJDRixxQkFBcUIsTUFBS2IsaUJBQWlCLEVBQUVJO3dCQUUvTlUsc0JBQXNCUyxJQUFJLENBQUNDO3dCQUUzQi9CLE1BQU1vQjt3QkFFTkssYUFBYTtvQkFDZjtnQkFDRjtnQkFFQSxJQUFJQSxhQUFhLEdBQUc7b0JBQ2xCLElBQU1NLHVCQUF1QmhDLEFBMURkQSxxQkEwRG1DaUMsb0ZBQW9GLENBQUNWLDJDQUEyQ0YscUJBQXFCLElBQUksQ0FBQ2IsaUJBQWlCLEVBQUVJO29CQUUvTlUsc0JBQXNCUyxJQUFJLENBQUNDO2dCQUM3QjtnQkFFQSxPQUFPVjtZQUNUOzs7WUFFQVksS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWNDLFVBQVU7Z0JBQ3RCLElBQU1yQixPQUFPLElBQUksRUFDWHNCLHNCQUFzQkMsSUFBQUEsOENBQXVDLEVBQUN2QjtnQkFFcEUsSUFBSXNCLHdCQUF3QixNQUFNO29CQUNoQ0Esb0JBQW9CRixhQUFhLENBQUNDO2dCQUNwQztZQUNGOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLGVBQWVoQixxQkFBcUIsRUFBRVYsT0FBTztnQkFDM0MsSUFBSTJCLGtCQUFrQjtnQkFFdEIsSUFBTUMsMENBQTBDLElBQUksQ0FBQ0MsMEJBQTBCLENBQUNDLDBCQUF1QyxFQUFFOUI7Z0JBRXpILElBQUk0Qiw0Q0FBNEMsTUFBTTtvQkFDcEQsSUFBTVIsdUJBQXVCLElBQUksRUFDM0JXLDBCQUEwQkMscUJBQXVCLENBQUNDLGdEQUFnRCxDQUFDdkIsdUJBQXVCVSxzQkFBc0JwQjtvQkFFdEosSUFBSStCLDRCQUE0QixNQUFNO3dCQUNwQ0Esd0JBQXdCRyw4Q0FBOEMsQ0FBQ04seUNBQXlDUixzQkFBc0JwQjt3QkFFdEkyQixrQkFBa0I7b0JBQ3BCO2dCQUNGO2dCQUVBLE9BQU9BO1lBQ1Q7OztZQUVBUSxLQUFBQTttQkFBQUEsU0FBQUEsZ0JBQWdCQyxvQkFBb0IsRUFBRXBDLE9BQU87Z0JBQzNDLElBQUlvQyx5QkFBeUIsTUFBTTtvQkFDakMsSUFBTWhCLHVCQUF1QixJQUFJLEVBQzNCaUIsMkJBQTJCQyxzQkFBd0IsQ0FBQ0MsK0NBQStDLENBQUNILHNCQUFzQmhCLHNCQUFzQnBCO29CQUV0SixJQUFJcUMsNkJBQTZCLE1BQU07d0JBQ3JDQSx5QkFBeUJHLDRCQUE0QixDQUFDcEIsc0JBQXNCcEI7b0JBQzlFO2dCQUNGO1lBQ0Y7OztZQUVBeUMsS0FBQUE7bUJBQUFBLFNBQUFBLGlCQUFpQnpDLE9BQU87Z0JBQ3RCLElBQU0wQyxrQ0FBa0MsSUFBSSxDQUFDQyw4QkFBOEIsQ0FBQ0Msa0JBQThCLEVBQUU1QztnQkFFNUcsSUFBSW9DLHVCQUF1Qk0sZ0NBQWdDRyxHQUFHLENBQUMsU0FBQ0M7b0JBQzlELElBQU1DLHNCQUFzQkMsaUJBQW1CLENBQUNDLGtDQUFrQyxDQUFDSDtvQkFFbkYsT0FBT0M7Z0JBQ1Q7Z0JBRUEsSUFBTUcsMkNBQTJDLElBQUksQ0FBQ3RDLDZCQUE2QixDQUFDdUMsMkJBQXdDLEVBQUVuRDtnQkFFOUgsSUFBSWtELDZDQUE2QyxNQUFNO29CQUNyRGQsdUJBQXVCO2dCQUN6QjtnQkFFQSxPQUFPQTtZQUNUOzs7WUFFQWdCLEtBQUFBO21CQUFBQSxTQUFBQSxrQkFBa0JwRCxPQUFPOztnQkFDdkIsSUFBTUUsT0FBTyxJQUFJLEVBQ1htRCw4QkFBOEJDLElBQUFBLDBDQUFtQyxFQUFDcEQ7Z0JBRXhFbUQsNEJBQTRCUixHQUFHLENBQUMsU0FBQ1U7b0JBQy9CLElBQU1DLHNCQUFzQkQsMkJBQTJCRSxNQUFNLENBQUN6RDtvQkFFOUQsSUFBSXdELHdCQUF3QixNQUFNO3dCQUNoQyxJQUFNeEMsWUFBWXVDLDRCQUNaRyxhQUFhLE1BQUtDLGNBQWMsQ0FBQzNDO3dCQUV2Q3dDLG9CQUFvQkksaUNBQWlDLENBQUNMLDRCQUE0QkcsWUFBWTFEO29CQUNoRztnQkFDRjtZQUNGOzs7WUFFQTZCLEtBQUFBO21CQUFBQSxTQUFBQSwyQkFBMkJnQyxzQkFBc0IsRUFBRTdELE9BQU87Z0JBQ3hELElBQUk4RCx5QkFBeUI7Z0JBRTdCLElBQU1DLDJCQUEyQixJQUFJLENBQUNDLDRCQUE0QjtnQkFFbEVELHlCQUF5QkUsSUFBSSxDQUFDLFNBQUNDO29CQUM3QkoseUJBQXlCRCx1QkFBdUJNLDJCQUEyQixDQUFDRCx5QkFBeUJsRTtvQkFFckcsSUFBSThELDJCQUEyQixNQUFNO3dCQUNuQyxPQUFPO29CQUNUO2dCQUNGO2dCQUVBLE9BQU9BO1lBQ1Q7OztZQUVBTSxLQUFBQTttQkFBQUEsU0FBQUEsNEJBQTRCUCxzQkFBc0IsRUFBRTdELE9BQU87Z0JBQ3pELElBQU0rRCwyQkFBMkIsSUFBSSxDQUFDQyw0QkFBNEIsSUFDNURLLDBCQUEwQk4seUJBQXlCTyxNQUFNLENBQUMsU0FBQ0QseUJBQXlCSDtvQkFDbEYsSUFBTUoseUJBQXlCRCx1QkFBdUJNLDJCQUEyQixDQUFDRCx5QkFBeUJsRTtvQkFFM0csSUFBSThELDJCQUEyQixNQUFNO3dCQUNuQ08sd0JBQXdCbEQsSUFBSSxDQUFDMkM7b0JBQy9CO29CQUVBLE9BQU9PO2dCQUNULEdBQUcsRUFBRTtnQkFFWCxPQUFPQTtZQUNUOzs7WUFFQUwsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU05RCxPQUFPLElBQUksRUFDWDZELDJCQUEyQlEsSUFBQUEsdUNBQWdDLEVBQUNyRTtnQkFFbEUsT0FBTzZEO1lBQ1Q7OztZQUVBbkQsS0FBQUE7bUJBQUFBLFNBQUFBLDhCQUE4QmlELHNCQUFzQixFQUFFN0QsT0FBTztnQkFDM0QsSUFBTW9CLHVCQUF1QixJQUFJLEVBQzNCMEMseUJBQXlCLElBQUksQ0FBQ2pDLDBCQUEwQixDQUFDZ0Msd0JBQXdCN0Q7Z0JBRXZGLElBQUk4RCwyQkFBMkIsTUFBTTtvQkFDbkNBLHVCQUF1QlUsOEJBQThCLENBQUNwRCxzQkFBc0JwQjtnQkFDOUU7Z0JBRUEsT0FBTzhEO1lBQ1Q7OztZQUVBbkIsS0FBQUE7bUJBQUFBLFNBQUFBLCtCQUErQmtCLHNCQUFzQixFQUFFN0QsT0FBTztnQkFDNUQsSUFBTW9CLHVCQUF1QixJQUFJLEVBQzNCaUQsMEJBQTBCLElBQUksQ0FBQ0QsMkJBQTJCLENBQUNQLHdCQUF3QjdEO2dCQUV6RnFFLHdCQUF3QnRELE9BQU8sQ0FBQyxTQUFDK0M7b0JBQy9CQSx1QkFBdUJVLDhCQUE4QixDQUFDcEQsc0JBQXNCcEI7Z0JBQzlFO2dCQUVBLE9BQU9xRTtZQUNUOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLGdDQUFnQ3pFLE9BQU87WUFDckMsMENBQTBDO1lBQzFDLHVIQUF1SDtZQUN2SCxFQUFFO1lBQ0Ysb0NBQW9DO1lBQ3RDOzs7WUFFQTBFLEtBQUFBO21CQUFBQSxTQUFBQSxPQUFPMUUsT0FBTztnQkFDWixJQUFJMkUsT0FBTztnQkFFWCxJQUFNQyxTQUFTQyx1QkFBWSxFQUNyQkMsaUJBQWlCLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUNILFFBQVE1RTtnQkFFckQsSUFBSThFLG1CQUFtQixNQUFNO29CQUMzQixJQUFNRSxjQUFjLElBQUksQ0FBQ0EsV0FBVyxDQUFDaEYsVUFDL0JpRixhQUFhLElBQUksQ0FBQ0EsVUFBVSxDQUFDakY7b0JBRW5DMkUsT0FBTyxBQUFDLEdBQVdLLE9BQVRKLFFBQ2RFLE9BRHVCRSxhQUFZLE1BQ2xCSixPQUFqQkUsZ0JBQTBCRyxPQUFUTCxRQUFvQixPQUFYSyxZQUFXO2dCQUVuQztnQkFFQSxPQUFPTjtZQUNUOzs7WUFFQU8sS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUFVLE9BQU8sdUJBaE9FOUYsaUNBZ09JOEYsU0FBTixJQUFLLGFBQU8sSUFBSSxDQUFDdEYsaUJBQWlCO1lBQUc7Ozs7WUFFL0N1RixLQUFBQTttQkFBUCxTQUFPQSxpQ0FBaUM1RixRQUFRLEVBQUVDLFVBQVUsRUFBRUUsT0FBTztnQkFDbkUsSUFBTUUsb0JBQW9CLE1BQ3BCd0IsdUJBQXVCZ0UsaUJBQVksQ0FBQ0QsZ0NBQWdDLENBcE96RC9GLHNCQW9PZ0ZHLFVBQVVDLFlBQVlFLFNBQVNFO2dCQUVoSSxPQUFPd0I7WUFDVDs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLHFGQUFxRlYseUNBQXlDLEVBQUVGLG1CQUFtQixFQUFFYixpQkFBaUIsRUFBRUksT0FBTztnQkFDcEwsSUFBTVQsV0FBVzhGLDZCQUFrQixFQUM3QjdGLGFBQ0UscUJBQUdpQixzQkFFTGYsVUFBVSxNQUNWMEIsdUJBQXVCZ0UsaUJBQVksQ0FBQ0QsZ0NBQWdDLENBL096RC9GLHNCQStPZ0ZHLFVBQVVDLFlBQVlFLFNBQVNFO2dCQUVoSSxJQUFJZSw4Q0FBOEMsTUFBTTtvQkFDdERBLDRDQUE0Q0EsMENBQTBDdUUsS0FBSyxJQUFLLEdBQUc7b0JBRW5HdkUsMENBQTBDNkIsNEJBQTRCLENBQUNwQixzQkFBc0JwQjtnQkFDL0Y7Z0JBRUEsT0FBT29CO1lBQ1Q7OztXQXhQbUJoQztFQUE2QmdHLGlCQUFZIn0=
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  Object.defineProperty(exports, "default", {
6
6
  enumerable: true,
7
7
  get: function() {
8
- return FootnoteItemMarkdownNode;
8
+ return FootnotesItemMarkdownNode;
9
9
  }
10
10
  });
11
11
  var _necessary = require("necessary");
@@ -103,14 +103,14 @@ function _create_super(Derived) {
103
103
  };
104
104
  }
105
105
  var first = _necessary.arrayUtilities.first, second = _necessary.arrayUtilities.second;
106
- var FootnoteItemMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
107
- _inherits(FootnoteItemMarkdownNode, MarkdownNode);
108
- var _super = _create_super(FootnoteItemMarkdownNode);
109
- function FootnoteItemMarkdownNode() {
110
- _class_call_check(this, FootnoteItemMarkdownNode);
106
+ var FootnotesItemMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
107
+ _inherits(FootnotesItemMarkdownNode, MarkdownNode);
108
+ var _super = _create_super(FootnotesItemMarkdownNode);
109
+ function FootnotesItemMarkdownNode() {
110
+ _class_call_check(this, FootnotesItemMarkdownNode);
111
111
  return _super.apply(this, arguments);
112
112
  }
113
- _create_class(FootnoteItemMarkdownNode, [
113
+ _create_class(FootnotesItemMarkdownNode, [
114
114
  {
115
115
  key: "identifier",
116
116
  value: function identifier(context) {
@@ -122,15 +122,15 @@ var FootnoteItemMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
122
122
  {
123
123
  key: "fromFootnotesMarkdownNodeAndIdentifier",
124
124
  value: function fromFootnotesMarkdownNodeAndIdentifier(footnoteMarkdownNode, identifier) {
125
- var anchorMarkdownNode = _anchor.default.fromIdentifier(identifier), footnoteMarkdownNodeChildNodes = footnoteMarkdownNode.getChildNodes(), secondFootnoteMarkdownNodeChildNode = second(footnoteMarkdownNodeChildNodes), paragraphMarkdownNode = secondFootnoteMarkdownNodeChildNode, ruleName = _ruleNames.FOOTNOTE_ITEM_RULE_NAME, childNodes = [
125
+ var anchorMarkdownNode = _anchor.default.fromIdentifier(identifier), footnoteMarkdownNodeChildNodes = footnoteMarkdownNode.getChildNodes(), secondFootnoteMarkdownNodeChildNode = second(footnoteMarkdownNodeChildNodes), paragraphMarkdownNode = secondFootnoteMarkdownNodeChildNode, ruleName = _ruleNames.FOOTNOTES_ITEM_RULE_NAME, childNodes = [
126
126
  anchorMarkdownNode,
127
127
  paragraphMarkdownNode
128
- ], opacity = null, footnoteItemMarkdownNode = _markdown.default.fromRuleNameChildNodesAndOpacity(FootnoteItemMarkdownNode, ruleName, childNodes, opacity);
129
- return footnoteItemMarkdownNode;
128
+ ], opacity = null, footnotesItemMarkdownNode = _markdown.default.fromRuleNameChildNodesAndOpacity(FootnotesItemMarkdownNode, ruleName, childNodes, opacity);
129
+ return footnotesItemMarkdownNode;
130
130
  }
131
131
  }
132
132
  ]);
133
- return FootnoteItemMarkdownNode;
133
+ return FootnotesItemMarkdownNode;
134
134
  }(_markdown.default);
135
135
 
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2Zvb3Rub3RlSXRlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBNYXJrZG93bk5vZGUgZnJvbSBcIi4uLy4uL25vZGUvbWFya2Rvd25cIjtcbmltcG9ydCBBbmNob3JNYXJrZG93bk5vZGUgZnJvbSBcIi4uLy4uL25vZGUvbWFya2Rvd24vYW5jaG9yXCI7XG5cbmltcG9ydCB7IEZPT1ROT1RFX0lURU1fUlVMRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCB7IGZpcnN0LCBzZWNvbmQgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb290bm90ZUl0ZW1NYXJrZG93bk5vZGUgZXh0ZW5kcyBNYXJrZG93bk5vZGUge1xuICBpZGVudGlmaWVyKGNvbnRleHQpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgZmlyc3RDaGlsZE5vZGUgPSBmaXJzdChjaGlsZE5vZGVzKSxcbiAgICAgICAgICBhbmNob3JNYXJrZG93bk5vZGUgPSBmaXJzdENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgIGlkZW50aWZpZXIgPSBhbmNob3JNYXJrZG93bk5vZGUuZ2V0SWRlbnRpZmllcigpO1xuXG4gICAgcmV0dXJuIGlkZW50aWZpZXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbUZvb3Rub3Rlc01hcmtkb3duTm9kZUFuZElkZW50aWZpZXIoZm9vdG5vdGVNYXJrZG93bk5vZGUsIGlkZW50aWZpZXIpIHtcbiAgICBjb25zdCBhbmNob3JNYXJrZG93bk5vZGUgPSBBbmNob3JNYXJrZG93bk5vZGUuZnJvbUlkZW50aWZpZXIoaWRlbnRpZmllciksXG4gICAgICAgICAgZm9vdG5vdGVNYXJrZG93bk5vZGVDaGlsZE5vZGVzID0gZm9vdG5vdGVNYXJrZG93bk5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHNlY29uZEZvb3Rub3RlTWFya2Rvd25Ob2RlQ2hpbGROb2RlID0gc2Vjb25kKGZvb3Rub3RlTWFya2Rvd25Ob2RlQ2hpbGROb2RlcyksXG4gICAgICAgICAgcGFyYWdyYXBoTWFya2Rvd25Ob2RlID0gc2Vjb25kRm9vdG5vdGVNYXJrZG93bk5vZGVDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICBydWxlTmFtZSA9IEZPT1ROT1RFX0lURU1fUlVMRV9OQU1FLFxuICAgICAgICAgIGNoaWxkTm9kZXMgPSBbXG4gICAgICAgICAgICBhbmNob3JNYXJrZG93bk5vZGUsXG4gICAgICAgICAgICBwYXJhZ3JhcGhNYXJrZG93bk5vZGVcbiAgICAgICAgICBdLFxuICAgICAgICAgIG9wYWNpdHkgPSBudWxsLFxuICAgICAgICAgIGZvb3Rub3RlSXRlbU1hcmtkb3duTm9kZSA9IE1hcmtkb3duTm9kZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eShGb290bm90ZUl0ZW1NYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KTtcblxuICAgIHJldHVybiBmb290bm90ZUl0ZW1NYXJrZG93bk5vZGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGb290bm90ZUl0ZW1NYXJrZG93bk5vZGUiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwic2Vjb25kIiwiaWRlbnRpZmllciIsImNvbnRleHQiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsImZpcnN0Q2hpbGROb2RlIiwiYW5jaG9yTWFya2Rvd25Ob2RlIiwiZ2V0SWRlbnRpZmllciIsImZyb21Gb290bm90ZXNNYXJrZG93bk5vZGVBbmRJZGVudGlmaWVyIiwiZm9vdG5vdGVNYXJrZG93bk5vZGUiLCJBbmNob3JNYXJrZG93bk5vZGUiLCJmcm9tSWRlbnRpZmllciIsImZvb3Rub3RlTWFya2Rvd25Ob2RlQ2hpbGROb2RlcyIsInNlY29uZEZvb3Rub3RlTWFya2Rvd25Ob2RlQ2hpbGROb2RlIiwicGFyYWdyYXBoTWFya2Rvd25Ob2RlIiwicnVsZU5hbWUiLCJGT09UTk9URV9JVEVNX1JVTEVfTkFNRSIsIm9wYWNpdHkiLCJmb290bm90ZUl0ZW1NYXJrZG93bk5vZGUiLCJNYXJrZG93bk5vZGUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVdxQkE7Ozt5QkFUVTsrREFFTjs2REFDTTt5QkFFUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4QyxJQUFRQyxRQUFrQkMseUJBQWMsQ0FBaENELE9BQU9FLFNBQVdELHlCQUFjLENBQXpCQztBQUVBLElBQUEsQUFBTUgseUNBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNuQkksS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVdDLE9BQU87Z0JBQ2hCLElBQU1DLGFBQWEsSUFBSSxDQUFDQyxhQUFhLElBQy9CQyxpQkFBaUJQLE1BQU1LLGFBQ3ZCRyxxQkFBcUJELGdCQUNyQkosYUFBYUssbUJBQW1CQyxhQUFhO2dCQUVuRCxPQUFPTjtZQUNUOzs7O1lBRU9PLEtBQUFBO21CQUFQLFNBQU9BLHVDQUF1Q0Msb0JBQW9CLEVBQUVSLFVBQVU7Z0JBQzVFLElBQU1LLHFCQUFxQkksZUFBa0IsQ0FBQ0MsY0FBYyxDQUFDVixhQUN2RFcsaUNBQWlDSCxxQkFBcUJMLGFBQWEsSUFDbkVTLHNDQUFzQ2IsT0FBT1ksaUNBQzdDRSx3QkFBd0JELHFDQUN4QkUsV0FBV0Msa0NBQXVCLEVBQ2xDYixhQUFhO29CQUNYRztvQkFDQVE7aUJBQ0QsRUFDREcsVUFBVSxNQUNWQywyQkFBMkJDLGlCQUFZLENBQUNDLGdDQUFnQyxDQXJCN0R2QiwwQkFxQndGa0IsVUFBVVosWUFBWWM7Z0JBRS9ILE9BQU9DO1lBQ1Q7OztXQXhCbUJyQjtFQUFpQ3NCLGlCQUFZIn0=
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL2Zvb3Rub3Rlc0l0ZW0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgTWFya2Rvd25Ob2RlIGZyb20gXCIuLi8uLi9ub2RlL21hcmtkb3duXCI7XG5pbXBvcnQgQW5jaG9yTWFya2Rvd25Ob2RlIGZyb20gXCIuLi8uLi9ub2RlL21hcmtkb3duL2FuY2hvclwiO1xuXG5pbXBvcnQgeyBGT09UTk9URVNfSVRFTV9SVUxFX05BTUUgfSBmcm9tIFwiLi4vLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHsgZmlyc3QsIHNlY29uZCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvb3Rub3Rlc0l0ZW1NYXJrZG93bk5vZGUgZXh0ZW5kcyBNYXJrZG93bk5vZGUge1xuICBpZGVudGlmaWVyKGNvbnRleHQpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgZmlyc3RDaGlsZE5vZGUgPSBmaXJzdChjaGlsZE5vZGVzKSxcbiAgICAgICAgICBhbmNob3JNYXJrZG93bk5vZGUgPSBmaXJzdENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgIGlkZW50aWZpZXIgPSBhbmNob3JNYXJrZG93bk5vZGUuZ2V0SWRlbnRpZmllcigpO1xuXG4gICAgcmV0dXJuIGlkZW50aWZpZXI7XG4gIH1cblxuICBzdGF0aWMgZnJvbUZvb3Rub3Rlc01hcmtkb3duTm9kZUFuZElkZW50aWZpZXIoZm9vdG5vdGVNYXJrZG93bk5vZGUsIGlkZW50aWZpZXIpIHtcbiAgICBjb25zdCBhbmNob3JNYXJrZG93bk5vZGUgPSBBbmNob3JNYXJrZG93bk5vZGUuZnJvbUlkZW50aWZpZXIoaWRlbnRpZmllciksXG4gICAgICAgICAgZm9vdG5vdGVNYXJrZG93bk5vZGVDaGlsZE5vZGVzID0gZm9vdG5vdGVNYXJrZG93bk5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHNlY29uZEZvb3Rub3RlTWFya2Rvd25Ob2RlQ2hpbGROb2RlID0gc2Vjb25kKGZvb3Rub3RlTWFya2Rvd25Ob2RlQ2hpbGROb2RlcyksXG4gICAgICAgICAgcGFyYWdyYXBoTWFya2Rvd25Ob2RlID0gc2Vjb25kRm9vdG5vdGVNYXJrZG93bk5vZGVDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICBydWxlTmFtZSA9IEZPT1ROT1RFU19JVEVNX1JVTEVfTkFNRSxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gW1xuICAgICAgICAgICAgYW5jaG9yTWFya2Rvd25Ob2RlLFxuICAgICAgICAgICAgcGFyYWdyYXBoTWFya2Rvd25Ob2RlXG4gICAgICAgICAgXSxcbiAgICAgICAgICBvcGFjaXR5ID0gbnVsbCxcbiAgICAgICAgICBmb290bm90ZXNJdGVtTWFya2Rvd25Ob2RlID0gTWFya2Rvd25Ob2RlLmZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KEZvb3Rub3Rlc0l0ZW1NYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KTtcblxuICAgIHJldHVybiBmb290bm90ZXNJdGVtTWFya2Rvd25Ob2RlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiRm9vdG5vdGVzSXRlbU1hcmtkb3duTm9kZSIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJzZWNvbmQiLCJpZGVudGlmaWVyIiwiY29udGV4dCIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiZmlyc3RDaGlsZE5vZGUiLCJhbmNob3JNYXJrZG93bk5vZGUiLCJnZXRJZGVudGlmaWVyIiwiZnJvbUZvb3Rub3Rlc01hcmtkb3duTm9kZUFuZElkZW50aWZpZXIiLCJmb290bm90ZU1hcmtkb3duTm9kZSIsIkFuY2hvck1hcmtkb3duTm9kZSIsImZyb21JZGVudGlmaWVyIiwiZm9vdG5vdGVNYXJrZG93bk5vZGVDaGlsZE5vZGVzIiwic2Vjb25kRm9vdG5vdGVNYXJrZG93bk5vZGVDaGlsZE5vZGUiLCJwYXJhZ3JhcGhNYXJrZG93bk5vZGUiLCJydWxlTmFtZSIsIkZPT1ROT1RFU19JVEVNX1JVTEVfTkFNRSIsIm9wYWNpdHkiLCJmb290bm90ZXNJdGVtTWFya2Rvd25Ob2RlIiwiTWFya2Rvd25Ob2RlIiwiZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFXcUJBOzs7eUJBVFU7K0RBRU47NkRBQ007eUJBRVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFekMsSUFBUUMsUUFBa0JDLHlCQUFjLENBQWhDRCxPQUFPRSxTQUFXRCx5QkFBYyxDQUF6QkM7QUFFQSxJQUFBLEFBQU1ILDBDQUFELEFBQUw7Y0FBTUE7K0JBQUFBO2FBQUFBO2dDQUFBQTs7O2tCQUFBQTs7WUFDbkJJLEtBQUFBO21CQUFBQSxTQUFBQSxXQUFXQyxPQUFPO2dCQUNoQixJQUFNQyxhQUFhLElBQUksQ0FBQ0MsYUFBYSxJQUMvQkMsaUJBQWlCUCxNQUFNSyxhQUN2QkcscUJBQXFCRCxnQkFDckJKLGFBQWFLLG1CQUFtQkMsYUFBYTtnQkFFbkQsT0FBT047WUFDVDs7OztZQUVPTyxLQUFBQTttQkFBUCxTQUFPQSx1Q0FBdUNDLG9CQUFvQixFQUFFUixVQUFVO2dCQUM1RSxJQUFNSyxxQkFBcUJJLGVBQWtCLENBQUNDLGNBQWMsQ0FBQ1YsYUFDdkRXLGlDQUFpQ0gscUJBQXFCTCxhQUFhLElBQ25FUyxzQ0FBc0NiLE9BQU9ZLGlDQUM3Q0Usd0JBQXdCRCxxQ0FDeEJFLFdBQVdDLG1DQUF3QixFQUNuQ2IsYUFBYTtvQkFDWEc7b0JBQ0FRO2lCQUNELEVBQ0RHLFVBQVUsTUFDVkMsNEJBQTRCQyxpQkFBWSxDQUFDQyxnQ0FBZ0MsQ0FyQjlEdkIsMkJBcUIwRmtCLFVBQVVaLFlBQVljO2dCQUVqSSxPQUFPQztZQUNUOzs7V0F4Qm1CckI7RUFBa0NzQixpQkFBWSJ9