highmark-markdown 0.0.428 → 0.0.430

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 (96) hide show
  1. package/example.js +3995 -1864
  2. package/lib/constants.js +17 -1
  3. package/lib/defaultMarkdownStyle.js +2 -2
  4. package/lib/elementMap.js +20 -5
  5. package/lib/example/importer.js +5 -5
  6. package/lib/example/indexOptions.js +143 -0
  7. package/lib/example/view/div/sizeable/right.js +2 -2
  8. package/lib/example/view.js +14 -2
  9. package/lib/index/phraseMatcher.js +76 -0
  10. package/lib/markdown/bnf.js +2 -2
  11. package/lib/markdown/lexer.js +11 -11
  12. package/lib/markdown/parser.js +12 -12
  13. package/lib/node/markdown/anchor.js +15 -8
  14. package/lib/node/markdown/comma.js +144 -0
  15. package/lib/node/markdown/contentsLink.js +3 -2
  16. package/lib/node/markdown/contentsList.js +10 -2
  17. package/lib/node/markdown/directive/index.js +120 -0
  18. package/lib/node/markdown/directive.js +10 -2
  19. package/lib/node/markdown/division.js +49 -9
  20. package/lib/node/markdown/{link.js → footnoteLink.js} +14 -13
  21. package/lib/node/markdown/footnotesItem.js +5 -12
  22. package/lib/node/markdown/heading.js +10 -2
  23. package/lib/node/markdown/indexItem.js +120 -0
  24. package/lib/node/markdown/indexLink.js +168 -0
  25. package/lib/node/markdown/indexList.js +138 -0
  26. package/lib/node/markdown/line.js +16 -2
  27. package/lib/node/markdown/subDivision.js +21 -2
  28. package/lib/node/markdown/verticalSpace.js +12 -1
  29. package/lib/node/markdown.js +32 -2
  30. package/lib/nodeMap.js +8 -3
  31. package/lib/prepends.js +26 -0
  32. package/lib/replacement/contentsList.js +3 -2
  33. package/lib/replacement/footnotesList.js +8 -8
  34. package/lib/replacement/indexItem.js +131 -0
  35. package/lib/replacement/indexList.js +166 -0
  36. package/lib/replacement/subDivision/footnotesDirective.js +2 -33
  37. package/lib/replacement/subDivision/indexAnchor.js +124 -0
  38. package/lib/replacement/subDivision/indexDirective.js +126 -0
  39. package/lib/replacement/subDivision/pageNumberDirective.js +2 -33
  40. package/lib/replacement/subDivision.js +15 -1
  41. package/lib/replacement.js +22 -45
  42. package/lib/ruleNames.js +31 -6
  43. package/lib/utilities/footnotes.js +10 -10
  44. package/lib/utilities/index.js +246 -0
  45. package/lib/utilities/object.js +59 -0
  46. package/lib/utilities/processing.js +10 -1
  47. package/lib/utilities/query.js +26 -18
  48. package/lib/utilities/replacement.js +67 -1
  49. package/package.json +3 -3
  50. package/src/constants.js +4 -0
  51. package/src/defaultMarkdownStyle.js +13 -1
  52. package/src/elementMap.js +30 -5
  53. package/src/example/importer.js +21 -5
  54. package/src/example/indexOptions.js +134 -0
  55. package/src/example/view/div/sizeable/right.js +1 -1
  56. package/src/example/view.js +20 -1
  57. package/src/index/phraseMatcher.js +38 -0
  58. package/src/markdown/bnf.js +21 -5
  59. package/src/markdown/lexer.js +10 -10
  60. package/src/markdown/parser.js +12 -12
  61. package/src/node/markdown/anchor.js +11 -6
  62. package/src/node/markdown/comma.js +32 -0
  63. package/src/node/markdown/contentsLink.js +3 -1
  64. package/src/node/markdown/contentsList.js +6 -0
  65. package/src/node/markdown/directive/index.js +7 -0
  66. package/src/node/markdown/directive.js +6 -0
  67. package/src/node/markdown/division.js +60 -9
  68. package/src/node/markdown/{link.js → footnoteLink.js} +7 -5
  69. package/src/node/markdown/footnotesItem.js +4 -11
  70. package/src/node/markdown/heading.js +11 -2
  71. package/src/node/markdown/indexItem.js +7 -0
  72. package/src/node/markdown/indexLink.js +63 -0
  73. package/src/node/markdown/indexList.js +34 -0
  74. package/src/node/markdown/line.js +15 -2
  75. package/src/node/markdown/subDivision.js +25 -2
  76. package/src/node/markdown/verticalSpace.js +15 -0
  77. package/src/node/markdown.js +44 -2
  78. package/src/nodeMap.js +18 -3
  79. package/src/prepends.js +5 -0
  80. package/src/replacement/contentsList.js +3 -1
  81. package/src/replacement/footnotesList.js +9 -7
  82. package/src/replacement/indexItem.js +28 -0
  83. package/src/replacement/indexList.js +45 -0
  84. package/src/replacement/subDivision/footnotesDirective.js +0 -6
  85. package/src/replacement/subDivision/indexAnchor.js +20 -0
  86. package/src/replacement/subDivision/indexDirective.js +20 -0
  87. package/src/replacement/subDivision/pageNumberDirective.js +0 -6
  88. package/src/replacement/subDivision.js +12 -0
  89. package/src/replacement.js +41 -68
  90. package/src/ruleNames.js +12 -2
  91. package/src/utilities/footnotes.js +8 -8
  92. package/src/utilities/index.js +335 -0
  93. package/src/utilities/object.js +50 -0
  94. package/src/utilities/processing.js +12 -0
  95. package/src/utilities/query.js +21 -13
  96. package/src/utilities/replacement.js +81 -0
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "indexMapFromDivisionMarkdownNodes", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return indexMapFromDivisionMarkdownNodes;
9
+ }
10
+ });
11
+ var _necessary = require("necessary");
12
+ var _phraseMatcher = /*#__PURE__*/ _interop_require_default(require("../index/phraseMatcher"));
13
+ var _constants = require("../constants");
14
+ var _object = require("../utilities/object");
15
+ function _array_like_to_array(arr, len) {
16
+ if (len == null || len > arr.length) len = arr.length;
17
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
18
+ return arr2;
19
+ }
20
+ function _array_without_holes(arr) {
21
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
22
+ }
23
+ function _interop_require_default(obj) {
24
+ return obj && obj.__esModule ? obj : {
25
+ default: obj
26
+ };
27
+ }
28
+ function _iterable_to_array(iter) {
29
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
30
+ }
31
+ function _non_iterable_spread() {
32
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
33
+ }
34
+ function _to_consumable_array(arr) {
35
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
36
+ }
37
+ function _unsupported_iterable_to_array(o, minLen) {
38
+ if (!o) return;
39
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
40
+ var n = Object.prototype.toString.call(o).slice(8, -1);
41
+ if (n === "Object" && o.constructor) n = o.constructor.name;
42
+ if (n === "Map" || n === "Set") return Array.from(n);
43
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
44
+ }
45
+ var compress = _necessary.arrayUtilities.compress;
46
+ function indexMapFromDivisionMarkdownNodes(divisionMarkdownNodes, context) {
47
+ var indexMap = createIndexMap(divisionMarkdownNodes, context);
48
+ removeIgnoredWords(indexMap, context);
49
+ adjustProperNouns(indexMap, context);
50
+ adjustAcronyms(indexMap, context);
51
+ adjustMixedPlurals(indexMap, context);
52
+ adjustPluralPlurals(indexMap, context);
53
+ adjustSingularPlurals(indexMap, context);
54
+ compressPageNumbers(indexMap);
55
+ return indexMap;
56
+ }
57
+ function createIndexMap(divisionMarkdownNodes, context) {
58
+ var indexMap = {};
59
+ var indexOptions = context.indexOptions, phrases = indexOptions.phrases, phraseMatchers = phrases.map(function(phrase) {
60
+ var phraseMatcher = _phraseMatcher.default.fromPhrase(phrase);
61
+ return phraseMatcher;
62
+ });
63
+ divisionMarkdownNodes.forEach(function(divisionMarkdownNode) {
64
+ var pageNumber = divisionMarkdownNode.getPageNumber();
65
+ if (pageNumber !== null) {
66
+ var plainText = divisionMarkdownNode.asPlainText(context), entries = entriesFromPlainTextAndPhraseMatchers(plainText, phraseMatchers);
67
+ entries.forEach(function(entry) {
68
+ var pageNumbers = indexMap[entry] || null;
69
+ if (pageNumbers === null) {
70
+ pageNumbers = [];
71
+ indexMap[entry] = pageNumbers;
72
+ }
73
+ pageNumbers.push(pageNumber);
74
+ });
75
+ }
76
+ });
77
+ return indexMap;
78
+ }
79
+ function entriesFromPlainTextAndPhraseMatchers(plainText, phraseMatchers) {
80
+ var entries;
81
+ plainText = preparePlainText(plainText); ///
82
+ phraseMatchers.forEach(function(phraseMatcher) {
83
+ plainText = phraseMatcher.replace(plainText);
84
+ });
85
+ entries = plainText.split(_constants.SINGLE_SPACE);
86
+ entries = entries.map(function(entry) {
87
+ entry = _phraseMatcher.default.revert(entry); ///
88
+ return entry;
89
+ });
90
+ return entries;
91
+ }
92
+ function compressPageNumbers(indexMap) {
93
+ (0, _object.mapValues)(indexMap, function(entry, pageNumbers) {
94
+ compress(pageNumbers, function(pageNumberA, pageNumberB) {
95
+ if (pageNumberA === pageNumberB) {
96
+ return true;
97
+ }
98
+ });
99
+ pageNumbers.sort();
100
+ return pageNumbers;
101
+ });
102
+ }
103
+ function removeIgnoredWords(indexMap, context) {
104
+ var indexOptions = context.indexOptions, ignoredWords = indexOptions.ignoredWords;
105
+ ignoredWords.forEach(function(ignoredWord) {
106
+ delete indexMap[ignoredWord];
107
+ });
108
+ }
109
+ function adjustProperNouns(indexMap, context) {
110
+ var indexOptions = context.indexOptions, properNouns = indexOptions.properNouns;
111
+ var lowerCaseProperNouns = properNouns.map(function(properNoun) {
112
+ var lowerCaseProperNoun = properNoun.toLowerCase();
113
+ return lowerCaseProperNoun;
114
+ });
115
+ (0, _object.mapKeys)(indexMap, function(entry) {
116
+ var index = lowerCaseProperNouns.findIndex(function(lowerCaseProperNmae) {
117
+ if (lowerCaseProperNmae === entry) {
118
+ return true;
119
+ }
120
+ });
121
+ if (index > -1) {
122
+ var properNoun = properNouns[index];
123
+ entry = properNoun; ///
124
+ }
125
+ return entry;
126
+ });
127
+ }
128
+ function preparePlainText(plainText) {
129
+ plainText = plainText.toLowerCase(); ///
130
+ plainText = plainText.replace(/[^a-z ]/g, _constants.SINGLE_SPACE);
131
+ plainText = plainText.replace(/\s+/g, _constants.SINGLE_SPACE);
132
+ plainText = plainText.replace(/^\s+|\s+$/g, _constants.EMPTY_STRING);
133
+ return plainText;
134
+ }
135
+ function adjustAcronyms(indexMap, context) {
136
+ var indexOptions = context.indexOptions, acronyms = indexOptions.acronyms;
137
+ var lowerCaseAcronyms = acronyms.map(function(acronym) {
138
+ var lowerCaseAcronym = acronym.toLowerCase();
139
+ return lowerCaseAcronym;
140
+ });
141
+ (0, _object.mapKeys)(indexMap, function(entry) {
142
+ var index = lowerCaseAcronyms.findIndex(function(lowerCaseProperNmae) {
143
+ if (lowerCaseProperNmae === entry) {
144
+ return true;
145
+ }
146
+ });
147
+ if (index > -1) {
148
+ var acronym = acronyms[index];
149
+ entry = acronym; ///
150
+ }
151
+ return entry;
152
+ });
153
+ }
154
+ function adjustMixedPlurals(indexMap, context) {
155
+ var indexOptions = context.indexOptions, plurals = indexOptions.plurals, mixedPlurals = mixedPluralsFromPlurals(plurals);
156
+ (0, _object.forEach)(indexMap, function(entry, pageNumbers) {
157
+ var entryPlural = isPlural(entry);
158
+ if (entryPlural) {
159
+ var singularEntry = entry.replace(/s$/, _constants.EMPTY_STRING), mixedEntry = "".concat(singularEntry, "(s)"), mixedPluralsIncludesMixedEntry = mixedPlurals.includes(mixedEntry), entryMixedPlural = mixedPluralsIncludesMixedEntry; ///
160
+ if (entryMixedPlural) {
161
+ var pluralPageNumbers = pageNumbers, singularPageNumbers = indexMap[singularEntry] || [];
162
+ pageNumbers = _to_consumable_array(pluralPageNumbers).concat(_to_consumable_array(singularPageNumbers));
163
+ delete indexMap[entry];
164
+ delete indexMap[singularEntry];
165
+ indexMap[mixedEntry] = pageNumbers;
166
+ }
167
+ }
168
+ });
169
+ }
170
+ function adjustPluralPlurals(indexMap, context) {
171
+ var indexOptions = context.indexOptions, plurals = indexOptions.plurals, pluralPlurals = pluralPluralsFromPlurals(plurals);
172
+ (0, _object.forEach)(indexMap, function(entry, pageNumbers) {
173
+ var entryPlural = isPlural(entry);
174
+ if (entryPlural) {
175
+ var singularEntry = entry.replace(/s$/, _constants.EMPTY_STRING), pluralPluralsIncludesEntry = pluralPlurals.includes(entry), entryPluralPlural = pluralPluralsIncludesEntry; ///
176
+ if (entryPluralPlural) {
177
+ var pluralPageNumbers = pageNumbers, singularPageNumbers = indexMap[singularEntry] || [];
178
+ pageNumbers = _to_consumable_array(pluralPageNumbers).concat(_to_consumable_array(singularPageNumbers));
179
+ delete indexMap[singularEntry];
180
+ indexMap[entry] = pageNumbers;
181
+ }
182
+ }
183
+ });
184
+ }
185
+ function adjustSingularPlurals(indexMap, context) {
186
+ var indexOptions = context.indexOptions, plurals = indexOptions.plurals, singularPlurals = singularPluralsFromPlurals(plurals);
187
+ (0, _object.forEach)(indexMap, function(entry, pageNumbers) {
188
+ var entryPlural = isPlural(entry);
189
+ if (entryPlural) {
190
+ var singularEntry = entry.replace(/s$/, _constants.EMPTY_STRING), singularPluralsIncludesSingularEntry = singularPlurals.includes(singularEntry), entrySingularPlural = singularPluralsIncludesSingularEntry; ///
191
+ if (entrySingularPlural) {
192
+ var pluralPageNumbers = pageNumbers, singularPageNumbers = indexMap[singularEntry] || [];
193
+ pageNumbers = _to_consumable_array(pluralPageNumbers).concat(_to_consumable_array(singularPageNumbers));
194
+ delete indexMap[entry];
195
+ indexMap[singularEntry] = pageNumbers;
196
+ }
197
+ }
198
+ });
199
+ }
200
+ function singularPluralsFromPlurals(plurals) {
201
+ var singularPlurals = plurals.reduce(function(singularPlurals, plural) {
202
+ var pluralSingular = isSingular(plural);
203
+ if (pluralSingular) {
204
+ var singularPlural = plural; ///
205
+ singularPlurals.push(singularPlural);
206
+ }
207
+ return singularPlurals;
208
+ }, []);
209
+ return singularPlurals;
210
+ }
211
+ function pluralPluralsFromPlurals(plurals) {
212
+ var pluralPlurals = plurals.reduce(function(pluralPlurals, plural) {
213
+ var pluralPlural = isPlural(plural);
214
+ if (pluralPlural) {
215
+ var pluralPlural1 = plural; ///
216
+ pluralPlurals.push(pluralPlural1);
217
+ }
218
+ return pluralPlurals;
219
+ }, []);
220
+ return pluralPlurals;
221
+ }
222
+ function mixedPluralsFromPlurals(plurals) {
223
+ var mixedPlurals = plurals.reduce(function(mixedPlurals, plural) {
224
+ var pluralMixed = isMixed(plural);
225
+ if (pluralMixed) {
226
+ var mixedPlural = plural; ///
227
+ mixedPlurals.push(mixedPlural);
228
+ }
229
+ return mixedPlurals;
230
+ }, []);
231
+ return mixedPlurals;
232
+ }
233
+ function isSingular(text) {
234
+ var matches = /[^s)]$/.test(text), pluralSingular = matches; ///
235
+ return pluralSingular;
236
+ }
237
+ function isPlural(text) {
238
+ var matches = /s$/.test(text), plural = matches; ///
239
+ return plural;
240
+ }
241
+ function isMixed(text) {
242
+ var matches = /\(s\)$/.test(text), plural = matches; ///
243
+ return plural;
244
+ }
245
+
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgUGhyYXNlTWF0Y2hlciBmcm9tIFwiLi4vaW5kZXgvcGhyYXNlTWF0Y2hlclwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFNJTkdMRV9TUEFDRSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGZvckVhY2gsIG1hcFZhbHVlcywgbWFwS2V5cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvb2JqZWN0XCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhNYXBGcm9tRGl2aXNpb25NYXJrZG93bk5vZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBpbmRleE1hcCA9IGNyZWF0ZUluZGV4TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBhZGp1c3RQcm9wZXJOb3VucyhpbmRleE1hcCwgY29udGV4dCk7XG5cbiAgYWRqdXN0QWNyb255bXMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdE1peGVkUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCk7XG5cbiAgYWRqdXN0UGx1cmFsUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCk7XG5cbiAgYWRqdXN0U2luZ3VsYXJQbHVyYWxzKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUluZGV4TWFwKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBpbmRleE1hcCA9IHt9O1xuXG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHBocmFzZXMgfSA9IGluZGV4T3B0aW9ucyxcbiAgICAgICAgcGhyYXNlTWF0Y2hlcnMgPSBwaHJhc2VzLm1hcCgocGhyYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGhyYXNlTWF0Y2hlciA9IFBocmFzZU1hdGNoZXIuZnJvbVBocmFzZShwaHJhc2UpO1xuXG4gICAgICAgICAgcmV0dXJuIHBocmFzZU1hdGNoZXI7XG4gICAgICAgIH0pO1xuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGNvbnN0IHBhZ2VOdW1iZXIgPSBkaXZpc2lvbk1hcmtkb3duTm9kZS5nZXRQYWdlTnVtYmVyKCk7XG5cbiAgICBpZiAocGFnZU51bWJlciAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcGxhaW5UZXh0ID0gZGl2aXNpb25NYXJrZG93bk5vZGUuYXNQbGFpblRleHQoY29udGV4dCksXG4gICAgICAgICAgICBlbnRyaWVzID0gZW50cmllc0Zyb21QbGFpblRleHRBbmRQaHJhc2VNYXRjaGVycyhwbGFpblRleHQsIHBocmFzZU1hdGNoZXJzKTtcblxuICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICBsZXQgcGFnZU51bWJlcnMgPSBpbmRleE1hcFtlbnRyeV0gfHwgbnVsbDtcblxuICAgICAgICBpZiAocGFnZU51bWJlcnMgPT09IG51bGwpIHtcbiAgICAgICAgICBwYWdlTnVtYmVycyA9IFtdO1xuXG4gICAgICAgICAgaW5kZXhNYXBbZW50cnldID0gcGFnZU51bWJlcnM7XG4gICAgICAgIH1cblxuICAgICAgICBwYWdlTnVtYmVycy5wdXNoKHBhZ2VOdW1iZXIpO1xuICAgICAgfSk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIGVudHJpZXNGcm9tUGxhaW5UZXh0QW5kUGhyYXNlTWF0Y2hlcnMocGxhaW5UZXh0LCBwaHJhc2VNYXRjaGVycykge1xuICBsZXQgZW50cmllcztcblxuICBwbGFpblRleHQgPSBwcmVwYXJlUGxhaW5UZXh0KHBsYWluVGV4dCk7ICAvLy9cblxuICBwaHJhc2VNYXRjaGVycy5mb3JFYWNoKChwaHJhc2VNYXRjaGVyKSA9PiB7XG4gICAgcGxhaW5UZXh0ID0gcGhyYXNlTWF0Y2hlci5yZXBsYWNlKHBsYWluVGV4dCk7XG4gIH0pO1xuXG4gIGVudHJpZXMgPSBwbGFpblRleHQuc3BsaXQoU0lOR0xFX1NQQUNFKTtcblxuICBlbnRyaWVzID0gZW50cmllcy5tYXAoKGVudHJ5KSA9PiB7XG4gICAgZW50cnkgPSBQaHJhc2VNYXRjaGVyLnJldmVydChlbnRyeSk7ICAvLy9cblxuICAgIHJldHVybiBlbnRyeTtcbiAgfSk7XG5cbiAgcmV0dXJuIGVudHJpZXM7XG59XG5cbmZ1bmN0aW9uIGNvbXByZXNzUGFnZU51bWJlcnMoaW5kZXhNYXApIHtcbiAgbWFwVmFsdWVzKGluZGV4TWFwLCAoZW50cnksIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgY29tcHJlc3MocGFnZU51bWJlcnMsIChwYWdlTnVtYmVyQSwgcGFnZU51bWJlckIpID0+IHtcbiAgICAgIGlmIChwYWdlTnVtYmVyQSA9PT0gcGFnZU51bWJlckIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBwYWdlTnVtYmVycy5zb3J0KCk7XG5cbiAgICByZXR1cm4gcGFnZU51bWJlcnM7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVJZ25vcmVkV29yZHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpbmRleE9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgaWdub3JlZFdvcmRzIH0gPSBpbmRleE9wdGlvbnM7XG5cbiAgaWdub3JlZFdvcmRzLmZvckVhY2goKGlnbm9yZWRXb3JkKSA9PiB7XG4gICAgZGVsZXRlIGluZGV4TWFwW2lnbm9yZWRXb3JkXTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGFkanVzdFByb3Blck5vdW5zKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHByb3Blck5vdW5zIH0gPSBpbmRleE9wdGlvbnM7XG5cbiAgY29uc3QgbG93ZXJDYXNlUHJvcGVyTm91bnMgPSBwcm9wZXJOb3Vucy5tYXAoKHByb3Blck5vdW4pID0+IHtcbiAgICBjb25zdCBsb3dlckNhc2VQcm9wZXJOb3VuID0gcHJvcGVyTm91bi50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIGxvd2VyQ2FzZVByb3Blck5vdW47XG4gIH0pO1xuXG4gIG1hcEtleXMoaW5kZXhNYXAsIChlbnRyeSkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gbG93ZXJDYXNlUHJvcGVyTm91bnMuZmluZEluZGV4KChsb3dlckNhc2VQcm9wZXJObWFlKSA9PiB7XG4gICAgICBpZiAobG93ZXJDYXNlUHJvcGVyTm1hZSA9PT0gZW50cnkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgcHJvcGVyTm91biA9IHByb3Blck5vdW5zW2luZGV4XTtcblxuICAgICAgZW50cnkgPSBwcm9wZXJOb3VuOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIGVudHJ5O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVBsYWluVGV4dChwbGFpblRleHQpIHtcbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnRvTG93ZXJDYXNlKCk7ICAvLy9cblxuICBwbGFpblRleHQgPSBwbGFpblRleHQucmVwbGFjZSgvW15hLXogXS9nLCBTSU5HTEVfU1BBQ0UpO1xuXG4gIHBsYWluVGV4dCA9IHBsYWluVGV4dC5yZXBsYWNlKC9cXHMrL2csIFNJTkdMRV9TUEFDRSk7XG5cbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnJlcGxhY2UoL15cXHMrfFxccyskL2csIEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHBsYWluVGV4dDtcbn1cblxuZnVuY3Rpb24gYWRqdXN0QWNyb255bXMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpbmRleE9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgYWNyb255bXMgfSA9IGluZGV4T3B0aW9ucztcblxuICBjb25zdCBsb3dlckNhc2VBY3JvbnltcyA9IGFjcm9ueW1zLm1hcCgoYWNyb255bSkgPT4ge1xuICAgIGNvbnN0IGxvd2VyQ2FzZUFjcm9ueW0gPSBhY3JvbnltLnRvTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gbG93ZXJDYXNlQWNyb255bTtcbiAgfSk7XG5cbiAgbWFwS2V5cyhpbmRleE1hcCwgKGVudHJ5KSA9PiB7XG4gICAgY29uc3QgaW5kZXggPSBsb3dlckNhc2VBY3Jvbnltcy5maW5kSW5kZXgoKGxvd2VyQ2FzZVByb3Blck5tYWUpID0+IHtcbiAgICAgIGlmIChsb3dlckNhc2VQcm9wZXJObWFlID09PSBlbnRyeSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICBjb25zdCBhY3JvbnltID0gYWNyb255bXNbaW5kZXhdO1xuXG4gICAgICBlbnRyeSA9IGFjcm9ueW07ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gZW50cnk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpbmRleE9wdGlvbnMgfSA9IGNvbnRleHQsXG4gICAgICAgIHsgcGx1cmFscyB9ID0gaW5kZXhPcHRpb25zLFxuICAgICAgICBtaXhlZFBsdXJhbHMgPSBtaXhlZFBsdXJhbHNGcm9tUGx1cmFscyhwbHVyYWxzKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAoZW50cnksIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgY29uc3QgZW50cnlQbHVyYWwgPSBpc1BsdXJhbChlbnRyeSk7XG5cbiAgICBpZiAoZW50cnlQbHVyYWwpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyRW50cnkgPSBlbnRyeS5yZXBsYWNlKC9zJC8sIEVNUFRZX1NUUklORyksXG4gICAgICAgICAgICBtaXhlZEVudHJ5ID0gYCR7c2luZ3VsYXJFbnRyeX0ocylgLFxuICAgICAgICAgICAgbWl4ZWRQbHVyYWxzSW5jbHVkZXNNaXhlZEVudHJ5ID0gbWl4ZWRQbHVyYWxzLmluY2x1ZGVzKG1peGVkRW50cnkpLFxuICAgICAgICAgICAgZW50cnlNaXhlZFBsdXJhbCA9IG1peGVkUGx1cmFsc0luY2x1ZGVzTWl4ZWRFbnRyeTsgLy8vXG5cbiAgICAgIGlmIChlbnRyeU1peGVkUGx1cmFsKSB7XG4gICAgICAgIGNvbnN0IHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgICAgc2luZ3VsYXJQYWdlTnVtYmVycyA9IGluZGV4TWFwW3Npbmd1bGFyRW50cnldIHx8IFtdO1xuXG4gICAgICAgIHBhZ2VOdW1iZXJzID0gWyAvLy9cbiAgICAgICAgICAuLi5wbHVyYWxQYWdlTnVtYmVycyxcbiAgICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzXG4gICAgICAgIF07XG5cbiAgICAgICAgZGVsZXRlIGluZGV4TWFwW2VudHJ5XTtcbiAgICAgICAgZGVsZXRlIGluZGV4TWFwW3Npbmd1bGFyRW50cnldO1xuXG4gICAgICAgIGluZGV4TWFwW21peGVkRW50cnldID0gcGFnZU51bWJlcnM7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0UGx1cmFsUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IGluZGV4T3B0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBwbHVyYWxzIH0gPSBpbmRleE9wdGlvbnMsXG4gICAgICAgIHBsdXJhbFBsdXJhbHMgPSBwbHVyYWxQbHVyYWxzRnJvbVBsdXJhbHMocGx1cmFscyk7XG5cbiAgZm9yRWFjaChpbmRleE1hcCwgKGVudHJ5LCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IGVudHJ5UGx1cmFsID0gaXNQbHVyYWwoZW50cnkpO1xuXG4gICAgaWYgKGVudHJ5UGx1cmFsKSB7XG4gICAgICBjb25zdCBzaW5ndWxhckVudHJ5ID0gZW50cnkucmVwbGFjZSgvcyQvLCBFTVBUWV9TVFJJTkcpLFxuICAgICAgICAgICAgcGx1cmFsUGx1cmFsc0luY2x1ZGVzRW50cnkgPSBwbHVyYWxQbHVyYWxzLmluY2x1ZGVzKGVudHJ5KSxcbiAgICAgICAgICAgIGVudHJ5UGx1cmFsUGx1cmFsID0gcGx1cmFsUGx1cmFsc0luY2x1ZGVzRW50cnk7IC8vL1xuXG4gICAgICBpZiAoZW50cnlQbHVyYWxQbHVyYWwpIHtcbiAgICAgICAgY29uc3QgcGx1cmFsUGFnZU51bWJlcnMgPSBwYWdlTnVtYmVycywgIC8vL1xuICAgICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gaW5kZXhNYXBbc2luZ3VsYXJFbnRyeV0gfHwgW107XG5cbiAgICAgICAgcGFnZU51bWJlcnMgPSBbIC8vL1xuICAgICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzLFxuICAgICAgICAgIC4uLnNpbmd1bGFyUGFnZU51bWJlcnNcbiAgICAgICAgXTtcblxuICAgICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJFbnRyeV07XG5cbiAgICAgICAgaW5kZXhNYXBbZW50cnldID0gcGFnZU51bWJlcnM7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0U2luZ3VsYXJQbHVyYWxzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgaW5kZXhPcHRpb25zIH0gPSBjb250ZXh0LFxuICAgICAgICB7IHBsdXJhbHMgfSA9IGluZGV4T3B0aW9ucyxcbiAgICAgICAgc2luZ3VsYXJQbHVyYWxzID0gc2luZ3VsYXJQbHVyYWxzRnJvbVBsdXJhbHMocGx1cmFscyk7XG5cbiAgZm9yRWFjaChpbmRleE1hcCwgKGVudHJ5LCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IGVudHJ5UGx1cmFsID0gaXNQbHVyYWwoZW50cnkpO1xuXG4gICAgaWYgKGVudHJ5UGx1cmFsKSB7XG4gICAgICBjb25zdCBzaW5ndWxhckVudHJ5ID0gZW50cnkucmVwbGFjZSgvcyQvLCBFTVBUWV9TVFJJTkcpLFxuICAgICAgICAgICAgc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNTaW5ndWxhckVudHJ5ID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHNpbmd1bGFyRW50cnkpLFxuICAgICAgICAgICAgZW50cnlTaW5ndWxhclBsdXJhbCA9IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzU2luZ3VsYXJFbnRyeTsgLy8vXG5cbiAgICAgIGlmIChlbnRyeVNpbmd1bGFyUGx1cmFsKSB7XG4gICAgICAgIGNvbnN0IHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgICAgc2luZ3VsYXJQYWdlTnVtYmVycyA9IGluZGV4TWFwW3Npbmd1bGFyRW50cnldIHx8IFtdO1xuXG4gICAgICAgIHBhZ2VOdW1iZXJzID0gWyAvLy9cbiAgICAgICAgICAuLi5wbHVyYWxQYWdlTnVtYmVycyxcbiAgICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzXG4gICAgICAgIF07XG5cbiAgICAgICAgZGVsZXRlIGluZGV4TWFwW2VudHJ5XTtcblxuICAgICAgICBpbmRleE1hcFtzaW5ndWxhckVudHJ5XSA9IHBhZ2VOdW1iZXJzO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNpbmd1bGFyUGx1cmFsc0Zyb21QbHVyYWxzKHBsdXJhbHMpIHtcbiAgY29uc3Qgc2luZ3VsYXJQbHVyYWxzID0gcGx1cmFscy5yZWR1Y2UoKHNpbmd1bGFyUGx1cmFscywgcGx1cmFsKSA9PiB7XG4gICAgY29uc3QgcGx1cmFsU2luZ3VsYXIgPSBpc1Npbmd1bGFyKHBsdXJhbCk7XG5cbiAgICBpZiAocGx1cmFsU2luZ3VsYXIpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsID0gcGx1cmFsOyAgLy8vXG5cbiAgICAgIHNpbmd1bGFyUGx1cmFscy5wdXNoKHNpbmd1bGFyUGx1cmFsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2luZ3VsYXJQbHVyYWxzO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHNpbmd1bGFyUGx1cmFscztcbn1cblxuZnVuY3Rpb24gcGx1cmFsUGx1cmFsc0Zyb21QbHVyYWxzKHBsdXJhbHMpIHtcbiAgY29uc3QgcGx1cmFsUGx1cmFscyA9IHBsdXJhbHMucmVkdWNlKChwbHVyYWxQbHVyYWxzLCBwbHVyYWwpID0+IHtcbiAgICBjb25zdCBwbHVyYWxQbHVyYWwgPSBpc1BsdXJhbChwbHVyYWwpO1xuXG4gICAgaWYgKHBsdXJhbFBsdXJhbCkge1xuICAgICAgY29uc3QgcGx1cmFsUGx1cmFsID0gcGx1cmFsOyAgLy8vXG5cbiAgICAgIHBsdXJhbFBsdXJhbHMucHVzaChwbHVyYWxQbHVyYWwpO1xuICAgIH1cblxuICAgIHJldHVybiBwbHVyYWxQbHVyYWxzO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIHBsdXJhbFBsdXJhbHM7XG59XG5cbmZ1bmN0aW9uIG1peGVkUGx1cmFsc0Zyb21QbHVyYWxzKHBsdXJhbHMpIHtcbiAgY29uc3QgbWl4ZWRQbHVyYWxzID0gcGx1cmFscy5yZWR1Y2UoKG1peGVkUGx1cmFscywgcGx1cmFsKSA9PiB7XG4gICAgY29uc3QgcGx1cmFsTWl4ZWQgPSBpc01peGVkKHBsdXJhbCk7XG5cbiAgICBpZiAocGx1cmFsTWl4ZWQpIHtcbiAgICAgIGNvbnN0IG1peGVkUGx1cmFsID0gcGx1cmFsOyAgLy8vXG5cbiAgICAgIG1peGVkUGx1cmFscy5wdXNoKG1peGVkUGx1cmFsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWl4ZWRQbHVyYWxzO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIG1peGVkUGx1cmFscztcbn1cblxuZnVuY3Rpb24gaXNTaW5ndWxhcih0ZXh0KSB7XG4gIGNvbnN0IG1hdGNoZXMgPSAvW15zKV0kLy50ZXN0KHRleHQpLFxuICAgICAgICBwbHVyYWxTaW5ndWxhciA9IG1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBwbHVyYWxTaW5ndWxhcjtcbn1cblxuZnVuY3Rpb24gaXNQbHVyYWwodGV4dCkge1xuICBjb25zdCBtYXRjaGVzID0gL3MkLy50ZXN0KHRleHQpLFxuICAgICAgICBwbHVyYWwgPSBtYXRjaGVzOyAvLy9cblxuICByZXR1cm4gcGx1cmFsO1xufVxuXG5mdW5jdGlvbiBpc01peGVkKHRleHQpIHtcbiAgY29uc3QgbWF0Y2hlcyA9IC9cXChzXFwpJC8udGVzdCh0ZXh0KSxcbiAgICAgICAgcGx1cmFsID0gbWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIHBsdXJhbDtcbn1cbiJdLCJuYW1lcyI6WyJpbmRleE1hcEZyb21EaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJjb21wcmVzcyIsImFycmF5VXRpbGl0aWVzIiwiZGl2aXNpb25NYXJrZG93bk5vZGVzIiwiY29udGV4dCIsImluZGV4TWFwIiwiY3JlYXRlSW5kZXhNYXAiLCJyZW1vdmVJZ25vcmVkV29yZHMiLCJhZGp1c3RQcm9wZXJOb3VucyIsImFkanVzdEFjcm9ueW1zIiwiYWRqdXN0TWl4ZWRQbHVyYWxzIiwiYWRqdXN0UGx1cmFsUGx1cmFscyIsImFkanVzdFNpbmd1bGFyUGx1cmFscyIsImNvbXByZXNzUGFnZU51bWJlcnMiLCJpbmRleE9wdGlvbnMiLCJwaHJhc2VzIiwicGhyYXNlTWF0Y2hlcnMiLCJtYXAiLCJwaHJhc2UiLCJwaHJhc2VNYXRjaGVyIiwiUGhyYXNlTWF0Y2hlciIsImZyb21QaHJhc2UiLCJmb3JFYWNoIiwiZGl2aXNpb25NYXJrZG93bk5vZGUiLCJwYWdlTnVtYmVyIiwiZ2V0UGFnZU51bWJlciIsInBsYWluVGV4dCIsImFzUGxhaW5UZXh0IiwiZW50cmllcyIsImVudHJpZXNGcm9tUGxhaW5UZXh0QW5kUGhyYXNlTWF0Y2hlcnMiLCJlbnRyeSIsInBhZ2VOdW1iZXJzIiwicHVzaCIsInByZXBhcmVQbGFpblRleHQiLCJyZXBsYWNlIiwic3BsaXQiLCJTSU5HTEVfU1BBQ0UiLCJyZXZlcnQiLCJtYXBWYWx1ZXMiLCJwYWdlTnVtYmVyQSIsInBhZ2VOdW1iZXJCIiwic29ydCIsImlnbm9yZWRXb3JkcyIsImlnbm9yZWRXb3JkIiwicHJvcGVyTm91bnMiLCJsb3dlckNhc2VQcm9wZXJOb3VucyIsInByb3Blck5vdW4iLCJsb3dlckNhc2VQcm9wZXJOb3VuIiwidG9Mb3dlckNhc2UiLCJtYXBLZXlzIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJsb3dlckNhc2VQcm9wZXJObWFlIiwiRU1QVFlfU1RSSU5HIiwiYWNyb255bXMiLCJsb3dlckNhc2VBY3JvbnltcyIsImFjcm9ueW0iLCJsb3dlckNhc2VBY3JvbnltIiwicGx1cmFscyIsIm1peGVkUGx1cmFscyIsIm1peGVkUGx1cmFsc0Zyb21QbHVyYWxzIiwiZW50cnlQbHVyYWwiLCJpc1BsdXJhbCIsInNpbmd1bGFyRW50cnkiLCJtaXhlZEVudHJ5IiwibWl4ZWRQbHVyYWxzSW5jbHVkZXNNaXhlZEVudHJ5IiwiaW5jbHVkZXMiLCJlbnRyeU1peGVkUGx1cmFsIiwicGx1cmFsUGFnZU51bWJlcnMiLCJzaW5ndWxhclBhZ2VOdW1iZXJzIiwicGx1cmFsUGx1cmFscyIsInBsdXJhbFBsdXJhbHNGcm9tUGx1cmFscyIsInBsdXJhbFBsdXJhbHNJbmNsdWRlc0VudHJ5IiwiZW50cnlQbHVyYWxQbHVyYWwiLCJzaW5ndWxhclBsdXJhbHMiLCJzaW5ndWxhclBsdXJhbHNGcm9tUGx1cmFscyIsInNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzU2luZ3VsYXJFbnRyeSIsImVudHJ5U2luZ3VsYXJQbHVyYWwiLCJyZWR1Y2UiLCJwbHVyYWwiLCJwbHVyYWxTaW5ndWxhciIsImlzU2luZ3VsYXIiLCJzaW5ndWxhclBsdXJhbCIsInBsdXJhbFBsdXJhbCIsInBsdXJhbE1peGVkIiwiaXNNaXhlZCIsIm1peGVkUGx1cmFsIiwidGV4dCIsIm1hdGNoZXMiLCJ0ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXZ0JBOzs7ZUFBQUE7Ozt5QkFUZTtvRUFFTDt5QkFFaUI7c0JBQ0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUMsSUFBTSxBQUFFQyxXQUFhQyx5QkFBYyxDQUEzQkQ7QUFFRCxTQUFTRCxrQ0FBa0NHLHFCQUFxQixFQUFFQyxPQUFPO0lBQzlFLElBQU1DLFdBQVdDLGVBQWVILHVCQUF1QkM7SUFFdkRHLG1CQUFtQkYsVUFBVUQ7SUFFN0JJLGtCQUFrQkgsVUFBVUQ7SUFFNUJLLGVBQWVKLFVBQVVEO0lBRXpCTSxtQkFBbUJMLFVBQVVEO0lBRTdCTyxvQkFBb0JOLFVBQVVEO0lBRTlCUSxzQkFBc0JQLFVBQVVEO0lBRWhDUyxvQkFBb0JSO0lBRXBCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTQyxlQUFlSCxxQkFBcUIsRUFBRUMsT0FBTztJQUNwRCxJQUFNQyxXQUFXLENBQUM7SUFFbEIsSUFBTSxBQUFFUyxlQUFpQlYsUUFBakJVLGNBQ0YsQUFBRUMsVUFBWUQsYUFBWkMsU0FDRkMsaUJBQWlCRCxRQUFRRSxHQUFHLENBQUMsU0FBQ0M7UUFDNUIsSUFBTUMsZ0JBQWdCQyxzQkFBYSxDQUFDQyxVQUFVLENBQUNIO1FBRS9DLE9BQU9DO0lBQ1Q7SUFFTmhCLHNCQUFzQm1CLE9BQU8sQ0FBQyxTQUFDQztRQUM3QixJQUFNQyxhQUFhRCxxQkFBcUJFLGFBQWE7UUFFckQsSUFBSUQsZUFBZSxNQUFNO1lBQ3ZCLElBQU1FLFlBQVlILHFCQUFxQkksV0FBVyxDQUFDdkIsVUFDN0N3QixVQUFVQyxzQ0FBc0NILFdBQVdWO1lBRWpFWSxRQUFRTixPQUFPLENBQUMsU0FBQ1E7Z0JBQ2YsSUFBSUMsY0FBYzFCLFFBQVEsQ0FBQ3lCLE1BQU0sSUFBSTtnQkFFckMsSUFBSUMsZ0JBQWdCLE1BQU07b0JBQ3hCQSxjQUFjLEVBQUU7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
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ filter: function() {
13
+ return filter;
14
+ },
15
+ forEach: function() {
16
+ return forEach;
17
+ },
18
+ mapKeys: function() {
19
+ return mapKeys;
20
+ },
21
+ mapValues: function() {
22
+ return mapValues;
23
+ }
24
+ });
25
+ function forEach(object, callback) {
26
+ var keys = Object.keys(object);
27
+ keys.forEach(function(key) {
28
+ var value = object[key];
29
+ callback(key, value);
30
+ });
31
+ }
32
+ function filter(object, callback) {
33
+ var keys = Object.keys(object);
34
+ keys.forEach(function(key) {
35
+ var value = object[key], result = callback(key, value);
36
+ if (!result) {
37
+ delete object[key];
38
+ }
39
+ });
40
+ }
41
+ function mapKeys(object, callback) {
42
+ var keys = Object.keys(object);
43
+ keys.forEach(function(key) {
44
+ var value = object[key];
45
+ delete object[key];
46
+ key = callback(key, value); ///
47
+ object[key] = value;
48
+ });
49
+ }
50
+ function mapValues(object, callback) {
51
+ var keys = Object.keys(object);
52
+ keys.forEach(function(key) {
53
+ var value = object[key];
54
+ value = callback(key, value); ///
55
+ object[key] = value;
56
+ });
57
+ }
58
+
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChvYmplY3QsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgIGNhbGxiYWNrKGtleSwgdmFsdWUpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcihvYmplY3QsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICByZXN1bHQgPSBjYWxsYmFjayhrZXksIHZhbHVlKTtcblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICBkZWxldGUgb2JqZWN0W2tleV07XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcEtleXMob2JqZWN0LCBjYWxsYmFjaykge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gb2JqZWN0W2tleV07XG5cbiAgICBkZWxldGUgb2JqZWN0W2tleV07XG5cbiAgICBrZXkgPSBjYWxsYmFjayhrZXksIHZhbHVlKTsgLy8vXG5cbiAgICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFZhbHVlcyhvYmplY3QsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgbGV0IHZhbHVlID0gb2JqZWN0W2tleV07XG5cbiAgICB2YWx1ZSA9IGNhbGxiYWNrKGtleSwgdmFsdWUpOyAvLy9cblxuICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImZpbHRlciIsImZvckVhY2giLCJtYXBLZXlzIiwibWFwVmFsdWVzIiwib2JqZWN0IiwiY2FsbGJhY2siLCJrZXlzIiwiT2JqZWN0Iiwia2V5IiwidmFsdWUiLCJyZXN1bHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQVlnQkEsTUFBTTtlQUFOQTs7SUFWQUMsT0FBTztlQUFQQTs7SUF1QkFDLE9BQU87ZUFBUEE7O0lBY0FDLFNBQVM7ZUFBVEE7OztBQXJDVCxTQUFTRixRQUFRRyxNQUFNLEVBQUVDLFFBQVE7SUFDdEMsSUFBTUMsT0FBT0MsT0FBT0QsSUFBSSxDQUFDRjtJQUV6QkUsS0FBS0wsT0FBTyxDQUFDLFNBQUNPO1FBQ1osSUFBTUMsUUFBUUwsTUFBTSxDQUFDSSxJQUFJO1FBRXpCSCxTQUFTRyxLQUFLQztJQUNoQjtBQUNGO0FBRU8sU0FBU1QsT0FBT0ksTUFBTSxFQUFFQyxRQUFRO0lBQ3JDLElBQU1DLE9BQU9DLE9BQU9ELElBQUksQ0FBQ0Y7SUFFekJFLEtBQUtMLE9BQU8sQ0FBQyxTQUFDTztRQUNaLElBQU1DLFFBQVFMLE1BQU0sQ0FBQ0ksSUFBSSxFQUNuQkUsU0FBU0wsU0FBU0csS0FBS0M7UUFFN0IsSUFBSSxDQUFDQyxRQUFRO1lBQ1gsT0FBT04sTUFBTSxDQUFDSSxJQUFJO1FBQ3BCO0lBQ0Y7QUFDRjtBQUVPLFNBQVNOLFFBQVFFLE1BQU0sRUFBRUMsUUFBUTtJQUN0QyxJQUFNQyxPQUFPQyxPQUFPRCxJQUFJLENBQUNGO0lBRXpCRSxLQUFLTCxPQUFPLENBQUMsU0FBQ087UUFDWixJQUFNQyxRQUFRTCxNQUFNLENBQUNJLElBQUk7UUFFekIsT0FBT0osTUFBTSxDQUFDSSxJQUFJO1FBRWxCQSxNQUFNSCxTQUFTRyxLQUFLQyxRQUFRLEdBQUc7UUFFL0JMLE1BQU0sQ0FBQ0ksSUFBSSxHQUFHQztJQUNoQjtBQUNGO0FBRU8sU0FBU04sVUFBVUMsTUFBTSxFQUFFQyxRQUFRO0lBQ3hDLElBQU1DLE9BQU9DLE9BQU9ELElBQUksQ0FBQ0Y7SUFFekJFLEtBQUtMLE9BQU8sQ0FBQyxTQUFDTztRQUNaLElBQUlDLFFBQVFMLE1BQU0sQ0FBQ0ksSUFBSTtRQUV2QkMsUUFBUUosU0FBU0csS0FBS0MsUUFBUSxHQUFHO1FBRWpDTCxNQUFNLENBQUNJLElBQUksR0FBR0M7SUFDaEI7QUFDRiJ9
@@ -24,6 +24,7 @@ function postprocess(divisionMarkdownNode, context) {
24
24
  divisionMarkdownNodes = paginate(divisionMarkdownNodes, context);
25
25
  createFootnotes(divisionMarkdownNodes, footnoteReplacementMap, context);
26
26
  createContents(divisionMarkdownNodes, context);
27
+ createIndex(divisionMarkdownNodes, context);
27
28
  return divisionMarkdownNodes;
28
29
  }
