single-scripture-rcl 3.2.3-beta → 3.2.4
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/dist/components/ScriptureCard/ScriptureCard.js +291 -55
- package/dist/components/ScripturePane/ScripturePane.js +83 -8
- package/dist/hooks/useScripture.js +100 -6
- package/dist/hooks/useScriptureAlignmentEdit.js +633 -0
- package/dist/hooks/useScriptureResources.js +14 -3
- package/dist/hooks/useScriptureSettings.js +9 -4
- package/dist/utils/ScriptureSettings.js +1 -1
- package/package.json +20 -7
|
@@ -20,6 +20,7 @@ import { getScriptureResourceSettings } from '../utils/ScriptureSettings';
|
|
|
20
20
|
* @param {string} currentOwner - optional over-ride for transient case where owner in scripture settings have not yet updated
|
|
21
21
|
* @param {object} httpConfig - optional config settings for fetches (timeout, cache, etc.)
|
|
22
22
|
* @param {string} appRef - app default, points to specific ref that could be a branch or tag
|
|
23
|
+
* @param {boolean} wholeBook - if true then fetch the entire book
|
|
23
24
|
*/
|
|
24
25
|
|
|
25
26
|
export function useScriptureResources(_ref) {
|
|
@@ -36,7 +37,16 @@ export function useScriptureResources(_ref) {
|
|
|
36
37
|
_ref$httpConfig = _ref.httpConfig,
|
|
37
38
|
httpConfig = _ref$httpConfig === void 0 ? {} : _ref$httpConfig,
|
|
38
39
|
_ref$appRef = _ref.appRef,
|
|
39
|
-
appRef = _ref$appRef === void 0 ? 'master' : _ref$appRef
|
|
40
|
+
appRef = _ref$appRef === void 0 ? 'master' : _ref$appRef,
|
|
41
|
+
_ref$wholeBook = _ref.wholeBook,
|
|
42
|
+
wholeBook = _ref$wholeBook === void 0 ? false : _ref$wholeBook;
|
|
43
|
+
|
|
44
|
+
if (appRef !== scriptureSettings.ref) {
|
|
45
|
+
scriptureSettings = _objectSpread(_objectSpread({}, scriptureSettings), {}, {
|
|
46
|
+
ref: appRef
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
40
50
|
var scriptureSettings_ = getScriptureResourceSettings(bookId, scriptureSettings, isNewTestament, originalRepoUrl, currentLanguageId, currentOwner); // convert any default settings strings
|
|
41
51
|
|
|
42
52
|
var scriptureConfig_ = {
|
|
@@ -55,7 +65,8 @@ export function useScriptureResources(_ref) {
|
|
|
55
65
|
config: _objectSpread({
|
|
56
66
|
server: scriptureSettings_.server
|
|
57
67
|
}, httpConfig),
|
|
58
|
-
disableWordPopover: scriptureSettings_.disableWordPopover
|
|
68
|
+
disableWordPopover: scriptureSettings_.disableWordPopover,
|
|
69
|
+
wholeBook: wholeBook
|
|
59
70
|
}; // @ts-ignore
|
|
60
71
|
|
|
61
72
|
var scriptureResource = useScripture(scriptureConfig_); // restore any default settings
|
|
@@ -70,4 +81,4 @@ export function useScriptureResources(_ref) {
|
|
|
70
81
|
return scriptureResource;
|
|
71
82
|
}
|
|
72
83
|
export default useScriptureResources;
|
|
73
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmVSZXNvdXJjZXMudHN4Il0sIm5hbWVzIjpbInVzZVNjcmlwdHVyZSIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJ1c2VTY3JpcHR1cmVSZXNvdXJjZXMiLCJib29rSWQiLCJzY3JpcHR1cmVTZXR0aW5ncyIsImNoYXB0ZXIiLCJ2ZXJzZSIsImlzTmV3VGVzdGFtZW50Iiwib3JpZ2luYWxSZXBvVXJsIiwiY3VycmVudExhbmd1YWdlSWQiLCJjdXJyZW50T3duZXIiLCJodHRwQ29uZmlnIiwiYXBwUmVmIiwid2hvbGVCb29rIiwicmVmIiwic2NyaXB0dXJlU2V0dGluZ3NfIiwic2NyaXB0dXJlQ29uZmlnXyIsInJlZmVyZW5jZSIsInByb2plY3RJZCIsInJlc291cmNlIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvd25lciIsImJyYW5jaCIsInJlc291cmNlTGluayIsImNvbmZpZyIsInNlcnZlciIsImRpc2FibGVXb3JkUG9wb3ZlciIsInNjcmlwdHVyZVJlc291cmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLFNBQVNBLFlBQVQsUUFBNkIsSUFBN0I7QUFDQSxTQUFTQyw0QkFBVCxRQUE2Qyw0QkFBN0M7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sU0FBU0MscUJBQVQsT0FZSjtBQUFBLE1BWERDLE1BV0MsUUFYREEsTUFXQztBQUFBLE1BVkRDLGlCQVVDLFFBVkRBLGlCQVVDO0FBQUEsTUFUREMsT0FTQyxRQVREQSxPQVNDO0FBQUEsTUFSREMsS0FRQyxRQVJEQSxLQVFDO0FBQUEsTUFQREMsY0FPQyxRQVBEQSxjQU9DO0FBQUEsTUFOREMsZUFNQyxRQU5EQSxlQU1DO0FBQUEsbUNBTERDLGlCQUtDO0FBQUEsTUFMREEsaUJBS0Msc0NBTG1CLElBS25CO0FBQUEsK0JBSkRDLFlBSUM7QUFBQSxNQUpEQSxZQUlDLGtDQUpjLElBSWQ7QUFBQSw2QkFIREMsVUFHQztBQUFBLE1BSERBLFVBR0MsZ0NBSFksRUFHWjtBQUFBLHlCQUZEQyxNQUVDO0FBQUEsTUFGREEsTUFFQyw0QkFGUSxRQUVSO0FBQUEsNEJBRERDLFNBQ0M7QUFBQSxNQUREQSxTQUNDLCtCQURXLEtBQ1g7O0FBQ0QsTUFBSUQsTUFBTSxLQUFLUixpQkFBaUIsQ0FBQ1UsR0FBakMsRUFBc0M7QUFDcENWLElBQUFBLGlCQUFpQixtQ0FBUUEsaUJBQVI7QUFBMkJVLE1BQUFBLEdBQUcsRUFBRUY7QUFBaEMsTUFBakI7QUFDRDs7QUFFRCxNQUFNRyxrQkFBa0IsR0FBR2QsNEJBQTRCLENBQUNFLE1BQUQsRUFBU0MsaUJBQVQsRUFBNEJHLGNBQTVCLEVBQ3JEQyxlQURxRCxFQUNwQ0MsaUJBRG9DLEVBQ2pCQyxZQURpQixDQUF2RCxDQUxDLENBTW1EOztBQUVwRCxNQUFNTSxnQkFBZ0IsR0FBRztBQUN2QkMsSUFBQUEsU0FBUyxFQUFFO0FBQ1RDLE1BQUFBLFNBQVMsRUFBRWYsTUFERjtBQUVURSxNQUFBQSxPQUFPLEVBQUVBLE9BRkE7QUFHVEMsTUFBQUEsS0FBSyxFQUFFQTtBQUhFLEtBRFk7QUFNdkJhLElBQUFBLFFBQVEsRUFBRTtBQUNSQyxNQUFBQSxVQUFVLEVBQUVMLGtCQUFrQixDQUFDSyxVQUR2QjtBQUVSRixNQUFBQSxTQUFTLEVBQUVILGtCQUFrQixDQUFDTSxVQUZ0QjtBQUdSQyxNQUFBQSxLQUFLLEVBQUVQLGtCQUFrQixDQUFDTyxLQUhsQjtBQUlSUixNQUFBQSxHQUFHLEVBQUVDLGtCQUFrQixDQUFDRCxHQUFuQixJQUEwQkMsa0JBQWtCLENBQUNRLE1BQTdDLElBQXVEWDtBQUpwRCxLQU5hO0FBWXZCWSxJQUFBQSxZQUFZLEVBQUVULGtCQUFrQixDQUFDUyxZQVpWO0FBYXZCQyxJQUFBQSxNQUFNO0FBQ0pDLE1BQUFBLE1BQU0sRUFBRVgsa0JBQWtCLENBQUNXO0FBRHZCLE9BRURmLFVBRkMsQ0FiaUI7QUFpQnZCZ0IsSUFBQUEsa0JBQWtCLEVBQUVaLGtCQUFrQixDQUFDWSxrQkFqQmhCO0FBa0J2QmQsSUFBQUEsU0FBUyxFQUFUQTtBQWxCdUIsR0FBekIsQ0FSQyxDQTZCRDs7QUFDQSxNQUFNZSxpQkFBaUIsR0FBRzVCLFlBQVksQ0FBQ2dCLGdCQUFELENBQXRDLENBOUJDLENBK0JEOztBQUNBWSxFQUFBQSxpQkFBaUIsQ0FBQ0osWUFBbEIsR0FBaUNwQixpQkFBaUIsQ0FBQ29CLFlBQW5EOztBQUVBLE1BQUksQ0FBQ0ksaUJBQWlCLENBQUMsVUFBRCxDQUF0QixFQUFvQztBQUFFO0FBQ3BDQSxJQUFBQSxpQkFBaUIsQ0FBQyxVQUFELENBQWpCLEdBQWdDWixnQkFBZ0IsQ0FBQ0csUUFBakQ7QUFDRDs7QUFFRCxTQUFPUyxpQkFBUDtBQUNEO0FBRUQsZUFBZTFCLHFCQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU2NyaXB0dXJlIH0gZnJvbSAnLi4nXG5pbXBvcnQgeyBnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzIH0gZnJvbSAnLi4vdXRpbHMvU2NyaXB0dXJlU2V0dGluZ3MnXG5cbi8qKlxuICogaG9vayB0byBnZXQgYSBzY3JpcHR1cmUgcmVzb3VyY2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBib29rSWRcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY3JpcHR1cmVTZXR0aW5ncyAtIGluZm8gYWJvdXQgdGhlIHNjcmlwdHVyZSBiZWluZyByZWZlcmVuY2VkXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhcHRlclxuICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3VGVzdGFtZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gb3JpZ2luYWxSZXBvVXJsIC0gb3B0aW9uYWwgcGF0aCB0byByZXBvIGZvciBvcmlnaW5hbCBsYW5ndWFnZVxuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRMYW5ndWFnZUlkIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBsYW5ndWFnZSBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50T3duZXIgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIG93bmVyIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICogQHBhcmFtIHtvYmplY3R9IGh0dHBDb25maWcgLSBvcHRpb25hbCBjb25maWcgc2V0dGluZ3MgZm9yIGZldGNoZXMgKHRpbWVvdXQsIGNhY2hlLCBldGMuKVxuICogQHBhcmFtIHtzdHJpbmd9IGFwcFJlZiAtIGFwcCBkZWZhdWx0LCBwb2ludHMgdG8gc3BlY2lmaWMgcmVmIHRoYXQgY291bGQgYmUgYSBicmFuY2ggb3IgdGFnXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHdob2xlQm9vayAtIGlmIHRydWUgdGhlbiBmZXRjaCB0aGUgZW50aXJlIGJvb2tcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNjcmlwdHVyZVJlc291cmNlcyh7XG4gIGJvb2tJZCxcbiAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gIGNoYXB0ZXIsXG4gIHZlcnNlLFxuICBpc05ld1Rlc3RhbWVudCxcbiAgb3JpZ2luYWxSZXBvVXJsLFxuICBjdXJyZW50TGFuZ3VhZ2VJZCA9IG51bGwsXG4gIGN1cnJlbnRPd25lciA9IG51bGwsXG4gIGh0dHBDb25maWcgPSB7fSxcbiAgYXBwUmVmID0gJ21hc3RlcicsXG4gIHdob2xlQm9vayA9IGZhbHNlLFxufSkge1xuICBpZiAoYXBwUmVmICE9PSBzY3JpcHR1cmVTZXR0aW5ncy5yZWYpIHtcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyA9IHsgLi4uc2NyaXB0dXJlU2V0dGluZ3MsIHJlZjogYXBwUmVmIH1cbiAgfVxuXG4gIGNvbnN0IHNjcmlwdHVyZVNldHRpbmdzXyA9IGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MoYm9va0lkLCBzY3JpcHR1cmVTZXR0aW5ncywgaXNOZXdUZXN0YW1lbnQsXG4gICAgb3JpZ2luYWxSZXBvVXJsLCBjdXJyZW50TGFuZ3VhZ2VJZCwgY3VycmVudE93bmVyKSAvLyBjb252ZXJ0IGFueSBkZWZhdWx0IHNldHRpbmdzIHN0cmluZ3NcblxuICBjb25zdCBzY3JpcHR1cmVDb25maWdfID0ge1xuICAgIHJlZmVyZW5jZToge1xuICAgICAgcHJvamVjdElkOiBib29rSWQsXG4gICAgICBjaGFwdGVyOiBjaGFwdGVyLFxuICAgICAgdmVyc2U6IHZlcnNlLFxuICAgIH0sXG4gICAgcmVzb3VyY2U6IHtcbiAgICAgIGxhbmd1YWdlSWQ6IHNjcmlwdHVyZVNldHRpbmdzXy5sYW5ndWFnZUlkLFxuICAgICAgcHJvamVjdElkOiBzY3JpcHR1cmVTZXR0aW5nc18ucmVzb3VyY2VJZCxcbiAgICAgIG93bmVyOiBzY3JpcHR1cmVTZXR0aW5nc18ub3duZXIsXG4gICAgICByZWY6IHNjcmlwdHVyZVNldHRpbmdzXy5yZWYgfHwgc2NyaXB0dXJlU2V0dGluZ3NfLmJyYW5jaCB8fCBhcHBSZWYsXG4gICAgfSxcbiAgICByZXNvdXJjZUxpbms6IHNjcmlwdHVyZVNldHRpbmdzXy5yZXNvdXJjZUxpbmssXG4gICAgY29uZmlnOiB7XG4gICAgICBzZXJ2ZXI6IHNjcmlwdHVyZVNldHRpbmdzXy5zZXJ2ZXIsXG4gICAgICAuLi5odHRwQ29uZmlnLFxuICAgIH0sXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyOiBzY3JpcHR1cmVTZXR0aW5nc18uZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIHdob2xlQm9vayxcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3Qgc2NyaXB0dXJlUmVzb3VyY2UgPSB1c2VTY3JpcHR1cmUoc2NyaXB0dXJlQ29uZmlnXylcbiAgLy8gcmVzdG9yZSBhbnkgZGVmYXVsdCBzZXR0aW5nc1xuICBzY3JpcHR1cmVSZXNvdXJjZS5yZXNvdXJjZUxpbmsgPSBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmtcblxuICBpZiAoIXNjcmlwdHVyZVJlc291cmNlWydyZXNvdXJjZSddKSB7IC8vIGtlZXAgcmVzb3VyY2UgaWYgbm90IHJldHVybmVkXG4gICAgc2NyaXB0dXJlUmVzb3VyY2VbJ3Jlc291cmNlJ10gPSBzY3JpcHR1cmVDb25maWdfLnJlc291cmNlXG4gIH1cblxuICByZXR1cm4gc2NyaXB0dXJlUmVzb3VyY2Vcbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlU2NyaXB0dXJlUmVzb3VyY2VzXG4iXX0=
|
|
@@ -114,7 +114,9 @@ export function useScriptureSettings(_ref) {
|
|
|
114
114
|
setUrlError = _ref.setUrlError,
|
|
115
115
|
httpConfig = _ref.httpConfig,
|
|
116
116
|
greekRepoUrl = _ref.greekRepoUrl,
|
|
117
|
-
hebrewRepoUrl = _ref.hebrewRepoUrl
|
|
117
|
+
hebrewRepoUrl = _ref.hebrewRepoUrl,
|
|
118
|
+
_ref$wholeBook = _ref.wholeBook,
|
|
119
|
+
wholeBook = _ref$wholeBook === void 0 ? false : _ref$wholeBook;
|
|
118
120
|
var isNewTestament = isNT(bookId);
|
|
119
121
|
var scriptureDefaultSettings = getScriptureObject({
|
|
120
122
|
title: title,
|
|
@@ -192,7 +194,8 @@ export function useScriptureSettings(_ref) {
|
|
|
192
194
|
currentLanguageId: languageId,
|
|
193
195
|
currentOwner: owner,
|
|
194
196
|
httpConfig: httpConfig,
|
|
195
|
-
appRef: appRef
|
|
197
|
+
appRef: appRef,
|
|
198
|
+
wholeBook: wholeBook
|
|
196
199
|
});
|
|
197
200
|
/**
|
|
198
201
|
* make sure that bookId or projectId are not embedded in link.
|
|
@@ -372,10 +375,12 @@ export function useScriptureSettings(_ref) {
|
|
|
372
375
|
};
|
|
373
376
|
|
|
374
377
|
return {
|
|
378
|
+
isNewTestament: isNewTestament,
|
|
375
379
|
scriptureConfig: scriptureConfig,
|
|
376
380
|
setScripture: setScripture,
|
|
377
|
-
scriptureVersionHist: scriptureVersionHist
|
|
381
|
+
scriptureVersionHist: scriptureVersionHist,
|
|
382
|
+
scriptureSettings: scriptureSettings
|
|
378
383
|
};
|
|
379
384
|
}
|
|
380
385
|
export default useScriptureSettings;
|
|
381
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmVTZXR0aW5ncy50c3giXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJjb3JlIiwiaXNFcXVhbCIsIktFWV9TQ1JJUFRVUkVfVkVSX0hJU1RPUlkiLCJTY3JpcHR1cmVWZXJzaW9uSGlzdG9yeSIsIklOVkFMSURfUkVQT19VUkxfRVJST1IiLCJJTlZBTElEX1VSTCIsIk1BTklGRVNUX0lOVkFMSURfU0hPUlRfRVJST1IiLCJOVF9PUklHX0xBTkdfQklCTEUiLCJOVF9PUklHX0xBTkciLCJPUklHSU5BTF9TT1VSQ0UiLCJPVF9PUklHX0xBTkdfQklCTEUiLCJPVF9PUklHX0xBTkciLCJSRVBPX05PVF9GT1VORF9FUlJPUiIsIlJFUE9fTk9UX1NDUklQVFVSRV9FUlJPUiIsInNldExvY2FsU3RvcmFnZVZhbHVlIiwicGFyc2VSZXNvdXJjZU1hbmlmZXN0IiwidmFsaWRhdGVEY3NVcmwiLCJnZXRSZXNvdXJjZUxpbmsiLCJnZXRTY3JpcHR1cmVPYmplY3QiLCJnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzIiwidXNlU2NyaXB0dXJlUmVzb3VyY2VzIiwiS0VZX1NFVFRJTkdTX0JBU0UiLCJLRVlfVEFSR0VUX0JBU0UiLCJmaXhTY3JpcHR1cmVTZXR0aW5ncyIsInZlcnNpb25IaXN0Iiwic2NyaXB0dXJlU2V0dGluZ3MiLCJsYW5ndWFnZUlkIiwiY2FyZE51bSIsIm93bmVyIiwicmVzb3VyY2VJZCIsIm5ld1NjcmlwdHVyZVNldHRpbmdzIiwicmVzb3VyY2VMaW5rIiwiYWRkSXRlbVRvSGlzdG9yeSIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJtb2RpZmllZCIsImkiLCJsZW5ndGgiLCJpdGVtIiwiaiIsIm1hdGNoX2l0ZW0iLCJtYXRjaF9yZXNvdXJjZUlkIiwicmVmIiwic2VydmVyIiwic3BsaWNlIiwic2F2ZUhpc3RvcnkiLCJpc1NjcmlwdHVyZVJlc291cmNlIiwic3ViamVjdCIsIkJpYmxlUmVzb3VyY2VzIiwiaXNTY3JpcHR1cmUiLCJpbmNsdWRlcyIsInVzZVNjcmlwdHVyZVNldHRpbmdzIiwiaXNOVCIsInRpdGxlIiwiY2hhcHRlciIsInZlcnNlIiwiYm9va0lkIiwiYXBwUmVmIiwidXNlVXNlckxvY2FsU3RvcmFnZSIsImRpc2FibGVXb3JkUG9wb3ZlciIsIm9yaWdpbmFsTGFuZ3VhZ2VPd25lciIsInNldFVybEVycm9yIiwiaHR0cENvbmZpZyIsImdyZWVrUmVwb1VybCIsImhlYnJld1JlcG9VcmwiLCJpc05ld1Rlc3RhbWVudCIsInNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncyIsInZlcnNpb25IaXN0b3J5Iiwic2F2ZVZlcnNpb25IaXN0IiwicmVmcmVzaFZlcnNpb25IaXN0Iiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJzZXRTY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRUYXJnZXQiLCJ0YXJnZXQiLCJzZXRUYXJnZXQiLCJjbGVhblVwIiwic2V0Q2xlYW5VcCIsIm9sZERlZmF1bHRTZXR0aW5ncyIsInJlbW92ZUl0ZW0iLCJvcmlnaW5hbFJlcG9VcmwiLCJzY3JpcHR1cmVDb25maWciLCJjdXJyZW50TGFuZ3VhZ2VJZCIsImN1cnJlbnRPd25lciIsImNsZWFuUmVzb3VyY2VMaW5rIiwicmVzb3VyY2VMaW5rXyIsInJlc291cmNlTGlua3MiLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsInNldFNjcmlwdHVyZSIsInZhbGlkYXRpb25DQiIsInVybCIsIm5ld1VybCIsInBhcnRzIiwiaG9zdG5hbWUiLCJVUkwiLCJjb25zb2xlIiwibG9nIiwicmVtb3ZlVXJsIiwic2VydmVyXyIsInBvcnQiLCJ1cmxfIiwicmVzb3VyY2VGcm9tUmVzb3VyY2VMaW5rIiwicmVmZXJlbmNlIiwicHJvamVjdElkIiwiY29uZmlnIiwiY2FjaGUiLCJtYXhBZ2UiLCJ0aGVuIiwicmVzb3VyY2UiLCJlcnJvciIsIm5ld1NjcmlwdHVyZSIsInZlcnNpb24iLCJ3YXJuIiwidXNlcm5hbWUiLCJ2YWxpZFVybCIsInZhbGlkUmVwb1BhdGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLFNBQVNBLFNBQVQsRUFBb0JDLFFBQXBCLFFBQW9DLE9BQXBDO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQix5QkFBckI7QUFDQSxPQUFPLEtBQUtDLE9BQVosTUFBeUIsWUFBekI7QUFDQSxTQUFTQyx5QkFBVCxFQUFvQ0MsdUJBQXBDLFFBQW1FLGtDQUFuRTtBQUNBLFNBQ0VDLHNCQURGLEVBRUVDLFdBRkYsRUFHRUMsNEJBSEYsRUFJRUMsa0JBSkYsRUFLRUMsWUFMRixFQU1FQyxlQU5GLEVBT0VDLGtCQVBGLEVBUUVDLFlBUkYsRUFTRUMsb0JBVEYsRUFVRUMsd0JBVkYsRUFXRUMsb0JBWEYsRUFZRUMscUJBWkYsRUFhRUMsY0FiRixRQWNPLElBZFA7QUFlQSxTQUNFQyxlQURGLEVBRUVDLGtCQUZGLEVBR0VDLDRCQUhGLFFBSU8sNEJBSlA7QUFLQSxPQUFPQyxxQkFBUCxNQUFrQyx5QkFBbEM7QUFFQSxJQUFNQyxpQkFBaUIsR0FBRyxzQkFBMUI7QUFDQSxJQUFNQyxlQUFlLEdBQUcsc0JBQXhCOztBQUVBLFNBQVNDLG9CQUFULENBQThCQyxXQUE5QixFQUEyQ0MsaUJBQTNDLEVBQThEQyxVQUE5RCxFQUEwRUMsT0FBMUUsRUFBbUZDLEtBQW5GLEVBQTBGO0FBQ3hGO0FBQ0EsTUFBS0gsaUJBQWlCLENBQUNJLFVBQWxCLEtBQWlDdEIsa0JBQWxDLElBQTBEa0IsaUJBQWlCLENBQUNJLFVBQWxCLEtBQWlDbkIsa0JBQS9GLEVBQW9IO0FBQ2xILFFBQUtlLGlCQUFpQixDQUFDQyxVQUFsQixLQUFpQ2xCLFlBQWxDLElBQW9EaUIsaUJBQWlCLENBQUNDLFVBQWxCLEtBQWlDZixZQUF6RixFQUF3RztBQUFFO0FBQ3hHLFVBQU1tQixvQkFBb0IscUJBQVFMLGlCQUFSLENBQTFCOztBQUNBSyxNQUFBQSxvQkFBb0IsQ0FBQ0osVUFBckIsR0FBa0NBLFVBQWxDO0FBQ0FJLE1BQUFBLG9CQUFvQixDQUFDRCxVQUFyQixHQUFrQ3BCLGVBQWxDO0FBQ0FxQixNQUFBQSxvQkFBb0IsQ0FBQ0YsS0FBckIsR0FBNkJBLEtBQTdCO0FBQ0FFLE1BQUFBLG9CQUFvQixDQUFDQyxZQUFyQixHQUFvQ2QsZUFBZSxDQUFDYSxvQkFBRCxDQUFuRDtBQUNBaEIsTUFBQUEsb0JBQW9CLENBQUNPLGlCQUFpQixHQUFHTSxPQUFyQixFQUE4Qkcsb0JBQTlCLENBQXBCO0FBQ0FOLE1BQUFBLFdBQVcsQ0FBQ1EsZ0JBQVosQ0FBNkJGLG9CQUE3QjtBQUNEO0FBQ0YsR0FadUYsQ0FjeEY7OztBQUNBLE1BQUlHLE9BQU8sR0FBR1QsV0FBVyxDQUFDVSxTQUFaLE1BQTJCLEVBQXpDO0FBQ0EsTUFBSUMsUUFBUSxHQUFHLEtBQWY7O0FBRUEsT0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHSCxPQUFPLENBQUNJLE1BQTVCLEVBQW9DRCxDQUFDLEVBQXJDLEVBQXlDO0FBQUU7QUFDekMsUUFBTUUsSUFBSSxHQUFHTCxPQUFPLENBQUNHLENBQUQsQ0FBcEI7QUFDQSxRQUFNUCxVQUFVLEdBQUdTLElBQUksQ0FBQ1QsVUFBeEI7O0FBRUEsUUFBS0EsVUFBVSxLQUFLdEIsa0JBQWhCLElBQXdDc0IsVUFBVSxLQUFLbkIsa0JBQXZELElBQStFbUIsVUFBVSxLQUFLcEIsZUFBbEcsRUFBb0g7QUFDbEgsV0FBTSxJQUFJOEIsQ0FBQyxHQUFHSCxDQUFDLEdBQUcsQ0FBbEIsRUFBcUJHLENBQUMsR0FBR04sT0FBTyxDQUFDSSxNQUFqQyxFQUF5Q0UsQ0FBQyxFQUExQyxFQUE4QztBQUFFO0FBQzlDLFlBQU1DLFVBQVUsR0FBR1AsT0FBTyxDQUFDTSxDQUFELENBQTFCO0FBQ0EsWUFBTUUsZ0JBQWdCLEdBQUdELFVBQVUsQ0FBQ1gsVUFBcEM7O0FBRUEsWUFBS1ksZ0JBQWdCLEtBQUtaLFVBQTFCLEVBQXVDO0FBQ3JDLGNBQUtTLElBQUksQ0FBQ1YsS0FBTCxLQUFlWSxVQUFVLENBQUNaLEtBQTNCLElBQ0RVLElBQUksQ0FBQ0ksR0FBTCxLQUFhRixVQUFVLENBQUNFLEdBRHZCLElBRURKLElBQUksQ0FBQ0ssTUFBTCxLQUFnQkgsVUFBVSxDQUFDRyxNQUYxQixJQUdETCxJQUFJLENBQUNULFVBQUwsS0FBb0JXLFVBQVUsQ0FBQ1gsVUFIbEMsRUFHK0M7QUFDN0NJLFlBQUFBLE9BQU8sQ0FBQ1csTUFBUixDQUFlTCxDQUFmLEVBQWtCLENBQWxCLEVBRDZDLENBQ3hCOztBQUNyQkosWUFBQUEsUUFBUSxHQUFHLElBQVg7QUFDQUksWUFBQUEsQ0FBQyxHQUg0QyxDQUd6QztBQUNMO0FBQ0Y7QUFDRjtBQUNGO0FBQ0Y7O0FBRUQsTUFBSUosUUFBSixFQUFjO0FBQ1pYLElBQUFBLFdBQVcsQ0FBQ3FCLFdBQVosQ0FBd0JaLE9BQXhCO0FBQ0Q7QUFDRjs7QUFFRCxTQUFTYSxtQkFBVCxDQUE2QkMsT0FBN0IsRUFBc0M7QUFDcEMsTUFBTUMsY0FBYyxHQUFHLENBQUUsT0FBRixFQUFXLGVBQVgsRUFBNEIscUJBQTVCLEVBQW1ELHNCQUFuRCxDQUF2QjtBQUNBLE1BQU1DLFdBQVcsR0FBR0QsY0FBYyxDQUFDRSxRQUFmLENBQXdCSCxPQUF4QixDQUFwQjtBQUNBLFNBQU9FLFdBQVA7QUFDRDs7QUFFRCxPQUFPLFNBQVNFLG9CQUFULE9Bb0JKO0FBQUEsTUFuQkRDLElBbUJDLFFBbkJEQSxJQW1CQztBQUFBLE1BbEJEQyxLQWtCQyxRQWxCREEsS0FrQkM7QUFBQSxNQWpCRDFCLE9BaUJDLFFBakJEQSxPQWlCQztBQUFBLE1BaEJEMkIsT0FnQkMsUUFoQkRBLE9BZ0JDO0FBQUEsTUFmREMsS0FlQyxRQWZEQSxLQWVDO0FBQUEsTUFkREMsTUFjQyxRQWREQSxNQWNDO0FBQUEsTUFiRDVCLEtBYUMsUUFiREEsS0FhQztBQUFBLE1BWkRlLE1BWUMsUUFaREEsTUFZQztBQUFBLE1BWERjLE1BV0MsUUFYREEsTUFXQztBQUFBLE1BVkQvQixVQVVDLFFBVkRBLFVBVUM7QUFBQSxNQVRERyxVQVNDLFFBVERBLFVBU0M7QUFBQSxNQVJERSxZQVFDLFFBUkRBLFlBUUM7QUFBQSxNQVBEMkIsbUJBT0MsUUFQREEsbUJBT0M7QUFBQSxNQU5EQyxrQkFNQyxRQU5EQSxrQkFNQztBQUFBLE1BTERDLHFCQUtDLFFBTERBLHFCQUtDO0FBQUEsTUFKREMsV0FJQyxRQUpEQSxXQUlDO0FBQUEsTUFIREMsVUFHQyxRQUhEQSxVQUdDO0FBQUEsTUFGREMsWUFFQyxRQUZEQSxZQUVDO0FBQUEsTUFEREMsYUFDQyxRQUREQSxhQUNDO0FBQ0QsTUFBTUMsY0FBYyxHQUFHYixJQUFJLENBQUNJLE1BQUQsQ0FBM0I7QUFDQSxNQUFNVSx3QkFBd0IsR0FBR2hELGtCQUFrQixDQUFDO0FBQ2xEbUMsSUFBQUEsS0FBSyxFQUFMQSxLQURrRDtBQUVsRFYsSUFBQUEsTUFBTSxFQUFOQSxNQUZrRDtBQUdsRGYsSUFBQUEsS0FBSyxFQUFMQSxLQUhrRDtBQUlsRGMsSUFBQUEsR0FBRyxFQUFFZSxNQUo2QztBQUtsRC9CLElBQUFBLFVBQVUsRUFBVkEsVUFMa0Q7QUFNbERHLElBQUFBLFVBQVUsRUFBVkEsVUFOa0Q7QUFPbERFLElBQUFBLFlBQVksRUFBWkEsWUFQa0Q7QUFRbEQ0QixJQUFBQSxrQkFBa0IsRUFBbEJBLGtCQVJrRDtBQVNsREMsSUFBQUEscUJBQXFCLEVBQXJCQTtBQVRrRCxHQUFELENBQW5EOztBQUZDLDZCQWE2REYsbUJBQW1CLENBQUN4RCx5QkFBRCxFQUE0QixFQUE1QixDQWJoRjtBQUFBO0FBQUEsTUFhTWlFLGNBYk47QUFBQSxNQWFzQkMsZUFidEI7QUFBQSxNQWF1Q0Msa0JBYnZDOztBQWNELE1BQU1DLG9CQUFvQixHQUFHLElBQUluRSx1QkFBSixDQUE0QmdFLGNBQTVCLEVBQTRDQyxlQUE1QyxFQUE2REMsa0JBQTdELENBQTdCOztBQWRDLDhCQWdCK0NYLG1CQUFtQixDQUFDckMsaUJBQWlCLEdBQUdNLE9BQXJCLEVBQThCdUMsd0JBQTlCLENBaEJsRTtBQUFBO0FBQUEsTUFnQkl6QyxpQkFoQko7QUFBQSxNQWdCdUI4QyxvQkFoQnZCOztBQWlCRCxNQUFNQyxhQUFhLEdBQUc7QUFDcEI3QixJQUFBQSxNQUFNLEVBQU5BLE1BRG9CO0FBRXBCZixJQUFBQSxLQUFLLEVBQUxBLEtBRm9CO0FBR3BCRixJQUFBQSxVQUFVLEVBQVZBO0FBSG9CLEdBQXRCOztBQWpCQyw4QkFzQjJCZ0MsbUJBQW1CLENBQUNwQyxlQUFlLEdBQUdLLE9BQW5CLEVBQTRCNkMsYUFBNUIsQ0F0QjlDO0FBQUE7QUFBQSxNQXNCTUMsTUF0Qk47QUFBQSxNQXNCY0MsU0F0QmQ7O0FBQUEsa0JBdUI2QjNFLFFBQVEsQ0FBQyxJQUFELENBdkJyQztBQUFBO0FBQUEsTUF1Qk00RSxPQXZCTjtBQUFBLE1BdUJlQyxVQXZCZjs7QUF5QkQ5RSxFQUFBQSxTQUFTLENBQUMsWUFBTTtBQUNkLFFBQUk0QixVQUFVLElBQUlFLEtBQWxCLEVBQXlCO0FBQUU7QUFDekIsVUFBSStDLE9BQUosRUFBYTtBQUFFO0FBQ2JwRCxRQUFBQSxvQkFBb0IsQ0FBQytDLG9CQUFELEVBQXVCN0MsaUJBQXZCLEVBQTBDQyxVQUExQyxFQUFzREMsT0FBdEQsRUFBK0RDLEtBQS9ELENBQXBCO0FBQ0FnRCxRQUFBQSxVQUFVLENBQUMsS0FBRCxDQUFWO0FBQ0Q7O0FBRUQsVUFBSSxDQUFDM0UsT0FBTyxDQUFDdUUsYUFBRCxFQUFnQkMsTUFBaEIsQ0FBWixFQUFxQztBQUFFO0FBQ3JDLFlBQU1JLGtCQUFrQixtQ0FBUVgsd0JBQVIsR0FBcUNPLE1BQXJDLENBQXhCOztBQUNBSSxRQUFBQSxrQkFBa0IsQ0FBQzlDLFlBQW5CLEdBQWtDZCxlQUFlLENBQUM0RCxrQkFBRCxDQUFqRDtBQUNBUCxRQUFBQSxvQkFBb0IsQ0FBQ1EsVUFBckIsQ0FBZ0NELGtCQUFoQyxFQUhtQyxDQUdpQjs7QUFDcER0RCxRQUFBQSxvQkFBb0IsQ0FBQytDLG9CQUFELEVBQXVCN0MsaUJBQXZCLEVBQTBDQyxVQUExQyxFQUFzREMsT0FBdEQsRUFBK0RDLEtBQS9ELENBQXBCO0FBRUEyQyxRQUFBQSxvQkFBb0IsQ0FBQ0wsd0JBQUQsQ0FBcEI7QUFDQVEsUUFBQUEsU0FBUyxDQUFDRixhQUFELENBQVQ7QUFDRCxPQVJELE1BUU87QUFDTEYsUUFBQUEsb0JBQW9CLENBQUN0QyxnQkFBckIsQ0FBc0NQLGlCQUF0QyxFQURLLENBQ29EO0FBQzFEO0FBQ0Y7QUFDRixHQW5CUSxFQW1CTixDQUFDQyxVQUFELEVBQWFFLEtBQWIsRUFBb0IrQyxPQUFwQixDQW5CTSxDQUFUO0FBcUJBLE1BQU1JLGVBQWUsR0FBR2QsY0FBYyxHQUFHRixZQUFILEdBQWtCQyxhQUF4RDtBQUNBLE1BQU1nQixlQUFlLEdBQUc1RCxxQkFBcUIsQ0FBQztBQUM1Q29DLElBQUFBLE1BQU0sRUFBTkEsTUFENEM7QUFFNUMvQixJQUFBQSxpQkFBaUIsRUFBakJBLGlCQUY0QztBQUc1QzZCLElBQUFBLE9BQU8sRUFBUEEsT0FINEM7QUFJNUNDLElBQUFBLEtBQUssRUFBTEEsS0FKNEM7QUFLNUNVLElBQUFBLGNBQWMsRUFBZEEsY0FMNEM7QUFNNUNjLElBQUFBLGVBQWUsRUFBZkEsZUFONEM7QUFPNUNFLElBQUFBLGlCQUFpQixFQUFFdkQsVUFQeUI7QUFRNUN3RCxJQUFBQSxZQUFZLEVBQUV0RCxLQVI4QjtBQVM1Q2tDLElBQUFBLFVBQVUsRUFBVkEsVUFUNEM7QUFVNUNMLElBQUFBLE1BQU0sRUFBTkE7QUFWNEMsR0FBRCxDQUE3QztBQWFBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNFLFdBQVMwQixpQkFBVCxDQUEyQnBELFlBQTNCLEVBQXlDO0FBQUE7O0FBQ3ZDLFFBQUlxRCxhQUFhLEdBQUdyRCxZQUFwQjtBQUNBLFFBQU1zRCxhQUFhLHFCQUFHRCxhQUFILG1EQUFHLGVBQWVFLEtBQWYsQ0FBcUIsR0FBckIsQ0FBdEI7O0FBRUEsUUFBSSxDQUFBRCxhQUFhLFNBQWIsSUFBQUEsYUFBYSxXQUFiLFlBQUFBLGFBQWEsQ0FBRWhELE1BQWYsSUFBd0IsQ0FBNUIsRUFBK0I7QUFBRTtBQUMvQitDLE1BQUFBLGFBQWEsR0FBR0MsYUFBSCxhQUFHQSxhQUFILHVCQUFHQSxhQUFhLENBQUVFLEtBQWYsQ0FBcUIsQ0FBckIsRUFBd0IsQ0FBeEIsRUFBMkJDLElBQTNCLENBQWdDLEdBQWhDLENBQWhCO0FBQ0Q7O0FBQ0QsV0FBT0osYUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0UsTUFBTUssWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQ25ELElBQUQsRUFBK0I7QUFBQSxRQUF4Qm9ELFlBQXdCLHVFQUFULElBQVM7QUFDbEQsUUFBSUMsR0FBSjtBQUNBLFFBQUlDLE1BQU0sR0FBR3RELElBQUgsYUFBR0EsSUFBSCx1QkFBR0EsSUFBSSxDQUFFcUQsR0FBbkI7O0FBRUEsUUFBSUMsTUFBSixFQUFZO0FBQUE7O0FBQ1YvQixNQUFBQSxXQUFXLENBQUMsSUFBRCxDQUFYLENBRFUsQ0FDUTtBQUVsQjtBQUNBOztBQUNBLHFCQUFJK0IsTUFBSixvQ0FBSSxRQUFRMUMsUUFBUixDQUFpQixNQUFqQixDQUFKLEVBQThCO0FBQUE7O0FBQzVCLFlBQU0yQyxLQUFLLGVBQUdELE1BQUgsNkNBQUcsU0FBUU4sS0FBUixDQUFjLEdBQWQsQ0FBZDs7QUFENEIsNkJBRVBPLEtBQUssQ0FBQyxDQUFELENBQUwsQ0FBU1AsS0FBVCxDQUFlLEdBQWYsQ0FGTztBQUFBO0FBQUEsWUFFbkJRLFFBRm1COztBQUc1QkYsUUFBQUEsTUFBTSxxQkFBY0UsUUFBZCxjQUEwQkQsS0FBSyxDQUFDTixLQUFOLENBQVksQ0FBWixFQUFlQyxJQUFmLENBQW9CLEdBQXBCLENBQTFCLENBQU47QUFDRDs7QUFFRCxVQUFJO0FBQ0ZHLFFBQUFBLEdBQUcsR0FBRyxJQUFJSSxHQUFKLENBQVFILE1BQVIsQ0FBTjtBQUNELE9BRkQsQ0FFRSxnQkFBTTtBQUNOSSxRQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxhQUFaLEVBQTJCM0QsSUFBSSxDQUFDcUQsR0FBaEM7QUFDQXJCLFFBQUFBLG9CQUFvQixDQUFDNEIsU0FBckIsQ0FBK0I1RCxJQUFJLENBQUNxRCxHQUFwQztBQUNBOUIsUUFBQUEsV0FBVyxDQUFDeEQsV0FBRCxDQUFYO0FBQ0FxRixRQUFBQSxZQUFZLElBQUlBLFlBQVksQ0FBQyxLQUFELENBQTVCO0FBQ0E7QUFDRDtBQUNGOztBQUVELFFBQUlDLEdBQUosRUFBUztBQUNQOUIsTUFBQUEsV0FBVyxDQUFDLElBQUQsQ0FBWCxDQURPLENBQ1c7O0FBQ2xCLFVBQUlzQyxPQUFKO0FBQ0EsVUFBSUwsU0FBUSxHQUFHSCxHQUFHLENBQUNHLFFBQW5COztBQUVBLFVBQUlBLFNBQUosRUFBYztBQUNaLFlBQUlBLFNBQVEsaUJBQVosRUFBK0I7QUFDN0I7QUFDQUEsVUFBQUEsU0FBUSxHQUFHLFNBQVNBLFNBQXBCLENBRjZCLENBRUE7QUFDOUI7O0FBRUQsWUFBSUgsR0FBRyxDQUFDUyxJQUFSLEVBQWM7QUFDWk4sVUFBQUEsU0FBUSxJQUFJLE1BQU1ILEdBQUcsQ0FBQ1MsSUFBdEI7QUFDRDs7QUFDREQsUUFBQUEsT0FBTyxHQUFHLGFBQWFMLFNBQXZCO0FBQ0Q7O0FBRUQsVUFBSU8sSUFBSSxHQUFHVCxNQUFYOztBQUVBLFVBQUksQ0FBQ0QsR0FBTCxFQUFVO0FBQUU7QUFDVmxFLFFBQUFBLGlCQUFpQixHQUFHTiw0QkFBNEIsQ0FBQ1UsVUFBRCxFQUFhMkIsTUFBYixFQUFxQlMsY0FBckIsRUFBcUNjLGVBQXJDLENBQWhELENBRFEsQ0FDOEY7O0FBQ3RHc0IsUUFBQUEsSUFBSSxHQUFHNUUsaUJBQWlCLENBQUNNLFlBQXpCO0FBQ0QsT0F0Qk0sQ0F3QlA7OztBQUNBL0IsTUFBQUEsSUFBSSxDQUFDc0csd0JBQUwsQ0FBOEI7QUFDNUJ2RSxRQUFBQSxZQUFZLEVBQUVzRSxJQURjO0FBRTVCRSxRQUFBQSxTQUFTLEVBQUU7QUFDVEMsVUFBQUEsU0FBUyxFQUFFaEQsTUFERjtBQUVURixVQUFBQSxPQUFPLEVBQUVBLE9BRkE7QUFHVEMsVUFBQUEsS0FBSyxFQUFFQTtBQUhFLFNBRmlCO0FBTzVCa0QsUUFBQUEsTUFBTSxFQUFFO0FBQ045RCxVQUFBQSxNQUFNLEVBQUV3RCxPQURGO0FBRU5PLFVBQUFBLEtBQUssRUFBRTtBQUFFQyxZQUFBQSxNQUFNLEVBQUUsSUFBSSxFQUFKLEdBQVMsRUFBVCxHQUFjO0FBQXhCLFdBRkQsQ0FFaUM7O0FBRmpDO0FBUG9CLE9BQTlCLEVBV0dDLElBWEgsQ0FXUSxVQUFBQyxRQUFRLEVBQUk7QUFDbEIsWUFBSUMsS0FBSyxHQUFHbEcsb0JBQVo7QUFDQSxZQUFJbUcsWUFBWSxHQUFHLElBQW5COztBQUVBLFlBQUlGLFFBQUosRUFBYztBQUNaO0FBRFksc0NBTVI5RixxQkFBcUIsQ0FBQzhGLFFBQUQsQ0FOYjtBQUFBLGNBR1Z4RCxNQUhVLHlCQUdWQSxLQUhVO0FBQUEsY0FJVjJELE9BSlUseUJBSVZBLE9BSlU7QUFBQSxjQUtWakUsT0FMVSx5QkFLVkEsT0FMVTs7QUFPWixjQUFNRSxXQUFXLEdBQUdILG1CQUFtQixDQUFDQyxPQUFELENBQXZDOztBQUVBLGNBQUksQ0FBQ0UsV0FBTCxFQUFrQjtBQUNoQitDLFlBQUFBLE9BQU8sQ0FBQ2lCLElBQVIsZ0ZBQXFGWixJQUFyRjtBQUNBUyxZQUFBQSxLQUFLLEdBQUdqRyx3QkFBUjtBQUNELFdBSEQsTUFHTyxJQUFJd0MsTUFBSyxJQUFJMkQsT0FBYixFQUFzQjtBQUMzQjtBQUNBRCxZQUFBQSxZQUFZLEdBQUc3RixrQkFBa0IsQ0FBQztBQUNoQ21DLGNBQUFBLEtBQUssRUFBTEEsTUFEZ0M7QUFFaENWLGNBQUFBLE1BQU0sRUFBRXdELE9BRndCO0FBR2hDdkUsY0FBQUEsS0FBSyxFQUFFaUYsUUFBUSxDQUFDSyxRQUhnQjtBQUloQ3hFLGNBQUFBLEdBQUcsRUFBRW1FLFFBQVEsQ0FBQ25FLEdBQVQsSUFBZ0IsUUFKVztBQUtoQ2hCLGNBQUFBLFVBQVUsRUFBRW1GLFFBQVEsQ0FBQ25GLFVBTFc7QUFNaENHLGNBQUFBLFVBQVUsRUFBRWdGLFFBQVEsQ0FBQ2hGLFVBTlc7QUFPaENFLGNBQUFBLFlBQVksRUFBRW9ELGlCQUFpQixDQUFDMEIsUUFBRCxhQUFDQSxRQUFELHVCQUFDQSxRQUFRLENBQUU5RSxZQUFYLENBUEM7QUFRaEM0QixjQUFBQSxrQkFBa0IsRUFBbEJBLGtCQVJnQztBQVNoQ0MsY0FBQUEscUJBQXFCLEVBQXJCQTtBQVRnQyxhQUFELENBQWpDO0FBV0FtRCxZQUFBQSxZQUFZLENBQUMsV0FBRCxDQUFaLEdBQTRCLElBQTVCO0FBQ0F6QyxZQUFBQSxvQkFBb0IsQ0FBQ3RDLGdCQUFyQixDQUFzQytFLFlBQXRDLEVBZDJCLENBY3lCOztBQUNwRHhDLFlBQUFBLG9CQUFvQixDQUFDd0MsWUFBRCxDQUFwQjtBQUNBRCxZQUFBQSxLQUFLLEdBQUcsSUFBUixDQWhCMkIsQ0FnQmQ7QUFDZCxXQWpCTSxNQWlCQTtBQUNMZCxZQUFBQSxPQUFPLENBQUNjLEtBQVIsQ0FBYyx3QkFBZCxFQUF3Q3hFLElBQUksQ0FBQ3FELEdBQTdDO0FBQ0FtQixZQUFBQSxLQUFLLEdBQUd4Ryw0QkFBUjtBQUNEO0FBQ0YsU0FqQ0QsTUFpQ087QUFDTDBGLFVBQUFBLE9BQU8sQ0FBQ2MsS0FBUixDQUFjLFdBQWQsRUFBMkJ4RSxJQUFJLENBQUNxRCxHQUFoQztBQUNEOztBQUNEckIsUUFBQUEsb0JBQW9CLENBQUM0QixTQUFyQixDQUErQjVELElBQUksQ0FBQ3FELEdBQXBDOztBQUVBLFlBQUltQixLQUFLLEtBQUtsRyxvQkFBZCxFQUFvQztBQUFFO0FBQUYsZ0NBQ0VJLGNBQWMsQ0FBQ3NCLElBQUksQ0FBQ3FELEdBQU4sQ0FEaEI7QUFBQSxjQUMxQndCLFFBRDBCLG1CQUMxQkEsUUFEMEI7QUFBQSxjQUNoQkMsYUFEZ0IsbUJBQ2hCQSxhQURnQjs7QUFHbEMsY0FBSSxDQUFDRCxRQUFMLEVBQWU7QUFDYkwsWUFBQUEsS0FBSyxHQUFHekcsV0FBUjtBQUNELFdBRkQsTUFFTyxJQUFJK0csYUFBSixFQUFtQjtBQUN4Qk4sWUFBQUEsS0FBSyxHQUFHbEcsb0JBQVI7QUFDRCxXQUZNLE1BRUE7QUFDTGtHLFlBQUFBLEtBQUssR0FBRzFHLHNCQUFSO0FBQ0Q7QUFDRjs7QUFDRHlELFFBQUFBLFdBQVcsQ0FBQ2lELEtBQUQsQ0FBWDtBQUNBcEIsUUFBQUEsWUFBWSxJQUFJQSxZQUFZLENBQUMsQ0FBQ29CLEtBQUYsRUFBU0MsWUFBVCxDQUE1QjtBQUNELE9BbEVEO0FBbUVELEtBNUZELE1BNEZPO0FBQUU7QUFDUGxELE1BQUFBLFdBQVcsQ0FBQyxJQUFELENBQVgsQ0FESyxDQUNhOztBQUNsQlUsTUFBQUEsb0JBQW9CLENBQUNqQyxJQUFELENBQXBCO0FBQ0FvRCxNQUFBQSxZQUFZLElBQUlBLFlBQVksQ0FBQyxJQUFELENBQTVCO0FBQ0Q7QUFDRixHQTNIRDs7QUE2SEEsU0FBTztBQUNMVixJQUFBQSxlQUFlLEVBQWZBLGVBREs7QUFFTFMsSUFBQUEsWUFBWSxFQUFaQSxZQUZLO0FBR0xuQixJQUFBQSxvQkFBb0IsRUFBcEJBO0FBSEssR0FBUDtBQUtEO0FBRUQsZUFBZW5CLG9CQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY29yZSB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0ICogYXMgaXNFcXVhbCBmcm9tICdkZWVwLWVxdWFsJ1xuaW1wb3J0IHsgS0VZX1NDUklQVFVSRV9WRVJfSElTVE9SWSwgU2NyaXB0dXJlVmVyc2lvbkhpc3RvcnkgfSBmcm9tICcuLi91dGlscy9TY3JpcHR1cmVWZXJzaW9uSGlzdG9yeSdcbmltcG9ydCB7XG4gIElOVkFMSURfUkVQT19VUkxfRVJST1IsXG4gIElOVkFMSURfVVJMLFxuICBNQU5JRkVTVF9JTlZBTElEX1NIT1JUX0VSUk9SLFxuICBOVF9PUklHX0xBTkdfQklCTEUsXG4gIE5UX09SSUdfTEFORyxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkdfQklCTEUsXG4gIE9UX09SSUdfTEFORyxcbiAgUkVQT19OT1RfRk9VTkRfRVJST1IsXG4gIFJFUE9fTk9UX1NDUklQVFVSRV9FUlJPUixcbiAgc2V0TG9jYWxTdG9yYWdlVmFsdWUsXG4gIHBhcnNlUmVzb3VyY2VNYW5pZmVzdCxcbiAgdmFsaWRhdGVEY3NVcmwsXG59IGZyb20gJy4uJ1xuaW1wb3J0IHtcbiAgZ2V0UmVzb3VyY2VMaW5rLFxuICBnZXRTY3JpcHR1cmVPYmplY3QsXG4gIGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MsXG59IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHVzZVNjcmlwdHVyZVJlc291cmNlcyBmcm9tICcuL3VzZVNjcmlwdHVyZVJlc291cmNlcydcblxuY29uc3QgS0VZX1NFVFRJTkdTX0JBU0UgPSAnc2NyaXB0dXJlUGFuZUNvbmZpZ18nXG5jb25zdCBLRVlfVEFSR0VUX0JBU0UgPSAnc2NyaXB0dXJlUGFuZVRhcmdldF8nXG5cbmZ1bmN0aW9uIGZpeFNjcmlwdHVyZVNldHRpbmdzKHZlcnNpb25IaXN0LCBzY3JpcHR1cmVTZXR0aW5ncywgbGFuZ3VhZ2VJZCwgY2FyZE51bSwgb3duZXIpIHtcbiAgLy8gY2xlYW4gdXAgaGFyZC1jb2RlZCBvcmlnaW5hbCBzb3VyY2VzXG4gIGlmICgoc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9PT0gTlRfT1JJR19MQU5HX0JJQkxFKSB8fCAoc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9PT0gT1RfT1JJR19MQU5HX0JJQkxFKSkge1xuICAgIGlmICgoc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCAhPT0gTlRfT1JJR19MQU5HKSAmJiAoc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCAhPT0gT1RfT1JJR19MQU5HKSkgeyAvLyBpZiB0aGlzIGlzIHRyYWNrIHdpdGggY3VycmVudCBzZWxlY3RlZCBsYW5ndWFnZSBhbmQgdGVzdGFtZW50IG9mIGJvb2tcbiAgICAgIGNvbnN0IG5ld1NjcmlwdHVyZVNldHRpbmdzID0geyAuLi5zY3JpcHR1cmVTZXR0aW5ncyB9XG4gICAgICBuZXdTY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gbGFuZ3VhZ2VJZFxuICAgICAgbmV3U2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IE9SSUdJTkFMX1NPVVJDRVxuICAgICAgbmV3U2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBvd25lclxuICAgICAgbmV3U2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKG5ld1NjcmlwdHVyZVNldHRpbmdzKVxuICAgICAgc2V0TG9jYWxTdG9yYWdlVmFsdWUoS0VZX1NFVFRJTkdTX0JBU0UgKyBjYXJkTnVtLCBuZXdTY3JpcHR1cmVTZXR0aW5ncylcbiAgICAgIHZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3RvcnkobmV3U2NyaXB0dXJlU2V0dGluZ3MpXG4gICAgfVxuICB9XG5cbiAgLy8gY2xlYW4gaGlzdG9yeSBvZiBvcmlnaW5hbCBzb3VyY2VzXG4gIGxldCBoaXN0b3J5ID0gdmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KCkgfHwgW11cbiAgbGV0IG1vZGlmaWVkID0gZmFsc2VcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGhpc3RvcnkubGVuZ3RoOyBpKyspIHsgLy8gc2VhcmNoIGZvciBvcmlnaW5hbCBzb3VyY2UgZHVwbGljYXRlcyBpbiBoaXN0b3J5XG4gICAgY29uc3QgaXRlbSA9IGhpc3RvcnlbaV1cbiAgICBjb25zdCByZXNvdXJjZUlkID0gaXRlbS5yZXNvdXJjZUlkXG5cbiAgICBpZiAoKHJlc291cmNlSWQgPT09IE5UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9UX09SSUdfTEFOR19CSUJMRSkgfHwgKHJlc291cmNlSWQgPT09IE9SSUdJTkFMX1NPVVJDRSkpIHtcbiAgICAgIGZvciAoIGxldCBqID0gaSArIDE7IGogPCBoaXN0b3J5Lmxlbmd0aDsgaisrKSB7IC8vIHNlYXJjaCByZXN0IG9mIGxpc3QgZm9yIGR1cGxpY2F0ZXMgb2YgaXRlbSBhdCBpXG4gICAgICAgIGNvbnN0IG1hdGNoX2l0ZW0gPSBoaXN0b3J5W2pdXG4gICAgICAgIGNvbnN0IG1hdGNoX3Jlc291cmNlSWQgPSBtYXRjaF9pdGVtLnJlc291cmNlSWRcblxuICAgICAgICBpZiAoKG1hdGNoX3Jlc291cmNlSWQgPT09IHJlc291cmNlSWQpKSB7XG4gICAgICAgICAgaWYgKChpdGVtLm93bmVyID09PSBtYXRjaF9pdGVtLm93bmVyKSAmJlxuICAgICAgICAgICAgKGl0ZW0ucmVmID09PSBtYXRjaF9pdGVtLnJlZikgJiZcbiAgICAgICAgICAgIChpdGVtLnNlcnZlciA9PT0gbWF0Y2hfaXRlbS5zZXJ2ZXIpICYmXG4gICAgICAgICAgICAoaXRlbS5yZXNvdXJjZUlkID09PSBtYXRjaF9pdGVtLnJlc291cmNlSWQpKSB7XG4gICAgICAgICAgICBoaXN0b3J5LnNwbGljZShqLCAxKSAvLyByZW1vdmUgZHVwbGljYXRlIGl0ZW1cbiAgICAgICAgICAgIG1vZGlmaWVkID0gdHJ1ZVxuICAgICAgICAgICAgai0tIC8vIGJhY2sgdXAgaW5kZXggc2luY2UgY29udGVudHMgc2hpZnRlZFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChtb2RpZmllZCkge1xuICAgIHZlcnNpb25IaXN0LnNhdmVIaXN0b3J5KGhpc3RvcnkpXG4gIH1cbn1cblxuZnVuY3Rpb24gaXNTY3JpcHR1cmVSZXNvdXJjZShzdWJqZWN0KSB7XG4gIGNvbnN0IEJpYmxlUmVzb3VyY2VzID0gWyAnQmlibGUnLCAnQWxpZ25lZCBCaWJsZScsICdHcmVlayBOZXcgVGVzdGFtZW50JywgJ0hlYnJldyBPbGQgVGVzdGFtZW50JyBdXG4gIGNvbnN0IGlzU2NyaXB0dXJlID0gQmlibGVSZXNvdXJjZXMuaW5jbHVkZXMoc3ViamVjdClcbiAgcmV0dXJuIGlzU2NyaXB0dXJlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTY3JpcHR1cmVTZXR0aW5ncyh7XG4gIGlzTlQsXG4gIHRpdGxlLFxuICBjYXJkTnVtLFxuICBjaGFwdGVyLFxuICB2ZXJzZSxcbiAgYm9va0lkLFxuICBvd25lcixcbiAgc2VydmVyLFxuICBhcHBSZWYsXG4gIGxhbmd1YWdlSWQsXG4gIHJlc291cmNlSWQsXG4gIHJlc291cmNlTGluayxcbiAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gIHNldFVybEVycm9yLFxuICBodHRwQ29uZmlnLFxuICBncmVla1JlcG9VcmwsXG4gIGhlYnJld1JlcG9VcmwsXG59KSB7XG4gIGNvbnN0IGlzTmV3VGVzdGFtZW50ID0gaXNOVChib29rSWQpXG4gIGNvbnN0IHNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncyA9IGdldFNjcmlwdHVyZU9iamVjdCh7XG4gICAgdGl0bGUsXG4gICAgc2VydmVyLFxuICAgIG93bmVyLFxuICAgIHJlZjogYXBwUmVmLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICByZXNvdXJjZUxpbmssXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgfSlcbiAgY29uc3QgW3ZlcnNpb25IaXN0b3J5LCBzYXZlVmVyc2lvbkhpc3QsIHJlZnJlc2hWZXJzaW9uSGlzdF0gPSB1c2VVc2VyTG9jYWxTdG9yYWdlKEtFWV9TQ1JJUFRVUkVfVkVSX0hJU1RPUlksIFtdKVxuICBjb25zdCBzY3JpcHR1cmVWZXJzaW9uSGlzdCA9IG5ldyBTY3JpcHR1cmVWZXJzaW9uSGlzdG9yeSh2ZXJzaW9uSGlzdG9yeSwgc2F2ZVZlcnNpb25IaXN0LCByZWZyZXNoVmVyc2lvbkhpc3QpXG5cbiAgbGV0IFtzY3JpcHR1cmVTZXR0aW5ncywgc2V0U2NyaXB0dXJlU2V0dGluZ3NdID0gdXNlVXNlckxvY2FsU3RvcmFnZShLRVlfU0VUVElOR1NfQkFTRSArIGNhcmROdW0sIHNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncylcbiAgY29uc3QgY3VycmVudFRhcmdldCA9IHtcbiAgICBzZXJ2ZXIsXG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgfVxuICBjb25zdCBbdGFyZ2V0LCBzZXRUYXJnZXRdID0gdXNlVXNlckxvY2FsU3RvcmFnZShLRVlfVEFSR0VUX0JBU0UgKyBjYXJkTnVtLCBjdXJyZW50VGFyZ2V0KVxuICBjb25zdCBbY2xlYW5VcCwgc2V0Q2xlYW5VcF0gPSB1c2VTdGF0ZSh0cnVlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxhbmd1YWdlSWQgJiYgb3duZXIpIHsgLy8gbWFrZSBzdXJlIHdlIGhhdmUgbGFuZ3VhZ2VJZCBhbmQgb3duZXIgc2VsZWN0ZWQgZmlyc3RcbiAgICAgIGlmIChjbGVhblVwKSB7IC8vIGRvIGluaXRpYWwgY2xlYW51cFxuICAgICAgICBmaXhTY3JpcHR1cmVTZXR0aW5ncyhzY3JpcHR1cmVWZXJzaW9uSGlzdCwgc2NyaXB0dXJlU2V0dGluZ3MsIGxhbmd1YWdlSWQsIGNhcmROdW0sIG93bmVyKVxuICAgICAgICBzZXRDbGVhblVwKGZhbHNlKVxuICAgICAgfVxuXG4gICAgICBpZiAoIWlzRXF1YWwoY3VycmVudFRhcmdldCwgdGFyZ2V0KSkgeyAvLyB3aGVuIHRhcmdldCBjaGFuZ2VzLCBzd2l0Y2ggYmFjayB0byBkZWZhdWx0c1xuICAgICAgICBjb25zdCBvbGREZWZhdWx0U2V0dGluZ3MgPSB7IC4uLnNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncywgLi4udGFyZ2V0IH1cbiAgICAgICAgb2xkRGVmYXVsdFNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhvbGREZWZhdWx0U2V0dGluZ3MpXG4gICAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnJlbW92ZUl0ZW0ob2xkRGVmYXVsdFNldHRpbmdzKSAvLyByZW1vdmUgb2xkIGRlZmF1bHQgc2V0dGluZ3MgZnJvbSBoaXN0b3J5XG4gICAgICAgIGZpeFNjcmlwdHVyZVNldHRpbmdzKHNjcmlwdHVyZVZlcnNpb25IaXN0LCBzY3JpcHR1cmVTZXR0aW5ncywgbGFuZ3VhZ2VJZCwgY2FyZE51bSwgb3duZXIpXG5cbiAgICAgICAgc2V0U2NyaXB0dXJlU2V0dGluZ3Moc2NyaXB0dXJlRGVmYXVsdFNldHRpbmdzKVxuICAgICAgICBzZXRUYXJnZXQoY3VycmVudFRhcmdldClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3Rvcnkoc2NyaXB0dXJlU2V0dGluZ3MpIC8vIG1ha2Ugc3VyZSBjdXJyZW50IHNjcmlwdHVyZSB2ZXJzaW9uIHBlcnNpc3RlZCBpbiBoaXN0b3J5XG4gICAgICB9XG4gICAgfVxuICB9LCBbbGFuZ3VhZ2VJZCwgb3duZXIsIGNsZWFuVXBdKVxuXG4gIGNvbnN0IG9yaWdpbmFsUmVwb1VybCA9IGlzTmV3VGVzdGFtZW50ID8gZ3JlZWtSZXBvVXJsIDogaGVicmV3UmVwb1VybFxuICBjb25zdCBzY3JpcHR1cmVDb25maWcgPSB1c2VTY3JpcHR1cmVSZXNvdXJjZXMoe1xuICAgIGJvb2tJZCxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBjaGFwdGVyLFxuICAgIHZlcnNlLFxuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIG9yaWdpbmFsUmVwb1VybCxcbiAgICBjdXJyZW50TGFuZ3VhZ2VJZDogbGFuZ3VhZ2VJZCxcbiAgICBjdXJyZW50T3duZXI6IG93bmVyLFxuICAgIGh0dHBDb25maWcsXG4gICAgYXBwUmVmLFxuICB9KVxuXG4gIC8qKlxuICAgKiBtYWtlIHN1cmUgdGhhdCBib29rSWQgb3IgcHJvamVjdElkIGFyZSBub3QgZW1iZWRkZWQgaW4gbGluay5cbiAgICogICAgRm9yIGV4YW1wbGUgaW4gYHJ1X2dsL3J1L3Jzb2IvbWFzdGVyL2hlYmAgdGhlIHByb2plY3RJZCBoZWIgaXMgaW4gdGhlIGxpbmsgYW5kIHdpbGwgb3ZlcnJpZGUgdGhlXG4gICAqICAgIHByb2plY3RJZCBpbiB0aGUgcmVmZXJlbmNlIHdoZW4gd2UgdHJ5IHRvIGZldGNoIGxhdGVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZXNvdXJjZUxpbmtcbiAgICogQHJldHVybiB7c3RyaW5nfSAtIGNsZWFuZWQgdXAgcmVzb3VyY2UgbGlua1xuICAgKi9cbiAgZnVuY3Rpb24gY2xlYW5SZXNvdXJjZUxpbmsocmVzb3VyY2VMaW5rKSB7XG4gICAgbGV0IHJlc291cmNlTGlua18gPSByZXNvdXJjZUxpbmtcbiAgICBjb25zdCByZXNvdXJjZUxpbmtzID0gcmVzb3VyY2VMaW5rXz8uc3BsaXQoJy8nKVxuXG4gICAgaWYgKHJlc291cmNlTGlua3M/Lmxlbmd0aCA+IDQpIHsgLy8gaWYgdG9vIG1hbnkgZmllbGRzLCB0aGVuIHRyaW1cbiAgICAgIHJlc291cmNlTGlua18gPSByZXNvdXJjZUxpbmtzPy5zbGljZSgwLCA0KS5qb2luKCcvJylcbiAgICB9XG4gICAgcmV0dXJuIHJlc291cmNlTGlua19cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayB0byBlaXRoZXIgYWRkIG5ldyBzY3JpcHR1cmUgaXRlbSBvciBzZWxlY3QgZXhpc3RpbmcgaXRlbSBpbiBoaXN0b3J5XG4gICAqIEBwYXJhbSB7b2JqZWN0fSBpdGVtIC0gbmV3IGl0ZW0gdG8gYWRkIG9yIGV4aXN0aW5nIGl0ZW0gdG8gc2VsZWN0IGZyb20gaGlzdG9yeVxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSB2YWxpZGF0aW9uQ0IgLSBjYWxsYmFjayBmdW5jdGlvbiB0byBwYXNzIGJhY2sgaWYgaXRlbSB1cmwgd2FzIHZhbGlkIG9yIG5vdFxuICAgKi9cbiAgY29uc3Qgc2V0U2NyaXB0dXJlID0gKGl0ZW0sIHZhbGlkYXRpb25DQiA9IG51bGwpID0+IHtcbiAgICBsZXQgdXJsXG4gICAgbGV0IG5ld1VybCA9IGl0ZW0/LnVybFxuXG4gICAgaWYgKG5ld1VybCkge1xuICAgICAgc2V0VXJsRXJyb3IobnVsbCkgLy8gY2xlYXIgcHJldmlvdXMgd2FybmluZ3NcblxuICAgICAgLy8gaGFuZGxlOiBgZ2l0QGdpdC5kb29yNDMub3JnOnVuZm9sZGluZ1dvcmQvZW5fdWx0LmdpdGBcbiAgICAgIC8vICAgIGJ5IG1hcHBpbmcgdG8gaHR0cHMgZ2l0IGZldGNoIHVybCAoZS5nLiBodHRwczovL2dpdC5kb29yNDMub3JnOnVuZm9sZGluZ1dvcmQvZW5fdWx0LmdpdClcbiAgICAgIGlmIChuZXdVcmw/LmluY2x1ZGVzKCdnaXRAJykpIHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBuZXdVcmw/LnNwbGl0KCc6JylcbiAgICAgICAgY29uc3QgWywgaG9zdG5hbWVdID0gcGFydHNbMF0uc3BsaXQoJ0AnKVxuICAgICAgICBuZXdVcmwgPSBgaHR0cHM6Ly8ke2hvc3RuYW1lfS8ke3BhcnRzLnNsaWNlKDEpLmpvaW4oJzonKX1gXG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHVybCA9IG5ldyBVUkwobmV3VXJsKVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdpbGxlZ2FsIHVybCcsIGl0ZW0udXJsKVxuICAgICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC5yZW1vdmVVcmwoaXRlbS51cmwpXG4gICAgICAgIHNldFVybEVycm9yKElOVkFMSURfVVJMKVxuICAgICAgICB2YWxpZGF0aW9uQ0IgJiYgdmFsaWRhdGlvbkNCKGZhbHNlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodXJsKSB7XG4gICAgICBzZXRVcmxFcnJvcihudWxsKSAvLyBjbGVhciBwcmV2aW91cyB3YXJuaW5nc1xuICAgICAgbGV0IHNlcnZlcl9cbiAgICAgIGxldCBob3N0bmFtZSA9IHVybC5ob3N0bmFtZVxuXG4gICAgICBpZiAoaG9zdG5hbWUpIHtcbiAgICAgICAgaWYgKGhvc3RuYW1lID09PSBgZG9vcjQzLm9yZ2ApIHtcbiAgICAgICAgICAvLyBoYW5kbGUgY2FzZSBvZiBsaW5rIHRvIGQ0MyByZWFkZXIgcGFnZSAoZS5nLiBodHRwczovL2Rvb3I0My5vcmcvdS91bmZvbGRpbmdXb3JkL2VuX3VsdC8pXG4gICAgICAgICAgaG9zdG5hbWUgPSAnZ2l0LicgKyBob3N0bmFtZSAvLyByZWRpcmVjdCB0byBnaXQgcmVwb1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHVybC5wb3J0KSB7XG4gICAgICAgICAgaG9zdG5hbWUgKz0gJzonICsgdXJsLnBvcnRcbiAgICAgICAgfVxuICAgICAgICBzZXJ2ZXJfID0gJ2h0dHBzOi8vJyArIGhvc3RuYW1lXG4gICAgICB9XG5cbiAgICAgIGxldCB1cmxfID0gbmV3VXJsXG5cbiAgICAgIGlmICghdXJsKSB7IC8vIGlmIG5vdCBhIG5ldyByZXNvdXJjZVxuICAgICAgICBzY3JpcHR1cmVTZXR0aW5ncyA9IGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MocmVzb3VyY2VJZCwgYm9va0lkLCBpc05ld1Rlc3RhbWVudCwgb3JpZ2luYWxSZXBvVXJsKSAvLyBjb252ZXJ0IGFueSBkZWZhdWx0IHNldHRpbmdzIHN0cmluZ3NcbiAgICAgICAgdXJsXyA9IHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGlua1xuICAgICAgfVxuXG4gICAgICAvLyBtYWtlIHN1cmUgaXQgZXhpc3RzXG4gICAgICBjb3JlLnJlc291cmNlRnJvbVJlc291cmNlTGluayh7XG4gICAgICAgIHJlc291cmNlTGluazogdXJsXyxcbiAgICAgICAgcmVmZXJlbmNlOiB7XG4gICAgICAgICAgcHJvamVjdElkOiBib29rSWQsXG4gICAgICAgICAgY2hhcHRlcjogY2hhcHRlcixcbiAgICAgICAgICB2ZXJzZTogdmVyc2UsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIHNlcnZlcjogc2VydmVyXyxcbiAgICAgICAgICBjYWNoZTogeyBtYXhBZ2U6IDEgKiA2MCAqIDYwICogMTAwMCB9LCAvLyAxIGhyXG4gICAgICAgIH0sXG4gICAgICB9KS50aGVuKHJlc291cmNlID0+IHtcbiAgICAgICAgbGV0IGVycm9yID0gUkVQT19OT1RfRk9VTkRfRVJST1JcbiAgICAgICAgbGV0IG5ld1NjcmlwdHVyZSA9IG51bGxcblxuICAgICAgICBpZiAocmVzb3VyY2UpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgICBzdWJqZWN0LFxuICAgICAgICAgIH0gPSBwYXJzZVJlc291cmNlTWFuaWZlc3QocmVzb3VyY2UpXG4gICAgICAgICAgY29uc3QgaXNTY3JpcHR1cmUgPSBpc1NjcmlwdHVyZVJlc291cmNlKHN1YmplY3QpXG5cbiAgICAgICAgICBpZiAoIWlzU2NyaXB0dXJlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYHVzZVNjcmlwdHVyZVNldHRpbmdzLnNldFNjcmlwdHVyZSAtIFVSTCBpcyBub3QgYSBzY3JpcHR1cmUgcmVzb3VyY2U6ICR7dXJsX31gKVxuICAgICAgICAgICAgZXJyb3IgPSBSRVBPX05PVF9TQ1JJUFRVUkVfRVJST1JcbiAgICAgICAgICB9IGVsc2UgaWYgKHRpdGxlICYmIHZlcnNpb24pIHtcbiAgICAgICAgICAgIC8vIHdlIHN1Y2NlZWRlZCBpbiBnZXR0aW5nIHJlc291cmNlIC0gdXNlIGl0XG4gICAgICAgICAgICBuZXdTY3JpcHR1cmUgPSBnZXRTY3JpcHR1cmVPYmplY3Qoe1xuICAgICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgICAgc2VydmVyOiBzZXJ2ZXJfLFxuICAgICAgICAgICAgICBvd25lcjogcmVzb3VyY2UudXNlcm5hbWUsXG4gICAgICAgICAgICAgIHJlZjogcmVzb3VyY2UucmVmIHx8ICdtYXN0ZXInLFxuICAgICAgICAgICAgICBsYW5ndWFnZUlkOiByZXNvdXJjZS5sYW5ndWFnZUlkLFxuICAgICAgICAgICAgICByZXNvdXJjZUlkOiByZXNvdXJjZS5yZXNvdXJjZUlkLFxuICAgICAgICAgICAgICByZXNvdXJjZUxpbms6IGNsZWFuUmVzb3VyY2VMaW5rKHJlc291cmNlPy5yZXNvdXJjZUxpbmspLFxuICAgICAgICAgICAgICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gICAgICAgICAgICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBuZXdTY3JpcHR1cmVbJ3VzZXJBZGRlZCddID0gdHJ1ZVxuICAgICAgICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QuYWRkSXRlbVRvSGlzdG9yeShuZXdTY3JpcHR1cmUpIC8vIHBlcnNpc3QgaW4gbG9jYWwgc3RvcmFnZVxuICAgICAgICAgICAgc2V0U2NyaXB0dXJlU2V0dGluZ3MobmV3U2NyaXB0dXJlKVxuICAgICAgICAgICAgZXJyb3IgPSBudWxsIC8vIG5vIGVycm9yXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIHBhcnNpbmcgbWFuaWZlc3QnLCBpdGVtLnVybClcbiAgICAgICAgICAgIGVycm9yID0gTUFOSUZFU1RfSU5WQUxJRF9TSE9SVF9FUlJPUlxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdub3QgZm91bmQnLCBpdGVtLnVybClcbiAgICAgICAgfVxuICAgICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC5yZW1vdmVVcmwoaXRlbS51cmwpXG5cbiAgICAgICAgaWYgKGVycm9yID09PSBSRVBPX05PVF9GT1VORF9FUlJPUikgeyAvLyBpZiBnZW5lcmljIGVycm9yLCB2YWxpZGF0ZSB0aGUgVVJMXG4gICAgICAgICAgY29uc3QgeyB2YWxpZFVybCwgdmFsaWRSZXBvUGF0aCB9ID0gdmFsaWRhdGVEY3NVcmwoaXRlbS51cmwpXG5cbiAgICAgICAgICBpZiAoIXZhbGlkVXJsKSB7XG4gICAgICAgICAgICBlcnJvciA9IElOVkFMSURfVVJMXG4gICAgICAgICAgfSBlbHNlIGlmICh2YWxpZFJlcG9QYXRoKSB7XG4gICAgICAgICAgICBlcnJvciA9IFJFUE9fTk9UX0ZPVU5EX0VSUk9SXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVycm9yID0gSU5WQUxJRF9SRVBPX1VSTF9FUlJPUlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzZXRVcmxFcnJvcihlcnJvcilcbiAgICAgICAgdmFsaWRhdGlvbkNCICYmIHZhbGlkYXRpb25DQighZXJyb3IsIG5ld1NjcmlwdHVyZSlcbiAgICAgIH0pXG4gICAgfSBlbHNlIHsgLy8gc2VsZWN0ZWQgYSBwcmV2aW91cyBzZXR0aW5nXG4gICAgICBzZXRVcmxFcnJvcihudWxsKSAvLyBjbGVhciBwcmV2aW91cyB3YXJuaW5nc1xuICAgICAgc2V0U2NyaXB0dXJlU2V0dGluZ3MoaXRlbSlcbiAgICAgIHZhbGlkYXRpb25DQiAmJiB2YWxpZGF0aW9uQ0IodHJ1ZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzZXRTY3JpcHR1cmUsXG4gICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlU2NyaXB0dXJlU2V0dGluZ3NcbiJdfQ==
|
|
386
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmVTZXR0aW5ncy50c3giXSwibmFtZXMiOlsidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJjb3JlIiwiaXNFcXVhbCIsIktFWV9TQ1JJUFRVUkVfVkVSX0hJU1RPUlkiLCJTY3JpcHR1cmVWZXJzaW9uSGlzdG9yeSIsIklOVkFMSURfUkVQT19VUkxfRVJST1IiLCJJTlZBTElEX1VSTCIsIk1BTklGRVNUX0lOVkFMSURfU0hPUlRfRVJST1IiLCJOVF9PUklHX0xBTkdfQklCTEUiLCJOVF9PUklHX0xBTkciLCJPUklHSU5BTF9TT1VSQ0UiLCJPVF9PUklHX0xBTkdfQklCTEUiLCJPVF9PUklHX0xBTkciLCJSRVBPX05PVF9GT1VORF9FUlJPUiIsIlJFUE9fTk9UX1NDUklQVFVSRV9FUlJPUiIsInNldExvY2FsU3RvcmFnZVZhbHVlIiwicGFyc2VSZXNvdXJjZU1hbmlmZXN0IiwidmFsaWRhdGVEY3NVcmwiLCJnZXRSZXNvdXJjZUxpbmsiLCJnZXRTY3JpcHR1cmVPYmplY3QiLCJnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzIiwidXNlU2NyaXB0dXJlUmVzb3VyY2VzIiwiS0VZX1NFVFRJTkdTX0JBU0UiLCJLRVlfVEFSR0VUX0JBU0UiLCJmaXhTY3JpcHR1cmVTZXR0aW5ncyIsInZlcnNpb25IaXN0Iiwic2NyaXB0dXJlU2V0dGluZ3MiLCJsYW5ndWFnZUlkIiwiY2FyZE51bSIsIm93bmVyIiwicmVzb3VyY2VJZCIsIm5ld1NjcmlwdHVyZVNldHRpbmdzIiwicmVzb3VyY2VMaW5rIiwiYWRkSXRlbVRvSGlzdG9yeSIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJtb2RpZmllZCIsImkiLCJsZW5ndGgiLCJpdGVtIiwiaiIsIm1hdGNoX2l0ZW0iLCJtYXRjaF9yZXNvdXJjZUlkIiwicmVmIiwic2VydmVyIiwic3BsaWNlIiwic2F2ZUhpc3RvcnkiLCJpc1NjcmlwdHVyZVJlc291cmNlIiwic3ViamVjdCIsIkJpYmxlUmVzb3VyY2VzIiwiaXNTY3JpcHR1cmUiLCJpbmNsdWRlcyIsInVzZVNjcmlwdHVyZVNldHRpbmdzIiwiaXNOVCIsInRpdGxlIiwiY2hhcHRlciIsInZlcnNlIiwiYm9va0lkIiwiYXBwUmVmIiwidXNlVXNlckxvY2FsU3RvcmFnZSIsImRpc2FibGVXb3JkUG9wb3ZlciIsIm9yaWdpbmFsTGFuZ3VhZ2VPd25lciIsInNldFVybEVycm9yIiwiaHR0cENvbmZpZyIsImdyZWVrUmVwb1VybCIsImhlYnJld1JlcG9VcmwiLCJ3aG9sZUJvb2siLCJpc05ld1Rlc3RhbWVudCIsInNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncyIsInZlcnNpb25IaXN0b3J5Iiwic2F2ZVZlcnNpb25IaXN0IiwicmVmcmVzaFZlcnNpb25IaXN0Iiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJzZXRTY3JpcHR1cmVTZXR0aW5ncyIsImN1cnJlbnRUYXJnZXQiLCJ0YXJnZXQiLCJzZXRUYXJnZXQiLCJjbGVhblVwIiwic2V0Q2xlYW5VcCIsIm9sZERlZmF1bHRTZXR0aW5ncyIsInJlbW92ZUl0ZW0iLCJvcmlnaW5hbFJlcG9VcmwiLCJzY3JpcHR1cmVDb25maWciLCJjdXJyZW50TGFuZ3VhZ2VJZCIsImN1cnJlbnRPd25lciIsImNsZWFuUmVzb3VyY2VMaW5rIiwicmVzb3VyY2VMaW5rXyIsInJlc291cmNlTGlua3MiLCJzcGxpdCIsInNsaWNlIiwiam9pbiIsInNldFNjcmlwdHVyZSIsInZhbGlkYXRpb25DQiIsInVybCIsIm5ld1VybCIsInBhcnRzIiwiaG9zdG5hbWUiLCJVUkwiLCJjb25zb2xlIiwibG9nIiwicmVtb3ZlVXJsIiwic2VydmVyXyIsInBvcnQiLCJ1cmxfIiwicmVzb3VyY2VGcm9tUmVzb3VyY2VMaW5rIiwicmVmZXJlbmNlIiwicHJvamVjdElkIiwiY29uZmlnIiwiY2FjaGUiLCJtYXhBZ2UiLCJ0aGVuIiwicmVzb3VyY2UiLCJlcnJvciIsIm5ld1NjcmlwdHVyZSIsInZlcnNpb24iLCJ3YXJuIiwidXNlcm5hbWUi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QUFHbkcsb0JBQVI7QUFDRCxXQUZNLE1BRUE7QUFDTG1HLFlBQUFBLEtBQUssR0FBRzNHLHNCQUFSO0FBQ0Q7QUFDRjs7QUFDRHlELFFBQUFBLFdBQVcsQ0FBQ2tELEtBQUQsQ0FBWDtBQUNBcEIsUUFBQUEsWUFBWSxJQUFJQSxZQUFZLENBQUMsQ0FBQ29CLEtBQUYsRUFBU0MsWUFBVCxDQUE1QjtBQUNELE9BbEVEO0FBbUVELEtBNUZELE1BNEZPO0FBQUU7QUFDUG5ELE1BQUFBLFdBQVcsQ0FBQyxJQUFELENBQVgsQ0FESyxDQUNhOztBQUNsQlcsTUFBQUEsb0JBQW9CLENBQUNsQyxJQUFELENBQXBCO0FBQ0FxRCxNQUFBQSxZQUFZLElBQUlBLFlBQVksQ0FBQyxJQUFELENBQTVCO0FBQ0Q7QUFDRixHQTNIRDs7QUE2SEEsU0FBTztBQUNMekIsSUFBQUEsY0FBYyxFQUFkQSxjQURLO0FBRUxlLElBQUFBLGVBQWUsRUFBZkEsZUFGSztBQUdMUyxJQUFBQSxZQUFZLEVBQVpBLFlBSEs7QUFJTG5CLElBQUFBLG9CQUFvQixFQUFwQkEsb0JBSks7QUFLTDlDLElBQUFBLGlCQUFpQixFQUFqQkE7QUFMSyxHQUFQO0FBT0Q7QUFFRCxlQUFlMEIsb0JBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjb3JlIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgKiBhcyBpc0VxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG5pbXBvcnQgeyBLRVlfU0NSSVBUVVJFX1ZFUl9ISVNUT1JZLCBTY3JpcHR1cmVWZXJzaW9uSGlzdG9yeSB9IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVZlcnNpb25IaXN0b3J5J1xuaW1wb3J0IHtcbiAgSU5WQUxJRF9SRVBPX1VSTF9FUlJPUixcbiAgSU5WQUxJRF9VUkwsXG4gIE1BTklGRVNUX0lOVkFMSURfU0hPUlRfRVJST1IsXG4gIE5UX09SSUdfTEFOR19CSUJMRSxcbiAgTlRfT1JJR19MQU5HLFxuICBPUklHSU5BTF9TT1VSQ0UsXG4gIE9UX09SSUdfTEFOR19CSUJMRSxcbiAgT1RfT1JJR19MQU5HLFxuICBSRVBPX05PVF9GT1VORF9FUlJPUixcbiAgUkVQT19OT1RfU0NSSVBUVVJFX0VSUk9SLFxuICBzZXRMb2NhbFN0b3JhZ2VWYWx1ZSxcbiAgcGFyc2VSZXNvdXJjZU1hbmlmZXN0LFxuICB2YWxpZGF0ZURjc1VybCxcbn0gZnJvbSAnLi4nXG5pbXBvcnQge1xuICBnZXRSZXNvdXJjZUxpbmssXG4gIGdldFNjcmlwdHVyZU9iamVjdCxcbiAgZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyxcbn0gZnJvbSAnLi4vdXRpbHMvU2NyaXB0dXJlU2V0dGluZ3MnXG5pbXBvcnQgdXNlU2NyaXB0dXJlUmVzb3VyY2VzIGZyb20gJy4vdXNlU2NyaXB0dXJlUmVzb3VyY2VzJ1xuXG5jb25zdCBLRVlfU0VUVElOR1NfQkFTRSA9ICdzY3JpcHR1cmVQYW5lQ29uZmlnXydcbmNvbnN0IEtFWV9UQVJHRVRfQkFTRSA9ICdzY3JpcHR1cmVQYW5lVGFyZ2V0XydcblxuZnVuY3Rpb24gZml4U2NyaXB0dXJlU2V0dGluZ3ModmVyc2lvbkhpc3QsIHNjcmlwdHVyZVNldHRpbmdzLCBsYW5ndWFnZUlkLCBjYXJkTnVtLCBvd25lcikge1xuICAvLyBjbGVhbiB1cCBoYXJkLWNvZGVkIG9yaWdpbmFsIHNvdXJjZXNcbiAgaWYgKChzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID09PSBOVF9PUklHX0xBTkdfQklCTEUpIHx8IChzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID09PSBPVF9PUklHX0xBTkdfQklCTEUpKSB7XG4gICAgaWYgKChzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkICE9PSBOVF9PUklHX0xBTkcpICYmIChzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkICE9PSBPVF9PUklHX0xBTkcpKSB7IC8vIGlmIHRoaXMgaXMgdHJhY2sgd2l0aCBjdXJyZW50IHNlbGVjdGVkIGxhbmd1YWdlIGFuZCB0ZXN0YW1lbnQgb2YgYm9va1xuICAgICAgY29uc3QgbmV3U2NyaXB0dXJlU2V0dGluZ3MgPSB7IC4uLnNjcmlwdHVyZVNldHRpbmdzIH1cbiAgICAgIG5ld1NjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPSBsYW5ndWFnZUlkXG4gICAgICBuZXdTY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gT1JJR0lOQUxfU09VUkNFXG4gICAgICBuZXdTY3JpcHR1cmVTZXR0aW5ncy5vd25lciA9IG93bmVyXG4gICAgICBuZXdTY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsobmV3U2NyaXB0dXJlU2V0dGluZ3MpXG4gICAgICBzZXRMb2NhbFN0b3JhZ2VWYWx1ZShLRVlfU0VUVElOR1NfQkFTRSArIGNhcmROdW0sIG5ld1NjcmlwdHVyZVNldHRpbmdzKVxuICAgICAgdmVyc2lvbkhpc3QuYWRkSXRlbVRvSGlzdG9yeShuZXdTY3JpcHR1cmVTZXR0aW5ncylcbiAgICB9XG4gIH1cblxuICAvLyBjbGVhbiBoaXN0b3J5IG9mIG9yaWdpbmFsIHNvdXJjZXNcbiAgbGV0IGhpc3RvcnkgPSB2ZXJzaW9uSGlzdC5nZXRMYXRlc3QoKSB8fCBbXVxuICBsZXQgbW9kaWZpZWQgPSBmYWxzZVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaGlzdG9yeS5sZW5ndGg7IGkrKykgeyAvLyBzZWFyY2ggZm9yIG9yaWdpbmFsIHNvdXJjZSBkdXBsaWNhdGVzIGluIGhpc3RvcnlcbiAgICBjb25zdCBpdGVtID0gaGlzdG9yeVtpXVxuICAgIGNvbnN0IHJlc291cmNlSWQgPSBpdGVtLnJlc291cmNlSWRcblxuICAgIGlmICgocmVzb3VyY2VJZCA9PT0gTlRfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1RfT1JJR19MQU5HX0JJQkxFKSB8fCAocmVzb3VyY2VJZCA9PT0gT1JJR0lOQUxfU09VUkNFKSkge1xuICAgICAgZm9yICggbGV0IGogPSBpICsgMTsgaiA8IGhpc3RvcnkubGVuZ3RoOyBqKyspIHsgLy8gc2VhcmNoIHJlc3Qgb2YgbGlzdCBmb3IgZHVwbGljYXRlcyBvZiBpdGVtIGF0IGlcbiAgICAgICAgY29uc3QgbWF0Y2hfaXRlbSA9IGhpc3Rvcnlbal1cbiAgICAgICAgY29uc3QgbWF0Y2hfcmVzb3VyY2VJZCA9IG1hdGNoX2l0ZW0ucmVzb3VyY2VJZFxuXG4gICAgICAgIGlmICgobWF0Y2hfcmVzb3VyY2VJZCA9PT0gcmVzb3VyY2VJZCkpIHtcbiAgICAgICAgICBpZiAoKGl0ZW0ub3duZXIgPT09IG1hdGNoX2l0ZW0ub3duZXIpICYmXG4gICAgICAgICAgICAoaXRlbS5yZWYgPT09IG1hdGNoX2l0ZW0ucmVmKSAmJlxuICAgICAgICAgICAgKGl0ZW0uc2VydmVyID09PSBtYXRjaF9pdGVtLnNlcnZlcikgJiZcbiAgICAgICAgICAgIChpdGVtLnJlc291cmNlSWQgPT09IG1hdGNoX2l0ZW0ucmVzb3VyY2VJZCkpIHtcbiAgICAgICAgICAgIGhpc3Rvcnkuc3BsaWNlKGosIDEpIC8vIHJlbW92ZSBkdXBsaWNhdGUgaXRlbVxuICAgICAgICAgICAgbW9kaWZpZWQgPSB0cnVlXG4gICAgICAgICAgICBqLS0gLy8gYmFjayB1cCBpbmRleCBzaW5jZSBjb250ZW50cyBzaGlmdGVkXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKG1vZGlmaWVkKSB7XG4gICAgdmVyc2lvbkhpc3Quc2F2ZUhpc3RvcnkoaGlzdG9yeSlcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1NjcmlwdHVyZVJlc291cmNlKHN1YmplY3QpIHtcbiAgY29uc3QgQmlibGVSZXNvdXJjZXMgPSBbICdCaWJsZScsICdBbGlnbmVkIEJpYmxlJywgJ0dyZWVrIE5ldyBUZXN0YW1lbnQnLCAnSGVicmV3IE9sZCBUZXN0YW1lbnQnIF1cbiAgY29uc3QgaXNTY3JpcHR1cmUgPSBCaWJsZVJlc291cmNlcy5pbmNsdWRlcyhzdWJqZWN0KVxuICByZXR1cm4gaXNTY3JpcHR1cmVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNjcmlwdHVyZVNldHRpbmdzKHtcbiAgaXNOVCxcbiAgdGl0bGUsXG4gIGNhcmROdW0sXG4gIGNoYXB0ZXIsXG4gIHZlcnNlLFxuICBib29rSWQsXG4gIG93bmVyLFxuICBzZXJ2ZXIsXG4gIGFwcFJlZixcbiAgbGFuZ3VhZ2VJZCxcbiAgcmVzb3VyY2VJZCxcbiAgcmVzb3VyY2VMaW5rLFxuICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgc2V0VXJsRXJyb3IsXG4gIGh0dHBDb25maWcsXG4gIGdyZWVrUmVwb1VybCxcbiAgaGVicmV3UmVwb1VybCxcbiAgd2hvbGVCb29rID0gZmFsc2UsXG59KSB7XG4gIGNvbnN0IGlzTmV3VGVzdGFtZW50ID0gaXNOVChib29rSWQpXG4gIGNvbnN0IHNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncyA9IGdldFNjcmlwdHVyZU9iamVjdCh7XG4gICAgdGl0bGUsXG4gICAgc2VydmVyLFxuICAgIG93bmVyLFxuICAgIHJlZjogYXBwUmVmLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICByZXNvdXJjZUxpbmssXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgfSlcbiAgY29uc3QgW3ZlcnNpb25IaXN0b3J5LCBzYXZlVmVyc2lvbkhpc3QsIHJlZnJlc2hWZXJzaW9uSGlzdF0gPSB1c2VVc2VyTG9jYWxTdG9yYWdlKEtFWV9TQ1JJUFRVUkVfVkVSX0hJU1RPUlksIFtdKVxuICBjb25zdCBzY3JpcHR1cmVWZXJzaW9uSGlzdCA9IG5ldyBTY3JpcHR1cmVWZXJzaW9uSGlzdG9yeSh2ZXJzaW9uSGlzdG9yeSwgc2F2ZVZlcnNpb25IaXN0LCByZWZyZXNoVmVyc2lvbkhpc3QpXG5cbiAgbGV0IFtzY3JpcHR1cmVTZXR0aW5ncywgc2V0U2NyaXB0dXJlU2V0dGluZ3NdID0gdXNlVXNlckxvY2FsU3RvcmFnZShLRVlfU0VUVElOR1NfQkFTRSArIGNhcmROdW0sIHNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncylcbiAgY29uc3QgY3VycmVudFRhcmdldCA9IHtcbiAgICBzZXJ2ZXIsXG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgfVxuICBjb25zdCBbdGFyZ2V0LCBzZXRUYXJnZXRdID0gdXNlVXNlckxvY2FsU3RvcmFnZShLRVlfVEFSR0VUX0JBU0UgKyBjYXJkTnVtLCBjdXJyZW50VGFyZ2V0KVxuICBjb25zdCBbY2xlYW5VcCwgc2V0Q2xlYW5VcF0gPSB1c2VTdGF0ZSh0cnVlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxhbmd1YWdlSWQgJiYgb3duZXIpIHsgLy8gbWFrZSBzdXJlIHdlIGhhdmUgbGFuZ3VhZ2VJZCBhbmQgb3duZXIgc2VsZWN0ZWQgZmlyc3RcbiAgICAgIGlmIChjbGVhblVwKSB7IC8vIGRvIGluaXRpYWwgY2xlYW51cFxuICAgICAgICBmaXhTY3JpcHR1cmVTZXR0aW5ncyhzY3JpcHR1cmVWZXJzaW9uSGlzdCwgc2NyaXB0dXJlU2V0dGluZ3MsIGxhbmd1YWdlSWQsIGNhcmROdW0sIG93bmVyKVxuICAgICAgICBzZXRDbGVhblVwKGZhbHNlKVxuICAgICAgfVxuXG4gICAgICBpZiAoIWlzRXF1YWwoY3VycmVudFRhcmdldCwgdGFyZ2V0KSkgeyAvLyB3aGVuIHRhcmdldCBjaGFuZ2VzLCBzd2l0Y2ggYmFjayB0byBkZWZhdWx0c1xuICAgICAgICBjb25zdCBvbGREZWZhdWx0U2V0dGluZ3MgPSB7IC4uLnNjcmlwdHVyZURlZmF1bHRTZXR0aW5ncywgLi4udGFyZ2V0IH1cbiAgICAgICAgb2xkRGVmYXVsdFNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhvbGREZWZhdWx0U2V0dGluZ3MpXG4gICAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnJlbW92ZUl0ZW0ob2xkRGVmYXVsdFNldHRpbmdzKSAvLyByZW1vdmUgb2xkIGRlZmF1bHQgc2V0dGluZ3MgZnJvbSBoaXN0b3J5XG4gICAgICAgIGZpeFNjcmlwdHVyZVNldHRpbmdzKHNjcmlwdHVyZVZlcnNpb25IaXN0LCBzY3JpcHR1cmVTZXR0aW5ncywgbGFuZ3VhZ2VJZCwgY2FyZE51bSwgb3duZXIpXG5cbiAgICAgICAgc2V0U2NyaXB0dXJlU2V0dGluZ3Moc2NyaXB0dXJlRGVmYXVsdFNldHRpbmdzKVxuICAgICAgICBzZXRUYXJnZXQoY3VycmVudFRhcmdldClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3Rvcnkoc2NyaXB0dXJlU2V0dGluZ3MpIC8vIG1ha2Ugc3VyZSBjdXJyZW50IHNjcmlwdHVyZSB2ZXJzaW9uIHBlcnNpc3RlZCBpbiBoaXN0b3J5XG4gICAgICB9XG4gICAgfVxuICB9LCBbbGFuZ3VhZ2VJZCwgb3duZXIsIGNsZWFuVXBdKVxuXG4gIGNvbnN0IG9yaWdpbmFsUmVwb1VybCA9IGlzTmV3VGVzdGFtZW50ID8gZ3JlZWtSZXBvVXJsIDogaGVicmV3UmVwb1VybFxuICBjb25zdCBzY3JpcHR1cmVDb25maWcgPSB1c2VTY3JpcHR1cmVSZXNvdXJjZXMoe1xuICAgIGJvb2tJZCxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBjaGFwdGVyLFxuICAgIHZlcnNlLFxuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIG9yaWdpbmFsUmVwb1VybCxcbiAgICBjdXJyZW50TGFuZ3VhZ2VJZDogbGFuZ3VhZ2VJZCxcbiAgICBjdXJyZW50T3duZXI6IG93bmVyLFxuICAgIGh0dHBDb25maWcsXG4gICAgYXBwUmVmLFxuICAgIHdob2xlQm9vayxcbiAgfSlcblxuICAvKipcbiAgICogbWFrZSBzdXJlIHRoYXQgYm9va0lkIG9yIHByb2plY3RJZCBhcmUgbm90IGVtYmVkZGVkIGluIGxpbmsuXG4gICAqICAgIEZvciBleGFtcGxlIGluIGBydV9nbC9ydS9yc29iL21hc3Rlci9oZWJgIHRoZSBwcm9qZWN0SWQgaGViIGlzIGluIHRoZSBsaW5rIGFuZCB3aWxsIG92ZXJyaWRlIHRoZVxuICAgKiAgICBwcm9qZWN0SWQgaW4gdGhlIHJlZmVyZW5jZSB3aGVuIHdlIHRyeSB0byBmZXRjaCBsYXRlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVzb3VyY2VMaW5rXG4gICAqIEByZXR1cm4ge3N0cmluZ30gLSBjbGVhbmVkIHVwIHJlc291cmNlIGxpbmtcbiAgICovXG4gIGZ1bmN0aW9uIGNsZWFuUmVzb3VyY2VMaW5rKHJlc291cmNlTGluaykge1xuICAgIGxldCByZXNvdXJjZUxpbmtfID0gcmVzb3VyY2VMaW5rXG4gICAgY29uc3QgcmVzb3VyY2VMaW5rcyA9IHJlc291cmNlTGlua18/LnNwbGl0KCcvJylcblxuICAgIGlmIChyZXNvdXJjZUxpbmtzPy5sZW5ndGggPiA0KSB7IC8vIGlmIHRvbyBtYW55IGZpZWxkcywgdGhlbiB0cmltXG4gICAgICByZXNvdXJjZUxpbmtfID0gcmVzb3VyY2VMaW5rcz8uc2xpY2UoMCwgNCkuam9pbignLycpXG4gICAgfVxuICAgIHJldHVybiByZXNvdXJjZUxpbmtfXG4gIH1cblxuICAvKipcbiAgICogY2FsbGJhY2sgdG8gZWl0aGVyIGFkZCBuZXcgc2NyaXB0dXJlIGl0ZW0gb3Igc2VsZWN0IGV4aXN0aW5nIGl0ZW0gaW4gaGlzdG9yeVxuICAgKiBAcGFyYW0ge29iamVjdH0gaXRlbSAtIG5ldyBpdGVtIHRvIGFkZCBvciBleGlzdGluZyBpdGVtIHRvIHNlbGVjdCBmcm9tIGhpc3RvcnlcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gdmFsaWRhdGlvbkNCIC0gY2FsbGJhY2sgZnVuY3Rpb24gdG8gcGFzcyBiYWNrIGlmIGl0ZW0gdXJsIHdhcyB2YWxpZCBvciBub3RcbiAgICovXG4gIGNvbnN0IHNldFNjcmlwdHVyZSA9IChpdGVtLCB2YWxpZGF0aW9uQ0IgPSBudWxsKSA9PiB7XG4gICAgbGV0IHVybFxuICAgIGxldCBuZXdVcmwgPSBpdGVtPy51cmxcblxuICAgIGlmIChuZXdVcmwpIHtcbiAgICAgIHNldFVybEVycm9yKG51bGwpIC8vIGNsZWFyIHByZXZpb3VzIHdhcm5pbmdzXG5cbiAgICAgIC8vIGhhbmRsZTogYGdpdEBnaXQuZG9vcjQzLm9yZzp1bmZvbGRpbmdXb3JkL2VuX3VsdC5naXRgXG4gICAgICAvLyAgICBieSBtYXBwaW5nIHRvIGh0dHBzIGdpdCBmZXRjaCB1cmwgKGUuZy4gaHR0cHM6Ly9naXQuZG9vcjQzLm9yZzp1bmZvbGRpbmdXb3JkL2VuX3VsdC5naXQpXG4gICAgICBpZiAobmV3VXJsPy5pbmNsdWRlcygnZ2l0QCcpKSB7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gbmV3VXJsPy5zcGxpdCgnOicpXG4gICAgICAgIGNvbnN0IFssIGhvc3RuYW1lXSA9IHBhcnRzWzBdLnNwbGl0KCdAJylcbiAgICAgICAgbmV3VXJsID0gYGh0dHBzOi8vJHtob3N0bmFtZX0vJHtwYXJ0cy5zbGljZSgxKS5qb2luKCc6Jyl9YFxuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICB1cmwgPSBuZXcgVVJMKG5ld1VybClcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBjb25zb2xlLmxvZygnaWxsZWdhbCB1cmwnLCBpdGVtLnVybClcbiAgICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlVXJsKGl0ZW0udXJsKVxuICAgICAgICBzZXRVcmxFcnJvcihJTlZBTElEX1VSTClcbiAgICAgICAgdmFsaWRhdGlvbkNCICYmIHZhbGlkYXRpb25DQihmYWxzZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVybCkge1xuICAgICAgc2V0VXJsRXJyb3IobnVsbCkgLy8gY2xlYXIgcHJldmlvdXMgd2FybmluZ3NcbiAgICAgIGxldCBzZXJ2ZXJfXG4gICAgICBsZXQgaG9zdG5hbWUgPSB1cmwuaG9zdG5hbWVcblxuICAgICAgaWYgKGhvc3RuYW1lKSB7XG4gICAgICAgIGlmIChob3N0bmFtZSA9PT0gYGRvb3I0My5vcmdgKSB7XG4gICAgICAgICAgLy8gaGFuZGxlIGNhc2Ugb2YgbGluayB0byBkNDMgcmVhZGVyIHBhZ2UgKGUuZy4gaHR0cHM6Ly9kb29yNDMub3JnL3UvdW5mb2xkaW5nV29yZC9lbl91bHQvKVxuICAgICAgICAgIGhvc3RuYW1lID0gJ2dpdC4nICsgaG9zdG5hbWUgLy8gcmVkaXJlY3QgdG8gZ2l0IHJlcG9cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1cmwucG9ydCkge1xuICAgICAgICAgIGhvc3RuYW1lICs9ICc6JyArIHVybC5wb3J0XG4gICAgICAgIH1cbiAgICAgICAgc2VydmVyXyA9ICdodHRwczovLycgKyBob3N0bmFtZVxuICAgICAgfVxuXG4gICAgICBsZXQgdXJsXyA9IG5ld1VybFxuXG4gICAgICBpZiAoIXVybCkgeyAvLyBpZiBub3QgYSBuZXcgcmVzb3VyY2VcbiAgICAgICAgc2NyaXB0dXJlU2V0dGluZ3MgPSBnZXRTY3JpcHR1cmVSZXNvdXJjZVNldHRpbmdzKHJlc291cmNlSWQsIGJvb2tJZCwgaXNOZXdUZXN0YW1lbnQsIG9yaWdpbmFsUmVwb1VybCkgLy8gY29udmVydCBhbnkgZGVmYXVsdCBzZXR0aW5ncyBzdHJpbmdzXG4gICAgICAgIHVybF8gPSBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmtcbiAgICAgIH1cblxuICAgICAgLy8gbWFrZSBzdXJlIGl0IGV4aXN0c1xuICAgICAgY29yZS5yZXNvdXJjZUZyb21SZXNvdXJjZUxpbmsoe1xuICAgICAgICByZXNvdXJjZUxpbms6IHVybF8sXG4gICAgICAgIHJlZmVyZW5jZToge1xuICAgICAgICAgIHByb2plY3RJZDogYm9va0lkLFxuICAgICAgICAgIGNoYXB0ZXI6IGNoYXB0ZXIsXG4gICAgICAgICAgdmVyc2U6IHZlcnNlLFxuICAgICAgICB9LFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBzZXJ2ZXI6IHNlcnZlcl8sXG4gICAgICAgICAgY2FjaGU6IHsgbWF4QWdlOiAxICogNjAgKiA2MCAqIDEwMDAgfSwgLy8gMSBoclxuICAgICAgICB9LFxuICAgICAgfSkudGhlbihyZXNvdXJjZSA9PiB7XG4gICAgICAgIGxldCBlcnJvciA9IFJFUE9fTk9UX0ZPVU5EX0VSUk9SXG4gICAgICAgIGxldCBuZXdTY3JpcHR1cmUgPSBudWxsXG5cbiAgICAgICAgaWYgKHJlc291cmNlKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgICAgc3ViamVjdCxcbiAgICAgICAgICB9ID0gcGFyc2VSZXNvdXJjZU1hbmlmZXN0KHJlc291cmNlKVxuICAgICAgICAgIGNvbnN0IGlzU2NyaXB0dXJlID0gaXNTY3JpcHR1cmVSZXNvdXJjZShzdWJqZWN0KVxuXG4gICAgICAgICAgaWYgKCFpc1NjcmlwdHVyZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGB1c2VTY3JpcHR1cmVTZXR0aW5ncy5zZXRTY3JpcHR1cmUgLSBVUkwgaXMgbm90IGEgc2NyaXB0dXJlIHJlc291cmNlOiAke3VybF99YClcbiAgICAgICAgICAgIGVycm9yID0gUkVQT19OT1RfU0NSSVBUVVJFX0VSUk9SXG4gICAgICAgICAgfSBlbHNlIGlmICh0aXRsZSAmJiB2ZXJzaW9uKSB7XG4gICAgICAgICAgICAvLyB3ZSBzdWNjZWVkZWQgaW4gZ2V0dGluZyByZXNvdXJjZSAtIHVzZSBpdFxuICAgICAgICAgICAgbmV3U2NyaXB0dXJlID0gZ2V0U2NyaXB0dXJlT2JqZWN0KHtcbiAgICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICAgIHNlcnZlcjogc2VydmVyXyxcbiAgICAgICAgICAgICAgb3duZXI6IHJlc291cmNlLnVzZXJuYW1lLFxuICAgICAgICAgICAgICByZWY6IHJlc291cmNlLnJlZiB8fCAnbWFzdGVyJyxcbiAgICAgICAgICAgICAgbGFuZ3VhZ2VJZDogcmVzb3VyY2UubGFuZ3VhZ2VJZCxcbiAgICAgICAgICAgICAgcmVzb3VyY2VJZDogcmVzb3VyY2UucmVzb3VyY2VJZCxcbiAgICAgICAgICAgICAgcmVzb3VyY2VMaW5rOiBjbGVhblJlc291cmNlTGluayhyZXNvdXJjZT8ucmVzb3VyY2VMaW5rKSxcbiAgICAgICAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgICAgICAgICAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgbmV3U2NyaXB0dXJlWyd1c2VyQWRkZWQnXSA9IHRydWVcbiAgICAgICAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3RvcnkobmV3U2NyaXB0dXJlKSAvLyBwZXJzaXN0IGluIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgICAgIHNldFNjcmlwdHVyZVNldHRpbmdzKG5ld1NjcmlwdHVyZSlcbiAgICAgICAgICAgIGVycm9yID0gbnVsbCAvLyBubyBlcnJvclxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBwYXJzaW5nIG1hbmlmZXN0JywgaXRlbS51cmwpXG4gICAgICAgICAgICBlcnJvciA9IE1BTklGRVNUX0lOVkFMSURfU0hPUlRfRVJST1JcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignbm90IGZvdW5kJywgaXRlbS51cmwpXG4gICAgICAgIH1cbiAgICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlVXJsKGl0ZW0udXJsKVxuXG4gICAgICAgIGlmIChlcnJvciA9PT0gUkVQT19OT1RfRk9VTkRfRVJST1IpIHsgLy8gaWYgZ2VuZXJpYyBlcnJvciwgdmFsaWRhdGUgdGhlIFVSTFxuICAgICAgICAgIGNvbnN0IHsgdmFsaWRVcmwsIHZhbGlkUmVwb1BhdGggfSA9IHZhbGlkYXRlRGNzVXJsKGl0ZW0udXJsKVxuXG4gICAgICAgICAgaWYgKCF2YWxpZFVybCkge1xuICAgICAgICAgICAgZXJyb3IgPSBJTlZBTElEX1VSTFxuICAgICAgICAgIH0gZWxzZSBpZiAodmFsaWRSZXBvUGF0aCkge1xuICAgICAgICAgICAgZXJyb3IgPSBSRVBPX05PVF9GT1VORF9FUlJPUlxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvciA9IElOVkFMSURfUkVQT19VUkxfRVJST1JcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2V0VXJsRXJyb3IoZXJyb3IpXG4gICAgICAgIHZhbGlkYXRpb25DQiAmJiB2YWxpZGF0aW9uQ0IoIWVycm9yLCBuZXdTY3JpcHR1cmUpXG4gICAgICB9KVxuICAgIH0gZWxzZSB7IC8vIHNlbGVjdGVkIGEgcHJldmlvdXMgc2V0dGluZ1xuICAgICAgc2V0VXJsRXJyb3IobnVsbCkgLy8gY2xlYXIgcHJldmlvdXMgd2FybmluZ3NcbiAgICAgIHNldFNjcmlwdHVyZVNldHRpbmdzKGl0ZW0pXG4gICAgICB2YWxpZGF0aW9uQ0IgJiYgdmFsaWRhdGlvbkNCKHRydWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBzY3JpcHR1cmVDb25maWcsXG4gICAgc2V0U2NyaXB0dXJlLFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICAgIHNjcmlwdHVyZVNldHRpbmdzLFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZVNjcmlwdHVyZVNldHRpbmdzXG4iXX0=
|
|
@@ -356,4 +356,4 @@ export function getResourceMessage(resourceStatus, server, resourceLink, isNT) {
|
|
|
356
356
|
export function getResourceLinkSpecific(owner, languageId, projectId, ref) {
|
|
357
357
|
return "api/v1/repos/".concat(owner, "/").concat(languageId, "_").concat(projectId, "/contents?ref=").concat(ref);
|
|
358
358
|
}
|
|
359
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9TY3JpcHR1cmVTZXR0aW5ncy50cyJdLCJuYW1lcyI6WyJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwiQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHIiwiTE9BRElOR19SRVNPVVJDRSIsIk1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHIiwiTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyIsIk5UX09SSUdfTEFORyIsIk5UX09SSUdfTEFOR19CSUJMRSIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIk9UX09SSUdfTEFOR19CSUJMRSIsIlNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHIiwiVEFSR0VUX0xJVEVSQUwiLCJUQVJHRVRfU0lNUExJRklFRCIsIkRJU0FCTEVfV09SRF9QT1BPVkVSIiwiZ2V0UmVzb3VyY2VMaW5rIiwic2NyaXB0dXJlIiwicmVmIiwiYnJhbmNoIiwib3duZXIiLCJsYW5ndWFnZUlkIiwicmVzb3VyY2VJZCIsImdldFNjcmlwdHVyZU9iamVjdCIsInRpdGxlIiwic2VydmVyIiwicmVzb3VyY2VMaW5rIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiaXNPcmlnaW5hbEJpYmxlIiwiaXNPcmlnIiwiY2xlYW51cEFjY291bnRTZXR0aW5ncyIsInNjcmlwdHVyZVNldHRpbmdzIiwiY3VycmVudE93bmVyIiwiY3VycmVudExhbmd1YWdlSWQiLCJzcGxpdFVybCIsIm9yaWdpbmFsUmVwb1VybCIsInVybCIsIlVSTCIsIm9yaWdpbiIsInBhdGhuYW1lIiwic2VhcmNoIiwiZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyIsImJvb2tJZCIsInNjcmlwdHVyZVNldHRpbmdzXyIsImlzTmV3VGVzdGFtZW50IiwiZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzIiwibGFiZWwiLCJzZXRTY3JpcHR1cmUiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJpbmRleCIsImZpbmRJdGVtSW5kZXhCeUtleSIsInNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnIiwib3B0aW9ucyIsImN1cnJlbnQiLCJhbGxvd1VzZXJJbnB1dCIsIm9uQ2hhbmdlIiwidmFsaWRhdGlvbkNCIiwiaXRlbSIsIm5ld0l0ZW0iLCJhZGRJdGVtVG9IaXN0b3J5IiwiZ2V0SXRlbUJ5VGl0bGUiLCJkZWxldGVJdGVtIiwiZGVsZXRlSW5kZXgiLCJyZW1vdmVJdGVtQnlJbmRleCIsImdldFJlcG9VcmwiLCJpc05UIiwicmVwb1VybCIsInNwbGl0IiwiZSIsImdldEVycm9yTWVzc2FnZUZvclJlc291cmNlTGluayIsImVycm9yQ29kZSIsImVycm9yTXNnIiwidmFsaWRhdGVEY3NVcmwiLCJ2YWxpZFJlcG9QYXRoIiwidmFsaWRVcmwiLCJwYXJ0cyIsInByb3RvY29sIiwiaG9zdCIsInVzZXIiLCJyZXBvIiwiaG9zdFBhcnRzIiwibGVuZ3RoIiwicGFydCIsInByb2plY3RJZCIsImNvbnNvbGUiLCJsb2ciLCJnZXRSZXNvdXJjZUVycm9yTWVzc2FnZSIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFJlc291cmNlTGlua1NwZWNpZmljIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FDRUEsdUJBREYsRUFFRUMsc0JBRkYsRUFHRUMsYUFIRixFQUlFQyx5QkFKRixFQUtFQywwQkFMRixRQU1PLHVCQU5QO0FBT0EsU0FDRUMsd0JBREYsRUFFRUMsZ0JBRkYsRUFHRUMsMEJBSEYsRUFJRUMsNEJBSkYsRUFLRUMsWUFMRixFQU1FQyxrQkFORixFQU9FQyxlQVBGLEVBUUVDLFlBUkYsRUFTRUMsa0JBVEYs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akMyRixJQUFBQSxPQUFPLEdBQUd2RixnQkFBVjtBQUNELEdBRkQsTUFFTztBQUNMdUYsSUFBQUEsT0FBTyxHQUFHRix1QkFBdUIsQ0FBQ0MsY0FBRCxDQUFqQzs7QUFFQSxRQUFJQyxPQUFKLEVBQWE7QUFDWEEsTUFBQUEsT0FBTyxHQUFHbkIsOEJBQThCLENBQUM5QyxZQUFELEVBQWVELE1BQWYsRUFBdUJrRSxPQUF2QixFQUFnQ3ZCLElBQWhDLENBQXhDO0FBQ0Q7QUFDRjs7QUFDRCxTQUFPdUIsT0FBUDtBQUNEO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxTQUFTRSx1QkFBVCxDQUFpQ3pFLEtBQWpDLEVBQWdEQyxVQUFoRCxFQUFvRWlFLFNBQXBFLEVBQXVGcEUsR0FBdkYsRUFBb0c7QUFDekcsZ0NBQXVCRSxLQUF2QixjQUFnQ0MsVUFBaEMsY0FBOENpRSxTQUE5QywyQkFBd0VwRSxHQUF4RTtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IsXG4gIElOVkFMSURfTUFOSUZFU1RfRVJST1IsXG4gIExPQURJTkdfU1RBVEUsXG4gIE1BTklGRVNUX05PVF9MT0FERURfRVJST1IsXG4gIFNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQge1xuICBCT09LX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIExPQURJTkdfUkVTT1VSQ0UsXG4gIE1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHLFxuICBNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBOVF9PUklHX0xBTkcsXG4gIE5UX09SSUdfTEFOR19CSUJMRSxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkcsXG4gIE9UX09SSUdfTEFOR19CSUJMRSxcbiAgU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIFRBUkdFVF9MSVRFUkFMLFxuICBUQVJHRVRfU0lNUExJRklFRCxcbn0gZnJvbSAnLi9jb21tb24nXG5cbmV4cG9ydCBjb25zdCBESVNBQkxFX1dPUkRfUE9QT1ZFUiA9IHRydWUgLy8gZGlzYWJsZSB3b3JkIHBvcG92ZXIgZm9yIGV2ZXJ5IHNjcmlwdHVyZSBwYW5lIGJ1dCBvcmlnaW5hbCBsYW5ndWFnZXNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGluayhzY3JpcHR1cmUpIHtcbiAgY29uc3QgcmVmID0gc2NyaXB0dXJlLnJlZiB8fCBzY3JpcHR1cmUuYnJhbmNoXG4gIHJldHVybiBgJHtzY3JpcHR1cmUub3duZXJ9LyR7c2NyaXB0dXJlLmxhbmd1YWdlSWR9LyR7c2NyaXB0dXJlLnJlc291cmNlSWR9LyR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZU9iamVjdCh7XG4gIHRpdGxlLFxuICBzZXJ2ZXIsXG4gIG93bmVyLFxuICByZWYsXG4gIGxhbmd1YWdlSWQsXG4gIHJlc291cmNlSWQsXG4gIHJlc291cmNlTGluayxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG59KSB7XG4gIGNvbnN0IHNjcmlwdHVyZSA9IHtcbiAgICB0aXRsZSxcbiAgICBzZXJ2ZXIsXG4gICAgb3duZXIsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHJlZixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIHJlc291cmNlTGluayxcbiAgfVxuXG4gIGlmICghcmVzb3VyY2VMaW5rKSB7XG4gICAgc2NyaXB0dXJlLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayh7XG4gICAgICBvd25lcixcbiAgICAgIHJlZixcbiAgICAgIGxhbmd1YWdlSWQsXG4gICAgICByZXNvdXJjZUlkLFxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVxufVxuXG4vKipcbiAqIHJldHVybiB0cnVlIGlmIHJlc291cmNlIGlzIGFuIG9yaWdpbmFsIGxhbmd1YWdlIGJpYmxlXG4gKiBAcGFyYW0gcmVzb3VyY2VJZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPcmlnaW5hbEJpYmxlKHJlc291cmNlSWQpIHtcbiAgY29uc3QgaXNPcmlnID0gKChyZXNvdXJjZUlkID09PSBOVF9PUklHX0xBTkdfQklCTEUpIHx8IChyZXNvdXJjZUlkID09PSBPVF9PUklHX0xBTkdfQklCTEUpIHx8IChyZXNvdXJjZUlkID09PSBPUklHSU5BTF9TT1VSQ0UpKVxuICByZXR1cm4gaXNPcmlnXG59XG5cbi8qKlxuICogbWFrZSBzdXJlIHNjcmlwdHVyZVNldHRpbmdzIGFyZSB1cCB0byBkYXRlIHdpdGggY3VycmVudCBvd25lciBhbmQgbGFuZ3VhZ2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY3JpcHR1cmVTZXR0aW5nc1xuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRPd25lciAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgb3duZXIgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudExhbmd1YWdlSWQgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIGxhbmd1YWdlIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5nczogYW55LCBjdXJyZW50T3duZXI6IGFueSwgY3VycmVudExhbmd1YWdlSWQ6IGFueSkge1xuICBpZiAoY3VycmVudE93bmVyICYmIChjdXJyZW50T3duZXIgIT09IHNjcmlwdHVyZVNldHRpbmdzLm93bmVyKSkgeyAvLyBpZiBvd25lciBjaGFuZ2VkLCB1cGRhdGUgc2NyaXB0dXJlU2V0dGluZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5vd25lciA9IGN1cnJlbnRPd25lclxuICB9XG5cbiAgaWYgKGN1cnJlbnRMYW5ndWFnZUlkICYmIChjdXJyZW50TGFuZ3VhZ2VJZCAhPT0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCkpIHsgLy8gaWYgbGFuZ3VhZ2UgY2hhbmdlZCwgdXBkYXRlIHNjcmlwdHVyZVNldHRpbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9IGN1cnJlbnRMYW5ndWFnZUlkXG4gIH1cbn1cblxuLyoqXG4gKiBzZXBhcmF0ZSBVUkwgaW50byBzZXJ2ZXIgYW5kIHJlc291cmNlIGxpbmtcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5hbFJlcG9VcmxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0VXJsKG9yaWdpbmFsUmVwb1VybCkge1xuICBpZiAob3JpZ2luYWxSZXBvVXJsKSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChvcmlnaW5hbFJlcG9VcmwpXG4gICAgY29uc3Qgc2VydmVyID0gdXJsLm9yaWdpblxuICAgIGNvbnN0IHJlc291cmNlTGluayA9IHVybC5wYXRobmFtZSArICh1cmwuc2VhcmNoIHx8ICcnKVxuICAgIHJldHVybiB7IHNlcnZlciwgcmVzb3VyY2VMaW5rIH1cbiAgfVxuICByZXR1cm4ge31cbn1cblxuLyoqXG4gKiBnZXQgdGhlIHNjcmlwdHVyZSBzZXR0aW5ncyBuZWVkZWQgZm9yIGZldGNoIC0gZm9yIE9yaWdMYW5nLCBVTFQsIEdMVCB3aWxsIHJlcGxhY2Ugb3duZXIgYW5kIGxhbmd1YWdlSWQgd2l0aCBjb3JyZWN0IHZhbHVlc1xuICogQHBhcmFtIHtzdHJpbmd9IGJvb2tJZFxuICogQHBhcmFtIHtvYmplY3R9IHNjcmlwdHVyZVNldHRpbmdzX1xuICogQHBhcmFtIHtib29sZWFufSBpc05ld1Rlc3RhbWVudFxuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsUmVwb1VybCAtIG9wdGlvbmFsIHBhdGggdG8gcmVwbyBmb3Igb3JpZ2luYWwgbGFuZ3VhZ2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50TGFuZ3VhZ2VJZCAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgbGFuZ3VhZ2UgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudE93bmVyIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBvd25lciBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MoYm9va0lkLCBzY3JpcHR1cmVTZXR0aW5nc18sIGlzTmV3VGVzdGFtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxSZXBvVXJsPW51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TGFuZ3VhZ2VJZD1udWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE93bmVyPW51bGwsXG4pIHtcbiAgY29uc3Qgc2NyaXB0dXJlU2V0dGluZ3MgPSB7IC4uLnNjcmlwdHVyZVNldHRpbmdzXyB9XG4gIHNjcmlwdHVyZVNldHRpbmdzLmRpc2FibGVXb3JkUG9wb3ZlciA9IERJU0FCTEVfV09SRF9QT1BPVkVSXG4gIGNvbnN0IHJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5nc18ucmVzb3VyY2VJZFxuXG4gIGlmIChyZXNvdXJjZUlkID09PSBPUklHSU5BTF9TT1VSQ0UpIHtcbiAgICAvLyBzZWxlY3Qgb3JpZ2luYWwgbGFuZ3VhZ2UgQmlibGUgYmFzZWQgb24gd2hpY2ggdGVzdGFtZW50IHRoZSBib29rIGJlbG9uZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID0gaXNOZXdUZXN0YW1lbnQgPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gaXNOZXdUZXN0YW1lbnRcbiAgICAgID8gTlRfT1JJR19MQU5HX0JJQkxFXG4gICAgICA6IE9UX09SSUdfTEFOR19CSUJMRVxuXG4gICAgaWYgKHNjcmlwdHVyZVNldHRpbmdzLm9yaWdpbmFsTGFuZ3VhZ2VPd25lcikge1xuICAgICAgc2NyaXB0dXJlU2V0dGluZ3Mub3duZXIgPSBzY3JpcHR1cmVTZXR0aW5ncy5vcmlnaW5hbExhbmd1YWdlT3duZXJcbiAgICB9XG5cbiAgICBpZiAob3JpZ2luYWxSZXBvVXJsKSB7IC8vIHVzZSB0aGlzIHVybCBpZiBkZWZpbmVkXG4gICAgICBjb25zdCB7IHNlcnZlciwgcmVzb3VyY2VMaW5rIH0gPSBzcGxpdFVybChvcmlnaW5hbFJlcG9VcmwpXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5zZXJ2ZXIgPSBzZXJ2ZXJcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IHJlc291cmNlTGlua1xuICAgIH0gZWxzZSB7IC8vIGZhbGwgYmFjayB0byBhcHAgZGVmYXVsdHNcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgICB9XG4gICAgc2NyaXB0dXJlU2V0dGluZ3MuZGlzYWJsZVdvcmRQb3BvdmVyID0gZmFsc2VcbiAgfSBlbHNlIGlmIChyZXNvdXJjZUlkID09PSBUQVJHRVRfTElURVJBTCkge1xuICAgIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3MsIGN1cnJlbnRPd25lciwgY3VycmVudExhbmd1YWdlSWQpXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPT09ICdlbicgPyAndWx0JyA6ICdnbHQnXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICB9IGVsc2UgaWYgKHJlc291cmNlSWQgPT09IFRBUkdFVF9TSU1QTElGSUVEKSB7XG4gICAgY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5ncywgY3VycmVudE93bmVyLCBjdXJyZW50TGFuZ3VhZ2VJZClcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9PT0gJ2VuJyA/ICd1c3QnIDogJ2dzdCdcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVNldHRpbmdzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3Moe1xuICBsYWJlbCxcbiAgcmVzb3VyY2VMaW5rLFxuICBzZXRTY3JpcHR1cmUsXG4gIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxufSkge1xuICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgbGV0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICdyZXNvdXJjZUxpbmsnLCByZXNvdXJjZUxpbmspXG5cbiAgY29uc3Qgc2NyaXB0dXJlU2VsZWN0b3JDb25maWcgPSB7XG4gICAgbGFiZWwsIC8vIGxhYmVsIGZvciBjb21ib2JveFxuICAgIG9wdGlvbnM6IGhpc3RvcnksXG4gICAgY3VycmVudDogaW5kZXgsXG4gICAgYWxsb3dVc2VySW5wdXQ6IHRydWUsXG4gICAgb25DaGFuZ2U6ICh0aXRsZSwgaW5kZXgsIHZhbGlkYXRpb25DQj1udWxsKSA9PiB7XG4gICAgICBsZXQgaXRlbVxuXG4gICAgICBpZiAoKGluZGV4IDwgMCkgJiYgdGl0bGUpIHtcbiAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcbiAgICAgICAgICB1cmw6IHRpdGxlLFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuYWRkSXRlbVRvSGlzdG9yeShuZXdJdGVtKVxuXG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgaXRlbSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpW2luZGV4XVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0SXRlbUJ5VGl0bGUodGl0bGUpXG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIHNldFNjcmlwdHVyZShpdGVtLCB2YWxpZGF0aW9uQ0IpXG4gICAgICB9XG4gICAgfSxcbiAgICBkZWxldGVJdGVtOiB0aXRsZSA9PiB7XG4gICAgICBjb25zdCBoaXN0b3J5ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZ2V0TGF0ZXN0KClcbiAgICAgIGNvbnN0IGRlbGV0ZUluZGV4ID0gc2NyaXB0dXJlVmVyc2lvbkhpc3QuZmluZEl0ZW1JbmRleEJ5S2V5KGhpc3RvcnksICd0aXRsZScsIHRpdGxlKVxuICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QucmVtb3ZlSXRlbUJ5SW5kZXgoZGVsZXRlSW5kZXgpXG4gICAgfSxcbiAgfVxuXG4gIHJldHVybiBzY3JpcHR1cmVTZWxlY3RvckNvbmZpZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVwb1VybChyZXNvdXJjZUxpbms6IHN0cmluZywgc2VydmVyOiBzdHJpbmcsIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBsZXQgcmVwb1VybFxuXG4gIHRyeSB7XG4gICAgbGV0IFtvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZF0gPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuXG4gICAgc3dpdGNoIChyZXNvdXJjZUlkKSB7XG4gICAgY2FzZSBPUklHSU5BTF9TT1VSQ0U6XG4gICAgICBsYW5ndWFnZUlkID0gaXNOVCA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFOR1xuICAgICAgcmVzb3VyY2VJZCA9IGlzTlRcbiAgICAgICAgPyBOVF9PUklHX0xBTkdfQklCTEVcbiAgICAgICAgOiBPVF9PUklHX0xBTkdfQklCTEVcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9MSVRFUkFMOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1bHQnIDogJ2dsdCdcbiAgICAgIGJyZWFrXG5cbiAgICBjYXNlIFRBUkdFVF9TSU1QTElGSUVEOlxuICAgICAgcmVzb3VyY2VJZCA9IChsYW5ndWFnZUlkID09PSAnZW4nKSA/ICd1c3QnIDogJ2dzdCdcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIHJlcG9VcmwgPSBgJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Jlc291cmNlSWR9YFxuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gcmVzb3VyY2VMaW5rIHdhcyBpbnZhbGlkXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBgJHtzZXJ2ZXIgfHwgJyd9LyR7cmVwb1VybH1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvck1lc3NhZ2VGb3JSZXNvdXJjZUxpbmsoXG4gIHJlc291cmNlTGluazogc3RyaW5nLFxuICBzZXJ2ZXI6IHN0cmluZyxcbiAgZXJyb3JDb2RlOiBzdHJpbmcsXG4gIGlzTlQ6IGJvb2xlYW4pOiBzdHJpbmdcbntcbiAgY29uc3QgcmVwb1VybCA9IGdldFJlcG9VcmwocmVzb3VyY2VMaW5rLCBzZXJ2ZXIsIGlzTlQpXG4gIGNvbnN0IGVycm9yTXNnID0gZXJyb3JDb2RlICsgcmVwb1VybFxuICByZXR1cm4gZXJyb3JNc2dcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGNzVXJsKHVybCkge1xuICBsZXQgdmFsaWRSZXBvUGF0aCA9IGZhbHNlXG4gIGxldCB2YWxpZFVybCA9IGZhbHNlXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJ0cyA9IHVybC5zcGxpdCgnLycpXG4gICAgY29uc3QgW3Byb3RvY29sLCAsIGhvc3QsIHVzZXIsIHJlcG9dID0gcGFydHNcbiAgICB2YWxpZFVybCA9IChwcm90b2NvbCA9PT0gJ2h0dHBzOicpXG4gICAgY29uc3QgaG9zdFBhcnRzID0gaG9zdCA/IGhvc3Quc3BsaXQoJy4nKSA6IFtdXG5cbiAgICBpZiAoaG9zdFBhcnRzLmxlbmd0aCA+PSAyKSB7XG4gICAgICBmb3IgKGxldCBwYXJ0IG9mIGhvc3RQYXJ0cykge1xuICAgICAgICBpZiAoIXBhcnQpIHtcbiAgICAgICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YWxpZFVybCA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKCBwcm90b2NvbCAmJiBob3N0ICYmIHVzZXIgJiYgcmVwbyApIHtcbiAgICAgIGNvbnN0IFtsYW5ndWFnZUlkLCBwcm9qZWN0SWRdID0gcmVwby5zcGxpdCgnXycpXG4gICAgICB2YWxpZFJlcG9QYXRoID0gbGFuZ3VhZ2VJZCAmJiBwcm9qZWN0SWRcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIGNvbnNvbGUubG9nKCdJbnZhbGlkIERDUyBVUkw6ICcgKyB1cmwpXG4gIH1cbiAgcmV0dXJuIHsgdmFsaWRVcmwsIHZhbGlkUmVwb1BhdGggfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCkge1xuICBsZXQgbWVzc2FnZSA9ICcnXG5cbiAgaWYgKHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IE1BTklGRVNUX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tJTlZBTElEX01BTklGRVNUX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBNQU5JRkVTVF9JTlZBTElEX0VSUk9SX01TR1xuICB9IGVsc2UgaWYgKHJlc291cmNlU3RhdHVzW0NPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBCT09LX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0dcbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGRlY29kZSByZXNvdXJjZSBzdGF0dXMgaW50byBzdHJpbmcuICBDdXJyZW50bHkgb25seSBFbmdsaXNoXG4gKiBAcGFyYW0gcmVzb3VyY2VTdGF0dXMgLSBvYmplY3QgdGhhdCBjb250YWlucyBzdGF0ZSBhbmQgZXJyb3JzIHRoYXQgYXJlIGRldGVjdGVkXG4gKiBAcGFyYW0gc2VydmVyIC0gY29udGFpbnMgdGhlIHNlcnZlciBiZWluZyB1c2VkXG4gKiBAcGFyYW0gcmVzb3VyY2VMaW5rIC0gcGF0aCB0byByZXBvIG9uIHNlcnZlclxuICogQHBhcmFtIGlzTlQgLSB0cnVlIGlmIE5UIGJvb2tcbiAqIEByZXR1cm4gZW1wdHkgc3RyaW5nIGlmIG5vIGVycm9yLCBlbHNlIHJldHVybnMgdXNlciBlcnJvciBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXM6IG9iamVjdCwgc2VydmVyOiBzdHJpbmcsIHJlc291cmNlTGluazogc3RyaW5nLCBpc05UOiBib29sZWFuKSB7XG4gIGxldCBtZXNzYWdlID0gJydcblxuICBpZiAocmVzb3VyY2VTdGF0dXNbTE9BRElOR19TVEFURV0pIHtcbiAgICBtZXNzYWdlID0gTE9BRElOR19SRVNPVVJDRVxuICB9IGVsc2Uge1xuICAgIG1lc3NhZ2UgPSBnZXRSZXNvdXJjZUVycm9yTWVzc2FnZShyZXNvdXJjZVN0YXR1cylcblxuICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICBtZXNzYWdlID0gZ2V0RXJyb3JNZXNzYWdlRm9yUmVzb3VyY2VMaW5rKHJlc291cmNlTGluaywgc2VydmVyLCBtZXNzYWdlLCBpc05UKVxuICAgIH1cbiAgfVxuICByZXR1cm4gbWVzc2FnZVxufVxuXG4vKipcbiAqIGdlbmVyYXRlIHJlc291cmNlIHN0cmluZ1xuICogQHBhcmFtIG93bmVyXG4gKiBAcGFyYW0gbGFuZ3VhZ2VJZFxuICogQHBhcmFtIHByb2plY3RJZFxuICogQHBhcmFtIHJlZlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VMaW5rU3BlY2lmaWMob3duZXI6IHN0cmluZywgbGFuZ3VhZ2VJZDogc3RyaW5nLCBwcm9qZWN0SWQ6IHN0cmluZywgcmVmOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGBhcGkvdjEvcmVwb3MvJHtvd25lcn0vJHtsYW5ndWFnZUlkfV8ke3Byb2plY3RJZH0vY29udGVudHM/cmVmPSR7cmVmfWBcbn1cblxuIl19
|
|
359
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9TY3JpcHR1cmVTZXR0aW5ncy50cyJdLCJuYW1lcyI6WyJDT05URU5UX05PVF9GT1VORF9FUlJPUiIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwiQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHIiwiTE9BRElOR19SRVNPVVJDRSIsIk1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHIiwiTUFOSUZFU1RfTk9UX0ZPVU5EX0VSUk9SX01TRyIsIk5UX09SSUdfTEFORyIsIk5UX09SSUdfTEFOR19CSUJMRSIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsIk9UX09SSUdfTEFOR19CSUJMRSIsIlNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHIiwiVEFSR0VUX0xJVEVSQUwiLCJUQVJHRVRfU0lNUExJRklFRCIsIkRJU0FCTEVfV09SRF9QT1BPVkVSIiwiZ2V0UmVzb3VyY2VMaW5rIiwic2NyaXB0dXJlIiwicmVmIiwiYnJhbmNoIiwib3duZXIiLCJsYW5ndWFnZUlkIiwicmVzb3VyY2VJZCIsImdldFNjcmlwdHVyZU9iamVjdCIsInRpdGxlIiwic2VydmVyIiwicmVzb3VyY2VMaW5rIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwiaXNPcmlnaW5hbEJpYmxlIiwiaXNPcmlnIiwiY2xlYW51cEFjY291bnRTZXR0aW5ncyIsInNjcmlwdHVyZVNldHRpbmdzIiwiY3VycmVudE93bmVyIiwiY3VycmVudExhbmd1YWdlSWQiLCJzcGxpdFVybCIsIm9yaWdpbmFsUmVwb1VybCIsInVybCIsIlVSTCIsIm9yaWdpbiIsInBhdGhuYW1lIiwic2VhcmNoIiwiZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyIsImJvb2tJZCIsInNjcmlwdHVyZVNldHRpbmdzXyIsImlzTmV3VGVzdGFtZW50IiwiZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzIiwibGFiZWwiLCJzZXRTY3JpcHR1cmUiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImhpc3RvcnkiLCJnZXRMYXRlc3QiLCJpbmRleCIsImZpbmRJdGVtSW5kZXhCeUtleSIsInNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnIiwib3B0aW9ucyIsImN1cnJlbnQiLCJhbGxvd1VzZXJJbnB1dCIsIm9uQ2hhbmdlIiwidmFsaWRhdGlvbkNCIiwiaXRlbSIsIm5ld0l0ZW0iLCJhZGRJdGVtVG9IaXN0b3J5IiwiZ2V0SXRlbUJ5VGl0bGUiLCJkZWxldGVJdGVtIiwiZGVsZXRlSW5kZXgiLCJyZW1vdmVJdGVtQnlJbmRleCIsImdldFJlcG9VcmwiLCJpc05UIiwicmVwb1VybCIsInNwbGl0IiwiZSIsImdldEVycm9yTWVzc2FnZUZvclJlc291cmNlTGluayIsImVycm9yQ29kZSIsImVycm9yTXNnIiwidmFsaWRhdGVEY3NVcmwiLCJ2YWxpZFJlcG9QYXRoIiwidmFsaWRVcmwiLCJwYXJ0cyIsInByb3RvY29sIiwiaG9zdCIsInVzZXIiLCJyZXBvIiwiaG9zdFBhcnRzIiwibGVuZ3RoIiwicGFydCIsInByb2plY3RJZCIsImNvbnNvbGUiLCJsb2ciLCJnZXRSZXNvdXJjZUVycm9yTWVzc2FnZSIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImdldFJlc291cmNlTWVzc2FnZSIsImdldFJlc291cmNlTGlua1NwZWNpZmljIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FDRUEsdUJBREYsRUFFRUMsc0JBRkYsRUFHRUMsYUFIRixFQUlFQyx5QkFKRixFQUtFQywwQkFMRixRQU1PLHVCQU5QO0FBT0EsU0FDRUMsd0JBREYsRUFFRUMsZ0JBRkYsRUFHRUMsMEJBSEYsRUFJRUMsNEJBSkYsRUFLRUMsWUFMRixFQU1FQyxrQkFORixFQU9FQyxlQVBGLEVBUUVDLFlBUkYsRUFTRUMsa0JBVEYs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QUFPLEdBQUd2RixnQkFBVjtBQUNELEdBRkQsTUFFTztBQUNMdUYsSUFBQUEsT0FBTyxHQUFHRix1QkFBdUIsQ0FBQ0MsY0FBRCxDQUFqQzs7QUFFQSxRQUFJQyxPQUFKLEVBQWE7QUFDWEEsTUFBQUEsT0FBTyxHQUFHbkIsOEJBQThCLENBQUM5QyxZQUFELEVBQWVELE1BQWYsRUFBdUJrRSxPQUF2QixFQUFnQ3ZCLElBQWhDLENBQXhDO0FBQ0Q7QUFDRjs7QUFDRCxTQUFPdUIsT0FBUDtBQUNEO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxTQUFTRSx1QkFBVCxDQUFpQ3pFLEtBQWpDLEVBQWdEQyxVQUFoRCxFQUFvRWlFLFNBQXBFLEVBQXVGcEUsR0FBdkYsRUFBb0c7QUFDekcsZ0NBQXVCRSxLQUF2QixjQUFnQ0MsVUFBaEMsY0FBOENpRSxTQUE5QywyQkFBd0VwRSxHQUF4RTtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ09OVEVOVF9OT1RfRk9VTkRfRVJST1IsXG4gIElOVkFMSURfTUFOSUZFU1RfRVJST1IsXG4gIExPQURJTkdfU1RBVEUsXG4gIE1BTklGRVNUX05PVF9MT0FERURfRVJST1IsXG4gIFNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQge1xuICBCT09LX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIExPQURJTkdfUkVTT1VSQ0UsXG4gIE1BTklGRVNUX0lOVkFMSURfRVJST1JfTVNHLFxuICBNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHLFxuICBOVF9PUklHX0xBTkcsXG4gIE5UX09SSUdfTEFOR19CSUJMRSxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkcsXG4gIE9UX09SSUdfTEFOR19CSUJMRSxcbiAgU0NSSVBUVVJFX05PVF9GT1VORF9FUlJPUl9NU0csXG4gIFRBUkdFVF9MSVRFUkFMLFxuICBUQVJHRVRfU0lNUExJRklFRCxcbn0gZnJvbSAnLi9jb21tb24nXG5cbmV4cG9ydCBjb25zdCBESVNBQkxFX1dPUkRfUE9QT1ZFUiA9IHRydWUgLy8gZGlzYWJsZSB3b3JkIHBvcG92ZXIgZm9yIGV2ZXJ5IHNjcmlwdHVyZSBwYW5lIGJ1dCBvcmlnaW5hbCBsYW5ndWFnZXNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGluayhzY3JpcHR1cmUpIHtcbiAgY29uc3QgcmVmID0gc2NyaXB0dXJlLnJlZiB8fCBzY3JpcHR1cmUuYnJhbmNoXG4gIHJldHVybiBgJHtzY3JpcHR1cmUub3duZXJ9LyR7c2NyaXB0dXJlLmxhbmd1YWdlSWR9LyR7c2NyaXB0dXJlLnJlc291cmNlSWR9LyR7cmVmfWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZU9iamVjdCh7XG4gIHRpdGxlLFxuICBzZXJ2ZXIsXG4gIG93bmVyLFxuICByZWYsXG4gIGxhbmd1YWdlSWQsXG4gIHJlc291cmNlSWQsXG4gIHJlc291cmNlTGluayxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG59KSB7XG4gIGNvbnN0IHNjcmlwdHVyZSA9IHtcbiAgICB0aXRsZSxcbiAgICBzZXJ2ZXIsXG4gICAgb3duZXIsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHJlZixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICAgIHJlc291cmNlTGluayxcbiAgfVxuXG4gIGlmICghcmVzb3VyY2VMaW5rKSB7XG4gICAgc2NyaXB0dXJlLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayh7XG4gICAgICBvd25lcixcbiAgICAgIHJlZixcbiAgICAgIGxhbmd1YWdlSWQsXG4gICAgICByZXNvdXJjZUlkLFxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIHNjcmlwdHVyZVxufVxuXG4vKipcbiAqIHJldHVybiB0cnVlIGlmIHJlc291cmNlIGlzIGFuIG9yaWdpbmFsIGxhbmd1YWdlIGJpYmxlXG4gKiBAcGFyYW0gcmVzb3VyY2VJZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPcmlnaW5hbEJpYmxlKHJlc291cmNlSWQpIHtcbiAgY29uc3QgaXNPcmlnID0gKChyZXNvdXJjZUlkID09PSBOVF9PUklHX0xBTkdfQklCTEUpIHx8IChyZXNvdXJjZUlkID09PSBPVF9PUklHX0xBTkdfQklCTEUpIHx8IChyZXNvdXJjZUlkID09PSBPUklHSU5BTF9TT1VSQ0UpKVxuICByZXR1cm4gaXNPcmlnXG59XG5cbi8qKlxuICogbWFrZSBzdXJlIHNjcmlwdHVyZVNldHRpbmdzIGFyZSB1cCB0byBkYXRlIHdpdGggY3VycmVudCBvd25lciBhbmQgbGFuZ3VhZ2VcbiAqIEBwYXJhbSB7b2JqZWN0fSBzY3JpcHR1cmVTZXR0aW5nc1xuICogQHBhcmFtIHtzdHJpbmd9IGN1cnJlbnRPd25lciAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgb3duZXIgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudExhbmd1YWdlSWQgLSBvcHRpb25hbCBvdmVyLXJpZGUgZm9yIHRyYW5zaWVudCBjYXNlIHdoZXJlIGxhbmd1YWdlIGluIHNjcmlwdHVyZSBzZXR0aW5ncyBoYXZlIG5vdCB5ZXQgdXBkYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYW51cEFjY291bnRTZXR0aW5ncyhzY3JpcHR1cmVTZXR0aW5nczogYW55LCBjdXJyZW50T3duZXI6IGFueSwgY3VycmVudExhbmd1YWdlSWQ6IGFueSkge1xuICBpZiAoY3VycmVudE93bmVyICYmIChjdXJyZW50T3duZXIgIT09IHNjcmlwdHVyZVNldHRpbmdzLm93bmVyKSkgeyAvLyBpZiBvd25lciBjaGFuZ2VkLCB1cGRhdGUgc2NyaXB0dXJlU2V0dGluZ3NcbiAgICBzY3JpcHR1cmVTZXR0aW5ncy5vd25lciA9IGN1cnJlbnRPd25lclxuICB9XG5cbiAgaWYgKGN1cnJlbnRMYW5ndWFnZUlkICYmIChjdXJyZW50TGFuZ3VhZ2VJZCAhPT0gc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCkpIHsgLy8gaWYgbGFuZ3VhZ2UgY2hhbmdlZCwgdXBkYXRlIHNjcmlwdHVyZVNldHRpbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9IGN1cnJlbnRMYW5ndWFnZUlkXG4gIH1cbn1cblxuLyoqXG4gKiBzZXBhcmF0ZSBVUkwgaW50byBzZXJ2ZXIgYW5kIHJlc291cmNlIGxpbmtcbiAqIEBwYXJhbSB7c3RyaW5nfSBvcmlnaW5hbFJlcG9VcmxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0VXJsKG9yaWdpbmFsUmVwb1VybCkge1xuICBpZiAob3JpZ2luYWxSZXBvVXJsKSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTChvcmlnaW5hbFJlcG9VcmwpXG4gICAgY29uc3Qgc2VydmVyID0gdXJsLm9yaWdpblxuICAgIGNvbnN0IHJlc291cmNlTGluayA9IHVybC5wYXRobmFtZSArICh1cmwuc2VhcmNoIHx8ICcnKVxuICAgIHJldHVybiB7IHNlcnZlciwgcmVzb3VyY2VMaW5rIH1cbiAgfVxuICByZXR1cm4ge31cbn1cblxuLyoqXG4gKiBnZXQgdGhlIHNjcmlwdHVyZSBzZXR0aW5ncyBuZWVkZWQgZm9yIGZldGNoIC0gZm9yIE9yaWdMYW5nLCBVTFQsIEdMVCB3aWxsIHJlcGxhY2Ugb3duZXIgYW5kIGxhbmd1YWdlSWQgd2l0aCBjb3JyZWN0IHZhbHVlc1xuICogQHBhcmFtIHtzdHJpbmd9IGJvb2tJZFxuICogQHBhcmFtIHtvYmplY3R9IHNjcmlwdHVyZVNldHRpbmdzX1xuICogQHBhcmFtIHtib29sZWFufSBpc05ld1Rlc3RhbWVudFxuICogQHBhcmFtIHtzdHJpbmd9IG9yaWdpbmFsUmVwb1VybCAtIG9wdGlvbmFsIHBhdGggdG8gcmVwbyBmb3Igb3JpZ2luYWwgbGFuZ3VhZ2VcbiAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW50TGFuZ3VhZ2VJZCAtIG9wdGlvbmFsIG92ZXItcmlkZSBmb3IgdHJhbnNpZW50IGNhc2Ugd2hlcmUgbGFuZ3VhZ2UgaW4gc2NyaXB0dXJlIHNldHRpbmdzIGhhdmUgbm90IHlldCB1cGRhdGVkXG4gKiBAcGFyYW0ge3N0cmluZ30gY3VycmVudE93bmVyIC0gb3B0aW9uYWwgb3Zlci1yaWRlIGZvciB0cmFuc2llbnQgY2FzZSB3aGVyZSBvd25lciBpbiBzY3JpcHR1cmUgc2V0dGluZ3MgaGF2ZSBub3QgeWV0IHVwZGF0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MoXG4gIGJvb2tJZCwgc2NyaXB0dXJlU2V0dGluZ3NfLCBpc05ld1Rlc3RhbWVudCxcbiAgb3JpZ2luYWxSZXBvVXJsPW51bGwsXG4gIGN1cnJlbnRMYW5ndWFnZUlkPW51bGwsXG4gIGN1cnJlbnRPd25lcj1udWxsLFxuKSB7XG4gIGNvbnN0IHNjcmlwdHVyZVNldHRpbmdzID0geyAuLi5zY3JpcHR1cmVTZXR0aW5nc18gfVxuICBzY3JpcHR1cmVTZXR0aW5ncy5kaXNhYmxlV29yZFBvcG92ZXIgPSBESVNBQkxFX1dPUkRfUE9QT1ZFUlxuICBjb25zdCByZXNvdXJjZUlkID0gc2NyaXB0dXJlU2V0dGluZ3NfLnJlc291cmNlSWRcblxuICBpZiAocmVzb3VyY2VJZCA9PT0gT1JJR0lOQUxfU09VUkNFKSB7XG4gICAgLy8gc2VsZWN0IG9yaWdpbmFsIGxhbmd1YWdlIEJpYmxlIGJhc2VkIG9uIHdoaWNoIHRlc3RhbWVudCB0aGUgYm9vayBiZWxvbmdzXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MubGFuZ3VhZ2VJZCA9IGlzTmV3VGVzdGFtZW50ID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IGlzTmV3VGVzdGFtZW50XG4gICAgICA/IE5UX09SSUdfTEFOR19CSUJMRVxuICAgICAgOiBPVF9PUklHX0xBTkdfQklCTEVcblxuICAgIGlmIChzY3JpcHR1cmVTZXR0aW5ncy5vcmlnaW5hbExhbmd1YWdlT3duZXIpIHtcbiAgICAgIHNjcmlwdHVyZVNldHRpbmdzLm93bmVyID0gc2NyaXB0dXJlU2V0dGluZ3Mub3JpZ2luYWxMYW5ndWFnZU93bmVyXG4gICAgfVxuXG4gICAgaWYgKG9yaWdpbmFsUmVwb1VybCkgeyAvLyB1c2UgdGhpcyB1cmwgaWYgZGVmaW5lZFxuICAgICAgY29uc3QgeyBzZXJ2ZXIsIHJlc291cmNlTGluayB9ID0gc3BsaXRVcmwob3JpZ2luYWxSZXBvVXJsKVxuICAgICAgc2NyaXB0dXJlU2V0dGluZ3Muc2VydmVyID0gc2VydmVyXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSByZXNvdXJjZUxpbmtcbiAgICB9IGVsc2UgeyAvLyBmYWxsIGJhY2sgdG8gYXBwIGRlZmF1bHRzXG4gICAgICBzY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlU2V0dGluZ3MpXG4gICAgfVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLmRpc2FibGVXb3JkUG9wb3ZlciA9IGZhbHNlXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VJZCA9PT0gVEFSR0VUX0xJVEVSQUwpIHtcbiAgICBjbGVhbnVwQWNjb3VudFNldHRpbmdzKHNjcmlwdHVyZVNldHRpbmdzLCBjdXJyZW50T3duZXIsIGN1cnJlbnRMYW5ndWFnZUlkKVxuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlSWQgPSBzY3JpcHR1cmVTZXR0aW5ncy5sYW5ndWFnZUlkID09PSAnZW4nID8gJ3VsdCcgOiAnZ2x0J1xuICAgIHNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVTZXR0aW5ncylcbiAgfSBlbHNlIGlmIChyZXNvdXJjZUlkID09PSBUQVJHRVRfU0lNUExJRklFRCkge1xuICAgIGNsZWFudXBBY2NvdW50U2V0dGluZ3Moc2NyaXB0dXJlU2V0dGluZ3MsIGN1cnJlbnRPd25lciwgY3VycmVudExhbmd1YWdlSWQpXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VJZCA9IHNjcmlwdHVyZVNldHRpbmdzLmxhbmd1YWdlSWQgPT09ICdlbicgPyAndXN0JyA6ICdnc3QnXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MucmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZVNldHRpbmdzKVxuICB9XG4gIHJldHVybiBzY3JpcHR1cmVTZXR0aW5nc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzKHtcbiAgbGFiZWwsXG4gIHJlc291cmNlTGluayxcbiAgc2V0U2NyaXB0dXJlLFxuICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbn0pIHtcbiAgY29uc3QgaGlzdG9yeSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpXG4gIGxldCBpbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmZpbmRJdGVtSW5kZXhCeUtleShoaXN0b3J5LCAncmVzb3VyY2VMaW5rJywgcmVzb3VyY2VMaW5rKVxuXG4gIGNvbnN0IHNjcmlwdHVyZVNlbGVjdG9yQ29uZmlnID0ge1xuICAgIGxhYmVsLCAvLyBsYWJlbCBmb3IgY29tYm9ib3hcbiAgICBvcHRpb25zOiBoaXN0b3J5LFxuICAgIGN1cnJlbnQ6IGluZGV4LFxuICAgIGFsbG93VXNlcklucHV0OiB0cnVlLFxuICAgIG9uQ2hhbmdlOiAodGl0bGUsIGluZGV4LCB2YWxpZGF0aW9uQ0I9bnVsbCkgPT4ge1xuICAgICAgbGV0IGl0ZW1cblxuICAgICAgaWYgKChpbmRleCA8IDApICYmIHRpdGxlKSB7XG4gICAgICAgIGNvbnN0IG5ld0l0ZW0gPSB7XG4gICAgICAgICAgdXJsOiB0aXRsZSxcbiAgICAgICAgICB0aXRsZSxcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmFkZEl0ZW1Ub0hpc3RvcnkobmV3SXRlbSlcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgIGl0ZW0gPSBzY3JpcHR1cmVWZXJzaW9uSGlzdC5nZXRMYXRlc3QoKVtpbmRleF1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldEl0ZW1CeVRpdGxlKHRpdGxlKVxuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBzZXRTY3JpcHR1cmUoaXRlbSwgdmFsaWRhdGlvbkNCKVxuICAgICAgfVxuICAgIH0sXG4gICAgZGVsZXRlSXRlbTogdGl0bGUgPT4ge1xuICAgICAgY29uc3QgaGlzdG9yeSA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmdldExhdGVzdCgpXG4gICAgICBjb25zdCBkZWxldGVJbmRleCA9IHNjcmlwdHVyZVZlcnNpb25IaXN0LmZpbmRJdGVtSW5kZXhCeUtleShoaXN0b3J5LCAndGl0bGUnLCB0aXRsZSlcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnJlbW92ZUl0ZW1CeUluZGV4KGRlbGV0ZUluZGV4KVxuICAgIH0sXG4gIH1cblxuICByZXR1cm4gc2NyaXB0dXJlU2VsZWN0b3JDb25maWdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlcG9VcmwocmVzb3VyY2VMaW5rOiBzdHJpbmcsIHNlcnZlcjogc3RyaW5nLCBpc05UOiBib29sZWFuKTogc3RyaW5nIHtcbiAgbGV0IHJlcG9VcmxcblxuICB0cnkge1xuICAgIGxldCBbb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWRdID0gcmVzb3VyY2VMaW5rLnNwbGl0KCcvJylcblxuICAgIHN3aXRjaCAocmVzb3VyY2VJZCkge1xuICAgIGNhc2UgT1JJR0lOQUxfU09VUkNFOlxuICAgICAgbGFuZ3VhZ2VJZCA9IGlzTlQgPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkdcbiAgICAgIHJlc291cmNlSWQgPSBpc05UXG4gICAgICAgID8gTlRfT1JJR19MQU5HX0JJQkxFXG4gICAgICAgIDogT1RfT1JJR19MQU5HX0JJQkxFXG4gICAgICBicmVha1xuXG4gICAgY2FzZSBUQVJHRVRfTElURVJBTDpcbiAgICAgIHJlc291cmNlSWQgPSAobGFuZ3VhZ2VJZCA9PT0gJ2VuJykgPyAndWx0JyA6ICdnbHQnXG4gICAgICBicmVha1xuXG4gICAgY2FzZSBUQVJHRVRfU0lNUExJRklFRDpcbiAgICAgIHJlc291cmNlSWQgPSAobGFuZ3VhZ2VJZCA9PT0gJ2VuJykgPyAndXN0JyA6ICdnc3QnXG4gICAgICBicmVha1xuICAgIH1cbiAgICByZXBvVXJsID0gYCR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH1fJHtyZXNvdXJjZUlkfWBcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIHJlc291cmNlTGluayB3YXMgaW52YWxpZFxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gYCR7c2VydmVyIHx8ICcnfS8ke3JlcG9Vcmx9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JNZXNzYWdlRm9yUmVzb3VyY2VMaW5rKFxuICByZXNvdXJjZUxpbms6IHN0cmluZyxcbiAgc2VydmVyOiBzdHJpbmcsXG4gIGVycm9yQ29kZTogc3RyaW5nLFxuICBpc05UOiBib29sZWFuKTogc3RyaW5nXG57XG4gIGNvbnN0IHJlcG9VcmwgPSBnZXRSZXBvVXJsKHJlc291cmNlTGluaywgc2VydmVyLCBpc05UKVxuICBjb25zdCBlcnJvck1zZyA9IGVycm9yQ29kZSArIHJlcG9VcmxcbiAgcmV0dXJuIGVycm9yTXNnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZURjc1VybCh1cmwpIHtcbiAgbGV0IHZhbGlkUmVwb1BhdGggPSBmYWxzZVxuICBsZXQgdmFsaWRVcmwgPSBmYWxzZVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcGFydHMgPSB1cmwuc3BsaXQoJy8nKVxuICAgIGNvbnN0IFtwcm90b2NvbCwgLCBob3N0LCB1c2VyLCByZXBvXSA9IHBhcnRzXG4gICAgdmFsaWRVcmwgPSAocHJvdG9jb2wgPT09ICdodHRwczonKVxuICAgIGNvbnN0IGhvc3RQYXJ0cyA9IGhvc3QgPyBob3N0LnNwbGl0KCcuJykgOiBbXVxuXG4gICAgaWYgKGhvc3RQYXJ0cy5sZW5ndGggPj0gMikge1xuICAgICAgZm9yIChsZXQgcGFydCBvZiBob3N0UGFydHMpIHtcbiAgICAgICAgaWYgKCFwYXJ0KSB7XG4gICAgICAgICAgdmFsaWRVcmwgPSBmYWxzZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRVcmwgPSBmYWxzZVxuICAgIH1cblxuICAgIGlmICggcHJvdG9jb2wgJiYgaG9zdCAmJiB1c2VyICYmIHJlcG8gKSB7XG4gICAgICBjb25zdCBbbGFuZ3VhZ2VJZCwgcHJvamVjdElkXSA9IHJlcG8uc3BsaXQoJ18nKVxuICAgICAgdmFsaWRSZXBvUGF0aCA9IGxhbmd1YWdlSWQgJiYgcHJvamVjdElkXG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICBjb25zb2xlLmxvZygnSW52YWxpZCBEQ1MgVVJMOiAnICsgdXJsKVxuICB9XG4gIHJldHVybiB7IHZhbGlkVXJsLCB2YWxpZFJlcG9QYXRoIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlRXJyb3JNZXNzYWdlKHJlc291cmNlU3RhdHVzOiBvYmplY3QpIHtcbiAgbGV0IG1lc3NhZ2UgPSAnJ1xuXG4gIGlmIChyZXNvdXJjZVN0YXR1c1tNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXSkge1xuICAgIG1lc3NhZ2UgPSBNQU5JRkVTVF9OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbSU5WQUxJRF9NQU5JRkVTVF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gTUFOSUZFU1RfSU5WQUxJRF9FUlJPUl9NU0dcbiAgfSBlbHNlIGlmIChyZXNvdXJjZVN0YXR1c1tDT05URU5UX05PVF9GT1VORF9FUlJPUl0pIHtcbiAgICBtZXNzYWdlID0gQk9PS19OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH0gZWxzZSBpZiAocmVzb3VyY2VTdGF0dXNbU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1JdKSB7XG4gICAgbWVzc2FnZSA9IFNDUklQVFVSRV9OT1RfRk9VTkRfRVJST1JfTVNHXG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuLyoqXG4gKiBkZWNvZGUgcmVzb3VyY2Ugc3RhdHVzIGludG8gc3RyaW5nLiAgQ3VycmVudGx5IG9ubHkgRW5nbGlzaFxuICogQHBhcmFtIHJlc291cmNlU3RhdHVzIC0gb2JqZWN0IHRoYXQgY29udGFpbnMgc3RhdGUgYW5kIGVycm9ycyB0aGF0IGFyZSBkZXRlY3RlZFxuICogQHBhcmFtIHNlcnZlciAtIGNvbnRhaW5zIHRoZSBzZXJ2ZXIgYmVpbmcgdXNlZFxuICogQHBhcmFtIHJlc291cmNlTGluayAtIHBhdGggdG8gcmVwbyBvbiBzZXJ2ZXJcbiAqIEBwYXJhbSBpc05UIC0gdHJ1ZSBpZiBOVCBib29rXG4gKiBAcmV0dXJuIGVtcHR5IHN0cmluZyBpZiBubyBlcnJvciwgZWxzZSByZXR1cm5zIHVzZXIgZXJyb3IgbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzOiBvYmplY3QsIHNlcnZlcjogc3RyaW5nLCByZXNvdXJjZUxpbms6IHN0cmluZywgaXNOVDogYm9vbGVhbikge1xuICBsZXQgbWVzc2FnZSA9ICcnXG5cbiAgaWYgKHJlc291cmNlU3RhdHVzW0xPQURJTkdfU1RBVEVdKSB7XG4gICAgbWVzc2FnZSA9IExPQURJTkdfUkVTT1VSQ0VcbiAgfSBlbHNlIHtcbiAgICBtZXNzYWdlID0gZ2V0UmVzb3VyY2VFcnJvck1lc3NhZ2UocmVzb3VyY2VTdGF0dXMpXG5cbiAgICBpZiAobWVzc2FnZSkge1xuICAgICAgbWVzc2FnZSA9IGdldEVycm9yTWVzc2FnZUZvclJlc291cmNlTGluayhyZXNvdXJjZUxpbmssIHNlcnZlciwgbWVzc2FnZSwgaXNOVClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuLyoqXG4gKiBnZW5lcmF0ZSByZXNvdXJjZSBzdHJpbmdcbiAqIEBwYXJhbSBvd25lclxuICogQHBhcmFtIGxhbmd1YWdlSWRcbiAqIEBwYXJhbSBwcm9qZWN0SWRcbiAqIEBwYXJhbSByZWZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTGlua1NwZWNpZmljKG93bmVyOiBzdHJpbmcsIGxhbmd1YWdlSWQ6IHN0cmluZywgcHJvamVjdElkOiBzdHJpbmcsIHJlZjogc3RyaW5nKSB7XG4gIHJldHVybiBgYXBpL3YxL3JlcG9zLyR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH1fJHtwcm9qZWN0SWR9L2NvbnRlbnRzP3JlZj0ke3JlZn1gXG59XG5cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "single-scripture-rcl",
|
|
3
3
|
"description": "A React Component Library for Rendering a Single Scripture Resource.",
|
|
4
|
-
"version": "3.2.
|
|
4
|
+
"version": "3.2.4",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/unfoldingWord/single-scripture-rcl.git"
|
|
@@ -21,13 +21,14 @@
|
|
|
21
21
|
"@material-ui/core": "4.11.0",
|
|
22
22
|
"@material-ui/icons": "^4.9.1",
|
|
23
23
|
"@material-ui/lab": "4.0.0-alpha.56",
|
|
24
|
+
"bible-reference-range": "^1.1.0",
|
|
25
|
+
"gitea-react-toolkit": "^1.11.0",
|
|
24
26
|
"prop-types": "^15.x",
|
|
25
27
|
"react": "^17.x",
|
|
26
28
|
"react-dom": "^17.x",
|
|
27
29
|
"scripture-resources-rcl": "^5.2.0",
|
|
28
30
|
"tc-ui-toolkit": "^5.3.3",
|
|
29
|
-
"translation-helps-rcl": "^
|
|
30
|
-
"word-aligner": "^1.0.0"
|
|
31
|
+
"translation-helps-rcl": "^3.3.5"
|
|
31
32
|
},
|
|
32
33
|
"devDependencies": {
|
|
33
34
|
"@babel/cli": "^7.12.1",
|
|
@@ -35,13 +36,21 @@
|
|
|
35
36
|
"@babel/preset-env": "^7.12.1",
|
|
36
37
|
"@babel/preset-flow": "^7.12.1",
|
|
37
38
|
"@babel/preset-react": "^7.12.1",
|
|
39
|
+
"@emotion/react": "^11.10.5",
|
|
40
|
+
"@emotion/styled": "^11.10.5",
|
|
41
|
+
"@jest/globals": "^29.4.2",
|
|
38
42
|
"@material-ui/core": "^4.11.2",
|
|
39
43
|
"@material-ui/icons": "^4.11.2",
|
|
40
44
|
"@material-ui/lab": "^4.0.0-alpha.57",
|
|
45
|
+
"@mui/icons-material": "5.11.0",
|
|
46
|
+
"@mui/lab": "5.0.0-alpha.119",
|
|
47
|
+
"@mui/material": "5.11.8",
|
|
48
|
+
"@mui/styles": "5.11.7",
|
|
41
49
|
"@typescript-eslint/eslint-plugin": "^4.14.1",
|
|
42
50
|
"@unfoldingword/eslint-config": "1.3.0",
|
|
43
51
|
"babel-loader": "^8.1.0",
|
|
44
52
|
"babel-plugin-transform-class-properties": "^6.24.1",
|
|
53
|
+
"bible-reference-range": "^1.1.0",
|
|
45
54
|
"core-js": "3.7.0",
|
|
46
55
|
"css-loader": "^5.0.1",
|
|
47
56
|
"eslint": "^7.16.0",
|
|
@@ -58,6 +67,7 @@
|
|
|
58
67
|
"eslint-plugin-prettier": "3.1.4",
|
|
59
68
|
"eslint-plugin-react": "7.21.5",
|
|
60
69
|
"eslint-plugin-react-hooks": "^4.2.0",
|
|
70
|
+
"gitea-react-toolkit": "1.11.0",
|
|
61
71
|
"jest": "^26.6.3",
|
|
62
72
|
"prop-types": "^15.7.2",
|
|
63
73
|
"react": "^17.0.1",
|
|
@@ -66,9 +76,11 @@
|
|
|
66
76
|
"scripture-resources-rcl": "^5.2.0",
|
|
67
77
|
"style-loader": "^2.0.0",
|
|
68
78
|
"tc-ui-toolkit": "^5.3.3",
|
|
69
|
-
"translation-helps-rcl": "
|
|
70
|
-
"
|
|
71
|
-
"
|
|
79
|
+
"translation-helps-rcl": "3.3.6-beta.2",
|
|
80
|
+
"ts-jest": "^29.0.5",
|
|
81
|
+
"use-deep-compare-effect": "1.8.1",
|
|
82
|
+
"usfm-js": "3.4.2",
|
|
83
|
+
"webpack": "^4.44.2"
|
|
72
84
|
},
|
|
73
85
|
"dependencies": {
|
|
74
86
|
"@types/react": "^17.0.0",
|
|
@@ -76,10 +88,11 @@
|
|
|
76
88
|
"deep-equal": "^2.0.5",
|
|
77
89
|
"lodash": "^4.17.21",
|
|
78
90
|
"react-docgen-typescript": "^1.20.5",
|
|
91
|
+
"react-icons": "^4.8.0",
|
|
79
92
|
"source-map-loader": "^1.1.3",
|
|
80
93
|
"styled-components": "^5.2.1",
|
|
81
94
|
"ts-loader": "^8.0.12",
|
|
82
95
|
"typescript": "^4.1.3",
|
|
83
|
-
"word-aligner": "
|
|
96
|
+
"word-aligner-rcl": "0.9.2"
|
|
84
97
|
}
|
|
85
98
|
}
|