highmark-markdown 1.2.71 → 1.2.73
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.
- package/lib/attributeNames.js +7 -7
- package/lib/constants.js +19 -19
- package/lib/example/constants.js +7 -7
- package/lib/example/customEventTypes.js +9 -9
- package/lib/example/importer.js +72 -28
- package/lib/example/indexOptions.js +3 -3
- package/lib/example/view/button/page.js +34 -135
- package/lib/example/view/button/tab/css.js +14 -114
- package/lib/example/view/button/tab/html.js +14 -114
- package/lib/example/view/button/tab/markdown.js +14 -114
- package/lib/example/view/button/tab/markdownStyle.js +14 -114
- package/lib/example/view/button/tab/plainText.js +14 -114
- package/lib/example/view/button/tab/preview.js +14 -114
- package/lib/example/view/button/tab.js +36 -136
- package/lib/example/view/div/container/css.js +15 -153
- package/lib/example/view/div/container/html.js +19 -157
- package/lib/example/view/div/container/markdown.js +38 -190
- package/lib/example/view/div/container/markdownStyle.js +39 -191
- package/lib/example/view/div/container/plainText.js +15 -153
- package/lib/example/view/div/container/preview.js +25 -177
- package/lib/example/view/div/container.js +20 -156
- package/lib/example/view/div/html.js +18 -173
- package/lib/example/view/div/pageButtons.js +63 -236
- package/lib/example/view/div/preview.js +58 -268
- package/lib/example/view/div/sizeable/left.js +13 -104
- package/lib/example/view/div/tabButtons/left.js +42 -161
- package/lib/example/view/div/tabButtons/right.js +75 -198
- package/lib/example/view/div/tabButtons.js +15 -172
- package/lib/example/view/textarea/css.js +29 -147
- package/lib/example/view/textarea/markdown.js +29 -145
- package/lib/example/view/textarea/markdownStyle.js +29 -145
- package/lib/example/view/textarea/parseTree/css.js +21 -132
- package/lib/example/view/textarea/parseTree/html.js +21 -132
- package/lib/example/view/textarea/parseTree/markdown.js +17 -129
- package/lib/example/view/textarea/parseTree/markdownStyle.js +17 -129
- package/lib/example/view/textarea/parseTree.js +20 -135
- package/lib/example/view/textarea/plainText.js +32 -153
- package/lib/example/view/textarea.js +16 -23
- package/lib/example/view/xmp.js +30 -187
- package/lib/example/view.js +281 -518
- package/lib/example.js +10 -10
- package/lib/index/item.js +25 -87
- package/lib/index/list.js +29 -62
- package/lib/index/match.js +23 -62
- package/lib/index.js +34 -34
- package/lib/letters.js +3 -3
- package/lib/map/className.js +6 -6
- package/lib/map/node/css.js +50 -42
- package/lib/map/node/html.js +108 -71
- package/lib/map/nonTerminalNode/markdown.js +49 -40
- package/lib/map/nonTerminalNode/markdownStyle.js +49 -40
- package/lib/map/tagName.js +6 -6
- package/lib/markdown/bnf.js +300 -3
- package/lib/markdown/entries.js +3 -3
- package/lib/markdown/lexer.js +23 -126
- package/lib/markdown/parser.js +18 -121
- package/lib/markdownStyle/bnf.js +80 -3
- package/lib/markdownStyle/entries.js +8 -8
- package/lib/markdownStyle/lexer.js +23 -126
- package/lib/markdownStyle/parser.js +18 -121
- package/lib/mixins/node.js +53 -53
- package/lib/mixins/token.js +13 -13
- package/lib/node/css/amount.js +16 -110
- package/lib/node/css/argument.js +8 -95
- package/lib/node/css/arguments.js +13 -127
- package/lib/node/css/class.js +13 -127
- package/lib/node/css/colour.js +16 -110
- package/lib/node/css/content.js +12 -103
- package/lib/node/css/declaration.js +19 -109
- package/lib/node/css/identifier.js +16 -110
- package/lib/node/css/name.js +13 -127
- package/lib/node/css/pseudoClass.js +13 -127
- package/lib/node/css/ruleName.js +43 -137
- package/lib/node/css/ruleSet.js +45 -139
- package/lib/node/css/selector.js +8 -95
- package/lib/node/css/selectors.js +19 -110
- package/lib/node/css/selectorsList.js +22 -115
- package/lib/node/css/string.js +16 -110
- package/lib/node/css/target.js +12 -103
- package/lib/node/css/topmost.js +70 -182
- package/lib/node/css/value.js +12 -126
- package/lib/node/css/values.js +16 -107
- package/lib/node/css/verbatim.js +35 -132
- package/lib/node/css.js +66 -275
- package/lib/node/html/anchor/contents.js +8 -92
- package/lib/node/html/anchor/footnote.js +8 -92
- package/lib/node/html/anchor/index.js +8 -92
- package/lib/node/html/anchor.js +38 -157
- package/lib/node/html/container.js +24 -154
- package/lib/node/html/directive/contents.js +8 -95
- package/lib/node/html/directive/footnotes.js +8 -95
- package/lib/node/html/directive/index.js +8 -95
- package/lib/node/html/directive/pageNumber.js +8 -95
- package/lib/node/html/directive.js +23 -123
- package/lib/node/html/division.js +127 -273
- package/lib/node/html/error.js +41 -179
- package/lib/node/html/footnote.js +40 -149
- package/lib/node/html/heading/index.js +61 -183
- package/lib/node/html/heading/primary.js +12 -112
- package/lib/node/html/heading/quaternary.js +12 -112
- package/lib/node/html/heading/secondary.js +12 -112
- package/lib/node/html/heading/tertiary.js +12 -112
- package/lib/node/html/heading.js +30 -147
- package/lib/node/html/image.js +76 -207
- package/lib/node/html/item/contents.js +20 -124
- package/lib/node/html/item/footnote.js +21 -125
- package/lib/node/html/item/index.js +39 -145
- package/lib/node/html/item/ordered.js +23 -133
- package/lib/node/html/item/unordered.js +10 -110
- package/lib/node/html/line/block.js +15 -119
- package/lib/node/html/line.js +89 -242
- package/lib/node/html/link/contents.js +36 -153
- package/lib/node/html/link/email.js +89 -243
- package/lib/node/html/link/footnote.js +94 -238
- package/lib/node/html/link/hyper.js +89 -243
- package/lib/node/html/link/index.js +67 -222
- package/lib/node/html/list/contents.js +20 -124
- package/lib/node/html/list/footnotes.js +40 -160
- package/lib/node/html/list/index.js +20 -124
- package/lib/node/html/list/ordered.js +10 -110
- package/lib/node/html/list/unordered.js +10 -110
- package/lib/node/html/listing/block.js +33 -177
- package/lib/node/html/listing/inline.js +35 -174
- package/lib/node/html/pageNumber.js +65 -216
- package/lib/node/html/paragraph.js +10 -110
- package/lib/node/html/reference.js +10 -110
- package/lib/node/html/table.js +10 -110
- package/lib/node/html/tableBody.js +10 -110
- package/lib/node/html/tableBodyCell.js +10 -110
- package/lib/node/html/tableBodyRow.js +10 -110
- package/lib/node/html/tableHead.js +10 -110
- package/lib/node/html/tableHeadCell.js +10 -110
- package/lib/node/html/tableHeadRow.js +10 -110
- package/lib/node/html/text/block.js +10 -110
- package/lib/node/html/text/comma.js +21 -128
- package/lib/node/html/text/emphasised.js +14 -118
- package/lib/node/html/text/index.js +28 -143
- package/lib/node/html/text/inline.js +34 -147
- package/lib/node/html/text/plain.js +10 -110
- package/lib/node/html/text/strong.js +14 -118
- package/lib/node/html/text/stronglyEmphasised.js +66 -208
- package/lib/node/html/text.js +24 -162
- package/lib/node/html/topmost.js +100 -240
- package/lib/node/html.js +256 -554
- package/lib/node/markdown/blockEnd.js +5 -89
- package/lib/node/markdown/blockStart.js +18 -113
- package/lib/node/markdown/className.js +12 -100
- package/lib/node/markdown/container.js +18 -113
- package/lib/node/markdown/directive/embed.js +39 -137
- package/lib/node/markdown/directive/include.js +39 -137
- package/lib/node/markdown/division.js +70 -216
- package/lib/node/markdown/document.js +44 -147
- package/lib/node/markdown/error.js +12 -100
- package/lib/node/markdown/footnote.js +12 -100
- package/lib/node/markdown/hyperlink.js +34 -131
- package/lib/node/markdown/image.js +12 -100
- package/lib/node/markdown/item/ordered.js +15 -103
- package/lib/node/markdown/link/email.js +34 -131
- package/lib/node/markdown/link/footnote.js +14 -102
- package/lib/node/markdown/listng/block.js +12 -100
- package/lib/node/markdown/listng/inline.js +18 -106
- package/lib/node/markdown/path.js +12 -100
- package/lib/node/markdown/reference.js +15 -103
- package/lib/node/markdown/subDivision.js +35 -126
- package/lib/node/markdown/text/block.js +5 -89
- package/lib/node/markdown/text/plain.js +5 -89
- package/lib/node/markdown/text.js +46 -134
- package/lib/node/markdown.js +34 -169
- package/lib/node/markdownStyle/amount.js +13 -101
- package/lib/node/markdownStyle/argument.js +5 -89
- package/lib/node/markdownStyle/arguments.js +5 -89
- package/lib/node/markdownStyle/colour.js +12 -100
- package/lib/node/markdownStyle/content.js +21 -109
- package/lib/node/markdownStyle/declaration.js +5 -89
- package/lib/node/markdownStyle/document.js +5 -89
- package/lib/node/markdownStyle/error.js +5 -89
- package/lib/node/markdownStyle/identifier.js +13 -101
- package/lib/node/markdownStyle/name.js +5 -89
- package/lib/node/markdownStyle/nonsense.js +5 -89
- package/lib/node/markdownStyle/pseudoClass.js +5 -89
- package/lib/node/markdownStyle/ruleName.js +12 -100
- package/lib/node/markdownStyle/ruleSet.js +5 -89
- package/lib/node/markdownStyle/selector.js +5 -89
- package/lib/node/markdownStyle/selectors.js +5 -89
- package/lib/node/markdownStyle/selectorsList.js +5 -89
- package/lib/node/markdownStyle/string.js +12 -100
- package/lib/node/markdownStyle/target.js +12 -100
- package/lib/node/markdownStyle/value.js +5 -89
- package/lib/node/markdownStyle/values.js +5 -89
- package/lib/node/markdownStyle/verbatim.js +5 -89
- package/lib/node/markdownStyle.js +16 -135
- package/lib/prepends.js +4 -4
- package/lib/queries/markdown.js +7 -7
- package/lib/queries/markdownStyle.js +7 -7
- package/lib/ruleNames/markdown.js +145 -145
- package/lib/ruleNames/markdownStyle.js +51 -51
- package/lib/style/defaultMarkdown.js +247 -3
- package/lib/style/font.js +54 -3
- package/lib/styleElement/markdown/default.js +17 -131
- package/lib/styleElement/markdown.js +30 -151
- package/lib/styleElement.js +30 -69
- package/lib/targets.js +3 -3
- package/lib/tokenTypes.js +39 -39
- package/lib/transform/css/ruleSet.js +15 -106
- package/lib/transform/css/selectors.js +17 -108
- package/lib/transform/css/selectorsList.js +28 -121
- package/lib/transform/css.js +35 -139
- package/lib/transform/html/anchor/index.js +11 -99
- package/lib/transform/html/division.js +18 -112
- package/lib/transform/html/footnote.js +25 -122
- package/lib/transform/html/heading/index.js +7 -91
- package/lib/transform/html/index.js +44 -139
- package/lib/transform/html/item/contents.js +23 -111
- package/lib/transform/html/item/footnote.js +11 -99
- package/lib/transform/html/item/index.js +11 -99
- package/lib/transform/html/line.js +10 -98
- package/lib/transform/html/link/contents.js +20 -111
- package/lib/transform/html/link/footnote.js +36 -140
- package/lib/transform/html/list/contents.js +37 -151
- package/lib/transform/html/list/footnotes.js +19 -110
- package/lib/transform/html/list/index.js +16 -100
- package/lib/transform/html/pageNumber.js +15 -106
- package/lib/transform/html.js +28 -132
- package/lib/transform/markdown/directive/embed.js +9 -120
- package/lib/transform/markdown/directive/ignore.js +6 -90
- package/lib/transform/markdown/directive/include.js +15 -129
- package/lib/transform/markdown/subDivision.js +6 -90
- package/lib/transform/markdown.js +7 -134
- package/lib/utilities/contents.js +74 -145
- package/lib/utilities/css.js +12 -16
- package/lib/utilities/dom.js +11 -11
- package/lib/utilities/entities.js +2 -2
- package/lib/utilities/entries.js +5 -5
- package/lib/utilities/grammar.js +57 -86
- package/lib/utilities/html.js +21 -25
- package/lib/utilities/index.js +76 -89
- package/lib/utilities/markdown.js +14 -17
- package/lib/utilities/markdownStyle.js +2 -2
- package/lib/utilities/object.js +16 -16
- package/lib/utilities/query.js +13 -14
- package/lib/utilities/string.js +2 -2
- package/package.json +5 -1
- package/.aiignore +0 -14
- package/.swcrc +0 -11
- package/bin/main.js +0 -15
- package/example.js +0 -72455
- package/font/Inconsolata-Bold.woff2 +0 -0
- package/font/Inconsolata-Regular.woff2 +0 -0
- package/font/STIXTwoMath-Regular.woff2 +0 -0
- package/font/STIXTwoText-Bold.woff2 +0 -0
- package/font/STIXTwoText-BoldItalic.woff2 +0 -0
- package/font/STIXTwoText-Italic.woff2 +0 -0
- package/font/STIXTwoText-Regular.woff2 +0 -0
- package/index.html +0 -56
- package/ttf/Inconsolata-Bold.ttf +0 -0
- package/ttf/Inconsolata-Regular.ttf +0 -0
package/lib/utilities/index.js
CHANGED
|
@@ -8,44 +8,19 @@ Object.defineProperty(exports, "indexMapFromIndexDirectiveHTMLNodeAndDivisionHTM
|
|
|
8
8
|
return indexMapFromIndexDirectiveHTMLNodeAndDivisionHTMLNodes;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
function _array_like_to_array(arr, len) {
|
|
17
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
18
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
19
|
-
return arr2;
|
|
20
|
-
}
|
|
21
|
-
function _array_without_holes(arr) {
|
|
22
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
23
|
-
}
|
|
11
|
+
const _occamdom = require("occam-dom");
|
|
12
|
+
const _necessary = require("necessary");
|
|
13
|
+
const _match = /*#__PURE__*/ _interop_require_default(require("../index/match"));
|
|
14
|
+
const _object = require("../utilities/object");
|
|
15
|
+
const _constants = require("../constants");
|
|
24
16
|
function _interop_require_default(obj) {
|
|
25
17
|
return obj && obj.__esModule ? obj : {
|
|
26
18
|
default: obj
|
|
27
19
|
};
|
|
28
20
|
}
|
|
29
|
-
|
|
30
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
31
|
-
}
|
|
32
|
-
function _non_iterable_spread() {
|
|
33
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
34
|
-
}
|
|
35
|
-
function _to_consumable_array(arr) {
|
|
36
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
37
|
-
}
|
|
38
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
39
|
-
if (!o) return;
|
|
40
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
41
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
42
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
43
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
44
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
45
|
-
}
|
|
46
|
-
var compress = _necessary.arrayUtilities.compress, isLessThan = _occamdom.nodeUtilities.isLessThan, isAncestorOf = _occamdom.nodeUtilities.isAncestorOf;
|
|
21
|
+
const { compress } = _necessary.arrayUtilities, { isLessThan, isAncestorOf } = _occamdom.nodeUtilities;
|
|
47
22
|
function indexMapFromIndexDirectiveHTMLNodeAndDivisionHTMLNodes(indexDirectiveHTMLNode, divisionHTMLNodes, context) {
|
|
48
|
-
|
|
23
|
+
const indexMap = createIndexMap(indexDirectiveHTMLNode, divisionHTMLNodes, context);
|
|
49
24
|
removeIgnoredWords(indexMap, context);
|
|
50
25
|
adjustMixedPlurals(indexMap, context);
|
|
51
26
|
adjustPluralPlurals(indexMap, context);
|
|
@@ -56,21 +31,21 @@ function indexMapFromIndexDirectiveHTMLNodeAndDivisionHTMLNodes(indexDirectiveHT
|
|
|
56
31
|
return indexMap;
|
|
57
32
|
}
|
|
58
33
|
function createIndexMap(indexDirectiveHTMLNode, divisionHTMLNodes, context) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
34
|
+
const indexMap = {};
|
|
35
|
+
const { phrases = [] } = context, indexMatches = phrases.map((phrase)=>{
|
|
36
|
+
const indexMatch = _match.default.fromPhrase(phrase);
|
|
62
37
|
return indexMatch;
|
|
63
38
|
});
|
|
64
|
-
divisionHTMLNodes.forEach(
|
|
65
|
-
|
|
39
|
+
divisionHTMLNodes.forEach((divisionHTMLNode)=>{
|
|
40
|
+
const divisionHTMLNodeLessThanIndexDirectiveHTMLNode = isLessThan(divisionHTMLNode, indexDirectiveHTMLNode);
|
|
66
41
|
if (divisionHTMLNodeLessThanIndexDirectiveHTMLNode) {
|
|
67
|
-
|
|
42
|
+
const divisionHTMLNodeAncestorOfIndexDirectiveHTMLNode = isAncestorOf(divisionHTMLNode, indexDirectiveHTMLNode);
|
|
68
43
|
if (!divisionHTMLNodeAncestorOfIndexDirectiveHTMLNode) {
|
|
69
|
-
|
|
44
|
+
const pageNumber = divisionHTMLNode.pageNumber(context);
|
|
70
45
|
if (pageNumber !== null) {
|
|
71
|
-
|
|
72
|
-
wordsOrPhrases.forEach(
|
|
73
|
-
|
|
46
|
+
const plainText = divisionHTMLNode.asPlainText(context), wordsOrPhrases = wordsOrPhrasesFromPlainTextAndIndexMatches(plainText, indexMatches);
|
|
47
|
+
wordsOrPhrases.forEach((wordOrPhrase)=>{
|
|
48
|
+
const pageNumbers = indexMap.hasOwnProperty(wordOrPhrase) ? indexMap[wordOrPhrase] : [];
|
|
74
49
|
indexMap[wordOrPhrase] = pageNumbers;
|
|
75
50
|
pageNumbers.push(pageNumber);
|
|
76
51
|
});
|
|
@@ -81,53 +56,53 @@ function createIndexMap(indexDirectiveHTMLNode, divisionHTMLNodes, context) {
|
|
|
81
56
|
return indexMap;
|
|
82
57
|
}
|
|
83
58
|
function wordsOrPhrasesFromPlainTextAndIndexMatches(plainText, indexMatches) {
|
|
84
|
-
|
|
59
|
+
let wordsOrPhrases;
|
|
85
60
|
plainText = preparePlainText(plainText); ///
|
|
86
|
-
indexMatches.forEach(
|
|
61
|
+
indexMatches.forEach((indexMatch)=>{
|
|
87
62
|
plainText = indexMatch.replace(plainText);
|
|
88
63
|
});
|
|
89
64
|
wordsOrPhrases = plainText.split(_constants.SINGLE_SPACE);
|
|
90
|
-
wordsOrPhrases = wordsOrPhrases.map(
|
|
65
|
+
wordsOrPhrases = wordsOrPhrases.map((wordOrPhrase)=>{
|
|
91
66
|
wordOrPhrase = _match.default.revert(wordOrPhrase); ///
|
|
92
67
|
return wordOrPhrase;
|
|
93
68
|
});
|
|
94
69
|
return wordsOrPhrases;
|
|
95
70
|
}
|
|
96
71
|
function compressPageNumbers(indexMap) {
|
|
97
|
-
(0, _object.mapValues)(indexMap,
|
|
98
|
-
compress(pageNumbers,
|
|
72
|
+
(0, _object.mapValues)(indexMap, (wordOrPhrase, pageNumbers)=>{
|
|
73
|
+
compress(pageNumbers, (pageNumberA, pageNumberB)=>{
|
|
99
74
|
if (pageNumberA !== pageNumberB) {
|
|
100
75
|
return true;
|
|
101
76
|
}
|
|
102
77
|
});
|
|
103
|
-
pageNumbers.sort(
|
|
78
|
+
pageNumbers.sort((pageNumberB, pageNumberA)=>{
|
|
104
79
|
pageNumberA = Number(pageNumberA); ///
|
|
105
80
|
pageNumberB = Number(pageNumberB); ///
|
|
106
|
-
|
|
81
|
+
const difference = pageNumberB - pageNumberA;
|
|
107
82
|
return difference;
|
|
108
83
|
});
|
|
109
84
|
return pageNumbers;
|
|
110
85
|
});
|
|
111
86
|
}
|
|
112
87
|
function removeIgnoredWords(indexMap, context) {
|
|
113
|
-
|
|
114
|
-
ignoredWords.forEach(
|
|
88
|
+
const { ignoredWords = [] } = context;
|
|
89
|
+
ignoredWords.forEach((ignoredWord)=>{
|
|
115
90
|
delete indexMap[ignoredWord];
|
|
116
91
|
});
|
|
117
92
|
}
|
|
118
93
|
function adjustProperNouns(indexMap, context) {
|
|
119
|
-
|
|
120
|
-
|
|
94
|
+
const { properNouns = [] } = context, lowerCaseProperNouns = properNouns.map((properNoun)=>{
|
|
95
|
+
const lowerCaseProperNoun = properNoun.toLowerCase();
|
|
121
96
|
return lowerCaseProperNoun;
|
|
122
97
|
});
|
|
123
|
-
(0, _object.mapKeys)(indexMap,
|
|
124
|
-
|
|
98
|
+
(0, _object.mapKeys)(indexMap, (wordOrPhrase)=>{
|
|
99
|
+
const index = lowerCaseProperNouns.findIndex((lowerCaseProperName)=>{
|
|
125
100
|
if (lowerCaseProperName === wordOrPhrase) {
|
|
126
101
|
return true;
|
|
127
102
|
}
|
|
128
103
|
});
|
|
129
104
|
if (index > -1) {
|
|
130
|
-
|
|
105
|
+
const properNoun = properNouns[index];
|
|
131
106
|
wordOrPhrase = properNoun; ///
|
|
132
107
|
}
|
|
133
108
|
return wordOrPhrase;
|
|
@@ -141,69 +116,81 @@ function preparePlainText(plainText) {
|
|
|
141
116
|
return plainText;
|
|
142
117
|
}
|
|
143
118
|
function adjustAcronyms(indexMap, context) {
|
|
144
|
-
|
|
145
|
-
|
|
119
|
+
const { acronyms = [] } = context, lowerCaseAcronyms = acronyms.map((acronym)=>{
|
|
120
|
+
const lowerCaseAcronym = acronym.toLowerCase();
|
|
146
121
|
return lowerCaseAcronym;
|
|
147
122
|
});
|
|
148
|
-
(0, _object.mapKeys)(indexMap,
|
|
149
|
-
|
|
123
|
+
(0, _object.mapKeys)(indexMap, (wordOrPhrase)=>{
|
|
124
|
+
const index = lowerCaseAcronyms.findIndex((lowerCaseProperName)=>{
|
|
150
125
|
if (lowerCaseProperName === wordOrPhrase) {
|
|
151
126
|
return true;
|
|
152
127
|
}
|
|
153
128
|
});
|
|
154
129
|
if (index > -1) {
|
|
155
|
-
|
|
130
|
+
const acronym = acronyms[index];
|
|
156
131
|
wordOrPhrase = acronym; ///
|
|
157
132
|
}
|
|
158
133
|
return wordOrPhrase;
|
|
159
134
|
});
|
|
160
135
|
}
|
|
161
136
|
function adjustMixedPlurals(indexMap, context) {
|
|
162
|
-
|
|
163
|
-
(0, _object.forEach)(indexMap,
|
|
164
|
-
|
|
137
|
+
const { plurals = [] } = context, mixedPlurals = reducePlurals(plurals, isMixed), pluralPlurals = mapPlurals(mixedPlurals, mixedToPlural), singularPlurals = mapPlurals(mixedPlurals, mixedToSingular);
|
|
138
|
+
(0, _object.forEach)(indexMap, (wordOrPhrase, pageNumbers)=>{
|
|
139
|
+
const singularPluralsIncludesWordOrPhrase = singularPlurals.includes(wordOrPhrase);
|
|
165
140
|
if (singularPluralsIncludesWordOrPhrase) {
|
|
166
|
-
|
|
167
|
-
pageNumbers =
|
|
141
|
+
const singularWordOrPhrase = wordOrPhrase, singularPageNumbers = pageNumbers, mixedWordOrPhrase = singularToMixed(singularWordOrPhrase), mixedPageNumbers = indexMap[mixedWordOrPhrase] || [];
|
|
142
|
+
pageNumbers = [
|
|
143
|
+
...singularPageNumbers,
|
|
144
|
+
...mixedPageNumbers
|
|
145
|
+
];
|
|
168
146
|
delete indexMap[singularWordOrPhrase];
|
|
169
147
|
indexMap[mixedWordOrPhrase] = pageNumbers;
|
|
170
148
|
}
|
|
171
|
-
|
|
149
|
+
const pluralPluralsIncludesWordOrPhrase = pluralPlurals.includes(wordOrPhrase);
|
|
172
150
|
if (pluralPluralsIncludesWordOrPhrase) {
|
|
173
|
-
|
|
174
|
-
pageNumbers =
|
|
151
|
+
const pluralWordOrPhrase = wordOrPhrase, pluralPageNumbers = pageNumbers, mixedWordOrPhrase = pluralToMixed(pluralWordOrPhrase), mixedPageNumbers = indexMap[mixedWordOrPhrase] || [];
|
|
152
|
+
pageNumbers = [
|
|
153
|
+
...pluralPageNumbers,
|
|
154
|
+
...mixedPageNumbers
|
|
155
|
+
];
|
|
175
156
|
delete indexMap[pluralWordOrPhrase];
|
|
176
|
-
indexMap[
|
|
157
|
+
indexMap[mixedWordOrPhrase] = pageNumbers;
|
|
177
158
|
}
|
|
178
159
|
});
|
|
179
160
|
}
|
|
180
161
|
function adjustPluralPlurals(indexMap, context) {
|
|
181
|
-
|
|
182
|
-
(0, _object.forEach)(indexMap,
|
|
183
|
-
|
|
162
|
+
const { plurals = [] } = context, pluralPlurals = reducePlurals(plurals, isPlural), singularPlurals = mapPlurals(pluralPlurals, pluralToSingular);
|
|
163
|
+
(0, _object.forEach)(indexMap, (wordOrPhrase, pageNumbers)=>{
|
|
164
|
+
const singularPluralsIncludesWordOrPhrase = singularPlurals.includes(wordOrPhrase);
|
|
184
165
|
if (singularPluralsIncludesWordOrPhrase) {
|
|
185
|
-
|
|
186
|
-
pageNumbers =
|
|
166
|
+
const singularWordOrPhrase = wordOrPhrase, singularPageNumbers = pageNumbers, pluralWordOrPhrase = singularToPlural(wordOrPhrase), pluralPageNumbers = indexMap[pluralWordOrPhrase] || [];
|
|
167
|
+
pageNumbers = [
|
|
168
|
+
...singularPageNumbers,
|
|
169
|
+
...pluralPageNumbers
|
|
170
|
+
];
|
|
187
171
|
delete indexMap[singularWordOrPhrase];
|
|
188
172
|
indexMap[pluralWordOrPhrase] = pageNumbers;
|
|
189
173
|
}
|
|
190
174
|
});
|
|
191
175
|
}
|
|
192
176
|
function adjustSingularPlurals(indexMap, context) {
|
|
193
|
-
|
|
194
|
-
(0, _object.forEach)(indexMap,
|
|
195
|
-
|
|
177
|
+
const { plurals = [] } = context, singularPlurals = reducePlurals(plurals, isSingular), pluralPlurals = mapPlurals(singularPlurals, singularToPlural);
|
|
178
|
+
(0, _object.forEach)(indexMap, (wordOrPhrase, pageNumbers)=>{
|
|
179
|
+
const pluralPluralsIncludesWordOrPhrase = pluralPlurals.includes(wordOrPhrase);
|
|
196
180
|
if (pluralPluralsIncludesWordOrPhrase) {
|
|
197
|
-
|
|
198
|
-
pageNumbers =
|
|
181
|
+
const singularWordOrPhrase = pluralToSingular(wordOrPhrase), singularPageNumbers = indexMap[singularWordOrPhrase] || [], pluralWordOrPhrase = wordOrPhrase, pluralPageNumbers = pageNumbers; ///
|
|
182
|
+
pageNumbers = [
|
|
183
|
+
...singularPageNumbers,
|
|
184
|
+
...pluralPageNumbers
|
|
185
|
+
];
|
|
199
186
|
delete indexMap[pluralWordOrPhrase];
|
|
200
187
|
indexMap[singularWordOrPhrase] = pageNumbers;
|
|
201
188
|
}
|
|
202
189
|
});
|
|
203
190
|
}
|
|
204
191
|
function reducePlurals(plurals, callback) {
|
|
205
|
-
plurals = plurals.reduce(
|
|
206
|
-
|
|
192
|
+
plurals = plurals.reduce((plurals, plural)=>{
|
|
193
|
+
const result = callback(plural);
|
|
207
194
|
if (result) {
|
|
208
195
|
plurals.push(plural);
|
|
209
196
|
}
|
|
@@ -212,22 +199,22 @@ function reducePlurals(plurals, callback) {
|
|
|
212
199
|
return plurals;
|
|
213
200
|
}
|
|
214
201
|
function mapPlurals(plurals, callback) {
|
|
215
|
-
plurals = plurals.map(
|
|
202
|
+
plurals = plurals.map((plural)=>{
|
|
216
203
|
plural = callback(plural);
|
|
217
204
|
return plural;
|
|
218
205
|
});
|
|
219
206
|
return plurals;
|
|
220
207
|
}
|
|
221
208
|
function isSingular(text) {
|
|
222
|
-
|
|
209
|
+
const indexMatches = /[^s)]$/.test(text), singular = indexMatches; ///
|
|
223
210
|
return singular;
|
|
224
211
|
}
|
|
225
212
|
function isPlural(text) {
|
|
226
|
-
|
|
213
|
+
const indexMatches = /(ies|s)$/.test(text), plural = indexMatches; ///
|
|
227
214
|
return plural;
|
|
228
215
|
}
|
|
229
216
|
function isMixed(text) {
|
|
230
|
-
|
|
217
|
+
const indexMatches = /\(s\)$/.test(text), mixed = indexMatches; ///
|
|
231
218
|
return mixed;
|
|
232
219
|
}
|
|
233
220
|
function mixedToPlural(text) {
|
|
@@ -246,11 +233,11 @@ function mixedToSingular(text) {
|
|
|
246
233
|
return text;
|
|
247
234
|
}
|
|
248
235
|
function singularToMixed(text) {
|
|
249
|
-
text =
|
|
236
|
+
text = `${text}(s)`;
|
|
250
237
|
return text;
|
|
251
238
|
}
|
|
252
239
|
function singularToPlural(text) {
|
|
253
|
-
text =
|
|
240
|
+
text = `${text}s` ///
|
|
254
241
|
.replace(/ys$/, _constants.IES_STRING);
|
|
255
242
|
return text;
|
|
256
243
|
}
|
|
@@ -260,4 +247,4 @@ function pluralToSingular(text) {
|
|
|
260
247
|
return text;
|
|
261
248
|
}
|
|
262
249
|
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tZG9tXCJcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgSW5kZXhNYXRjaCBmcm9tIFwiLi4vaW5kZXgvbWF0Y2hcIjtcblxuaW1wb3J0IHsgZm9yRWFjaCwgbWFwS2V5cywgbWFwVmFsdWVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9vYmplY3RcIjtcbmltcG9ydCB7IFlfU1RSSU5HLCBTX1NUUklORywgSUVTX1NUUklORywgRU1QVFlfU1RSSU5HLCBTSU5HTEVfU1BBQ0UsIFBBUkVOVEhFU0lTRURfU19TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBpc0xlc3NUaGFuLCBpc0FuY2VzdG9yT2YgfSA9IG5vZGVVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE1hcEZyb21JbmRleERpcmVjdGl2ZUhUTUxOb2RlQW5kRGl2aXNpb25IVE1MTm9kZXMoaW5kZXhEaXJlY3RpdmVIVE1MTm9kZSwgZGl2aXNpb25IVE1MTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXAgPSBjcmVhdGVJbmRleE1hcChpbmRleERpcmVjdGl2ZUhUTUxOb2RlLCBkaXZpc2lvbkhUTUxOb2RlcywgY29udGV4dCk7XG5cbiAgcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFBsdXJhbFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFNpbmd1bGFyUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCk7XG5cbiAgYWRqdXN0UHJvcGVyTm91bnMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdEFjcm9ueW1zKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUluZGV4TWFwKGluZGV4RGlyZWN0aXZlSFRNTE5vZGUsIGRpdmlzaW9uSFRNTE5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWFwID0ge307XG5cbiAgY29uc3QgeyBwaHJhc2VzID0gW10gfSA9IGNvbnRleHQsXG4gICAgICAgIGluZGV4TWF0Y2hlcyA9IHBocmFzZXMubWFwKChwaHJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBpbmRleE1hdGNoID0gSW5kZXhNYXRjaC5mcm9tUGhyYXNlKHBocmFzZSk7XG5cbiAgICAgICAgICByZXR1cm4gaW5kZXhNYXRjaDtcbiAgICAgICAgfSk7XG5cbiAgZGl2aXNpb25IVE1MTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25IVE1MTm9kZSkgPT4ge1xuICAgIGNvbnN0IGRpdmlzaW9uSFRNTE5vZGVMZXNzVGhhbkluZGV4RGlyZWN0aXZlSFRNTE5vZGUgPSBpc0xlc3NUaGFuKGRpdmlzaW9uSFRNTE5vZGUsIGluZGV4RGlyZWN0aXZlSFRNTE5vZGUpO1xuXG4gICAgaWYgKGRpdmlzaW9uSFRNTE5vZGVMZXNzVGhhbkluZGV4RGlyZWN0aXZlSFRNTE5vZGUpIHtcbiAgICAgIGNvbnN0IGRpdmlzaW9uSFRNTE5vZGVBbmNlc3Rvck9mSW5kZXhEaXJlY3RpdmVIVE1MTm9kZSA9IGlzQW5jZXN0b3JPZihkaXZpc2lvbkhUTUxOb2RlLCBpbmRleERpcmVjdGl2ZUhUTUxOb2RlKTtcblxuICAgICAgaWYgKCFkaXZpc2lvbkhUTUxOb2RlQW5jZXN0b3JPZkluZGV4RGlyZWN0aXZlSFRNTE5vZGUpIHtcbiAgICAgICAgY29uc3QgcGFnZU51bWJlciA9IGRpdmlzaW9uSFRNTE5vZGUucGFnZU51bWJlcihjb250ZXh0KTtcblxuICAgICAgICBpZiAocGFnZU51bWJlciAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHBsYWluVGV4dCA9IGRpdmlzaW9uSFRNTE5vZGUuYXNQbGFpblRleHQoY29udGV4dCksXG4gICAgICAgICAgICAgICAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpO1xuXG4gICAgICAgICAgd29yZHNPclBocmFzZXMuZm9yRWFjaCgod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYWdlTnVtYmVycyA9IGluZGV4TWFwLmhhc093blByb3BlcnR5KHdvcmRPclBocmFzZSkgP1xuICAgICAgICAgICAgICAgICAgICBpbmRleE1hcFt3b3JkT3JQaHJhc2VdIDpcbiAgICAgICAgICAgICAgICAgICAgICBbXTtcblxuICAgICAgICAgICAgaW5kZXhNYXBbd29yZE9yUGhyYXNlXSA9IHBhZ2VOdW1iZXJzO1xuXG4gICAgICAgICAgICBwYWdlTnVtYmVycy5wdXNoKHBhZ2VOdW1iZXIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIHdvcmRzT3JQaHJhc2VzRnJvbVBsYWluVGV4dEFuZEluZGV4TWF0Y2hlcyhwbGFpblRleHQsIGluZGV4TWF0Y2hlcykge1xuICBsZXQgd29yZHNPclBocmFzZXM7XG5cbiAgcGxhaW5UZXh0ID0gcHJlcGFyZVBsYWluVGV4dChwbGFpblRleHQpOyAgLy8vXG5cbiAgaW5kZXhNYXRjaGVzLmZvckVhY2goKGluZGV4TWF0Y2gpID0+IHtcbiAgICBwbGFpblRleHQgPSBpbmRleE1hdGNoLnJlcGxhY2UocGxhaW5UZXh0KTtcbiAgfSk7XG5cbiAgd29yZHNPclBocmFzZXMgPSBwbGFpblRleHQuc3BsaXQoU0lOR0xFX1NQQUNFKTtcblxuICB3b3Jkc09yUGhyYXNlcyA9IHdvcmRzT3JQaHJhc2VzLm1hcCgod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgd29yZE9yUGhyYXNlID0gSW5kZXhNYXRjaC5yZXZlcnQod29yZE9yUGhyYXNlKTsgIC8vL1xuXG4gICAgcmV0dXJuIHdvcmRPclBocmFzZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHdvcmRzT3JQaHJhc2VzO1xufVxuXG5mdW5jdGlvbiBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKSB7XG4gIG1hcFZhbHVlcyhpbmRleE1hcCwgKHdvcmRPclBocmFzZSwgcGFnZU51bWJlcnMpID0+IHtcbiAgICBjb21wcmVzcyhwYWdlTnVtYmVycywgKHBhZ2VOdW1iZXJBLCBwYWdlTnVtYmVyQikgPT4ge1xuICAgICAgaWYgKHBhZ2VOdW1iZXJBICE9PSBwYWdlTnVtYmVyQikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHBhZ2VOdW1iZXJzLnNvcnQoKHBhZ2VOdW1iZXJCLCBwYWdlTnVtYmVyQSkgPT4ge1xuICAgICAgcGFnZU51bWJlckEgPSBOdW1iZXIocGFnZU51bWJlckEpOyAgLy8vXG5cbiAgICAgIHBhZ2VOdW1iZXJCID0gTnVtYmVyKHBhZ2VOdW1iZXJCKTsgIC8vL1xuXG4gICAgICBjb25zdCBkaWZmZXJlbmNlID0gcGFnZU51bWJlckIgLSBwYWdlTnVtYmVyQTtcblxuICAgICAgcmV0dXJuIGRpZmZlcmVuY2U7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGFnZU51bWJlcnM7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVJZ25vcmVkV29yZHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpZ25vcmVkV29yZHMgPSBbXSB9ID0gY29udGV4dDtcblxuICBpZ25vcmVkV29yZHMuZm9yRWFjaCgoaWdub3JlZFdvcmQpID0+IHtcbiAgICBkZWxldGUgaW5kZXhNYXBbaWdub3JlZFdvcmRdO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0UHJvcGVyTm91bnMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBwcm9wZXJOb3VucyA9IFtdIH0gPSBjb250ZXh0LFxuICAgICAgICBsb3dlckNhc2VQcm9wZXJOb3VucyA9IHByb3Blck5vdW5zLm1hcCgocHJvcGVyTm91bikgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvd2VyQ2FzZVByb3Blck5vdW4gPSBwcm9wZXJOb3VuLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICByZXR1cm4gbG93ZXJDYXNlUHJvcGVyTm91bjtcbiAgICAgICAgfSk7XG5cbiAgbWFwS2V5cyhpbmRleE1hcCwgKHdvcmRPclBocmFzZSkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gbG93ZXJDYXNlUHJvcGVyTm91bnMuZmluZEluZGV4KChsb3dlckNhc2VQcm9wZXJOYW1lKSA9PiB7XG4gICAgICBpZiAobG93ZXJDYXNlUHJvcGVyTmFtZSA9PT0gd29yZE9yUGhyYXNlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IHByb3Blck5vdW4gPSBwcm9wZXJOb3Vuc1tpbmRleF07XG5cbiAgICAgIHdvcmRPclBocmFzZSA9IHByb3Blck5vdW47ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gd29yZE9yUGhyYXNlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVBsYWluVGV4dChwbGFpblRleHQpIHtcbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnRvTG93ZXJDYXNlKCk7ICAvLy9cblxuICBwbGFpblRleHQgPSBwbGFpblRleHQucmVwbGFjZSgvW15hLXowLTlcXC0gXS9nLCBTSU5HTEVfU1BBQ0UpO1xuXG4gIHBsYWluVGV4dCA9IHBsYWluVGV4dC5yZXBsYWNlKC9cXHMrL2csIFNJTkdMRV9TUEFDRSk7XG5cbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnJlcGxhY2UoL15cXHMrfFxccyskL2csIEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHBsYWluVGV4dDtcbn1cblxuZnVuY3Rpb24gYWRqdXN0QWNyb255bXMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBhY3JvbnltcyA9IFtdIH0gPSBjb250ZXh0LFxuICAgICAgICBsb3dlckNhc2VBY3JvbnltcyA9IGFjcm9ueW1zLm1hcCgoYWNyb255bSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvd2VyQ2FzZUFjcm9ueW0gPSBhY3JvbnltLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICByZXR1cm4gbG93ZXJDYXNlQWNyb255bTtcbiAgICAgICAgfSk7XG5cbiAgbWFwS2V5cyhpbmRleE1hcCwgKHdvcmRPclBocmFzZSkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gbG93ZXJDYXNlQWNyb255bXMuZmluZEluZGV4KChsb3dlckNhc2VQcm9wZXJOYW1lKSA9PiB7XG4gICAgICBpZiAobG93ZXJDYXNlUHJvcGVyTmFtZSA9PT0gd29yZE9yUGhyYXNlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IGFjcm9ueW0gPSBhY3Jvbnltc1tpbmRleF07XG5cbiAgICAgIHdvcmRPclBocmFzZSA9IGFjcm9ueW07ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gd29yZE9yUGhyYXNlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0TWl4ZWRQbHVyYWxzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgcGx1cmFscyA9IFtdIH0gPSBjb250ZXh0LFxuICAgICAgICBtaXhlZFBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzTWl4ZWQpLFxuICAgICAgICBwbHVyYWxQbHVyYWxzID0gbWFwUGx1cmFscyhtaXhlZFBsdXJhbHMsIG1peGVkVG9QbHVyYWwpLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSBtYXBQbHVyYWxzKG1peGVkUGx1cmFscywgbWl4ZWRUb1Npbmd1bGFyKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAoc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gc2luZ3VsYXJUb01peGVkKHNpbmd1bGFyV29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgIG1peGVkUGFnZU51bWJlcnMgPSBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gfHwgW107XG5cbiAgICAgIHBhZ2VOdW1iZXJzID0gW1xuICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG5cbiAgICBjb25zdCBwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBwbHVyYWxQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAocGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlKSB7XG4gICAgICBjb25zdCBwbHVyYWxXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gcGx1cmFsVG9NaXhlZChwbHVyYWxXb3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgbWl4ZWRQYWdlTnVtYmVycyA9IGluZGV4TWFwW21peGVkV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXTtcblxuICAgICAgaW5kZXhNYXBbbWl4ZWRXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0UGx1cmFsUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IHBsdXJhbHMgPSBbXSB9ID0gY29udGV4dCxcbiAgICAgICAgcGx1cmFsUGx1cmFscyA9IHJlZHVjZVBsdXJhbHMocGx1cmFscywgaXNQbHVyYWwpLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSBtYXBQbHVyYWxzKHBsdXJhbFBsdXJhbHMsIHBsdXJhbFRvU2luZ3VsYXIpO1xuXG4gIGZvckVhY2goaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UsIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgY29uc3Qgc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBzaW5ndWxhclBsdXJhbHMuaW5jbHVkZXMod29yZE9yUGhyYXNlKTtcblxuICAgIGlmIChzaW5ndWxhclBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSkge1xuICAgICAgY29uc3Qgc2luZ3VsYXJXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHNpbmd1bGFyUGFnZU51bWJlcnMgPSBwYWdlTnVtYmVycywgIC8vL1xuICAgICAgICAgICAgcGx1cmFsV29yZE9yUGhyYXNlID0gc2luZ3VsYXJUb1BsdXJhbCh3b3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgcGx1cmFsUGFnZU51bWJlcnMgPSBpbmRleE1hcFtwbHVyYWxXb3JkT3JQaHJhc2VdIHx8IFtdO1xuXG4gICAgICBwYWdlTnVtYmVycyA9IFtcbiAgICAgICAgLi4uc2luZ3VsYXJQYWdlTnVtYmVycyxcbiAgICAgICAgLi4ucGx1cmFsUGFnZU51bWJlcnNcbiAgICAgIF07XG5cbiAgICAgIGRlbGV0ZSBpbmRleE1hcFtzaW5ndWxhcldvcmRPclBocmFzZV07XG5cbiAgICAgIGluZGV4TWFwW3BsdXJhbFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RTaW5ndWxhclBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBwbHVyYWxzID0gW10gfSA9IGNvbnRleHQsXG4gICAgICAgIHNpbmd1bGFyUGx1cmFscyA9IHJlZHVjZVBsdXJhbHMocGx1cmFscywgaXNTaW5ndWxhciksXG4gICAgICAgIHBsdXJhbFBsdXJhbHMgPSBtYXBQbHVyYWxzKHNpbmd1bGFyUGx1cmFscywgc2luZ3VsYXJUb1BsdXJhbCk7XG5cbiAgZm9yRWFjaChpbmRleE1hcCwgKHdvcmRPclBocmFzZSwgcGFnZU51bWJlcnMpID0+IHtcbiAgICAgIGNvbnN0IHBsdXJhbFBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSA9IHBsdXJhbFBsdXJhbHMuaW5jbHVkZXMod29yZE9yUGhyYXNlKTtcblxuICAgICAgaWYgKHBsdXJhbFBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSkge1xuICAgICAgICBjb25zdCBzaW5ndWxhcldvcmRPclBocmFzZSA9IHBsdXJhbFRvU2luZ3VsYXIod29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgICAgc2luZ3VsYXJQYWdlTnVtYmVycyA9IGluZGV4TWFwW3Npbmd1bGFyV29yZE9yUGhyYXNlXSB8fCBbXSxcbiAgICAgICAgICAgICAgcGx1cmFsV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnM7ICAvLy9cblxuICAgICAgICBwYWdlTnVtYmVycyA9IFtcbiAgICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzLFxuICAgICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzXG4gICAgICAgIF07XG5cbiAgICAgICAgZGVsZXRlIGluZGV4TWFwW3BsdXJhbFdvcmRPclBocmFzZV07XG5cbiAgICAgICAgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGNhbGxiYWNrKSB7XG4gIHBsdXJhbHMgPSBwbHVyYWxzLnJlZHVjZSgocGx1cmFscywgcGx1cmFsKSA9PiB7IC8vL1xuICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxiYWNrKHBsdXJhbCk7XG5cbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICBwbHVyYWxzLnB1c2gocGx1cmFsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGx1cmFscztcbiAgfSwgW10pO1xuXG4gIHJldHVybiBwbHVyYWxzO1xufVxuXG5mdW5jdGlvbiBtYXBQbHVyYWxzKHBsdXJhbHMsIGNhbGxiYWNrKSB7XG4gIHBsdXJhbHMgPSBwbHVyYWxzLm1hcCgocGx1cmFsKSA9PiB7IC8vL1xuICAgIHBsdXJhbCA9IGNhbGxiYWNrKHBsdXJhbCk7XG5cbiAgICByZXR1cm4gcGx1cmFsO1xuICB9KTtcblxuICByZXR1cm4gcGx1cmFscztcbn1cblxuZnVuY3Rpb24gaXNTaW5ndWxhcih0ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWF0Y2hlcyA9IC9bXnMpXSQvLnRlc3QodGV4dCksXG4gICAgICAgIHNpbmd1bGFyID0gaW5kZXhNYXRjaGVzOyAvLy9cblxuICByZXR1cm4gc2luZ3VsYXI7XG59XG5cbmZ1bmN0aW9uIGlzUGx1cmFsKHRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXRjaGVzID0gLyhpZXN8cykkLy50ZXN0KHRleHQpLFxuICAgICAgICBwbHVyYWwgPSBpbmRleE1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBwbHVyYWw7XG59XG5cbmZ1bmN0aW9uIGlzTWl4ZWQodGV4dCkge1xuICBjb25zdCBpbmRleE1hdGNoZXMgPSAvXFwoc1xcKSQvLnRlc3QodGV4dCksXG4gICAgICAgIG1peGVkID0gaW5kZXhNYXRjaGVzOyAvLy9cblxuICByZXR1cm4gbWl4ZWQ7XG59XG5cbmZ1bmN0aW9uIG1peGVkVG9QbHVyYWwodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL1xcKHNcXCkkLywgU19TVFJJTkcpO1xuXG4gIHJldHVybiB0ZXh0O1xufVxuXG5mdW5jdGlvbiBwbHVyYWxUb01peGVkKHRleHQpIHtcbiAgdGV4dCA9IHRleHQgLy8vXG4gICAgICAgICAgIC5yZXBsYWNlKC9zJC8sIFBBUkVOVEhFU0lTRURfU19TVFJJTkcpXG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIG1peGVkVG9TaW5ndWxhcih0ZXh0KSB7XG4gIHRleHQgPSB0ZXh0IC8vL1xuICAgICAgICAgIC5yZXBsYWNlKC9cXChzXFwpJC8sIEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHNpbmd1bGFyVG9NaXhlZCh0ZXh0KSB7XG4gIHRleHQgPSBgJHt0ZXh0fShzKWA7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHNpbmd1bGFyVG9QbHVyYWwodGV4dCkge1xuICB0ZXh0ID0gYCR7dGV4dH1zYCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL3lzJC8sIElFU19TVFJJTkcpO1xuXG4gIHJldHVybiB0ZXh0O1xufVxuXG5mdW5jdGlvbiBwbHVyYWxUb1Npbmd1bGFyKHRleHQpIHtcbiAgdGV4dCA9IHRleHQgLy8vXG4gICAgICAgICAgIC5yZXBsYWNlKC9pZXMkLywgWV9TVFJJTkcpXG4gICAgICAgICAgIC5yZXBsYWNlKC9zJC8sIEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG4iXSwibmFtZXMiOlsiaW5kZXhNYXBGcm9tSW5kZXhEaXJlY3RpdmVIVE1MTm9kZUFuZERpdmlzaW9uSFRNTE5vZGVzIiwiY29tcHJlc3MiLCJhcnJheVV0aWxpdGllcyIsImlzTGVzc1RoYW4iLCJub2RlVXRpbGl0aWVzIiwiaXNBbmNlc3Rvck9mIiwiaW5kZXhEaXJlY3RpdmVIVE1MTm9kZSIsImRpdmlzaW9uSFRNTE5vZGVzIiwiY29udGV4dCIsImluZGV4TWFwIiwiY3JlYXRlSW5kZXhNYXAiLCJyZW1vdmVJZ25vcmVkV29yZHMiLCJhZGp1c3RNaXhlZFBsdXJhbHMiLCJhZGp1c3RQbHVyYWxQbHVyYWxzIiwiYWRqdXN0U2luZ3VsYXJQbHVyYWxzIiwiYWRqdXN0UHJvcGVyTm91bnMiLCJhZGp1c3RBY3JvbnltcyIsImNvbXByZXNzUGFnZU51bWJlcnMiLCJwaHJhc2VzIiwiaW5kZXhNYXRjaGVzIiwibWFwIiwicGhyYXNlIiwiaW5kZXhNYXRjaCIsIkluZGV4TWF0Y2giLCJmcm9tUGhyYXNlIiwiZm9yRWFjaCIsImRpdmlzaW9uSFRNTE5vZGUiLCJkaXZpc2lvbkhUTUxOb2RlTGVzc1RoYW5JbmRleERpcmVjdGl2ZUhUTUxOb2RlIiwiZGl2aXNpb25IVE1MTm9kZUFuY2VzdG9yT2ZJbmRleERpcmVjdGl2ZUhUTUxOb2RlIiwicGFnZU51bWJlciIsInBsYWluVGV4dCIsImFzUGxhaW5UZXh0Iiwid29yZHNPclBocmFzZXMiLCJ3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMiLCJ3b3JkT3JQaHJhc2UiLCJwYWdlTnVtYmVycyIsImhhc093blByb3BlcnR5IiwicHVzaCIsInByZXBhcmVQbGFpblRleHQiLCJyZXBsYWNlIiwic3BsaXQiLCJTSU5HTEVfU1BBQ0UiLCJyZXZlcnQiLCJtYXBWYWx1ZXMiLCJwYWdlTnVtYmVyQSIsInBhZ2VOdW1iZXJCIiwic29ydCIsIk51bWJlciIsImRpZmZlcmVuY2UiLCJpZ25vcmVkV29yZHMiLCJpZ25vcmVkV29yZCIsInByb3Blck5vdW5zIiwibG93ZXJDYXNlUHJvcGVyTm91bnMiLCJwcm9wZXJOb3VuIiwibG93ZXJDYXNlUHJvcGVyTm91biIsInRvTG93ZXJDYXNlIiwibWFwS2V5cyIsImluZGV4IiwiZmluZEluZGV4IiwibG93ZXJDYXNlUHJvcGVyTmFtZSIsIkVNUFRZX1NUUklORyIsImFjcm9ueW1zIiwibG93ZXJDYXNlQWNyb255bXMiLCJhY3JvbnltIiwibG93ZXJDYXNlQWNyb255bSIsInBsdXJhbHMiLCJtaXhlZFBsdXJhbHMiLCJyZWR1Y2VQbHVyYWxzIiwiaXNNaXhlZCIsInBsdXJhbFBsdXJhbHMiLCJtYXBQbHVyYWxzIiwibWl4ZWRUb1BsdXJhbCIsInNpbmd1bGFyUGx1cmFscyIsIm1peGVkVG9TaW5ndWxhciIsInNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlIiwiaW5jbHVkZXMiLCJzaW5ndWxhcldvcmRPclBocmFzZSIsInNpbmd1bGFyUGFnZU51bWJlcnMiLCJtaXhlZFdvcmRPclBocmFzZSIsInNpbmd1bGFyVG9NaXhlZCIsIm1peGVkUGFnZU51bWJlcnMiLCJwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UiLCJwbHVyYWxXb3JkT3JQaHJhc2UiLCJwbHVyYWxQYWdlTnVtYmVycyIsInBsdXJhbFRvTWl4ZWQiLCJpc1BsdXJhbCIsInBsdXJhbFRvU2luZ3VsYXIiLCJzaW5ndWxhclRvUGx1cmFsIiwiaXNTaW5ndWxhciIsImNhbGxiYWNrIiwicmVkdWNlIiwicGx1cmFsIiwicmVzdWx0IiwidGV4dCIsInRlc3QiLCJzaW5ndWxhciIsIm1peGVkIiwiU19TVFJJTkciLCJQQVJFTlRIRVNJU0VEX1NfU1RSSU5HIiwiSUVTX1NUUklORyIsIllfU1RS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
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tZG9tXCJcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgSW5kZXhNYXRjaCBmcm9tIFwiLi4vaW5kZXgvbWF0Y2hcIjtcblxuaW1wb3J0IHsgZm9yRWFjaCwgbWFwS2V5cywgbWFwVmFsdWVzIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9vYmplY3RcIjtcbmltcG9ydCB7IFlfU1RSSU5HLCBTX1NUUklORywgSUVTX1NUUklORywgRU1QVFlfU1RSSU5HLCBTSU5HTEVfU1BBQ0UsIFBBUkVOVEhFU0lTRURfU19TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgY29tcHJlc3MgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBpc0xlc3NUaGFuLCBpc0FuY2VzdG9yT2YgfSA9IG5vZGVVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE1hcEZyb21JbmRleERpcmVjdGl2ZUhUTUxOb2RlQW5kRGl2aXNpb25IVE1MTm9kZXMoaW5kZXhEaXJlY3RpdmVIVE1MTm9kZSwgZGl2aXNpb25IVE1MTm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXAgPSBjcmVhdGVJbmRleE1hcChpbmRleERpcmVjdGl2ZUhUTUxOb2RlLCBkaXZpc2lvbkhUTUxOb2RlcywgY29udGV4dCk7XG5cbiAgcmVtb3ZlSWdub3JlZFdvcmRzKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBhZGp1c3RNaXhlZFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFBsdXJhbFBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdFNpbmd1bGFyUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCk7XG5cbiAgYWRqdXN0UHJvcGVyTm91bnMoaW5kZXhNYXAsIGNvbnRleHQpO1xuXG4gIGFkanVzdEFjcm9ueW1zKGluZGV4TWFwLCBjb250ZXh0KTtcblxuICBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUluZGV4TWFwKGluZGV4RGlyZWN0aXZlSFRNTE5vZGUsIGRpdmlzaW9uSFRNTE5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWFwID0ge307XG5cbiAgY29uc3QgeyBwaHJhc2VzID0gW10gfSA9IGNvbnRleHQsXG4gICAgICAgIGluZGV4TWF0Y2hlcyA9IHBocmFzZXMubWFwKChwaHJhc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBpbmRleE1hdGNoID0gSW5kZXhNYXRjaC5mcm9tUGhyYXNlKHBocmFzZSk7XG5cbiAgICAgICAgICByZXR1cm4gaW5kZXhNYXRjaDtcbiAgICAgICAgfSk7XG5cbiAgZGl2aXNpb25IVE1MTm9kZXMuZm9yRWFjaCgoZGl2aXNpb25IVE1MTm9kZSkgPT4ge1xuICAgIGNvbnN0IGRpdmlzaW9uSFRNTE5vZGVMZXNzVGhhbkluZGV4RGlyZWN0aXZlSFRNTE5vZGUgPSBpc0xlc3NUaGFuKGRpdmlzaW9uSFRNTE5vZGUsIGluZGV4RGlyZWN0aXZlSFRNTE5vZGUpO1xuXG4gICAgaWYgKGRpdmlzaW9uSFRNTE5vZGVMZXNzVGhhbkluZGV4RGlyZWN0aXZlSFRNTE5vZGUpIHtcbiAgICAgIGNvbnN0IGRpdmlzaW9uSFRNTE5vZGVBbmNlc3Rvck9mSW5kZXhEaXJlY3RpdmVIVE1MTm9kZSA9IGlzQW5jZXN0b3JPZihkaXZpc2lvbkhUTUxOb2RlLCBpbmRleERpcmVjdGl2ZUhUTUxOb2RlKTtcblxuICAgICAgaWYgKCFkaXZpc2lvbkhUTUxOb2RlQW5jZXN0b3JPZkluZGV4RGlyZWN0aXZlSFRNTE5vZGUpIHtcbiAgICAgICAgY29uc3QgcGFnZU51bWJlciA9IGRpdmlzaW9uSFRNTE5vZGUucGFnZU51bWJlcihjb250ZXh0KTtcblxuICAgICAgICBpZiAocGFnZU51bWJlciAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHBsYWluVGV4dCA9IGRpdmlzaW9uSFRNTE5vZGUuYXNQbGFpblRleHQoY29udGV4dCksXG4gICAgICAgICAgICAgICAgd29yZHNPclBocmFzZXMgPSB3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMocGxhaW5UZXh0LCBpbmRleE1hdGNoZXMpO1xuXG4gICAgICAgICAgd29yZHNPclBocmFzZXMuZm9yRWFjaCgod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYWdlTnVtYmVycyA9IGluZGV4TWFwLmhhc093blByb3BlcnR5KHdvcmRPclBocmFzZSkgP1xuICAgICAgICAgICAgICAgICAgICBpbmRleE1hcFt3b3JkT3JQaHJhc2VdIDpcbiAgICAgICAgICAgICAgICAgICAgICBbXTtcblxuICAgICAgICAgICAgaW5kZXhNYXBbd29yZE9yUGhyYXNlXSA9IHBhZ2VOdW1iZXJzO1xuXG4gICAgICAgICAgICBwYWdlTnVtYmVycy5wdXNoKHBhZ2VOdW1iZXIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gaW5kZXhNYXA7XG59XG5cbmZ1bmN0aW9uIHdvcmRzT3JQaHJhc2VzRnJvbVBsYWluVGV4dEFuZEluZGV4TWF0Y2hlcyhwbGFpblRleHQsIGluZGV4TWF0Y2hlcykge1xuICBsZXQgd29yZHNPclBocmFzZXM7XG5cbiAgcGxhaW5UZXh0ID0gcHJlcGFyZVBsYWluVGV4dChwbGFpblRleHQpOyAgLy8vXG5cbiAgaW5kZXhNYXRjaGVzLmZvckVhY2goKGluZGV4TWF0Y2gpID0+IHtcbiAgICBwbGFpblRleHQgPSBpbmRleE1hdGNoLnJlcGxhY2UocGxhaW5UZXh0KTtcbiAgfSk7XG5cbiAgd29yZHNPclBocmFzZXMgPSBwbGFpblRleHQuc3BsaXQoU0lOR0xFX1NQQUNFKTtcblxuICB3b3Jkc09yUGhyYXNlcyA9IHdvcmRzT3JQaHJhc2VzLm1hcCgod29yZE9yUGhyYXNlKSA9PiB7XG4gICAgd29yZE9yUGhyYXNlID0gSW5kZXhNYXRjaC5yZXZlcnQod29yZE9yUGhyYXNlKTsgIC8vL1xuXG4gICAgcmV0dXJuIHdvcmRPclBocmFzZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHdvcmRzT3JQaHJhc2VzO1xufVxuXG5mdW5jdGlvbiBjb21wcmVzc1BhZ2VOdW1iZXJzKGluZGV4TWFwKSB7XG4gIG1hcFZhbHVlcyhpbmRleE1hcCwgKHdvcmRPclBocmFzZSwgcGFnZU51bWJlcnMpID0+IHtcbiAgICBjb21wcmVzcyhwYWdlTnVtYmVycywgKHBhZ2VOdW1iZXJBLCBwYWdlTnVtYmVyQikgPT4ge1xuICAgICAgaWYgKHBhZ2VOdW1iZXJBICE9PSBwYWdlTnVtYmVyQikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHBhZ2VOdW1iZXJzLnNvcnQoKHBhZ2VOdW1iZXJCLCBwYWdlTnVtYmVyQSkgPT4ge1xuICAgICAgcGFnZU51bWJlckEgPSBOdW1iZXIocGFnZU51bWJlckEpOyAgLy8vXG5cbiAgICAgIHBhZ2VOdW1iZXJCID0gTnVtYmVyKHBhZ2VOdW1iZXJCKTsgIC8vL1xuXG4gICAgICBjb25zdCBkaWZmZXJlbmNlID0gcGFnZU51bWJlckIgLSBwYWdlTnVtYmVyQTtcblxuICAgICAgcmV0dXJuIGRpZmZlcmVuY2U7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGFnZU51bWJlcnM7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVJZ25vcmVkV29yZHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBpZ25vcmVkV29yZHMgPSBbXSB9ID0gY29udGV4dDtcblxuICBpZ25vcmVkV29yZHMuZm9yRWFjaCgoaWdub3JlZFdvcmQpID0+IHtcbiAgICBkZWxldGUgaW5kZXhNYXBbaWdub3JlZFdvcmRdO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0UHJvcGVyTm91bnMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBwcm9wZXJOb3VucyA9IFtdIH0gPSBjb250ZXh0LFxuICAgICAgICBsb3dlckNhc2VQcm9wZXJOb3VucyA9IHByb3Blck5vdW5zLm1hcCgocHJvcGVyTm91bikgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvd2VyQ2FzZVByb3Blck5vdW4gPSBwcm9wZXJOb3VuLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICByZXR1cm4gbG93ZXJDYXNlUHJvcGVyTm91bjtcbiAgICAgICAgfSk7XG5cbiAgbWFwS2V5cyhpbmRleE1hcCwgKHdvcmRPclBocmFzZSkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gbG93ZXJDYXNlUHJvcGVyTm91bnMuZmluZEluZGV4KChsb3dlckNhc2VQcm9wZXJOYW1lKSA9PiB7XG4gICAgICBpZiAobG93ZXJDYXNlUHJvcGVyTmFtZSA9PT0gd29yZE9yUGhyYXNlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IHByb3Blck5vdW4gPSBwcm9wZXJOb3Vuc1tpbmRleF07XG5cbiAgICAgIHdvcmRPclBocmFzZSA9IHByb3Blck5vdW47ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gd29yZE9yUGhyYXNlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVBsYWluVGV4dChwbGFpblRleHQpIHtcbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnRvTG93ZXJDYXNlKCk7ICAvLy9cblxuICBwbGFpblRleHQgPSBwbGFpblRleHQucmVwbGFjZSgvW15hLXowLTlcXC0gXS9nLCBTSU5HTEVfU1BBQ0UpO1xuXG4gIHBsYWluVGV4dCA9IHBsYWluVGV4dC5yZXBsYWNlKC9cXHMrL2csIFNJTkdMRV9TUEFDRSk7XG5cbiAgcGxhaW5UZXh0ID0gcGxhaW5UZXh0LnJlcGxhY2UoL15cXHMrfFxccyskL2csIEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHBsYWluVGV4dDtcbn1cblxuZnVuY3Rpb24gYWRqdXN0QWNyb255bXMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBhY3JvbnltcyA9IFtdIH0gPSBjb250ZXh0LFxuICAgICAgICBsb3dlckNhc2VBY3JvbnltcyA9IGFjcm9ueW1zLm1hcCgoYWNyb255bSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxvd2VyQ2FzZUFjcm9ueW0gPSBhY3JvbnltLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICByZXR1cm4gbG93ZXJDYXNlQWNyb255bTtcbiAgICAgICAgfSk7XG5cbiAgbWFwS2V5cyhpbmRleE1hcCwgKHdvcmRPclBocmFzZSkgPT4ge1xuICAgIGNvbnN0IGluZGV4ID0gbG93ZXJDYXNlQWNyb255bXMuZmluZEluZGV4KChsb3dlckNhc2VQcm9wZXJOYW1lKSA9PiB7XG4gICAgICBpZiAobG93ZXJDYXNlUHJvcGVyTmFtZSA9PT0gd29yZE9yUGhyYXNlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IGFjcm9ueW0gPSBhY3Jvbnltc1tpbmRleF07XG5cbiAgICAgIHdvcmRPclBocmFzZSA9IGFjcm9ueW07ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gd29yZE9yUGhyYXNlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0TWl4ZWRQbHVyYWxzKGluZGV4TWFwLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgcGx1cmFscyA9IFtdIH0gPSBjb250ZXh0LFxuICAgICAgICBtaXhlZFBsdXJhbHMgPSByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGlzTWl4ZWQpLFxuICAgICAgICBwbHVyYWxQbHVyYWxzID0gbWFwUGx1cmFscyhtaXhlZFBsdXJhbHMsIG1peGVkVG9QbHVyYWwpLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSBtYXBQbHVyYWxzKG1peGVkUGx1cmFscywgbWl4ZWRUb1Npbmd1bGFyKTtcblxuICBmb3JFYWNoKGluZGV4TWFwLCAod29yZE9yUGhyYXNlLCBwYWdlTnVtYmVycykgPT4ge1xuICAgIGNvbnN0IHNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlID0gc2luZ3VsYXJQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAoc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UpIHtcbiAgICAgIGNvbnN0IHNpbmd1bGFyV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICBzaW5ndWxhclBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gc2luZ3VsYXJUb01peGVkKHNpbmd1bGFyV29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgIG1peGVkUGFnZU51bWJlcnMgPSBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gfHwgW107XG5cbiAgICAgIHBhZ2VOdW1iZXJzID0gW1xuICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdO1xuXG4gICAgICBpbmRleE1hcFttaXhlZFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG5cbiAgICBjb25zdCBwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBwbHVyYWxQbHVyYWxzLmluY2x1ZGVzKHdvcmRPclBocmFzZSk7XG5cbiAgICBpZiAocGx1cmFsUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlKSB7XG4gICAgICBjb25zdCBwbHVyYWxXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnMsICAvLy9cbiAgICAgICAgICAgIG1peGVkV29yZE9yUGhyYXNlID0gcGx1cmFsVG9NaXhlZChwbHVyYWxXb3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgbWl4ZWRQYWdlTnVtYmVycyA9IGluZGV4TWFwW21peGVkV29yZE9yUGhyYXNlXSB8fCBbXTtcblxuICAgICAgcGFnZU51bWJlcnMgPSBbXG4gICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzLFxuICAgICAgICAuLi5taXhlZFBhZ2VOdW1iZXJzXG4gICAgICBdO1xuXG4gICAgICBkZWxldGUgaW5kZXhNYXBbcGx1cmFsV29yZE9yUGhyYXNlXTtcblxuICAgICAgaW5kZXhNYXBbbWl4ZWRXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRqdXN0UGx1cmFsUGx1cmFscyhpbmRleE1hcCwgY29udGV4dCkge1xuICBjb25zdCB7IHBsdXJhbHMgPSBbXSB9ID0gY29udGV4dCxcbiAgICAgICAgcGx1cmFsUGx1cmFscyA9IHJlZHVjZVBsdXJhbHMocGx1cmFscywgaXNQbHVyYWwpLFxuICAgICAgICBzaW5ndWxhclBsdXJhbHMgPSBtYXBQbHVyYWxzKHBsdXJhbFBsdXJhbHMsIHBsdXJhbFRvU2luZ3VsYXIpO1xuXG4gIGZvckVhY2goaW5kZXhNYXAsICh3b3JkT3JQaHJhc2UsIHBhZ2VOdW1iZXJzKSA9PiB7XG4gICAgY29uc3Qgc2luZ3VsYXJQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UgPSBzaW5ndWxhclBsdXJhbHMuaW5jbHVkZXMod29yZE9yUGhyYXNlKTtcblxuICAgIGlmIChzaW5ndWxhclBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSkge1xuICAgICAgY29uc3Qgc2luZ3VsYXJXb3JkT3JQaHJhc2UgPSB3b3JkT3JQaHJhc2UsICAvLy9cbiAgICAgICAgICAgIHNpbmd1bGFyUGFnZU51bWJlcnMgPSBwYWdlTnVtYmVycywgIC8vL1xuICAgICAgICAgICAgcGx1cmFsV29yZE9yUGhyYXNlID0gc2luZ3VsYXJUb1BsdXJhbCh3b3JkT3JQaHJhc2UpLFxuICAgICAgICAgICAgcGx1cmFsUGFnZU51bWJlcnMgPSBpbmRleE1hcFtwbHVyYWxXb3JkT3JQaHJhc2VdIHx8IFtdO1xuXG4gICAgICBwYWdlTnVtYmVycyA9IFtcbiAgICAgICAgLi4uc2luZ3VsYXJQYWdlTnVtYmVycyxcbiAgICAgICAgLi4ucGx1cmFsUGFnZU51bWJlcnNcbiAgICAgIF07XG5cbiAgICAgIGRlbGV0ZSBpbmRleE1hcFtzaW5ndWxhcldvcmRPclBocmFzZV07XG5cbiAgICAgIGluZGV4TWFwW3BsdXJhbFdvcmRPclBocmFzZV0gPSBwYWdlTnVtYmVycztcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGp1c3RTaW5ndWxhclBsdXJhbHMoaW5kZXhNYXAsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBwbHVyYWxzID0gW10gfSA9IGNvbnRleHQsXG4gICAgICAgIHNpbmd1bGFyUGx1cmFscyA9IHJlZHVjZVBsdXJhbHMocGx1cmFscywgaXNTaW5ndWxhciksXG4gICAgICAgIHBsdXJhbFBsdXJhbHMgPSBtYXBQbHVyYWxzKHNpbmd1bGFyUGx1cmFscywgc2luZ3VsYXJUb1BsdXJhbCk7XG5cbiAgZm9yRWFjaChpbmRleE1hcCwgKHdvcmRPclBocmFzZSwgcGFnZU51bWJlcnMpID0+IHtcbiAgICAgIGNvbnN0IHBsdXJhbFBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSA9IHBsdXJhbFBsdXJhbHMuaW5jbHVkZXMod29yZE9yUGhyYXNlKTtcblxuICAgICAgaWYgKHBsdXJhbFBsdXJhbHNJbmNsdWRlc1dvcmRPclBocmFzZSkge1xuICAgICAgICBjb25zdCBzaW5ndWxhcldvcmRPclBocmFzZSA9IHBsdXJhbFRvU2luZ3VsYXIod29yZE9yUGhyYXNlKSxcbiAgICAgICAgICAgICAgc2luZ3VsYXJQYWdlTnVtYmVycyA9IGluZGV4TWFwW3Npbmd1bGFyV29yZE9yUGhyYXNlXSB8fCBbXSxcbiAgICAgICAgICAgICAgcGx1cmFsV29yZE9yUGhyYXNlID0gd29yZE9yUGhyYXNlLCAgLy8vXG4gICAgICAgICAgICAgIHBsdXJhbFBhZ2VOdW1iZXJzID0gcGFnZU51bWJlcnM7ICAvLy9cblxuICAgICAgICBwYWdlTnVtYmVycyA9IFtcbiAgICAgICAgICAuLi5zaW5ndWxhclBhZ2VOdW1iZXJzLFxuICAgICAgICAgIC4uLnBsdXJhbFBhZ2VOdW1iZXJzXG4gICAgICAgIF07XG5cbiAgICAgICAgZGVsZXRlIGluZGV4TWFwW3BsdXJhbFdvcmRPclBocmFzZV07XG5cbiAgICAgICAgaW5kZXhNYXBbc2luZ3VsYXJXb3JkT3JQaHJhc2VdID0gcGFnZU51bWJlcnM7XG4gICAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZWR1Y2VQbHVyYWxzKHBsdXJhbHMsIGNhbGxiYWNrKSB7XG4gIHBsdXJhbHMgPSBwbHVyYWxzLnJlZHVjZSgocGx1cmFscywgcGx1cmFsKSA9PiB7IC8vL1xuICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxiYWNrKHBsdXJhbCk7XG5cbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICBwbHVyYWxzLnB1c2gocGx1cmFsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGx1cmFscztcbiAgfSwgW10pO1xuXG4gIHJldHVybiBwbHVyYWxzO1xufVxuXG5mdW5jdGlvbiBtYXBQbHVyYWxzKHBsdXJhbHMsIGNhbGxiYWNrKSB7XG4gIHBsdXJhbHMgPSBwbHVyYWxzLm1hcCgocGx1cmFsKSA9PiB7IC8vL1xuICAgIHBsdXJhbCA9IGNhbGxiYWNrKHBsdXJhbCk7XG5cbiAgICByZXR1cm4gcGx1cmFsO1xuICB9KTtcblxuICByZXR1cm4gcGx1cmFscztcbn1cblxuZnVuY3Rpb24gaXNTaW5ndWxhcih0ZXh0KSB7XG4gIGNvbnN0IGluZGV4TWF0Y2hlcyA9IC9bXnMpXSQvLnRlc3QodGV4dCksXG4gICAgICAgIHNpbmd1bGFyID0gaW5kZXhNYXRjaGVzOyAvLy9cblxuICByZXR1cm4gc2luZ3VsYXI7XG59XG5cbmZ1bmN0aW9uIGlzUGx1cmFsKHRleHQpIHtcbiAgY29uc3QgaW5kZXhNYXRjaGVzID0gLyhpZXN8cykkLy50ZXN0KHRleHQpLFxuICAgICAgICBwbHVyYWwgPSBpbmRleE1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBwbHVyYWw7XG59XG5cbmZ1bmN0aW9uIGlzTWl4ZWQodGV4dCkge1xuICBjb25zdCBpbmRleE1hdGNoZXMgPSAvXFwoc1xcKSQvLnRlc3QodGV4dCksXG4gICAgICAgIG1peGVkID0gaW5kZXhNYXRjaGVzOyAvLy9cblxuICByZXR1cm4gbWl4ZWQ7XG59XG5cbmZ1bmN0aW9uIG1peGVkVG9QbHVyYWwodGV4dCkge1xuICB0ZXh0ID0gdGV4dCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL1xcKHNcXCkkLywgU19TVFJJTkcpO1xuXG4gIHJldHVybiB0ZXh0O1xufVxuXG5mdW5jdGlvbiBwbHVyYWxUb01peGVkKHRleHQpIHtcbiAgdGV4dCA9IHRleHQgLy8vXG4gICAgICAgICAgIC5yZXBsYWNlKC9zJC8sIFBBUkVOVEhFU0lTRURfU19TVFJJTkcpXG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIG1peGVkVG9TaW5ndWxhcih0ZXh0KSB7XG4gIHRleHQgPSB0ZXh0IC8vL1xuICAgICAgICAgIC5yZXBsYWNlKC9cXChzXFwpJC8sIEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHNpbmd1bGFyVG9NaXhlZCh0ZXh0KSB7XG4gIHRleHQgPSBgJHt0ZXh0fShzKWA7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG5cbmZ1bmN0aW9uIHNpbmd1bGFyVG9QbHVyYWwodGV4dCkge1xuICB0ZXh0ID0gYCR7dGV4dH1zYCAvLy9cbiAgICAgICAgICAgLnJlcGxhY2UoL3lzJC8sIElFU19TVFJJTkcpO1xuXG4gIHJldHVybiB0ZXh0O1xufVxuXG5mdW5jdGlvbiBwbHVyYWxUb1Npbmd1bGFyKHRleHQpIHtcbiAgdGV4dCA9IHRleHQgLy8vXG4gICAgICAgICAgIC5yZXBsYWNlKC9pZXMkLywgWV9TVFJJTkcpXG4gICAgICAgICAgIC5yZXBsYWNlKC9zJC8sIEVNUFRZX1NUUklORyk7XG5cbiAgcmV0dXJuIHRleHQ7XG59XG4iXSwibmFtZXMiOlsiaW5kZXhNYXBGcm9tSW5kZXhEaXJlY3RpdmVIVE1MTm9kZUFuZERpdmlzaW9uSFRNTE5vZGVzIiwiY29tcHJlc3MiLCJhcnJheVV0aWxpdGllcyIsImlzTGVzc1RoYW4iLCJpc0FuY2VzdG9yT2YiLCJub2RlVXRpbGl0aWVzIiwiaW5kZXhEaXJlY3RpdmVIVE1MTm9kZSIsImRpdmlzaW9uSFRNTE5vZGVzIiwiY29udGV4dCIsImluZGV4TWFwIiwiY3JlYXRlSW5kZXhNYXAiLCJyZW1vdmVJZ25vcmVkV29yZHMiLCJhZGp1c3RNaXhlZFBsdXJhbHMiLCJhZGp1c3RQbHVyYWxQbHVyYWxzIiwiYWRqdXN0U2luZ3VsYXJQbHVyYWxzIiwiYWRqdXN0UHJvcGVyTm91bnMiLCJhZGp1c3RBY3JvbnltcyIsImNvbXByZXNzUGFnZU51bWJlcnMiLCJwaHJhc2VzIiwiaW5kZXhNYXRjaGVzIiwibWFwIiwicGhyYXNlIiwiaW5kZXhNYXRjaCIsIkluZGV4TWF0Y2giLCJmcm9tUGhyYXNlIiwiZm9yRWFjaCIsImRpdmlzaW9uSFRNTE5vZGUiLCJkaXZpc2lvbkhUTUxOb2RlTGVzc1RoYW5JbmRleERpcmVjdGl2ZUhUTUxOb2RlIiwiZGl2aXNpb25IVE1MTm9kZUFuY2VzdG9yT2ZJbmRleERpcmVjdGl2ZUhUTUxOb2RlIiwicGFnZU51bWJlciIsInBsYWluVGV4dCIsImFzUGxhaW5UZXh0Iiwid29yZHNPclBocmFzZXMiLCJ3b3Jkc09yUGhyYXNlc0Zyb21QbGFpblRleHRBbmRJbmRleE1hdGNoZXMiLCJ3b3JkT3JQaHJhc2UiLCJwYWdlTnVtYmVycyIsImhhc093blByb3BlcnR5IiwicHVzaCIsInByZXBhcmVQbGFpblRleHQiLCJyZXBsYWNlIiwic3BsaXQiLCJTSU5HTEVfU1BBQ0UiLCJyZXZlcnQiLCJtYXBWYWx1ZXMiLCJwYWdlTnVtYmVyQSIsInBhZ2VOdW1iZXJCIiwic29ydCIsIk51bWJlciIsImRpZmZlcmVuY2UiLCJpZ25vcmVkV29yZHMiLCJpZ25vcmVkV29yZCIsInByb3Blck5vdW5zIiwibG93ZXJDYXNlUHJvcGVyTm91bnMiLCJwcm9wZXJOb3VuIiwibG93ZXJDYXNlUHJvcGVyTm91biIsInRvTG93ZXJDYXNlIiwibWFwS2V5cyIsImluZGV4IiwiZmluZEluZGV4IiwibG93ZXJDYXNlUHJvcGVyTmFtZSIsIkVNUFRZX1NUUklORyIsImFjcm9ueW1zIiwibG93ZXJDYXNlQWNyb255bXMiLCJhY3JvbnltIiwibG93ZXJDYXNlQWNyb255bSIsInBsdXJhbHMiLCJtaXhlZFBsdXJhbHMiLCJyZWR1Y2VQbHVyYWxzIiwiaXNNaXhlZCIsInBsdXJhbFBsdXJhbHMiLCJtYXBQbHVyYWxzIiwibWl4ZWRUb1BsdXJhbCIsInNpbmd1bGFyUGx1cmFscyIsIm1peGVkVG9TaW5ndWxhciIsInNpbmd1bGFyUGx1cmFsc0luY2x1ZGVzV29yZE9yUGhyYXNlIiwiaW5jbHVkZXMiLCJzaW5ndWxhcldvcmRPclBocmFzZSIsInNpbmd1bGFyUGFnZU51bWJlcnMiLCJtaXhlZFdvcmRPclBocmFzZSIsInNpbmd1bGFyVG9NaXhlZCIsIm1peGVkUGFnZU51bWJlcnMiLCJwbHVyYWxQbHVyYWxzSW5jbHVkZXNXb3JkT3JQaHJhc2UiLCJwbHVyYWxXb3JkT3JQaHJhc2UiLCJwbHVyYWxQYWdlTnVtYmVycyIsInBsdXJhbFRvTWl4ZWQiLCJpc1BsdXJhbCIsInBsdXJhbFRvU2luZ3VsYXIiLCJzaW5ndWxhclRvUGx1cmFsIiwiaXNTaW5ndWxhciIsImNhbGxiYWNrIiwicmVkdWNlIiwicGx1cmFsIiwicmVzdWx0IiwidGV4dCIsInRlc3QiLCJzaW5ndWxhciIsIm1peGVkIiwiU19TVFJJTkciLCJQQVJFTlRIRVNJU0VEX1NfU1RSSU5HIiwiSUVTX1NUUklORyIsIllfU1RS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
|
|
@@ -28,37 +28,34 @@ _export(exports, {
|
|
|
28
28
|
return subDivisionMarkdownNodesFromNode;
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
const _occamquery = require("occam-query");
|
|
32
|
+
const _query = require("../utilities/query");
|
|
33
|
+
const subDivisionMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision"), ignoreDirectiveMarkdownNodeQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/ignoreDirective"), subDivisionMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/division/subDivision"), embedDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/subDivision/directives/embedDirective"), includeDirectiveMarkdownNodesQuery = _occamquery.Query.fromExpressionString("/division/subDivision/directives/includeDirective");
|
|
34
34
|
function subDivisionMarkdownNodeFromNode(node) {
|
|
35
|
-
|
|
35
|
+
const subDivisionMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, subDivisionMarkdownNodeQuery);
|
|
36
36
|
return subDivisionMarkdownNode;
|
|
37
37
|
}
|
|
38
38
|
function ignoreDirectiveMarkdownNodeFromNode(node) {
|
|
39
|
-
|
|
39
|
+
const ignoreDirectiveMarkdownNode = (0, _query.nodeFromNodeAndQuery)(node, ignoreDirectiveMarkdownNodeQuery);
|
|
40
40
|
return ignoreDirectiveMarkdownNode;
|
|
41
41
|
}
|
|
42
|
-
function subDivisionMarkdownNodesFromNode(node) {
|
|
43
|
-
var subDivisionMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
42
|
+
function subDivisionMarkdownNodesFromNode(node, subDivisionMarkdownNodes = []) {
|
|
44
43
|
(0, _query.nodesFromNodeAndQuery)(node, subDivisionMarkdownNodesQuery, subDivisionMarkdownNodes);
|
|
45
44
|
return subDivisionMarkdownNodes;
|
|
46
45
|
}
|
|
47
|
-
function embedDirectiveMarkdownNodesFromNode(node) {
|
|
48
|
-
var embedDirectiveMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
46
|
+
function embedDirectiveMarkdownNodesFromNode(node, embedDirectiveMarkdownNodes = []) {
|
|
49
47
|
(0, _query.nodesFromNodeAndQuery)(node, embedDirectiveMarkdownNodesQuery, embedDirectiveMarkdownNodes);
|
|
50
48
|
return embedDirectiveMarkdownNodes;
|
|
51
49
|
}
|
|
52
|
-
function includeDirectiveMarkdownNodesFromNode(node) {
|
|
53
|
-
var includeDirectiveMarkdownNodes = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
50
|
+
function includeDirectiveMarkdownNodesFromNode(node, includeDirectiveMarkdownNodes = []) {
|
|
54
51
|
(0, _query.nodesFromNodeAndQuery)(node, includeDirectiveMarkdownNodesQuery, includeDirectiveMarkdownNodes);
|
|
55
52
|
return includeDirectiveMarkdownNodes;
|
|
56
53
|
}
|
|
57
|
-
|
|
58
|
-
subDivisionMarkdownNodeFromNode
|
|
59
|
-
ignoreDirectiveMarkdownNodeFromNode
|
|
60
|
-
embedDirectiveMarkdownNodesFromNode
|
|
61
|
-
includeDirectiveMarkdownNodesFromNode
|
|
54
|
+
const _default = {
|
|
55
|
+
subDivisionMarkdownNodeFromNode,
|
|
56
|
+
ignoreDirectiveMarkdownNodeFromNode,
|
|
57
|
+
embedDirectiveMarkdownNodesFromNode,
|
|
58
|
+
includeDirectiveMarkdownNodesFromNode
|
|
62
59
|
};
|
|
63
60
|
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWFya2Rvd24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5LCBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9kaXZpc2lvbi9zdWJEaXZpc2lvblwiKSxcbiAgICAgIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZVF1ZXJ5ID0gUXVlcnkuZnJvbUV4cHJlc3Npb25TdHJpbmcoXCIvZGl2aXNpb24vc3ViRGl2aXNpb24vZGlyZWN0aXZlcy9pZ25vcmVEaXJlY3RpdmVcIiksXG4gICAgICBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uXCIpLFxuICAgICAgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzUXVlcnkgPSBRdWVyeS5mcm9tRXhwcmVzc2lvblN0cmluZyhcIi9zdWJEaXZpc2lvbi9kaXJlY3RpdmVzL2VtYmVkRGlyZWN0aXZlXCIpLFxuICAgICAgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKFwiL2RpdmlzaW9uL3N1YkRpdmlzaW9uL2RpcmVjdGl2ZXMvaW5jbHVkZURpcmVjdGl2ZVwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlRnJvbU5vZGUobm9kZSkge1xuICBjb25zdCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSA9IG5vZGVGcm9tTm9kZUFuZFF1ZXJ5KG5vZGUsIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlKG5vZGUpIHtcbiAgY29uc3QgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlID0gbm9kZUZyb21Ob2RlQW5kUXVlcnkobm9kZSwgaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkpO1xuXG4gIHJldHVybiBpZ25vcmVEaXJlY3RpdmVNYXJrZG93bk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXMgPSBbXSkge1xuICBub2Rlc0Zyb21Ob2RlQW5kUXVlcnkobm9kZSwgc3ViRGl2aXNpb25NYXJrZG93bk5vZGVzUXVlcnksIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2Rlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKG5vZGUsIGVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSwgZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzKTtcblxuICByZXR1cm4gZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZShub2RlLCBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2RlcyA9IFtdKSB7XG4gIG5vZGVzRnJvbU5vZGVBbmRRdWVyeShub2RlLCBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5LCBpbmNsdWRlRGlyZWN0aXZlTWFya2Rvd25Ob2Rlcyk7XG5cbiAgcmV0dXJuIGluY2x1ZGVEaXJlY3RpdmVNYXJrZG93bk5vZGVzO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlRnJvbU5vZGUsXG4gIGlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlLFxuICBlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSxcbiAgaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZVxufTtcbiJdLCJuYW1lcyI6WyJlbWJlZERpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsImlnbm9yZURpcmVjdGl2ZU1hcmtkb3duTm9kZUZyb21Ob2RlIiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNGcm9tTm9kZSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlRnJvbU5vZGUiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNGcm9tTm9kZSIsInN1YkRpdmlzaW9uTWFya2Rvd25Ob2RlUXVlcnkiLCJRdWVyeSIsImZyb21FeHByZXNzaW9uU3RyaW5nIiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlUXVlcnkiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZXNRdWVyeSIsImVtYmVkRGlyZWN0aXZlTWFya2Rvd25Ob2Rlc1F1ZXJ5IiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXNRdWVyeSIsIm5vZGUiLCJzdWJEaXZpc2lvbk1hcmtkb3duTm9kZSIsIm5vZGVGcm9tTm9kZUFuZFF1ZXJ5IiwiaWdub3JlRGlyZWN0aXZlTWFya2Rvd25Ob2RlIiwic3ViRGl2aXNpb25NYXJrZG93bk5vZGVzIiwibm9kZXNGcm9tTm9kZUFuZFF1ZXJ5IiwiZW1iZWREaXJlY3RpdmVNYXJrZG93bk5vZGVzIiwiaW5jbHVkZURpcmVjdGl2ZU1hcmtkb3duTm9kZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTBDQTtlQUFBOztRQVpnQkE7ZUFBQUE7O1FBWkFDO2VBQUFBOztRQWtCQUM7ZUFBQUE7O1FBeEJBQztlQUFBQTs7UUFZQUM7ZUFBQUE7Ozs0QkF0Qk07dUJBRXNDO0FBRTVELE1BQU1DLCtCQUErQkMsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsMEJBQzFEQyxtQ0FBbUNGLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDLHFEQUM5REUsZ0NBQWdDSCxpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQywwQkFDM0RHLG1DQUFtQ0osaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUMsMkNBQzlESSxxQ0FBcUNMLGlCQUFLLENBQUNDLG9CQUFvQixDQUFDO0FBRS9ELFNBQVNKLGdDQUFnQ1MsSUFBSTtJQUNsRCxNQUFNQywwQkFBMEJDLElBQUFBLDJCQUFvQixFQUFDRixNQUFNUDtJQUUzRCxPQUFPUTtBQUNUO0FBRU8sU0FBU1osb0NBQW9DVyxJQUFJO0lBQ3RELE1BQU1HLDhCQUE4QkQsSUFBQUEsMkJBQW9CLEVBQUNGLE1BQU1KO0lBRS9ELE9BQU9PO0FBQ1Q7QUFFTyxTQUFTWCxpQ0FBaUNRLElBQUksRUFBRUksMkJBQTJCLEVBQUU7SUFDbEZDLElBQUFBLDRCQUFxQixFQUFDTCxNQUFNSCwrQkFBK0JPO0lBRTNELE9BQU9BO0FBQ1Q7QUFFTyxTQUFTaEIsb0NBQW9DWSxJQUFJLEVBQUVNLDhCQUE4QixFQUFFO0lBQ3hGRCxJQUFBQSw0QkFBcUIsRUFBQ0wsTUFBTUYsa0NBQWtDUTtJQUU5RCxPQUFPQTtBQUNUO0FBRU8sU0FBU2hCLHNDQUFzQ1UsSUFBSSxFQUFFTyxnQ0FBZ0MsRUFBRTtJQUM1RkYsSUFBQUEsNEJBQXFCLEVBQUNMLE1BQU1ELG9DQUFvQ1E7SUFFaEUsT0FBT0E7QUFDVDtNQUVBLFdBQWU7SUFDYmhCO0lBQ0FGO0lBQ0FEO0lBQ0FFO0FBQ0YifQ==
|
|
@@ -8,6 +8,6 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return _default;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
|
|
11
|
+
const _default = {};
|
|
12
12
|
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWFya2Rvd25TdHlsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQge307XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBRUE7OztlQUFBOzs7TUFBQSxXQUFlLENBQUMifQ==
|
package/lib/utilities/object.js
CHANGED
|
@@ -23,43 +23,43 @@ _export(exports, {
|
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
function forEach(object, callback) {
|
|
26
|
-
|
|
27
|
-
keys.forEach(
|
|
28
|
-
|
|
26
|
+
const keys = Object.keys(object);
|
|
27
|
+
keys.forEach((key)=>{
|
|
28
|
+
const value = object[key];
|
|
29
29
|
callback(key, value);
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
function filter(object, callback) {
|
|
33
|
-
|
|
34
|
-
keys.forEach(
|
|
35
|
-
|
|
33
|
+
const keys = Object.keys(object);
|
|
34
|
+
keys.forEach((key)=>{
|
|
35
|
+
const value = object[key], result = callback(key, value);
|
|
36
36
|
if (!result) {
|
|
37
37
|
delete object[key];
|
|
38
38
|
}
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
function mapKeys(object, callback) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
keys = keys.map(
|
|
45
|
-
|
|
42
|
+
let keys = Object.keys(object);
|
|
43
|
+
const values = [];
|
|
44
|
+
keys = keys.map((key)=>{
|
|
45
|
+
const value = object[key];
|
|
46
46
|
delete object[key];
|
|
47
47
|
key = callback(key, value); ///
|
|
48
48
|
values.push(value);
|
|
49
49
|
return key;
|
|
50
50
|
});
|
|
51
|
-
keys.forEach(
|
|
52
|
-
|
|
51
|
+
keys.forEach((key, index)=>{
|
|
52
|
+
const value = values[index];
|
|
53
53
|
object[key] = value;
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
function mapValues(object, callback) {
|
|
57
|
-
|
|
58
|
-
keys.forEach(
|
|
59
|
-
|
|
57
|
+
const keys = Object.keys(object);
|
|
58
|
+
keys.forEach((key)=>{
|
|
59
|
+
let value = object[key];
|
|
60
60
|
value = callback(key, value); ///
|
|
61
61
|
object[key] = value;
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChvYmplY3QsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgIGNhbGxiYWNrKGtleSwgdmFsdWUpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcihvYmplY3QsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICByZXN1bHQgPSBjYWxsYmFjayhrZXksIHZhbHVlKTtcblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICBkZWxldGUgb2JqZWN0W2tleV07XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcEtleXMob2JqZWN0LCBjYWxsYmFjaykge1xuICBsZXQga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG5cbiAgY29uc3QgdmFsdWVzID0gW107XG5cbiAga2V5cyA9IGtleXMubWFwKChrZXkpID0+
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChvYmplY3QsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XTtcblxuICAgIGNhbGxiYWNrKGtleSwgdmFsdWUpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlcihvYmplY3QsIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmplY3Rba2V5XSxcbiAgICAgICAgICByZXN1bHQgPSBjYWxsYmFjayhrZXksIHZhbHVlKTtcblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICBkZWxldGUgb2JqZWN0W2tleV07XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcEtleXMob2JqZWN0LCBjYWxsYmFjaykge1xuICBsZXQga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG5cbiAgY29uc3QgdmFsdWVzID0gW107XG5cbiAga2V5cyA9IGtleXMubWFwKChrZXkpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgZGVsZXRlIG9iamVjdFtrZXldO1xuXG4gICAga2V5ID0gY2FsbGJhY2soa2V5LCB2YWx1ZSk7IC8vL1xuXG4gICAgdmFsdWVzLnB1c2godmFsdWUpO1xuXG4gICAgcmV0dXJuIGtleTtcbiAgfSk7XG5cbiAga2V5cy5mb3JFYWNoKChrZXksIGluZGV4KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNbaW5kZXhdO1xuXG4gICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBWYWx1ZXMob2JqZWN0LCBjYWxsYmFjaykge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcblxuICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGxldCB2YWx1ZSA9IG9iamVjdFtrZXldO1xuXG4gICAgdmFsdWUgPSBjYWxsYmFjayhrZXksIHZhbHVlKTsgLy8vXG5cbiAgICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICB9KTtcbn0iXSwibmFtZXMiOlsiZmlsdGVyIiwiZm9yRWFjaCIsIm1hcEtleXMiLCJtYXBWYWx1ZXMiLCJvYmplY3QiLCJjYWxsYmFjayIsImtleXMiLCJPYmplY3QiLCJrZXkiLCJ2YWx1ZSIsInJlc3VsdCIsInZhbHVlcyIsIm1hcCIsInB1c2giLCJpbmRleCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBWWdCQTtlQUFBQTs7UUFWQUM7ZUFBQUE7O1FBdUJBQztlQUFBQTs7UUF3QkFDO2VBQUFBOzs7QUEvQ1QsU0FBU0YsUUFBUUcsTUFBTSxFQUFFQyxRQUFRO0lBQ3RDLE1BQU1DLE9BQU9DLE9BQU9ELElBQUksQ0FBQ0Y7SUFFekJFLEtBQUtMLE9BQU8sQ0FBQyxDQUFDTztRQUNaLE1BQU1DLFFBQVFMLE1BQU0sQ0FBQ0ksSUFBSTtRQUV6QkgsU0FBU0csS0FBS0M7SUFDaEI7QUFDRjtBQUVPLFNBQVNULE9BQU9JLE1BQU0sRUFBRUMsUUFBUTtJQUNyQyxNQUFNQyxPQUFPQyxPQUFPRCxJQUFJLENBQUNGO0lBRXpCRSxLQUFLTCxPQUFPLENBQUMsQ0FBQ087UUFDWixNQUFNQyxRQUFRTCxNQUFNLENBQUNJLElBQUksRUFDbkJFLFNBQVNMLFNBQVNHLEtBQUtDO1FBRTdCLElBQUksQ0FBQ0MsUUFBUTtZQUNYLE9BQU9OLE1BQU0sQ0FBQ0ksSUFBSTtRQUNwQjtJQUNGO0FBQ0Y7QUFFTyxTQUFTTixRQUFRRSxNQUFNLEVBQUVDLFFBQVE7SUFDdEMsSUFBSUMsT0FBT0MsT0FBT0QsSUFBSSxDQUFDRjtJQUV2QixNQUFNTyxTQUFTLEVBQUU7SUFFakJMLE9BQU9BLEtBQUtNLEdBQUcsQ0FBQyxDQUFDSjtRQUNmLE1BQU1DLFFBQVFMLE1BQU0sQ0FBQ0ksSUFBSTtRQUV6QixPQUFPSixNQUFNLENBQUNJLElBQUk7UUFFbEJBLE1BQU1ILFNBQVNHLEtBQUtDLFFBQVEsR0FBRztRQUUvQkUsT0FBT0UsSUFBSSxDQUFDSjtRQUVaLE9BQU9EO0lBQ1Q7SUFFQUYsS0FBS0wsT0FBTyxDQUFDLENBQUNPLEtBQUtNO1FBQ2pCLE1BQU1MLFFBQVFFLE1BQU0sQ0FBQ0csTUFBTTtRQUUzQlYsTUFBTSxDQUFDSSxJQUFJLEdBQUdDO0lBQ2hCO0FBQ0Y7QUFFTyxTQUFTTixVQUFVQyxNQUFNLEVBQUVDLFFBQVE7SUFDeEMsTUFBTUMsT0FBT0MsT0FBT0QsSUFBSSxDQUFDRjtJQUV6QkUsS0FBS0wsT0FBTyxDQUFDLENBQUNPO1FBQ1osSUFBSUMsUUFBUUwsTUFBTSxDQUFDSSxJQUFJO1FBRXZCQyxRQUFRSixTQUFTRyxLQUFLQyxRQUFRLEdBQUc7UUFFakNMLE1BQU0sQ0FBQ0ksSUFBSSxHQUFHQztJQUNoQjtBQUNGIn0=
|