29
30
  function paginate(divisionMarkdownNodes, context) {
@@ -38,6 +39,14 @@ function paginate(divisionMarkdownNodes, context) {
38
39
  divisionMarkdownNodes = paginatedDivisionMarkdownNodes; ///
39
40
  return divisionMarkdownNodes;
40
41
  }
42
+ function createIndex(divisionMarkdownNodes, context) {
43
+ divisionMarkdownNodes.some(function(divisionMarkdownNode) {
44
+ var indexCreated = divisionMarkdownNode.createIndex(divisionMarkdownNodes, context);
45
+ if (indexCreated) {
46
+ return true;
47
+ }
48
+ });
49
+ }
41
50
  function createContents(divisionMarkdownNodes, context) {
42
51
  divisionMarkdownNodes.some(function(divisionMarkdownNode) {
43
52
  var contentsCreated = divisionMarkdownNode.createContents(divisionMarkdownNodes, context);
@@ -80,4 +89,4 @@ var _default = {
80
89
  postprocess: postprocess
81
90
  };
82
91
 
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJvY2Vzc2luZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBvc3Rwcm9jZXNzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KSB7XG4gIGxldCBkaXZpc2lvbk1hcmtkb3duTm9kZXM7XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gcmVzb2x2ZUluY2x1ZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICByZXNvbHZlRW1iZWRkaW5ncyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gIGNvbnN0IGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAgPSBwcmVwYXJlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gcGFnaW5hdGUoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICBjcmVhdGVGb290bm90ZXMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KTtcblxuICBjcmVhdGVDb250ZW50cyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gIHJldHVybiBkaXZpc2lvbk1hcmtkb3duTm9kZXM7XG59XG5cbmZ1bmN0aW9uIHBhZ2luYXRlKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBwYWdpbmF0ZWREaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBbXTtcblxuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5wYWdpbmF0ZShwYWdpbmF0ZWREaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuICB9KTtcblxuICBwYWdpbmF0ZWREaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgocGFnaW5hdGVkRGl2aXNpb25NYXJrZG93bk5vZGUsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgcGFnZU51bWJlciA9IGluZGV4ICsgMTtcblxuICAgIHBhZ2luYXRlZERpdmlzaW9uTWFya2Rvd25Ob2RlLnNldFBhZ2VOdW1iZXIocGFnZU51bWJlcik7XG4gIH0pO1xuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IHBhZ2luYXRlZERpdmlzaW9uTWFya2Rvd25Ob2RlczsgLy8vXG5cbiAgcmV0dXJuIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcztcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29udGVudHMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5zb21lKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnRzQ3JlYXRlZCA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlLmNyZWF0ZUNvbnRlbnRzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgICBpZiAoY29udGVudHNDcmVhdGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGb290bm90ZXMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KSB7XG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlLmNyZWF0ZUZvb3Rub3Rlcyhmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVJbmNsdWRlcyhkaXZpc2lvbk1hcmtkb3duTm9kZSwgY29udGV4dCkge1xuICBjb25zdCBkaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBbXTtcblxuICBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZXNcbiAgfSk7XG5cbiAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGVJZ25vcmVkID0gZGl2aXNpb25NYXJrZG93bk5vZGUuaXNJZ25vcmVkKCk7XG5cbiAgaWYgKCFkaXZpc2lvbk1hcmtkb3duTm9kZUlnbm9yZWQpIHtcbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZXMucHVzaChkaXZpc2lvbk1hcmtkb3duTm9kZSk7XG4gIH1cblxuICBkaXZpc2lvbk1hcmtkb3duTm9kZS5yZXNvbHZlSW5jbHVkZXMoY29udGV4dCk7XG5cbiAgZGVsZXRlIGNvbnRleHQuZGl2aXNpb25NYXJrZG93bk5vZGVzO1xuXG4gIHJldHVybiBkaXZpc2lvbk1hcmtkb3duTm9kZXM7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVGb290bm90ZXMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAgPSB7fTtcblxuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5wcmVwYXJlRm9vdG5vdGVzKGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAsIGNvbnRleHQpO1xuICB9KTtcblxuICByZXR1cm4gZm9vdG5vdGVSZXBsYWNlbWVudE1hcDtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUVtYmVkZGluZ3MoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlLnJlc29sdmVFbWJlZGRpbmdzKGNvbnRleHQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBwb3N0cHJvY2Vzc1xufTtcbiJdLCJuYW1lcyI6WyJwb3N0cHJvY2VzcyIsImRpdmlzaW9uTWFya2Rvd25Ob2RlIiwiY29udGV4dCIsImRpdmlzaW9uTWFya2Rvd25Ob2RlcyIsInJlc29sdmVJbmNsdWRlcyIsInJlc29sdmVFbWJlZGRpbmdzIiwiZm9vdG5vdGVSZXBsYWNlbWVudE1hcCIsInByZXBhcmVGb290bm90ZXMiLCJwYWdpbmF0ZSIsImNyZWF0ZUZvb3Rub3RlcyIsImNyZWF0ZUNvbnRlbnRzIiwicGFnaW5hdGVkRGl2aXNpb25NYXJrZG93bk5vZGVzIiwiZm9yRWFjaCIsInBhZ2luYXRlZERpdmlzaW9uTWFya2Rvd25Ob2RlIiwiaW5kZXgiLCJwYWdlTnVtYmVyIiwic2V0UGFnZU51bWJlciIsInNvbWUiLCJjb250ZW50c0NyZWF0ZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJkaXZpc2lvbk1hcmtkb3duTm9kZUlnbm9yZWQiLCJpc0lnbm9yZWQiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUEwRkEsT0FFRTtlQUZGOztJQXhGZ0JBLFdBQVc7ZUFBWEE7OztBQUFULFNBQVNBLFlBQVlDLG9CQUFvQixFQUFFQyxPQUFPO0lBQ3ZELElBQUlDO0lBRUpBLHdCQUF3QkMsZ0JBQWdCSCxzQkFBc0JDO0lBRTlERyxrQkFBa0JGLHVCQUF1QkQ7SUFFekMsSUFBTUkseUJBQXlCQyxpQkFBaUJKLHVCQUF1QkQ7SUFFdkVDLHdCQUF3QkssU0FBU0wsdUJBQXVCRDtJQUV4RE8sZ0JBQWdCTix1QkFBdUJHLHdCQUF3Qko7SUFFL0RRLGVBQWVQLHVCQUF1QkQ7SUFFdEMsT0FBT0M7QUFDVDtBQUVBLFNBQVNLLFNBQVNMLHFCQUFxQixFQUFFRCxPQUFPO0lBQzlDLElBQU1TLGlDQUFpQyxFQUFFO0lBRXpDUixzQkFBc0JTLE9BQU8sQ0FBQyxTQUFDWDtRQUM3QkEscUJBQXFCTyxRQUFRLENBQUNHLGdDQUFnQ1Q7SUFDaEU7SUFFQVMsK0JBQStCQyxPQUFPLENBQUMsU0FBQ0MsK0JBQStCQztRQUNyRSxJQUFNQyxhQUFhRCxRQUFRO1FBRTNCRCw4QkFBOEJHLGFBQWEsQ0FBQ0Q7SUFDOUM7SUFFQVosd0JBQXdCUSxnQ0FBZ0MsR0FBRztJQUUzRCxPQUFPUjtBQUNUO0FBRUEsU0FBU08sZUFBZVAscUJBQXFCLEVBQUVELE9BQU87SUFDcERDLHNCQUFzQmMsSUFBSSxDQUFDLFNBQUNoQjtRQUMxQixJQUFNaUIsa0JBQWtCakIscUJBQXFCUyxjQUFjLENBQUNQLHVCQUF1QkQ7UUFFbkYsSUFBSWdCLGlCQUFpQjtZQUNuQixPQUFPO1FBQ1Q7SUFDRjtBQUNGO0FBRUEsU0FBU1QsZ0JBQWdCTixxQkFBcUIsRUFBRUcsc0JBQXNCLEVBQUVKLE9BQU87SUFDN0VDLHNCQUFzQlMsT0FBTyxDQUFDLFNBQUNYO1FBQzdCQSxxQkFBcUJRLGVBQWUsQ0FBQ0gsd0JBQXdCSjtJQUMvRDtBQUNGO0FBRUEsU0FBU0UsZ0JBQWdCSCxvQkFBb0IsRUFBRUMsT0FBTztJQUNwRCxJQUFNQyx3QkFBd0IsRUFBRTtJQUVoQ2dCLE9BQU9DLE1BQU0sQ0FBQ2xCLFNBQVM7UUFDckJDLHVCQUFBQTtJQUNGO0lBRUEsSUFBTWtCLDhCQUE4QnBCLHFCQUFxQnFCLFNBQVM7SUFFbEUsSUFBSSxDQUFDRCw2QkFBNkI7UUFDaENsQixzQkFBc0JvQixJQUFJLENBQUN0QjtJQUM3QjtJQUVBQSxxQkFBcUJHLGVBQWUsQ0FBQ0Y7SUFFckMsT0FBT0EsUUFBUUMscUJBQXFCO0lBRXBDLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTSSxpQkFBaUJKLHFCQUFxQixFQUFFRCxPQUFPO0lBQ3RELElBQU1JLHlCQUF5QixDQUFDO0lBRWhDSCxzQkFBc0JTLE9BQU8sQ0FBQyxTQUFDWDtRQUM3QkEscUJBQXFCTSxnQkFBZ0IsQ0FBQ0Qsd0JBQXdCSjtJQUNoRTtJQUVBLE9BQU9JO0FBQ1Q7QUFFQSxTQUFTRCxrQkFBa0JGLHFCQUFxQixFQUFFRCxPQUFPO0lBQ3ZEQyxzQkFBc0JTLE9BQU8sQ0FBQyxTQUFDWDtRQUM3QkEscUJBQXFCSSxpQkFBaUIsQ0FBQ0g7SUFDekM7QUFDRjtJQUVBLFdBQWU7SUFDYkYsYUFBQUE7QUFDRiJ9
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcHJvY2Vzc2luZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBvc3Rwcm9jZXNzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KSB7XG4gIGxldCBkaXZpc2lvbk1hcmtkb3duTm9kZXM7XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gcmVzb2x2ZUluY2x1ZGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlLCBjb250ZXh0KTtcblxuICByZXNvbHZlRW1iZWRkaW5ncyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gIGNvbnN0IGZvb3Rub3RlUmVwbGFjZW1lbnRNYXAgPSBwcmVwYXJlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gcGFnaW5hdGUoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICBjcmVhdGVGb290bm90ZXMoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KTtcblxuICBjcmVhdGVDb250ZW50cyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gIGNyZWF0ZUluZGV4KGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG5cbiAgcmV0dXJuIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcztcbn1cblxuZnVuY3Rpb24gcGFnaW5hdGUoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHBhZ2luYXRlZERpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IFtdO1xuXG4gIGRpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChkaXZpc2lvbk1hcmtkb3duTm9kZSkgPT4ge1xuICAgIGRpdmlzaW9uTWFya2Rvd25Ob2RlLnBhZ2luYXRlKHBhZ2luYXRlZERpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCk7XG4gIH0pO1xuXG4gIHBhZ2luYXRlZERpdmlzaW9uTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChwYWdpbmF0ZWREaXZpc2lvbk1hcmtkb3duTm9kZSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBwYWdlTnVtYmVyID0gaW5kZXggKyAxO1xuXG4gICAgcGFnaW5hdGVkRGl2aXNpb25NYXJrZG93bk5vZGUuc2V0UGFnZU51bWJlcihwYWdlTnVtYmVyKTtcbiAgfSk7XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gcGFnaW5hdGVkRGl2aXNpb25NYXJrZG93bk5vZGVzOyAvLy9cblxuICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGVzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVJbmRleChkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpIHtcbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnNvbWUoKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgY29uc3QgaW5kZXhDcmVhdGVkID0gZGl2aXNpb25NYXJrZG93bk5vZGUuY3JlYXRlSW5kZXgoZGl2aXNpb25NYXJrZG93bk5vZGVzLCBjb250ZXh0KTtcblxuICAgIGlmIChpbmRleENyZWF0ZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnRlbnRzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuc29tZSgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBjb25zdCBjb250ZW50c0NyZWF0ZWQgPSBkaXZpc2lvbk1hcmtkb3duTm9kZS5jcmVhdGVDb250ZW50cyhkaXZpc2lvbk1hcmtkb3duTm9kZXMsIGNvbnRleHQpO1xuXG4gICAgaWYgKGNvbnRlbnRzQ3JlYXRlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCkge1xuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5jcmVhdGVGb290bm90ZXMoZm9vdG5vdGVSZXBsYWNlbWVudE1hcCwgY29udGV4dCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlSW5jbHVkZXMoZGl2aXNpb25NYXJrZG93bk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgZGl2aXNpb25NYXJrZG93bk5vZGVzID0gW107XG5cbiAgT2JqZWN0LmFzc2lnbihjb250ZXh0LCB7XG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGVzXG4gIH0pO1xuXG4gIGNvbnN0IGRpdmlzaW9uTWFya2Rvd25Ob2RlSWdub3JlZCA9IGRpdmlzaW9uTWFya2Rvd25Ob2RlLmlzSWdub3JlZCgpO1xuXG4gIGlmICghZGl2aXNpb25NYXJrZG93bk5vZGVJZ25vcmVkKSB7XG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGVzLnB1c2goZGl2aXNpb25NYXJrZG93bk5vZGUpO1xuICB9XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGUucmVzb2x2ZUluY2x1ZGVzKGNvbnRleHQpO1xuXG4gIGRlbGV0ZSBjb250ZXh0LmRpdmlzaW9uTWFya2Rvd25Ob2RlcztcblxuICByZXR1cm4gZGl2aXNpb25NYXJrZG93bk5vZGVzO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlRm9vdG5vdGVzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBjb25zdCBmb290bm90ZVJlcGxhY2VtZW50TWFwID0ge307XG5cbiAgZGl2aXNpb25NYXJrZG93bk5vZGVzLmZvckVhY2goKGRpdmlzaW9uTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgZGl2aXNpb25NYXJrZG93bk5vZGUucHJlcGFyZUZvb3Rub3Rlcyhmb290bm90ZVJlcGxhY2VtZW50TWFwLCBjb250ZXh0KTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZvb3Rub3RlUmVwbGFjZW1lbnRNYXA7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVFbWJlZGRpbmdzKGRpdmlzaW9uTWFya2Rvd25Ob2RlcywgY29udGV4dCkge1xuICBkaXZpc2lvbk1hcmtkb3duTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25NYXJrZG93bk5vZGUpID0+IHtcbiAgICBkaXZpc2lvbk1hcmtkb3duTm9kZS5yZXNvbHZlRW1iZWRkaW5ncyhjb250ZXh0KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcG9zdHByb2Nlc3Ncbn07XG4iXSwibmFtZXMiOlsicG9zdHByb2Nlc3MiLCJkaXZpc2lvbk1hcmtkb3duTm9kZSIsImNvbnRleHQiLCJkaXZpc2lvbk1hcmtkb3duTm9kZXMiLCJyZXNvbHZlSW5jbHVkZXMiLCJyZXNvbHZlRW1iZWRkaW5ncyIsImZvb3Rub3RlUmVwbGFjZW1lbnRNYXAiLCJwcmVwYXJlRm9vdG5vdGVzIiwicGFnaW5hdGUiLCJjcmVhdGVGb290bm90ZXMiLCJjcmVhdGVDb250ZW50cyIsImNyZWF0ZUluZGV4IiwicGFnaW5hdGVkRGl2aXNpb25NYXJrZG93bk5vZGVzIiwiZm9yRWFjaCIsInBhZ2luYXRlZERpdmlzaW9uTWFya2Rvd25Ob2RlIiwiaW5kZXgiLCJwYWdlTnVtYmVyIiwic2V0UGFnZU51bWJlciIsInNvbWUiLCJpbmRleENyZWF0ZWQiLCJjb250ZW50c0NyZWF0ZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJkaXZpc2lvbk1hcmtkb3duTm9kZUlnbm9yZWQiLCJpc0lnbm9yZWQiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFzR0EsT0FFRTtlQUZGOztJQXBHZ0JBLFdBQVc7ZUFBWEE7OztBQUFULFNBQVNBLFlBQVlDLG9CQUFvQixFQUFFQyxPQUFPO0lBQ3ZELElBQUlDO0lBRUpBLHdCQUF3QkMsZ0JBQWdCSCxzQkFBc0JDO0lBRTlERyxrQkFBa0JGLHVCQUF1QkQ7SUFFekMsSUFBTUkseUJBQXlCQyxpQkFBaUJKLHVCQUF1QkQ7SUFFdkVDLHdCQUF3QkssU0FBU0wsdUJBQXVCRDtJQUV4RE8sZ0JBQWdCTix1QkFBdUJHLHdCQUF3Qko7SUFFL0RRLGVBQWVQLHVCQUF1QkQ7SUFFdENTLFlBQVlSLHVCQUF1QkQ7SUFFbkMsT0FBT0M7QUFDVDtBQUVBLFNBQVNLLFNBQVNMLHFCQUFxQixFQUFFRCxPQUFPO0lBQzlDLElBQU1VLGlDQUFpQyxFQUFFO0lBRXpDVCxzQkFBc0JVLE9BQU8sQ0FBQyxTQUFDWjtRQUM3QkEscUJBQXFCTyxRQUFRLENBQUNJLGdDQUFnQ1Y7SUFDaEU7SUFFQVUsK0JBQStCQyxPQUFPLENBQUMsU0FBQ0MsK0JBQStCQztRQUNyRSxJQUFNQyxhQUFhRCxRQUFRO1FBRTNCRCw4QkFBOEJHLGFBQWEsQ0FBQ0Q7SUFDOUM7SUFFQWIsd0JBQXdCUyxnQ0FBZ0MsR0FBRztJQUUzRCxPQUFPVDtBQUNUO0FBRUEsU0FBU1EsWUFBWVIscUJBQXFCLEVBQUVELE9BQU87SUFDakRDLHNCQUFzQmUsSUFBSSxDQUFDLFNBQUNqQjtRQUMxQixJQUFNa0IsZUFBZWxCLHFCQUFxQlUsV0FBVyxDQUFDUix1QkFBdUJEO1FBRTdFLElBQUlpQixjQUFjO1lBQ2hCLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFQSxTQUFTVCxlQUFlUCxxQkFBcUIsRUFBRUQsT0FBTztJQUNwREMsc0JBQXNCZSxJQUFJLENBQUMsU0FBQ2pCO1FBQzFCLElBQU1tQixrQkFBa0JuQixxQkFBcUJTLGNBQWMsQ0FBQ1AsdUJBQXVCRDtRQUVuRixJQUFJa0IsaUJBQWlCO1lBQ25CLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFQSxTQUFTWCxnQkFBZ0JOLHFCQUFxQixFQUFFRyxzQkFBc0IsRUFBRUosT0FBTztJQUM3RUMsc0JBQXNCVSxPQUFPLENBQUMsU0FBQ1o7UUFDN0JBLHFCQUFxQlEsZUFBZSxDQUFDSCx3QkFBd0JKO0lBQy9EO0FBQ0Y7QUFFQSxTQUFTRSxnQkFBZ0JILG9CQUFvQixFQUFFQyxPQUFPO0lBQ3BELElBQU1DLHdCQUF3QixFQUFFO0lBRWhDa0IsT0FBT0MsTUFBTSxDQUFDcEIsU0FBUztRQUNyQkMsdUJBQUFBO0lBQ0Y7SUFFQSxJQUFNb0IsOEJBQThCdEIscUJBQXFCdUIsU0FBUztJQUVsRSxJQUFJLENBQUNELDZCQUE2QjtRQUNoQ3BCLHNCQUFzQnNCLElBQUksQ0FBQ3hCO0lBQzdCO0lBRUFBLHFCQUFxQkcsZUFBZSxDQUFDRjtJQUVyQyxPQUFPQSxRQUFRQyxxQkFBcUI7SUFFcEMsT0FBT0E7QUFDVDtBQUVBLFNBQVNJLGlCQUFpQkoscUJBQXFCLEVBQUVELE9BQU87SUFDdEQsSUFBTUkseUJBQXlCLENBQUM7SUFFaENILHNCQUFzQlUsT0FBTyxDQUFDLFNBQUNaO1FBQzdCQSxxQkFBcUJNLGdCQUFnQixDQUFDRCx3QkFBd0JKO0lBQ2hFO0lBRUEsT0FBT0k7QUFDVDtBQUVBLFNBQVNELGtCQUFrQkYscUJBQXFCLEVBQUVELE9BQU87SUFDdkRDLHNCQUFzQlUsT0FBTyxDQUFDLFNBQUNaO1FBQzdCQSxxQkFBcUJJLGlCQUFpQixDQUFDSDtJQUN6QztBQUNGO0lBRUEsV0FBZTtJQUNiRixhQUFBQTtBQUNGIn0=
@@ -18,6 +18,12 @@ _export(exports, {
18
18
  embedDirectiveMarkdownNodesFromNode: function() {
19
19
  return embedDirectiveMarkdownNodesFromNode;
20
20
  },
21
+ footnoteFootnoteLinkOrFootnotesDirectiveMarkdownNodesFromNode: function() {
22
+ return footnoteFootnoteLinkOrFootnotesDirectiveMarkdownNodesFromNode;
23
+ },
24
+ footnoteLinkMarkdownNodesFromNode: function() {
25
+ return footnoteLinkMarkdownNodesFromNode;
26
+ },
21
27
  footnoteMarkdownNodeFromNode: function() {
22
28
  return footnoteMarkdownNodeFromNode;
23
29
  },
@@ -33,11 +39,8 @@ _export(exports, {
33
39
  includeDirectiveMarkdownNodesFromNode: function() {
34
40
  return includeDirectiveMarkdownNodesFromNode;
35
41
  },
36
- linkFootnoteOrFootnotesDirectiveMarkdownNodesFromNode: function() {
37
- return linkFootnoteOrFootnotesDirectiveMarkdownNodesFromNode;
38
- },
39
- linkMarkdownNodesFromNode: function() {
40
- return linkMarkdownNodesFromNode;
42
+ indexDirectiveMarkdownNodeFromNode: function() {
43
+ return indexDirectiveMarkdownNodeFromNode;
41
44
  },
42
45
  nodeQuery: function() {
43
46
  return nodeQuery;
@@ -55,7 +58,7 @@ _export(exports, {
55
58
  var _occamquery = require("occam-query");
56
59
  var _necessary = require("necessary");
57
60
  var first = _necessary.arrayUtilities.first, push = _necessary.arrayUtilities.push;
58
- var footnoteMarkdownNodeQuery = _occamquery.Query.fromExpression("/subDivision/footnote"), ignoreDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpression("/division/subDivision/directives/ignoreDirective"), contentsDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpression("/subDivision/directives/contentsDirective"), footnotesDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpression("/subDivision/directives/footnotesDirective"), pageNumberDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpression("/subDivision/directives/pageNumber"), linkMarkdownNodesQuery = _occamquery.Query.fromExpression("//link"), headingMarkdownNodesQuery = _occamquery.Query.fromExpression("/division/subDivision/primaryHeading|secondaryHeading|tertiaryHeading|quaternaryHeading"), subDivisionMarkdownNodesQuery = _occamquery.Query.fromExpression("/division/subDivision"), embedDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpression("/subDivision/directives/embedDirective"), includeDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpression("/subDivision/directives/includeDirective"), linkFootnoteOrFootnotesDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpression("//link|footnote|footnotesDirective");
61
+ var footnoteMarkdownNodeQuery = _occamquery.Query.fromExpression("/subDivision/footnote"), indexDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpression("/subDivision/directives/indexDirective"), ignoreDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpression("/division/subDivision/directives/ignoreDirective"), contentsDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpression("/subDivision/directives/contentsDirective"), footnotesDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpression("/subDivision/directives/footnotesDirective"), pageNumberDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpression("/subDivision/directives/pageNumber"), headingMarkdownNodesQuery = _occamquery.Query.fromExpression("/division/subDivision/primaryHeading|secondaryHeading|tertiaryHeading|quaternaryHeading"), subDivisionMarkdownNodesQuery = _occamquery.Query.fromExpression("/division/subDivision"), footnoteLinkMarkdownNodesQuery = _occamquery.Query.fromExpression("//footnoteLink"), embedDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpression("/subDivision/directives/embedDirective"), includeDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpression("/subDivision/directives/includeDirective"), footnoteFootnoteLinkOrFootnotesDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpression("//footnote|footnoteLink|footnotesDirective");
59
62
  function nodeQuery(expression) {
60
63
  var query = _occamquery.Query.fromExpression(expression);
61
64
  return function(node) {
@@ -80,6 +83,10 @@ function footnoteMarkdownNodeFromNode(node) {
80
83
  var footnoteMarkdownNode = nodeFromNodeAndQuery(node, footnoteMarkdownNodeQuery);
81
84
  return footnoteMarkdownNode;
82
85
  }
86
+ function indexDirectiveMarkdownNodeFromNode(node) {
87
+ var indexDirectiveMarkdownNode = nodeFromNodeAndQuery(node, indexDirectiveMarkdownNodeQuery);
88
+ return indexDirectiveMarkdownNode;
89
+ }
83
90
  function ignoreDirectiveMarkdownNodeFromNode(node) {
84
91
  var ignoreDirectiveMarkdownNode = nodeFromNodeAndQuery(node, ignoreDirectiveMarkdownNodeQuery);
85
92
  return ignoreDirectiveMarkdownNode;
@@ -96,11 +103,6 @@ function pageNumberDirectiveMarkdownNodeFromNode(node) {
96
103
  var pageNumberDirectiveMarkdownNode = nodeFromNodeAndQuery(node, pageNumberDirectiveMarkdownNodeQuery);
97
104
  return pageNumberDirectiveMarkdownNode;
98
105
  }
99
- function linkMarkdownNodesFromNode(node) {
100
- var linkMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
101
- nodesFromNodeAndQuery(node, linkMarkdownNodesQuery, linkMarkdownNodes);
102
- return linkMarkdownNodes;
103
- }
104
106
  function headingMarkdownNodesFromNode(node) {
105
107
  var headingMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
106
108
  nodesFromNodeAndQuery(node, headingMarkdownNodesQuery, headingMarkdownNodes);
@@ -111,6 +113,11 @@ function subDivisionMarkdownNodesFromNode(node) {
111
113
  nodesFromNodeAndQuery(node, subDivisionMarkdownNodesQuery, subDivisionMarkdownNodes);
112
114
  return subDivisionMarkdownNodes;
113
115
  }
116
+ function footnoteLinkMarkdownNodesFromNode(node) {
117
+ var linkMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
118
+ nodesFromNodeAndQuery(node, footnoteLinkMarkdownNodesQuery, linkMarkdownNodes);
119
+ return linkMarkdownNodes;
120
+ }
114
121
  function embedDirectiveMarkdownNodesFromNode(node) {
115
122
  var embedDirectiveMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
116
123
  nodesFromNodeAndQuery(node, embedDirectiveMarkdownNodesQuery, embedDirectiveMarkdownNodes);
@@ -121,23 +128,24 @@ function includeDirectiveMarkdownNodesFromNode(node) {
121
128
  nodesFromNodeAndQuery(node, includeDirectiveMarkdownNodesQuery, includeDirectiveMarkdownNodes);
122
129
  return includeDirectiveMarkdownNodes;
123
130
  }
124
- function linkFootnoteOrFootnotesDirectiveMarkdownNodesFromNode(node) {
125
- var linkFootnoteOrFootnotesDirectiveMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
126
- nodesFromNodeAndQuery(node, linkFootnoteOrFootnotesDirectiveMarkdownNodesQuery, linkFootnoteOrFootnotesDirectiveMarkdownNodes);
127
- return linkFootnoteOrFootnotesDirectiveMarkdownNodes;
131
+ function footnoteFootnoteLinkOrFootnotesDirectiveMarkdownNodesFromNode(node) {
132
+ var footnoteFootnoteLinkOrFootnotesDirectiveMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
133
+ nodesFromNodeAndQuery(node, footnoteFootnoteLinkOrFootnotesDirectiveMarkdownNodesQuery, footnoteFootnoteLinkOrFootnotesDirectiveMarkdownNodes);
134
+ return footnoteFootnoteLinkOrFootnotesDirectiveMarkdownNodes;
128
135
  }
129
136
  var _default = {
130
137
  footnoteMarkdownNodeFromNode: footnoteMarkdownNodeFromNode,
138
+ indexDirectiveMarkdownNodeFromNode: indexDirectiveMarkdownNodeFromNode,
131
139
  ignoreDirectiveMarkdownNodeFromNode: ignoreDirectiveMarkdownNodeFromNode,
132
140
  contentsDirectiveMarkdownNodeFromNode: contentsDirectiveMarkdownNodeFromNode,
133
141
  footnotesDirectiveMarkdownNodeFromNode: footnotesDirectiveMarkdownNodeFromNode,
134
142
  pageNumberDirectiveMarkdownNodeFromNode: pageNumberDirectiveMarkdownNodeFromNode,
135
- linkMarkdownNodesFromNode: linkMarkdownNodesFromNode,
136
143
  headingMarkdownNodesFromNode: headingMarkdownNodesFromNode,
137
144
  subDivisionMarkdownNodesFromNode: subDivisionMarkdownNodesFromNode,
145
+ footnoteLinkMarkdownNodesFromNode: footnoteLinkMarkdownNodesFromNode,
138
146
  embedDirectiveMarkdownNodesFromNode: embedDirectiveMarkdownNodesFromNode,
139
147
  includeDirectiveMarkdownNodesFromNode: includeDirectiveMarkdownNodesFromNode,
140
- linkFootnoteOrFootnotesDirectiveMarkdownNodesFromNode: linkFootnoteOrFootnotesDirectiveMarkdownNodesFromNode
148
+ footnoteFootnoteLinkOrFootnotesDirectiveMarkdownNodesFromNode: footnoteFootnoteLinkOrFootnotesDirectiveMarkdownNodesFromNode
141
149
  };
142
150
  function nodeFromNodeAndQuery(node, query) {
143
151
  var queryNodes = query.execute(node), queryNodesLength = queryNodes.length;
@@ -155,4 +163,4 @@ function nodesFromNodeAndQuery(node, query, nodes) {
155
163
  return nodes;
156
164
  }
157
165
 
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaXJzdCwgcHVzaCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNvbnN0IGZvb3Rub3RlTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi9zdWJEaXZpc2lvbi9mb290bm90ZVwiKSxcbiAgICAgIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvZGl2aXNpb24vc3ViRGl2aXNpb24vZGlyZWN0aXZlcy9pZ25vcmVEaXJlY3RpdmVcIiksXG4gICAgICBjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvc3ViRGl2aXNpb24vZGlyZWN0aXZlcy9jb250ZW50c0RpcmVjdGl2ZVwiKSxcbiAgICAgIGZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvc3ViRGl2aXNpb24vZGlyZWN0aXZlcy9mb290bm90ZXNEaXJlY3RpdmVcIiksXG4gICAgICBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL3BhZ2VOdW1iZXJcIiksICAvLy9cbiAgICAgIGxpbmtNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vbGlua1wiKSxcbiAgICAgIGhlYWRpbmdNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi9kaXZpc2lvbi9zdWJEaXZpc2lvbi9wcmltYXJ5SGVhZGluZ3xzZWNvbmRhcnlIZWFkaW5nfHRlcnRpYXJ5SGVhZGluZ3xxdWF0ZXJuYXJ5SGVhZGluZ1wiKSxcbiAgICAgIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvZGl2aXNpb24vc3ViRGl2aXNpb25cIiksXG4gICAgICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvZW1iZWREaXJlY3RpdmVcIiksXG4gICAgICBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvc3ViRGl2aXNpb24vZGlyZWN0aXZlcy9pbmNsdWRlRGlyZWN0aXZlXCIpLFxuICAgICAgbGlua0Zvb3Rub3RlT3JGb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi8vbGlua3xmb290bm90ZXxmb290bm90ZXNEaXJlY3RpdmVcIik7XG5cbmV4cG9ydCBmdW5jdGlvbiBub2RlUXVlcnkoZXhwcmVzc2lvbikge1xuICBjb25zdCBxdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKGV4cHJlc3Npb24pO1xuXG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpLFxuICAgICAgICAgIG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoO1xuXG4gICAgaWYgKG5vZGVzTGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmlyc3ROb2RlID0gZmlyc3Qobm9kZXMpO1xuXG4gICAgICBub2RlID0gZmlyc3ROb2RlOyAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZSA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVzUXVlcnkoZXhwcmVzc2lvbikge1xuICBjb25zdCBxdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKGV4cHJlc3Npb24pO1xuXG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgcmV0dXJuIG5vZGVzO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb290bm90ZU1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgZm9vdG5vdGVNYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBmb290bm90ZU1hcmtkb3duTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gZm9vdG5vdGVNYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSk7XG5cbiAgcmV0dXJuIGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSk7XG5cbiAgcmV0dXJuIGZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGlua01hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBsaW5rTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBsaW5rTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBsaW5rTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGxpbmtNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBoZWFkaW5nTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBoZWFkaW5nTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBoZWFkaW5nTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGhlYWRpbmdNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnksIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSwgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmtGb290bm90ZU9yRm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGxpbmtGb290bm90ZU9yRm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBsaW5rRm9vdG5vdGVPckZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSwgbGlua0Zvb3Rub3RlT3JGb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gbGlua0Zvb3Rub3RlT3JGb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGZvb3Rub3RlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLFxuICBjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLFxuICBmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgcGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLFxuICBsaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICBoZWFkaW5nTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUsXG4gIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUsXG4gIGxpbmtGb290bm90ZU9yRm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlXG59O1xuXG5mdW5jdGlvbiBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBxdWVyeSkge1xuICBjb25zdCBxdWVyeU5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgcXVlcnlOb2Rlc0xlbmd0aCA9IHF1ZXJ5Tm9kZXMubGVuZ3RoO1xuXG4gIGlmIChxdWVyeU5vZGVzTGVuZ3RoID09PSAwKSB7XG4gICAgbm9kZSA9IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZmlyc3RRdWVyeU5vZGUgPSBmaXJzdChxdWVyeU5vZGVzKTtcblxuICAgIG5vZGUgPSBmaXJzdFF1ZXJ5Tm9kZTsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIG5vZGU7XG59XG5cbmZ1bmN0aW9uIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBxdWVyeSwgbm9kZXMpIHtcbiAgY29uc3QgcXVlcnlOb2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSk7XG5cbiAgcHVzaChub2RlcywgcXVlcnlOb2Rlcyk7XG5cbiAgcmV0dXJuIG5vZGVzO1xufVxuIl0sIm5hbWVzIjpbImNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImZvb3Rub3RlTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSIsImluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJsaW5rRm9vdG5vdGVPckZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImxpbmtNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJub2RlUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwicHVzaCIsImZvb3Rub3RlTWFya2Rvd25Ob2RlUXVlcnkiLCJRdWVyeSIsImZyb21FeHByZXNzaW9uIiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkiLCJjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5IiwiZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkiLCJwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkiLCJsaW5rTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiaGVhZGluZ01hcmtkb3duTm9kZXNRdWVyeSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnkiLCJpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwibGlua0Zvb3Rub3RlT3JGb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnkiLCJleHByZXNzaW9uIiwicXVlcnkiLCJub2RlIiwibm9kZXMiLCJleGVjdXRlIiwibm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdE5vZGUiLCJmb290bm90ZU1hcmtkb3duTm9kZSIsIm5vZGVGcm9tTm9kZUFuZFF1ZXJ5IiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwiY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGUiLCJmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGUiLCJwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwibGlua01hcmtkb3duTm9kZXMiLCJub2Rlc0Zyb21Ob2RlQW5kUXVlcnkiLCJoZWFkaW5nTWFya2Rvd25Ob2RlcyIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyIsImVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyIsImluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzIiwibGlua0Zvb3Rub3RlT3JGb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVzIiwicXVlcnlOb2RlcyIsInF1ZXJ5Tm9kZXNMZW5ndGgiLCJmaXJzdFF1ZXJ5Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBNERnQkEscUNBQXFDO2VBQXJDQTs7SUFzRGhCLE9BWUU7ZUFaRjs7SUFsQmdCQyxtQ0FBbUM7ZUFBbkNBOztJQWhEQUMsNEJBQTRCO2VBQTVCQTs7SUFrQkFDLHNDQUFzQztlQUF0Q0E7O0lBa0JBQyw0QkFBNEI7ZUFBNUJBOztJQTlCQUMsbUNBQW1DO2VBQW5DQTs7SUFnREFDLHFDQUFxQztlQUFyQ0E7O0lBTUFDLHFEQUFxRDtlQUFyREE7O0lBOUJBQyx5QkFBeUI7ZUFBekJBOztJQTNEQUMsU0FBUztlQUFUQTs7SUFtQkFDLFVBQVU7ZUFBVkE7O0lBa0NBQyx1Q0FBdUM7ZUFBdkNBOztJQWtCQUMsZ0NBQWdDO2VBQWhDQTs7OzBCQXhGTTt5QkFDUztBQUUvQixJQUFRQyxRQUFnQkMseUJBQWMsQ0FBOUJELE9BQU9FLE9BQVNELHlCQUFjLENBQXZCQztBQUVmLElBQU1DLDRCQUE0QkMsaUJB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
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaXJzdCwgcHVzaCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNvbnN0IGZvb3Rub3RlTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi9zdWJEaXZpc2lvbi9mb290bm90ZVwiKSxcbiAgICAgIGluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2luZGV4RGlyZWN0aXZlXCIpLFxuICAgICAgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi9kaXZpc2lvbi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2lnbm9yZURpcmVjdGl2ZVwiKSxcbiAgICAgIGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2NvbnRlbnRzRGlyZWN0aXZlXCIpLFxuICAgICAgZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2Zvb3Rub3Rlc0RpcmVjdGl2ZVwiKSxcbiAgICAgIHBhZ2VOdW1iZXJEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvcGFnZU51bWJlclwiKSwgIC8vL1xuICAgICAgaGVhZGluZ01hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uL3ByaW1hcnlIZWFkaW5nfHNlY29uZGFyeUhlYWRpbmd8dGVydGlhcnlIZWFkaW5nfHF1YXRlcm5hcnlIZWFkaW5nXCIpLFxuICAgICAgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihcIi9kaXZpc2lvbi9zdWJEaXZpc2lvblwiKSxcbiAgICAgIGZvb3Rub3RlTGlua01hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiLy9mb290bm90ZUxpbmtcIiksXG4gICAgICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvZW1iZWREaXJlY3RpdmVcIiksXG4gICAgICBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb24oXCIvc3ViRGl2aXNpb24vZGlyZWN0aXZlcy9pbmNsdWRlRGlyZWN0aXZlXCIpLFxuICAgICAgZm9vdG5vdGVGb290bm90ZUxpbmtPckZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uKFwiLy9mb290bm90ZXxmb290bm90ZUxpbmt8Zm9vdG5vdGVzRGlyZWN0aXZlXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9kZVF1ZXJ5KGV4cHJlc3Npb24pIHtcbiAgY29uc3QgcXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihleHByZXNzaW9uKTtcblxuICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgIGNvbnN0IG5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgICBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChub2Rlc0xlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpcnN0Tm9kZSA9IGZpcnN0KG5vZGVzKTtcblxuICAgICAgbm9kZSA9IGZpcnN0Tm9kZTsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUgPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBub2RlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2Rlc1F1ZXJ5KGV4cHJlc3Npb24pIHtcbiAgY29uc3QgcXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvbihleHByZXNzaW9uKTtcblxuICByZXR1cm4gZnVuY3Rpb24obm9kZSkge1xuICAgIGNvbnN0IG5vZGVzID0gcXVlcnkuZXhlY3V0ZShub2RlKTtcblxuICAgIHJldHVybiBub2RlcztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGZvb3Rub3RlTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgZm9vdG5vdGVNYXJrZG93bk5vZGVRdWVyeSk7XG5cbiAgcmV0dXJuIGZvb3Rub3RlTWFya2Rvd25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5kZXhEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZShub2RlKSB7XG4gIGNvbnN0IGluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgaW5kZXhEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSk7XG5cbiAgcmV0dXJuIGluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGUgPSBub2RlRnJvbU5vZGVBbmRRdWVyeShub2RlLCBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSk7XG5cbiAgcmV0dXJuIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBwYWdlTnVtYmVyRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgcGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5KTtcblxuICByZXR1cm4gcGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhlYWRpbmdNYXJrZG93bk5vZGVzRnJvbU5vZGUobm9kZSwgaGVhZGluZ01hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgaGVhZGluZ01hcmtkb3duTm9kZXNRdWVyeSwgaGVhZGluZ01hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBoZWFkaW5nTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSwgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGxpbmtNYXJrZG93bk5vZGVzID0gW10pIHtcbiAgbm9kZXNGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIGZvb3Rub3RlTGlua01hcmtkb3duTm9kZXNRdWVyeSwgbGlua01hcmtkb3duTm9kZXMpO1xuXG4gIHJldHVybiBsaW5rTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSwgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9vdG5vdGVGb290bm90ZUxpbmtPckZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBmb290bm90ZUZvb3Rub3RlTGlua09yRm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBmb290bm90ZUZvb3Rub3RlTGlua09yRm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBmb290bm90ZUZvb3Rub3RlTGlua09yRm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGZvb3Rub3RlRm9vdG5vdGVMaW5rT3JGb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGZvb3Rub3RlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLFxuICBjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLFxuICBmb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVGcm9tTm9kZSxcbiAgcGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLFxuICBoZWFkaW5nTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlLFxuICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgZm9vdG5vdGVGb290bm90ZUxpbmtPckZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZVxufTtcblxuZnVuY3Rpb24gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgcXVlcnkpIHtcbiAgY29uc3QgcXVlcnlOb2RlcyA9IHF1ZXJ5LmV4ZWN1dGUobm9kZSksXG4gICAgICAgIHF1ZXJ5Tm9kZXNMZW5ndGggPSBxdWVyeU5vZGVzLmxlbmd0aDtcblxuICBpZiAocXVlcnlOb2Rlc0xlbmd0aCA9PT0gMCkge1xuICAgIG5vZGUgPSBudWxsO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGZpcnN0UXVlcnlOb2RlID0gZmlyc3QocXVlcnlOb2Rlcyk7XG5cbiAgICBub2RlID0gZmlyc3RRdWVyeU5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuXG5mdW5jdGlvbiBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgcXVlcnksIG5vZGVzKSB7XG4gIGNvbnN0IHF1ZXJ5Tm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gIHB1c2gobm9kZXMsIHF1ZXJ5Tm9kZXMpO1xuXG4gIHJldHVybiBub2Rlcztcbn1cbiJdLCJuYW1lcyI6WyJjb250ZW50c0RpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJmb290bm90ZUZvb3Rub3RlTGlua09yRm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwiZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwiZm9vdG5vdGVNYXJrZG93bk5vZGVGcm9tTm9kZSIsImZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiaGVhZGluZ01hcmtkb3duTm9kZXNGcm9tTm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImluZGV4RGlyZWN0aXZlTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJub2RlUXVlcnkiLCJub2Rlc1F1ZXJ5IiwicGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzRnJvbU5vZGUiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwicHVzaCIsImZvb3Rub3RlTWFya2Rvd25Ob2RlUXVlcnkiLCJRdWVyeSIsImZyb21FeHByZXNzaW9uIiwiaW5kZXhEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5IiwiY29udGVudHNEaXJlY3RpdmVNYXJrZG93bk5vZGVRdWVyeSIsImZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5IiwicGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5IiwiaGVhZGluZ01hcmtkb3duTm9kZXNRdWVyeSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiZm9vdG5vdGVMaW5rTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnkiLCJpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiZm9vdG5vdGVGb290bm90ZUxpbmtPckZvb3Rub3Rlc0RpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSIsImV4cHJlc3Npb24iLCJxdWVyeSIsIm5vZGUiLCJub2RlcyIsImV4ZWN1dGUiLCJub2Rlc0xlbmd0aCIsImxlbmd0aCIsImZpcnN0Tm9kZSIsImZvb3Rub3RlTWFya2Rvd25Ob2RlIiwibm9kZUZyb21Ob2RlQW5kUXVlcnkiLCJpbmRleERpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImNvbnRlbnRzRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwiZm9vdG5vdGVzRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwicGFnZU51bWJlckRpcmVjdGl2ZU1hcmtkb3duTm9kZSIsImhlYWRpbmdNYXJrZG93bk5vZGVzIiwibm9kZXNGcm9tTm9kZUFuZFF1ZXJ5Iiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzIiwibGlua01hcmtkb3duTm9kZXMiLCJlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXMiLCJpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyIsImZvb3Rub3RlRm9vdG5vdGVMaW5rT3JGb290bm90ZXNEaXJlY3RpdmVNYXJrZG93bk5vZGVzIiwicXVlcnlOb2RlcyIsInF1ZXJ5Tm9kZXNMZW5ndGgiLCJmaXJzdFF1ZXJ5Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBbUVnQkEscUNBQXFDO2VBQXJDQTs7SUFzRGhCLE9BYUU7ZUFiRjs7SUFsQmdCQyxtQ0FBbUM7ZUFBbkNBOztJQVlBQyw2REFBNkQ7ZUFBN0RBOztJQWxCQUMsaUNBQWlDO2VBQWpDQTs7SUFoREFDLDRCQUE0QjtlQUE1QkE7O0lBd0JBQyxzQ0FBc0M7ZUFBdENBOztJQVlBQyw0QkFBNEI7ZUFBNUJBOztJQXhCQUMsbUNBQW1DO2VBQW5DQTs7SUFnREFDLHFDQUFxQztlQUFyQ0E7O0lBdERBQyxrQ0FBa0M7ZUFBbENBOztJQW5DQUMsU0FBUztlQUFUQTs7SUFtQkFDLFVBQVU7ZUFBVkE7O0lBd0NBQyx1Q0FBdUM7ZUFBdkNBOztJQVlBQyxnQ0FBZ0M7ZUFBaENBOzs7MEJBekZNO3lCQUNTO0FBRS9CLElBQVFDLFFBQWdCQyx5QkFBYyxDQUE5QkQsT0FBT0UsT0FBU0QseUJBQWMsQ0FBdkJDO0FBRWYsSUFBTUMsNEJBQTRCQyxpQkFBSyxDQUFDQyxjQUFjLENBQUMsMEJBQ2pEQyxrQ0FBa0NGLGlCQUFLLENBQUNDLGNBQWMsQ0FBQywyQ0FDdkRFLG1DQUFtQ0gsaUJBQUssQ0FBQ0MsY0FBYyxDQUFDLHFEQUN4REcscUNBQXFDSixpQkFBSyxDQUFDQyxjQUFjLENBQUMsOENBQzFESSxzQ0FBc0NMLGlCQUFLLENBQUNDLGNBQWMsQ0FBQywrQ0FDM0RLLHVDQUF1Q04saUJBQUssQ0FBQ0MsY0FBYyxDQUFDLHVDQUM1RE0sNEJBQTRCUCxpQkFBSyxDQUFDQyxjQUFjLENBQUMsNEZBQ2pETyxnQ0FBZ0NSLGlCQUFLLENBQUNDLGNBQWMsQ0FBQyww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