single-scripture-rcl 3.3.0 → 3.3.1-beta.2
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.
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import "core-js/modules/es.array.concat.js";
|
|
2
2
|
import "core-js/modules/es.array.includes.js";
|
|
3
3
|
import "core-js/modules/es.array.is-array.js";
|
|
4
|
+
import "core-js/modules/es.date.to-string.js";
|
|
5
|
+
import "core-js/modules/es.object.to-string.js";
|
|
6
|
+
import "core-js/modules/es.regexp.to-string.js";
|
|
4
7
|
import "core-js/modules/es.string.includes.js";
|
|
5
8
|
import "regenerator-runtime/runtime.js";
|
|
6
9
|
|
|
@@ -40,9 +43,6 @@ import * as React from 'react';
|
|
|
40
43
|
import * as PropTypes from 'prop-types';
|
|
41
44
|
import { RxLink2, RxLinkBreak2 } from 'react-icons/rx';
|
|
42
45
|
import { Card, useCardState, useUserBranch, ERROR_STATE, MANIFEST_NOT_LOADED_ERROR } from 'translation-helps-rcl';
|
|
43
|
-
import { WordAligner } from 'word-aligner-rcl';
|
|
44
|
-
import CheckOutlinedIcon from '@mui/icons-material/CheckOutlined';
|
|
45
|
-
import CancelOutlinedIcon from '@mui/icons-material/CancelOutlined';
|
|
46
46
|
import { IconButton } from '@mui/material';
|
|
47
47
|
import { ScripturePane, ScriptureSelector } from '..';
|
|
48
48
|
import { useScriptureSettings } from '../../hooks/useScriptureSettings';
|
|
@@ -57,7 +57,7 @@ var style = {
|
|
|
57
57
|
width: '500px'
|
|
58
58
|
};
|
|
59
59
|
export default function ScriptureCard(_ref) {
|
|
60
|
-
var _scriptureConfig$reso, _scriptureConfig$vers, _currentVerseData_$ve, _scriptureConfig$reso2, _scriptureConfig$reso4, _scriptureConfig$reso5, _scriptureConfig$reso6;
|
|
60
|
+
var _scriptureConfig$reso, _scriptureConfig$vers, _currentVerseData_$ve, _scriptureConfig$reso2, _scriptureConfig$reso4, _scriptureConfig$reso5, _scriptureConfig$reso6, _scriptureAlignmentEd4;
|
|
61
61
|
|
|
62
62
|
var id = _ref.id,
|
|
63
63
|
isNT = _ref.isNT,
|
|
@@ -91,14 +91,16 @@ export default function ScriptureCard(_ref) {
|
|
|
91
91
|
authentication = _ref.authentication,
|
|
92
92
|
setSavedChanges = _ref.setSavedChanges,
|
|
93
93
|
bookIndex = _ref.bookIndex,
|
|
94
|
-
addVerseRange = _ref.addVerseRange
|
|
94
|
+
addVerseRange = _ref.addVerseRange,
|
|
95
|
+
setWordAlignerStatus = _ref.setWordAlignerStatus;
|
|
95
96
|
|
|
96
97
|
var _React$useState = React.useState({
|
|
97
98
|
currentVerseNum: 0,
|
|
98
99
|
//TODO will be used in future when need to support multiple verses in card
|
|
99
100
|
ref: appRef,
|
|
100
101
|
urlError: null,
|
|
101
|
-
usingUserBranch: false
|
|
102
|
+
usingUserBranch: false,
|
|
103
|
+
doingAlignment: false
|
|
102
104
|
}),
|
|
103
105
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
104
106
|
state = _React$useState2[0],
|
|
@@ -107,7 +109,8 @@ export default function ScriptureCard(_ref) {
|
|
|
107
109
|
var currentVerseNum = state.currentVerseNum,
|
|
108
110
|
ref = state.ref,
|
|
109
111
|
urlError = state.urlError,
|
|
110
|
-
usingUserBranch = state.usingUserBranch
|
|
112
|
+
usingUserBranch = state.usingUserBranch,
|
|
113
|
+
doingAlignment = state.doingAlignment;
|
|
111
114
|
|
|
112
115
|
var _useUserLocalStorage = useUserLocalStorage(KEY_FONT_SIZE_BASE + cardNum, 100),
|
|
113
116
|
_useUserLocalStorage2 = _slicedToArray(_useUserLocalStorage, 2),
|
|
@@ -188,11 +191,6 @@ export default function ScriptureCard(_ref) {
|
|
|
188
191
|
startEditBranch = _useUserBranch.actions.startEdit;
|
|
189
192
|
|
|
190
193
|
var workingRef = canUseEditBranch ? workingResourceBranch : appRef;
|
|
191
|
-
var reference_ = {
|
|
192
|
-
bookId: bookId,
|
|
193
|
-
chapter: chapter,
|
|
194
|
-
verse: verse
|
|
195
|
-
};
|
|
196
194
|
var scriptureTitle;
|
|
197
195
|
React.useEffect(function () {
|
|
198
196
|
// select correct working ref - could be master, user branch, or release
|
|
@@ -272,10 +270,11 @@ export default function ScriptureCard(_ref) {
|
|
|
272
270
|
var fontFactor = isHebrew ? 1.4 : 1; // we automatically scale up font size for Hebrew
|
|
273
271
|
|
|
274
272
|
var scaledFontSize = fontSize * fontFactor;
|
|
273
|
+
var currentVerseStr = currentVerseData_ === null || currentVerseData_ === void 0 ? void 0 : currentVerseData_.verse.toString();
|
|
275
274
|
|
|
276
|
-
if (
|
|
277
|
-
// support verse
|
|
278
|
-
reference.verse =
|
|
275
|
+
if (currentVerseStr && currentVerseStr !== reference.verse) {
|
|
276
|
+
// support for verse span
|
|
277
|
+
reference.verse = currentVerseStr;
|
|
279
278
|
}
|
|
280
279
|
|
|
281
280
|
var items = null;
|
|
@@ -349,8 +348,9 @@ export default function ScriptureCard(_ref) {
|
|
|
349
348
|
var enableAlignment = !usingOriginalBible;
|
|
350
349
|
var originalRepoUrl = isNewTestament ? greekRepoUrl : hebrewRepoUrl;
|
|
351
350
|
|
|
352
|
-
var
|
|
351
|
+
var _scriptureAlignmentEdit = useScriptureAlignmentEdit({
|
|
353
352
|
authentication: canUseEditBranch ? authentication : null,
|
|
353
|
+
currentVerseRef: reference,
|
|
354
354
|
enableEdit: enableEdit,
|
|
355
355
|
enableAlignment: enableAlignment,
|
|
356
356
|
httpConfig: httpConfig,
|
|
@@ -366,35 +366,44 @@ export default function ScriptureCard(_ref) {
|
|
|
366
366
|
startEditBranch: startEditBranch,
|
|
367
367
|
bookIndex: bookIndex,
|
|
368
368
|
workingResourceBranch: ref,
|
|
369
|
-
currentVerseNum: currentVerseNum
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
handleAlignmentClick = _useScriptureAlignmen2.handleAlignmentClick,
|
|
375
|
-
onAlignmentsChange = _useScriptureAlignmen2.onAlignmentsChange,
|
|
376
|
-
saveAlignment = _useScriptureAlignmen2.saveAlignment,
|
|
377
|
-
setEditing = _useScriptureAlignmen2.setEditing,
|
|
378
|
-
setVerseChanged = _useScriptureAlignmen2.setVerseChanged,
|
|
379
|
-
saveChangesToCloud = _useScriptureAlignmen2.saveChangesToCloud,
|
|
380
|
-
_useScriptureAlignmen3 = _useScriptureAlignmen.state,
|
|
381
|
-
aligned = _useScriptureAlignmen3.aligned,
|
|
382
|
-
alignerData = _useScriptureAlignmen3.alignerData,
|
|
383
|
-
editing = _useScriptureAlignmen3.editing,
|
|
384
|
-
unsavedChanges = _useScriptureAlignmen3.unsavedChanges;
|
|
369
|
+
currentVerseNum: currentVerseNum,
|
|
370
|
+
targetLanguage: language,
|
|
371
|
+
sourceLanguage: isNT_ ? NT_ORIG_LANG : OT_ORIG_LANG,
|
|
372
|
+
title: scriptureTitle
|
|
373
|
+
});
|
|
385
374
|
|
|
375
|
+
var _scriptureAlignmentEd = _scriptureAlignmentEdit.actions,
|
|
376
|
+
currentVerseObjects = _scriptureAlignmentEd.currentVerseObjects,
|
|
377
|
+
handleAlignmentClick = _scriptureAlignmentEd.handleAlignmentClick,
|
|
378
|
+
setEditing = _scriptureAlignmentEd.setEditing,
|
|
379
|
+
setVerseChanged = _scriptureAlignmentEd.setVerseChanged,
|
|
380
|
+
saveChangesToCloud = _scriptureAlignmentEd.saveChangesToCloud,
|
|
381
|
+
_scriptureAlignmentEd2 = _scriptureAlignmentEdit.state,
|
|
382
|
+
aligned = _scriptureAlignmentEd2.aligned,
|
|
383
|
+
alignerData = _scriptureAlignmentEd2.alignerData,
|
|
384
|
+
doingSave = _scriptureAlignmentEd2.doingSave,
|
|
385
|
+
editing = _scriptureAlignmentEd2.editing,
|
|
386
|
+
unsavedChanges = _scriptureAlignmentEd2.unsavedChanges;
|
|
387
|
+
React.useEffect(function () {
|
|
388
|
+
var _scriptureAlignmentEd3;
|
|
389
|
+
|
|
390
|
+
if (_scriptureAlignmentEdit !== null && _scriptureAlignmentEdit !== void 0 && (_scriptureAlignmentEd3 = _scriptureAlignmentEdit.state) !== null && _scriptureAlignmentEd3 !== void 0 && _scriptureAlignmentEd3.alignerData && !doingAlignment) {
|
|
391
|
+
setWordAlignerStatus(_scriptureAlignmentEdit);
|
|
392
|
+
setState({
|
|
393
|
+
doingAlignment: true
|
|
394
|
+
});
|
|
395
|
+
} else if (doingAlignment) {
|
|
396
|
+
setWordAlignerStatus(_scriptureAlignmentEdit);
|
|
397
|
+
setState({
|
|
398
|
+
doingAlignment: false
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
}, [_scriptureAlignmentEdit === null || _scriptureAlignmentEdit === void 0 ? void 0 : (_scriptureAlignmentEd4 = _scriptureAlignmentEdit.state) === null || _scriptureAlignmentEd4 === void 0 ? void 0 : _scriptureAlignmentEd4.alignerData]);
|
|
386
402
|
React.useEffect(function () {
|
|
387
403
|
// set saved changes whenever user edits verse text or alignments or if alignments are open
|
|
388
404
|
var unsavedChanges_ = unsavedChanges || alignerData;
|
|
389
405
|
setSavedChanges && setSavedChanges(resourceId, !unsavedChanges_);
|
|
390
406
|
}, [unsavedChanges, alignerData]);
|
|
391
|
-
|
|
392
|
-
function showPopover(PopoverTitle, wordDetails, positionCoord, rawData) {
|
|
393
|
-
// TODO: make show popover pretty
|
|
394
|
-
console.log("showPopover", rawData);
|
|
395
|
-
window.prompt("User clicked on ".concat(JSON.stringify(rawData.token)));
|
|
396
|
-
}
|
|
397
|
-
|
|
398
407
|
var checkingState = aligned ? 'valid' : 'invalid';
|
|
399
408
|
var titleText = checkingState === 'valid' ? 'Alignment is Valid' : 'Alignment is Invalid';
|
|
400
409
|
|
|
@@ -422,7 +431,7 @@ export default function ScriptureCard(_ref) {
|
|
|
422
431
|
|
|
423
432
|
React.useEffect(function () {
|
|
424
433
|
// check for verse range
|
|
425
|
-
var _verse =
|
|
434
|
+
var _verse = reference.verse;
|
|
426
435
|
|
|
427
436
|
if (addVerseRange && typeof _verse === 'string') {
|
|
428
437
|
// @ts-ignore
|
|
@@ -432,7 +441,7 @@ export default function ScriptureCard(_ref) {
|
|
|
432
441
|
addVerseRange("".concat(scriptureConfig === null || scriptureConfig === void 0 ? void 0 : (_scriptureConfig$refe = scriptureConfig.reference) === null || _scriptureConfig$refe === void 0 ? void 0 : _scriptureConfig$refe.chapter, ":").concat(_verse));
|
|
433
442
|
}
|
|
434
443
|
}
|
|
435
|
-
}, [
|
|
444
|
+
}, [reference.verse]);
|
|
436
445
|
return /*#__PURE__*/React.createElement(Card, {
|
|
437
446
|
id: "scripture_card_".concat(cardNum),
|
|
438
447
|
title: scriptureLabel,
|
|
@@ -455,63 +464,13 @@ export default function ScriptureCard(_ref) {
|
|
|
455
464
|
return onMinimize(id);
|
|
456
465
|
} : null,
|
|
457
466
|
editable: enableEdit || enableAlignment,
|
|
458
|
-
saved: !unsavedChanges,
|
|
467
|
+
saved: doingSave || !unsavedChanges,
|
|
459
468
|
onSaveEdit: saveChangesToCloud,
|
|
460
469
|
onBlur: function onBlur() {
|
|
461
470
|
return setEditing(false);
|
|
462
471
|
},
|
|
463
472
|
onRenderToolbar: onRenderToolbar
|
|
464
|
-
},
|
|
465
|
-
style: {
|
|
466
|
-
flexDirection: 'column'
|
|
467
|
-
}
|
|
468
|
-
}, /*#__PURE__*/React.createElement(WordAligner, {
|
|
469
|
-
style: {
|
|
470
|
-
maxHeight: '450px',
|
|
471
|
-
overflowY: 'auto'
|
|
472
|
-
},
|
|
473
|
-
verseAlignments: alignerData.alignments,
|
|
474
|
-
targetWords: alignerData.wordBank,
|
|
475
|
-
translate: translate,
|
|
476
|
-
contextId: {
|
|
477
|
-
reference: reference_
|
|
478
|
-
},
|
|
479
|
-
targetLanguage: language,
|
|
480
|
-
targetLanguageFont: '',
|
|
481
|
-
sourceLanguage: isNT_ ? NT_ORIG_LANG : OT_ORIG_LANG,
|
|
482
|
-
showPopover: showPopover,
|
|
483
|
-
lexicons: {},
|
|
484
|
-
loadLexiconEntry: getLexiconData,
|
|
485
|
-
onChange: function onChange(results) {
|
|
486
|
-
return onAlignmentsChange(results);
|
|
487
|
-
}
|
|
488
|
-
}), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("div", {
|
|
489
|
-
style: {
|
|
490
|
-
width: '100%'
|
|
491
|
-
}
|
|
492
|
-
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
493
|
-
disabled: false,
|
|
494
|
-
className: classes.margin,
|
|
495
|
-
key: "alignment-save",
|
|
496
|
-
onClick: function onClick() {
|
|
497
|
-
return saveAlignment();
|
|
498
|
-
},
|
|
499
|
-
"aria-label": 'Alignment Save'
|
|
500
|
-
}, /*#__PURE__*/React.createElement(CheckOutlinedIcon, {
|
|
501
|
-
id: "alignment-save-icon",
|
|
502
|
-
htmlColor: "#000"
|
|
503
|
-
})), /*#__PURE__*/React.createElement(IconButton, {
|
|
504
|
-
disabled: false,
|
|
505
|
-
className: classes.margin,
|
|
506
|
-
key: "alignment-cancel",
|
|
507
|
-
onClick: function onClick() {
|
|
508
|
-
return cancelAlignment();
|
|
509
|
-
},
|
|
510
|
-
"aria-label": 'Alignment Cancel'
|
|
511
|
-
}, /*#__PURE__*/React.createElement(CancelOutlinedIcon, {
|
|
512
|
-
id: "alignment-cancel-icon",
|
|
513
|
-
htmlColor: "#000"
|
|
514
|
-
})))) : /*#__PURE__*/React.createElement(ScripturePane, _extends({
|
|
473
|
+
}, /*#__PURE__*/React.createElement(ScripturePane, _extends({
|
|
515
474
|
refStyle: refStyle
|
|
516
475
|
}, scriptureConfig, {
|
|
517
476
|
verseObjects: currentVerseObjects,
|
|
@@ -526,7 +485,8 @@ export default function ScriptureCard(_ref) {
|
|
|
526
485
|
translate: translate,
|
|
527
486
|
editing: editing,
|
|
528
487
|
setEditing: setEditing,
|
|
529
|
-
setVerseChanged: setVerseChanged
|
|
488
|
+
setVerseChanged: setVerseChanged,
|
|
489
|
+
saving: doingSave
|
|
530
490
|
})));
|
|
531
491
|
}
|
|
532
492
|
ScriptureCard.propTypes = {
|
|
@@ -628,6 +588,9 @@ ScriptureCard.propTypes = {
|
|
|
628
588
|
bookIndex: PropTypes.string,
|
|
629
589
|
|
|
630
590
|
/** callback to indicate that we are using a verse range here */
|
|
631
|
-
addVerseRange: PropTypes.func
|
|
591
|
+
addVerseRange: PropTypes.func,
|
|
592
|
+
|
|
593
|
+
/** callback to update word aligner state */
|
|
594
|
+
setWordAlignerStatus: PropTypes.func
|
|
632
595
|
};
|
|
633
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZUNhcmQvU2NyaXB0dXJlQ2FyZC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQcm9wVHlwZXMiLCJSeExpbmsyIiwiUnhMaW5rQnJlYWsyIiwiQ2FyZCIsInVzZUNhcmRTdGF0ZSIsInVzZVVzZXJCcmFuY2giLCJFUlJPUl9TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJXb3JkQWxpZ25lciIsIkNoZWNrT3V0bGluZWRJY29uIiwiQ2FuY2VsT3V0bGluZWRJY29uIiwiSWNvbkJ1dHRvbiIsIlNjcmlwdHVyZVBhbmUiLCJTY3JpcHR1cmVTZWxlY3RvciIsInVzZVNjcmlwdHVyZVNldHRpbmdzIiwiZ2V0UmVzb3VyY2VMaW5rIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzIiwiaXNPcmlnaW5hbEJpYmxlIiwiVGl0bGUiLCJOVF9PUklHX0xBTkciLCJPUklHSU5BTF9TT1VSQ0UiLCJPVF9PUklHX0xBTkciLCJ1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0IiwiS0VZX0ZPTlRfU0laRV9CQVNFIiwibGFiZWwiLCJzdHlsZSIsIm1hcmdpblRvcCIsIndpZHRoIiwiU2NyaXB0dXJlQ2FyZCIsImlkIiwiaXNOVCIsInRpdGxlIiwic2VydmVyIiwiYXBwUmVmIiwiY2FyZE51bSIsImNsYXNzZXMiLCJyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJnZXRMYW5ndWFnZSIsInJlZmVyZW5jZSIsInZlcnNlIiwiY2hhcHRlciIsImJvb2tJZCIsInByb2plY3RJZCIsInJlc291cmNlTGluayIsInVzZVVzZXJMb2NhbFN0b3JhZ2UiLCJkaXNhYmxlV29yZFBvcG92ZXIiLCJvblJlc291cmNlRXJyb3IiLCJodHRwQ29uZmlnIiwiZ3JlZWtSZXBvVXJsIiwiaGVicmV3UmVwb1VybCIsImdldExleGljb25EYXRhIiwiZmV0Y2hHbG9zc2VzRm9yVmVyc2UiLCJ0cmFuc2xhdGUiLCJvbk1pbmltaXplIiwibG9nZ2VkSW5Vc2VyIiwiYXV0aGVudGljYXRpb24iLCJzZXRTYXZlZENoYW5nZXMiLCJib29rSW5kZXgiLCJhZGRWZXJzZVJhbmdlIiwidXNlU3RhdGUiLCJjdXJyZW50VmVyc2VOdW0iLCJyZWYiLCJ1cmxFcnJvciIsInVzaW5nVXNlckJyYW5jaCIsInN0YXRlIiwic2V0U3RhdGVfIiwiZm9udFNpemUiLCJzZXRGb250U2l6ZSIsImlzTlRfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImNhY2hlIiwibWF4QWdlIiwic2V0VXJsRXJyb3IiLCJlcnJvciIsIndob2xlQm9vayIsImlzTmV3VGVzdGFtZW50Iiwic2NyaXB0dXJlQ29uZmlnIiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImNhcmRSZXNvdXJjZUlkIiwiY3VycmVudFZlcnNlRGF0YV8iLCJ2ZXJzZXNGb3JSZWYiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwidmVyc2VEYXRhIiwidmVyc2VPYmplY3RzIiwicmVmXyIsImNhblVzZUVkaXRCcmFuY2giLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJjYXJkSWQiLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJ1c2luZ1VzZXJCcmFuY2hfIiwic3RhcnRFZGl0QnJhbmNoIiwiYWN0aW9ucyIsInN0YXJ0RWRpdCIsIndvcmtpbmdSZWYiLCJyZWZlcmVuY2VfIiwic2NyaXB0dXJlVGl0bGUiLCJ1c2VFZmZlY3QiLCJ3b3JraW5nUmVmXyIsInJlc291cmNlU3RhdHVzIiwibWVzc2FnZSIsImlzQWNjZXNzRXJyb3IiLCJ2ZXJzaW9uIiwidXBkYXRlVGl0bGUiLCJnZXRTY3JpcHR1cmVTZWxlY3RvciIsInNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyIsIm9uTWVudUNsb3NlIiwibGFuZ3VhZ2VJZF8iLCJsYW5ndWFnZSIsImRpcmVjdGlvbiIsImlzSGVicmV3IiwiZm9udEZhY3RvciIsInNjYWxlZEZvbnRTaXplIiwibWF0Y2hlZFZlcnNlIiwiaXRlbXMiLCJoZWFkZXJzIiwiZmlsdGVycyIsIml0ZW1JbmRleCIsIm1hcmtkb3duVmlldyIsInNldEZpbHRlcnMiLCJzZXRJdGVtSW5kZXgiLCJzZXRNYXJrZG93blZpZXciLCJyZWZTdHlsZSIsInVzZU1lbW8iLCJmb250RmFtaWx5IiwiTWF0aCIsInJvdW5kIiwiY29udGVudFN0eWxlIiwic2NyaXB0dXJlTGFiZWwiLCJkaXNhYmxlV29yZFBvcG92ZXJfIiwidXNpbmdPcmlnaW5hbEJpYmxlIiwidW5kZWZpbmVkIiwiZmV0Y2hHbG9zc0RhdGFGb3JWZXJzZSIsImVuYWJsZUVkaXQiLCJlbmFibGVBbGlnbm1lbnQiLCJvcmlnaW5hbFJlcG9VcmwiLCJjYW5jZWxBbGlnbm1lbnQiLCJjdXJyZW50VmVyc2VPYmplY3RzIiwiaGFuZGxlQWxpZ25tZW50Q2xpY2siLCJvbkFsaWdubWVudHNDaGFuZ2UiLCJzYXZlQWxpZ25tZW50Iiwic2V0RWRpdGluZyIsInNldFZlcnNlQ2hhbmdlZCIsInNhdmVDaGFuZ2VzVG9DbG91ZCIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImVkaXRpbmciLCJ1bnNhdmVkQ2hhbmdlcyIsInVuc2F2ZWRDaGFuZ2VzXyIsInNob3dQb3BvdmVyIiwiUG9wb3ZlclRpdGxlIiwid29yZERldGFpbHMiLCJwb3NpdGlvbkNvb3JkIiwicmF3RGF0YSIsImNvbnNvbGUiLCJsb2ciLCJ3aW5kb3ciLCJwcm9tcHQiLCJKU09OIiwic3RyaW5naWZ5IiwidG9rZW4iLCJjaGVja2luZ1N0YXRlIiwidGl0bGVUZXh0Iiwib25SZW5kZXJUb29sYmFyIiwibWFyZ2luIiwiY3Vyc29yIiwiX3ZlcnNlIiwiaW5jbHVkZXMiLCJmbGV4RGlyZWN0aW9uIiwibWF4SGVpZ2h0Iiwib3ZlcmZsb3dZIiwiYWxpZ25tZW50cyIsIndvcmRCYW5rIiwicmVzdWx0cyIsInByb3BUeXBlcyIsInN0cmluZyIsImZ1bmMiLCJpc1JlcXVpcmVkIiwibnVtYmVyIiwic2hhcGUiLCJvbmVPZlR5cGUiLCJib29sIiwib2JqZWN0IiwiYW55Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU8sS0FBS0MsU0FBWixNQUEyQixZQUEzQjtBQUNBLFNBQVNDLE9BQVQsRUFBa0JDLFlBQWxCLFFBQXNDLGdCQUF0QztBQUVBLFNBQ0VDLElBREYsRUFFRUMsWUFGRixFQUdFQyxhQUhGLEVBSUVDLFdBSkYsRUFLRUMseUJBTEYsUUFNTyx1QkFOUDtBQU9BLFNBQVNDLFdBQVQsUUFBNEIsa0JBQTVCO0FBQ0EsT0FBT0MsaUJBQVAsTUFBOEIsbUNBQTlCO0FBQ0EsT0FBT0Msa0JBQVAsTUFBK0Isb0NBQS9CO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixlQUEzQjtBQUNBLFNBQVNDLGFBQVQsRUFBd0JDLGlCQUF4QixRQUFpRCxJQUFqRDtBQUNBLFNBQVNDLG9CQUFULFFBQXFDLGtDQUFyQztBQUNBLFNBQ0VDLGVBREYsRUFFRUMsa0JBRkYsRUFHRUMsMkJBSEYsRUFJRUMsZUFKRixRQUtPLCtCQUxQO0FBTUEsU0FBU0MsS0FBVCxRQUFzQix5QkFBdEI7QUFDQSxTQUNFQyxZQURGLEVBRUVDLGVBRkYsRUFHRUMsWUFIRixRQUlPLGFBSlA7QUFLQSxTQUFTQyx5QkFBVCxRQUEwQyx1Q0FBMUM7QUFFQSxJQUFNQyxrQkFBa0IsR0FBRyx3QkFBM0I7QUFDQSxJQUFNQyxLQUFLLEdBQUcsU0FBZDtBQUNBLElBQU1DLEtBQUssR0FBRztBQUFFQyxFQUFBQSxTQUFTLEVBQUUsTUFBYjtBQUFxQkMsRUFBQUEsS0FBSyxFQUFFO0FBQTVCLENBQWQ7QUFFQSxlQUFlLFNBQVNDLGFBQVQsT0FvQ1o7QUFBQTs7QUFBQSxNQW5DREMsRUFtQ0MsUUFuQ0RBLEVBbUNDO0FBQUEsTUFsQ0RDLElBa0NDLFFBbENEQSxJ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QUEsWUFBWSxFQUFFM0QsU0FBUyxDQUFDd0wsTUE5REE7O0FBK0R4QjtBQUNBNUgsRUFBQUEsY0FBYyxFQUFFNUQsU0FBUyxDQUFDK0wsTUFoRUY7O0FBaUV4QjtBQUNBbEksRUFBQUEsZUFBZSxFQUFFN0QsU0FBUyxDQUFDeUwsSUFsRUg7O0FBbUV4QjtBQUNBM0gsRUFBQUEsU0FBUyxFQUFFOUQsU0FBUyxDQUFDd0wsTUFwRUc7O0FBcUV4QjtBQUNBekgsRUFBQUEsYUFBYSxFQUFFL0QsU0FBUyxDQUFDeUw7QUF0RUQsQ0FBMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IHsgUnhMaW5rMiwgUnhMaW5rQnJlYWsyIH0gZnJvbSAncmVhY3QtaWNvbnMvcngnXG5cbmltcG9ydCB7XG4gIENhcmQsXG4gIHVzZUNhcmRTdGF0ZSxcbiAgdXNlVXNlckJyYW5jaCxcbiAgRVJST1JfU1RBVEUsXG4gIE1BTklGRVNUX05PVF9MT0FERURfRVJST1IsXG59IGZyb20gJ3RyYW5zbGF0aW9uLWhlbHBzLXJjbCdcbmltcG9ydCB7IFdvcmRBbGlnbmVyIH0gZnJvbSAnd29yZC1hbGlnbmVyLXJjbCdcbmltcG9ydCBDaGVja091dGxpbmVkSWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0NoZWNrT3V0bGluZWQnXG5pbXBvcnQgQ2FuY2VsT3V0bGluZWRJY29uIGZyb20gJ0BtdWkvaWNvbnMtbWF0ZXJpYWwvQ2FuY2VsT3V0bGluZWQnXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnQG11aS9tYXRlcmlhbCdcbmltcG9ydCB7IFNjcmlwdHVyZVBhbmUsIFNjcmlwdHVyZVNlbGVjdG9yIH0gZnJvbSAnLi4nXG5pbXBvcnQgeyB1c2VTY3JpcHR1cmVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgZ2V0UmVzb3VyY2VMaW5rLFxuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyxcbiAgaXNPcmlnaW5hbEJpYmxlLFxufSBmcm9tICcuLi8uLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnLi4vU2NyaXB0dXJlUGFuZS9zdHlsZWQnXG5pbXBvcnQge1xuICBOVF9PUklHX0xBTkcsXG4gIE9SSUdJTkFMX1NPVVJDRSxcbiAgT1RfT1JJR19MQU5HLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQgfSBmcm9tICcuLi8uLi9ob29rcy91c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0J1xuXG5jb25zdCBLRVlfRk9OVF9TSVpFX0JBU0UgPSAnc2NyaXB0dXJlUGFuZUZvbnRTaXplXydcbmNvbnN0IGxhYmVsID0gJ1ZlcnNpb24nXG5jb25zdCBzdHlsZSA9IHsgbWFyZ2luVG9wOiAnMTZweCcsIHdpZHRoOiAnNTAwcHgnIH1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2NyaXB0dXJlQ2FyZCh7XG4gIGlkLFxuICBpc05ULFxuICB0aXRsZSxcbiAgc2VydmVyLFxuICBhcHBSZWYsXG4gIGNhcmROdW0sXG4gIGNsYXNzZXMsXG4gIHJlc291cmNlOiB7XG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgfSxcbiAgZ2V0TGFuZ3VhZ2UsXG4gIHJlZmVyZW5jZToge1xuICAgIHZlcnNlLFxuICAgIGNoYXB0ZXIsXG4gICAgcHJvamVjdElkOiBib29rSWQsXG4gIH0sXG4gIHJlc291cmNlTGluayxcbiAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBvblJlc291cmNlRXJyb3IsXG4gIGh0dHBDb25maWcsXG4gIGdyZWVrUmVwb1VybCxcbiAgaGVicmV3UmVwb1VybCxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIGZldGNoR2xvc3Nlc0ZvclZlcnNlLFxuICB0cmFuc2xhdGUsXG4gIG9uTWluaW1pemUsXG4gIGxvZ2dlZEluVXNlcixcbiAgYXV0aGVudGljYXRpb24sXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgYm9va0luZGV4LFxuICBhZGRWZXJzZVJhbmdlLFxufSkge1xuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgY3VycmVudFZlcnNlTnVtOiAwLCAvL1RPRE8gd2lsbCBiZSB1c2VkIGluIGZ1dHVyZSB3aGVuIG5lZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSB2ZXJzZXMgaW4gY2FyZFxuICAgIHJlZjogYXBwUmVmLFxuICAgIHVybEVycm9yOiBudWxsLFxuICAgIHVzaW5nVXNlckJyYW5jaDogZmFsc2UsXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBjdXJyZW50VmVyc2VOdW0sXG4gICAgcmVmLFxuICAgIHVybEVycm9yLFxuICAgIHVzaW5nVXNlckJyYW5jaCxcbiAgfSA9IHN0YXRlXG5cbiAgY29uc3QgW2ZvbnRTaXplLCBzZXRGb250U2l6ZV0gPSB1c2VVc2VyTG9jYWxTdG9yYWdlKEtFWV9GT05UX1NJWkVfQkFTRSArIGNhcmROdW0sIDEwMClcbiAgY29uc3QgaXNOVF8gPSBpc05UKGJvb2tJZClcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIGlmICh1c2luZ1VzZXJCcmFuY2gpIHtcbiAgICBodHRwQ29uZmlnID0geyAuLi5odHRwQ29uZmlnLCBjYWNoZTogeyBtYXhBZ2U6IDAgfSB9IC8vIGRpc2FibGUgaHR0cCBjYWNoaW5nXG4gIH1cblxuICBjb25zdCB7XG4gICAgaXNOZXdUZXN0YW1lbnQsXG4gICAgc2NyaXB0dXJlQ29uZmlnLFxuICAgIHNldFNjcmlwdHVyZSxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbiAgfSA9IHVzZVNjcmlwdHVyZVNldHRpbmdzKHtcbiAgICBpc05ULFxuICAgIHRpdGxlLFxuICAgIHZlcnNlLFxuICAgIG93bmVyLFxuICAgIGJvb2tJZCxcbiAgICBhcHBSZWY6IHJlZixcbiAgICBzZXJ2ZXIsXG4gICAgY2FyZE51bSxcbiAgICBjaGFwdGVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgcmVzb3VyY2VJZCxcbiAgICByZXNvdXJjZUxpbmssXG4gICAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIHNldFVybEVycm9yOiAoZXJyb3IpID0+IHNldFN0YXRlKHsgdXJsRXJyb3I6IGVycm9yIH0pLFxuICAgIGh0dHBDb25maWcsXG4gICAgZ3JlZWtSZXBvVXJsLFxuICAgIGhlYnJld1JlcG9VcmwsXG4gICAgd2hvbGVCb29rOiB0cnVlLFxuICB9KVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgY2FyZFJlc291cmNlSWQgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5wcm9qZWN0SWQgfHwgcmVzb3VyY2VJZFxuICBjb25zdCBjdXJyZW50VmVyc2VEYXRhXyA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmPy5bY3VycmVudFZlcnNlTnVtXSB8fCBudWxsXG4gIGNvbnN0IGluaXRpYWxWZXJzZU9iamVjdHMgPSBjdXJyZW50VmVyc2VEYXRhXz8udmVyc2VEYXRhPy52ZXJzZU9iamVjdHMgfHwgbnVsbFxuICAvLyBAdHMtaWdub3JlXG4gIGxldCByZWZfID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucmVmIHx8IGFwcFJlZlxuICBjb25zdCBjYW5Vc2VFZGl0QnJhbmNoID0gbG9nZ2VkSW5Vc2VyICYmIGF1dGhlbnRpY2F0aW9uICYmXG4gICAgKHJlc291cmNlSWQgIT09IE9SSUdJTkFMX1NPVVJDRSkgJiZcbiAgICAoKHJlZl8gPT09ICdtYXN0ZXInKSB8fCAocmVmXy5zdWJzdHJpbmcoMCwgbG9nZ2VkSW5Vc2VyLmxlbmd0aCkgPT09IGxvZ2dlZEluVXNlcikgKSAvLyBub3QgdGFnXG5cbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCwgdXNpbmdVc2VyQnJhbmNoOiB1c2luZ1VzZXJCcmFuY2hfIH0sXG4gICAgYWN0aW9uczogeyBzdGFydEVkaXQ6IHN0YXJ0RWRpdEJyYW5jaCB9LFxuICB9ID0gdXNlVXNlckJyYW5jaCh7XG4gICAgb3duZXIsXG4gICAgc2VydmVyLFxuICAgIGFwcFJlZixcbiAgICBsYW5ndWFnZUlkLFxuICAgIGNhcmRJZDogaWQsXG4gICAgbG9nZ2VkSW5Vc2VyOiBjYW5Vc2VFZGl0QnJhbmNoID8gbG9nZ2VkSW5Vc2VyIDogbnVsbCxcbiAgICBhdXRoZW50aWNhdGlvbjogY2FuVXNlRWRpdEJyYW5jaCA/IGF1dGhlbnRpY2F0aW9uIDogbnVsbCxcbiAgICBjYXJkUmVzb3VyY2VJZCxcbiAgICBvblJlc291cmNlRXJyb3IsXG4gICAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgfSlcblxuICBjb25zdCB3b3JraW5nUmVmID0gY2FuVXNlRWRpdEJyYW5jaCA/IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCA6IGFwcFJlZlxuICBjb25zdCByZWZlcmVuY2VfID0geyBib29rSWQsIGNoYXB0ZXIsIHZlcnNlIH1cbiAgbGV0IHNjcmlwdHVyZVRpdGxlXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gc2VsZWN0IGNvcnJlY3Qgd29ya2luZyByZWYgLSBjb3VsZCBiZSBtYXN0ZXIsIHVzZXIgYnJhbmNoLCBvciByZWxlYXNlXG4gICAgaWYgKHVzaW5nVXNlckJyYW5jaF8gIT09IHVzaW5nVXNlckJyYW5jaCkge1xuICAgICAgc2V0U3RhdGUoeyB1c2luZ1VzZXJCcmFuY2g6IHVzaW5nVXNlckJyYW5jaF8gfSlcbiAgICB9XG4gIH0sIFt1c2luZ1VzZXJCcmFuY2hfLCB1c2luZ1VzZXJCcmFuY2hdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNlbGVjdCBjb3JyZWN0IHdvcmtpbmcgcmVmIC0gY291bGQgYmUgbWFzdGVyLCB1c2VyIGJyYW5jaCwgb3IgcmVsZWFzZVxuICAgIGxldCB3b3JraW5nUmVmXyA9IHdvcmtpbmdSZWYgfHwgYXBwUmVmXG5cbiAgICBpZiAocmVmICE9PSB3b3JraW5nUmVmXykge1xuICAgICAgc2V0U3RhdGUoeyByZWY6IHdvcmtpbmdSZWZfIH0pXG4gICAgfVxuICB9LCBbd29ya2luZ1JlZiwgcmVmLCBhcHBSZWZdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHVwZGF0ZSBkaXNwbGF5IHN0YXR1cyBpZiBlcnJvclxuICAgIGNvbnN0IGVycm9yID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1cz8uW0VSUk9SX1NUQVRFXVxuXG4gICAgaWYgKGVycm9yKSB7IC8vIGlmIGVycm9yIHdhcyBmb3VuZCBkbyBjYWxsYmFja1xuICAgICAgY29uc3QgcmVzb3VyY2VTdGF0dXMgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzXG4gICAgICBjb25zdCByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoc2NyaXB0dXJlQ29uZmlnKVxuICAgICAgY29uc3QgbWVzc2FnZSA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlRfKVxuICAgICAgY29uc3QgaXNBY2Nlc3NFcnJvciA9IHJlc291cmNlU3RhdHVzW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdXG4gICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG1lc3NhZ2UsIGlzQWNjZXNzRXJyb3IsIHJlc291cmNlU3RhdHVzKVxuICAgIH1cbiAgfSwgW3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV0sIG9uUmVzb3VyY2VFcnJvcl0pXG5cbiAgaWYgKHNjcmlwdHVyZUNvbmZpZy50aXRsZSAmJiBzY3JpcHR1cmVDb25maWcudmVyc2lvbikge1xuICAgIHNjcmlwdHVyZVRpdGxlID0gYCR7c2NyaXB0dXJlQ29uZmlnLnRpdGxlfSB2JHtzY3JpcHR1cmVDb25maWcudmVyc2lvbn1gXG4gICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QudXBkYXRlVGl0bGUoc2NyaXB0dXJlQ29uZmlnLnJlc291cmNlTGluaywgc2NyaXB0dXJlVGl0bGUpXG4gIH0gZWxzZSB7XG4gICAgc2NyaXB0dXJlVGl0bGUgPSBgVGl0bGUgbWlzc2luZyBmcm9tIHByb2plY3QgbWFuaWZlc3RgXG4gIH1cblxuICAvKiogRHluYW1pY2FsbHkgY3JlYXRlcyB0aGUgc2NyaXB0dXJlIHNlbGVjdGlvbiBkcm9wZG93biB0byBiZSBpbnNlcnRlZCBpbnRvIGNhcmQgc2V0dGluZ3MgKi9cbiAgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlU2VsZWN0b3IoKSB7XG4gICAgY29uc3Qgc2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnID0gZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzKHtcbiAgICAgIGxhYmVsLFxuICAgICAgcmVzb3VyY2VMaW5rOiBzY3JpcHR1cmVDb25maWcucmVzb3VyY2VMaW5rLFxuICAgICAgc2V0U2NyaXB0dXJlLFxuICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG4gICAgfSlcblxuICAgIHJldHVybiA8U2NyaXB0dXJlU2VsZWN0b3Igey4uLnNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZ30gc3R5bGU9e3N0eWxlfSBlcnJvck1lc3NhZ2U9e3VybEVycm9yfSAvPlxuICB9XG5cbiAgZnVuY3Rpb24gb25NZW51Q2xvc2UoKSB7XG4gICAgLy8gY29uc29sZS5sb2coYG9uTWVudUNsb3NlKClgKVxuICAgIHNldFN0YXRlKHsgdXJsRXJyb3I6IG51bGwgfSlcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgbGFuZ3VhZ2VJZF8gPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5sYW5ndWFnZUlkXG4gIGNvbnN0IGxhbmd1YWdlID0gZ2V0TGFuZ3VhZ2UoeyBsYW5ndWFnZUlkOiBsYW5ndWFnZUlkXyB9KVxuICBjb25zdCBkaXJlY3Rpb24gPSAobGFuZ3VhZ2U/LmRpcmVjdGlvbikgfHwgJ2x0cidcbiAgY29uc3QgcmVmZXJlbmNlID0geyAuLi5zY3JpcHR1cmVDb25maWcucmVmZXJlbmNlIH1cblxuICBjb25zdCBpc0hlYnJldyA9IChsYW5ndWFnZUlkXyA9PT0gJ2hibycpXG4gIGNvbnN0IGZvbnRGYWN0b3IgPSBpc0hlYnJldyA/IDEuNCA6IDEgLy8gd2UgYXV0b21hdGljYWxseSBzY2FsZSB1cCBmb250IHNpemUgZm9yIEhlYnJld1xuICBjb25zdCBzY2FsZWRGb250U2l6ZSA9IGZvbnRTaXplICogZm9udEZhY3RvclxuXG4gIGlmIChzY3JpcHR1cmVDb25maWcubWF0Y2hlZFZlcnNlKSB7IC8vIHN1cHBvcnQgdmVyc2UgcmFuZ2VzXG4gICAgcmVmZXJlbmNlLnZlcnNlID0gc2NyaXB0dXJlQ29uZmlnLm1hdGNoZWRWZXJzZVxuICB9XG5cbiAgY29uc3QgaXRlbXMgPSBudWxsXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgaGVhZGVycywgZmlsdGVycywgaXRlbUluZGV4LCBtYXJrZG93blZpZXcsXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBzZXRGaWx0ZXJzLCBzZXRJdGVtSW5kZXgsIHNldE1hcmtkb3duVmlldyxcbiAgICB9LFxuICB9ID0gdXNlQ2FyZFN0YXRlKHsgaXRlbXMgfSlcblxuICBjb25zdCByZWZTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7TWF0aC5yb3VuZChzY2FsZWRGb250U2l6ZSAqIDAuOSl9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IGNvbnRlbnRTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7c2NhbGVkRm9udFNpemV9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IHNjcmlwdHVyZUxhYmVsID0gPFRpdGxlPntzY3JpcHR1cmVUaXRsZX08L1RpdGxlPlxuICBsZXQgZGlzYWJsZVdvcmRQb3BvdmVyXyA9IGRpc2FibGVXb3JkUG9wb3ZlclxuICBjb25zdCB1c2luZ09yaWdpbmFsQmlibGUgPSBpc09yaWdpbmFsQmlibGUoc2NyaXB0dXJlQ29uZmlnWydyZXNvdXJjZSddPy5wcm9qZWN0SWQpXG5cbiAgaWYgKGRpc2FibGVXb3JkUG9wb3ZlciA9PT0gdW5kZWZpbmVkKSB7IC8vIGlmIG5vdCBzcGVjaWZpZWQsIHRoZW4gZGV0ZXJtaW5lIGlmIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyXyA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHByZS1jYWNoZSBnbG9zc2VzIG9uIHZlcnNlIGNoYW5nZVxuICAgIGNvbnN0IGZldGNoR2xvc3NEYXRhRm9yVmVyc2UgPSBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoIWRpc2FibGVXb3JkUG9wb3ZlciAmJiBpbml0aWFsVmVyc2VPYmplY3RzICYmIGZldGNoR2xvc3Nlc0ZvclZlcnNlKSB7XG4gICAgICAgIGF3YWl0IGZldGNoR2xvc3Nlc0ZvclZlcnNlKGluaXRpYWxWZXJzZU9iamVjdHMsIGxhbmd1YWdlSWRfKVxuICAgICAgfVxuICAgIH1cblxuICAgIGZldGNoR2xvc3NEYXRhRm9yVmVyc2UoKVxuICB9LCBbIGluaXRpYWxWZXJzZU9iamVjdHMsIGRpc2FibGVXb3JkUG9wb3ZlciwgbGFuZ3VhZ2VJZF8sIGZldGNoR2xvc3Nlc0ZvclZlcnNlIF0pXG5cbiAgY29uc3QgZW5hYmxlRWRpdCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3QgZW5hYmxlQWxpZ25tZW50ID0gIXVzaW5nT3JpZ2luYWxCaWJsZVxuICBjb25zdCBvcmlnaW5hbFJlcG9VcmwgPSBpc05ld1Rlc3RhbWVudCA/IGdyZWVrUmVwb1VybCA6IGhlYnJld1JlcG9VcmxcbiAgY29uc3Qge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNhbmNlbEFsaWdubWVudCxcbiAgICAgIGN1cnJlbnRWZXJzZU9iamVjdHMsXG4gICAgICBoYW5kbGVBbGlnbm1lbnRDbGljayxcbiAgICAgIG9uQWxpZ25tZW50c0NoYW5nZSxcbiAgICAgIHNhdmVBbGlnbm1lbnQsXG4gICAgICBzZXRFZGl0aW5nLFxuICAgICAgc2V0VmVyc2VDaGFuZ2VkLFxuICAgICAgc2F2ZUNoYW5nZXNUb0Nsb3VkLFxuICAgIH0sXG4gICAgc3RhdGU6IHtcbiAgICAgIGFsaWduZWQsXG4gICAgICBhbGlnbmVyRGF0YSxcbiAgICAgIGVkaXRpbmcsXG4gICAgICB1bnNhdmVkQ2hhbmdlcyxcbiAgICB9LFxuICB9ID0gdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCh7XG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgZW5hYmxlRWRpdCxcbiAgICBlbmFibGVBbGlnbm1lbnQsXG4gICAgaHR0cENvbmZpZyxcbiAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBsb2dnZWRJblVzZXI6IGNhblVzZUVkaXRCcmFuY2ggPyBsb2dnZWRJblVzZXIgOiBudWxsLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICBvcmlnaW5hbFJlcG9VcmwsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzdGFydEVkaXRCcmFuY2gsXG4gICAgYm9va0luZGV4LFxuICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaDogcmVmLFxuICAgIGN1cnJlbnRWZXJzZU51bSxcbiAgfSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBzZXQgc2F2ZWQgY2hhbmdlcyB3aGVuZXZlciB1c2VyIGVkaXRzIHZlcnNlIHRleHQgb3IgYWxpZ25tZW50cyBvciBpZiBhbGlnbm1lbnRzIGFyZSBvcGVuXG4gICAgY29uc3QgdW5zYXZlZENoYW5nZXNfID0gdW5zYXZlZENoYW5nZXMgfHwgYWxpZ25lckRhdGFcbiAgICBzZXRTYXZlZENoYW5nZXMgJiYgc2V0U2F2ZWRDaGFuZ2VzKHJlc291cmNlSWQsICF1bnNhdmVkQ2hhbmdlc18pXG4gIH0sIFt1bnNhdmVkQ2hhbmdlcywgYWxpZ25lckRhdGFdKVxuXG4gIGZ1bmN0aW9uIHNob3dQb3BvdmVyKFBvcG92ZXJUaXRsZSwgd29yZERldGFpbHMsIHBvc2l0aW9uQ29vcmQsIHJhd0RhdGEpIHtcbiAgICAvLyBUT0RPOiBtYWtlIHNob3cgcG9wb3ZlciBwcmV0dHlcbiAgICBjb25zb2xlLmxvZyhgc2hvd1BvcG92ZXJgLCByYXdEYXRhKVxuICAgIHdpbmRvdy5wcm9tcHQoYFVzZXIgY2xpY2tlZCBvbiAke0pTT04uc3RyaW5naWZ5KHJhd0RhdGEudG9rZW4pfWApXG4gIH1cblxuICBjb25zdCBjaGVja2luZ1N0YXRlID0gYWxpZ25lZCA/ICd2YWxpZCcgOiAnaW52YWxpZCdcbiAgY29uc3QgdGl0bGVUZXh0ID0gY2hlY2tpbmdTdGF0ZSA9PT0gJ3ZhbGlkJyA/ICdBbGlnbm1lbnQgaXMgVmFsaWQnIDogJ0FsaWdubWVudCBpcyBJbnZhbGlkJ1xuICBjb25zdCBvblJlbmRlclRvb2xiYXIgPSAoeyBpdGVtcyB9KSA9PiBbXG4gICAgLi4uaXRlbXMsXG4gICAgPEljb25CdXR0b25cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5tYXJnaW59XG4gICAgICBrZXk9J2NoZWNraW5nLWJ1dHRvbidcbiAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUFsaWdubWVudENsaWNrKCl9XG4gICAgICB0aXRsZT17dGl0bGVUZXh0fVxuICAgICAgYXJpYS1sYWJlbD17dGl0bGVUZXh0fVxuICAgICAgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICA+XG4gICAgICB7Y2hlY2tpbmdTdGF0ZSA9PT0gJ3ZhbGlkJyA/IChcbiAgICAgICAgPFJ4TGluazIgaWQ9J3ZhbGlkX2ljb24nIGNvbG9yPScjQkJCJyAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPFJ4TGlua0JyZWFrMiBpZD0naW52YWxpZF9pY29uJyBjb2xvcj0nIzAwMCcgLz5cbiAgICAgICl9XG4gICAgPC9JY29uQnV0dG9uPixcbiAgXVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gY2hlY2sgZm9yIHZlcnNlIHJhbmdlXG4gICAgY29uc3QgX3ZlcnNlID0gc2NyaXB0dXJlQ29uZmlnPy5tYXRjaGVkVmVyc2VcblxuICAgIGlmIChhZGRWZXJzZVJhbmdlICYmICh0eXBlb2YgX3ZlcnNlID09PSAnc3RyaW5nJykpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmIChfdmVyc2UuaW5jbHVkZXMoJy0nKSkge1xuICAgICAgICBhZGRWZXJzZVJhbmdlKGAke3NjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlPy5jaGFwdGVyfToke192ZXJzZX1gKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3NjcmlwdHVyZUNvbmZpZz8ubWF0Y2hlZFZlcnNlXSlcblxuICByZXR1cm4gKFxuICAgIDxDYXJkXG4gICAgICBpZD17YHNjcmlwdHVyZV9jYXJkXyR7Y2FyZE51bX1gfVxuICAgICAgdGl0bGU9e3NjcmlwdHVyZUxhYmVsfVxuICAgICAgc2V0dGluZ3NUaXRsZT17c2NyaXB0dXJlVGl0bGUgKyAnIFNldHRpbmdzJ31cbiAgICAgIGl0ZW1zPXtpdGVtc31cbiAgICAgIGNsYXNzZXM9e2NsYXNzZXN9XG4gICAgICBoZWFkZXJzPXtoZWFkZXJzfVxuICAgICAgZmlsdGVycz17ZmlsdGVyc31cbiAgICAgIGZvbnRTaXplPXtmb250U2l6ZX1cbiAgICAgIGl0ZW1JbmRleD17aXRlbUluZGV4fVxuICAgICAgc2V0RmlsdGVycz17c2V0RmlsdGVyc31cbiAgICAgIHNldEZvbnRTaXplPXtzZXRGb250U2l6ZX1cbiAgICAgIHNldEl0ZW1JbmRleD17c2V0SXRlbUluZGV4fVxuICAgICAgbWFya2Rvd25WaWV3PXttYXJrZG93blZpZXd9XG4gICAgICBzZXRNYXJrZG93blZpZXc9e3NldE1hcmtkb3duVmlld31cbiAgICAgIGdldEN1c3RvbUNvbXBvbmVudD17Z2V0U2NyaXB0dXJlU2VsZWN0b3J9XG4gICAgICBoaWRlTWFya2Rvd25Ub2dnbGVcbiAgICAgIG9uTWVudUNsb3NlPXtvbk1lbnVDbG9zZX1cbiAgICAgIG9uTWluaW1pemU9e29uTWluaW1pemUgPyAoKSA9PiBvbk1pbmltaXplKGlkKSA6IG51bGx9XG4gICAgICBlZGl0YWJsZT17ZW5hYmxlRWRpdCB8fCBlbmFibGVBbGlnbm1lbnR9XG4gICAgICBzYXZlZD17IXVuc2F2ZWRDaGFuZ2VzfVxuICAgICAgb25TYXZlRWRpdD17c2F2ZUNoYW5nZXNUb0Nsb3VkfVxuICAgICAgb25CbHVyPXsoKSA9PiBzZXRFZGl0aW5nKGZhbHNlKX1cbiAgICAgIG9uUmVuZGVyVG9vbGJhcj17b25SZW5kZXJUb29sYmFyfVxuICAgID5cbiAgICAgIHthbGlnbmVyRGF0YSA/XG4gICAgICAgIDxkaXYgc3R5bGU9e3sgZmxleERpcmVjdGlvbjogJ2NvbHVtbicgfX0+XG4gICAgICAgICAgPFdvcmRBbGlnbmVyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXhIZWlnaHQ6ICc0NTBweCcsIG92ZXJmbG93WTogJ2F1dG8nIH19XG4gICAgICAgICAgICB2ZXJzZUFsaWdubWVudHM9e2FsaWduZXJEYXRhLmFsaWdubWVudHN9XG4gICAgICAgICAgICB0YXJnZXRXb3Jkcz17YWxpZ25lckRhdGEud29yZEJhbmt9XG4gICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgIGNvbnRleHRJZD17eyByZWZlcmVuY2U6IHJlZmVyZW5jZV8gfX1cbiAgICAgICAgICAgIHRhcmdldExhbmd1YWdlPXtsYW5ndWFnZX1cbiAgICAgICAgICAgIHRhcmdldExhbmd1YWdlRm9udD17Jyd9XG4gICAgICAgICAgICBzb3VyY2VMYW5ndWFnZT17aXNOVF8gPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkd9XG4gICAgICAgICAgICBzaG93UG9wb3Zlcj17c2hvd1BvcG92ZXJ9XG4gICAgICAgICAgICBsZXhpY29ucz17e319XG4gICAgICAgICAgICBsb2FkTGV4aWNvbkVudHJ5PXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsocmVzdWx0cykgPT4gb25BbGlnbm1lbnRzQ2hhbmdlKHJlc3VsdHMpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyB3aWR0aDogJzEwMCUnIH19PlxuICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubWFyZ2lufVxuICAgICAgICAgICAgICBrZXk9J2FsaWdubWVudC1zYXZlJ1xuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzYXZlQWxpZ25tZW50KCl9XG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9eydBbGlnbm1lbnQgU2F2ZSd9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxDaGVja091dGxpbmVkSWNvbiBpZD0nYWxpZ25tZW50LXNhdmUtaWNvbicgaHRtbENvbG9yPScjMDAwJyAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMubWFyZ2lufVxuICAgICAgICAgICAgICBrZXk9J2FsaWdubWVudC1jYW5jZWwnXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNhbmNlbEFsaWdubWVudCgpfVxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPXsnQWxpZ25tZW50IENhbmNlbCd9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxDYW5jZWxPdXRsaW5lZEljb24gaWQ9J2FsaWdubWVudC1jYW5jZWwtaWNvbicgaHRtbENvbG9yPScjMDAwJyAvPlxuICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgOlxuICAgICAgICA8U2NyaXB0dXJlUGFuZVxuICAgICAgICAgIHJlZlN0eWxlPXtyZWZTdHlsZX1cbiAgICAgICAgICB7Li4uc2NyaXB0dXJlQ29uZmlnfVxuICAgICAgICAgIHZlcnNlT2JqZWN0cz17Y3VycmVudFZlcnNlT2JqZWN0c31cbiAgICAgICAgICBpc05UPXtpc05UX31cbiAgICAgICAgICBzZXJ2ZXI9e3NlcnZlcn1cbiAgICAgICAgICByZWZlcmVuY2U9e3JlZmVyZW5jZX1cbiAgICAgICAgICBkaXJlY3Rpb249e2RpcmVjdGlvbn1cbiAgICAgICAgICBjb250ZW50U3R5bGU9e2NvbnRlbnRTdHlsZX1cbiAgICAgICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJffVxuICAgICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICBlZGl0aW5nPXtlZGl0aW5nfVxuICAgICAgICAgIHNldEVkaXRpbmc9e3NldEVkaXRpbmd9XG4gICAgICAgICAgc2V0VmVyc2VDaGFuZ2VkPXtzZXRWZXJzZUNoYW5nZWR9XG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgPC9DYXJkPlxuICApXG59XG5cblNjcmlwdHVyZUNhcmQucHJvcFR5cGVzID0ge1xuICAvKiogaHRtbCBpZGVudGlmaWVyIHRvIHVzZSBmb3IgY2FyZCAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgTlQgb3IgT1QgKi9cbiAgaXNOVDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIHRpdGxlIGZvciBzY3JpcHR1cmUgY2FyZCAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogZ2V0IGxhbmd1YWdlIGRldGFpbHMgKi9cbiAgZ2V0TGFuZ3VhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBzY3JpcHR1cmUgY2FyZCBudW1iZXIgKDAgdG8gMiBmb3IgZXhhbXBsZSkgKi9cbiAgY2FyZE51bTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAvKiogcmVzb3VyY2Ugb2JqZWN0ICovXG4gIHJlc291cmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiByZXNvdXJjZSBsYW5ndWFnZSB0byB1c2UgKi9cbiAgICBsYW5ndWFnZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgc3VjaCBhcyB1bmZvbGRpbmdXb3JkICovXG4gICAgb3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVzb3VyY2VJZCB0byB1c2UgKGUuZy4gdWdudCkgKi9cbiAgICByZXNvdXJjZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgZm9yIG9yaWdpbmFsIGxhbmd1YWdlcyBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSksXG4gIHJlZmVyZW5jZTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAvKiogcHJvamVjdElkIChib29rSUQpIHRvIHVzZSAqL1xuICAgIHByb2plY3RJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBjdXJyZW50IGNoYXB0ZXIgbnVtYmVyICovXG4gICAgY2hhcHRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gICAgLyoqIGN1cnJlbnQgdmVyc2UgbnVtYmVyICovXG4gICAgdmVyc2U6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIHNlcnZlciAoZS5nLiAnaHR0cHM6Ly9naXQuZG9vcjQzLm9yZycpICovXG4gIHNlcnZlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogcmVwbyBicmFuY2ggb3IgdGFnIHN1Y2ggYXMgbWFzdGVyICovXG4gIGFwcFJlZjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogaWYgdHJ1ZSB0aGVuIHdvcmQgZGF0YSBob3ZlciBpcyBzaG93biAqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IFByb3BUeXBlcy5ib29sLFxuICAvKiogQ1NTIGNsYXNzZXMgKi9cbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIHJlc291cmNlTGluayAqL1xuICByZXNvdXJjZUxpbms6IFByb3BUeXBlcy5hbnksXG4gIC8qKiB1c2UgbWV0aG9kIGZvciB1c2luZyBsb2NhbCBzdG9yYWdlIHNwZWNpZmljIGZvciB1c2VyICovXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBvcHRpb25hbCBjYWxsYmFjayBpZiBlcnJvciBsb2FkaW5nIHJlc291cmNlLCBwYXJhbWV0ZXIgcmV0dXJuZWQgYXJlOlxuICAgKiAgICAoe3N0cmluZ30gZXJyb3JNZXNzYWdlLCB7Ym9vbGVhbn0gaXNBY2Nlc3NFcnJvciwge29iamVjdH0gcmVzb3VyY2VTdGF0dXMpXG4gICAqICAgICAgLSBpc0FjY2Vzc0Vycm9yIC0gaXMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBlcnJvciB0cnlpbmcgdG8gYWNjZXNzIGZpbGVcbiAgICogICAgICAtIHJlc291cmNlU3RhdHVzIC0gaXMgb2JqZWN0IGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dCBwcm9ibGVtcyBmZXRjaGluZyByZXNvdXJjZSAqL1xuICBvblJlc291cmNlRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgaHR0cCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgZmV0Y2hpbmcgcmVzb3VyY2VzLCBkZWZhdWx0IGlzIDAgKHZlcnkgbG9uZyB3YWl0KSAqL1xuICBodHRwQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBncmVlayByZXBvICovXG4gIGdyZWVrUmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgaGVicmV3IHJlcG8gKi9cbiAgaGVicmV3UmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGZ1bmN0aW9uIHRvIHByZS1sb2FkIGxleGljb24gZGF0YSBmb3IgdmVyc2UgKi9cbiAgZmV0Y2hHbG9zc2VzRm9yVmVyc2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogZnVuY3Rpb24gdG8gbWluaW1pemUgdGhlIGNhcmQgKG9wdGlvbmFsKSAqL1xuICBvbk1pbmltaXplOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHVzZXItbmFtZSAqL1xuICBsb2dnZWRJblVzZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBhdXRoZW50aWNhdGlvbiBpbmZvICovXG4gIGF1dGhlbnRpY2F0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogZnVuY3Rpb24gdG8gc2V0IHN0YXRlIGluIGFwcCB0aGF0IHRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGluZGV4IGZvciBjdXJyZW50IGJvb2sgKGUuZy4gJzAxJyBmb3IgJ2dlbicpKi9cbiAgYm9va0luZGV4OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogY2FsbGJhY2sgdG8gaW5kaWNhdGUgdGhhdCB3ZSBhcmUgdXNpbmcgYSB2ZXJzZSByYW5nZSBoZXJlICovXG4gIGFkZFZlcnNlUmFuZ2U6IFByb3BUeXBlcy5mdW5jLFxufVxuIl19
|
|
596
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZUNhcmQvU2NyaXB0dXJlQ2FyZC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJQcm9wVHlwZXMiLCJSeExpbmsyIiwiUnhMaW5rQnJlYWsyIiwiQ2FyZCIsInVzZUNhcmRTdGF0ZSIsInVzZVVzZXJCcmFuY2giLCJFUlJPUl9TVEFURSIsIk1BTklGRVNUX05PVF9MT0FERURfRVJST1IiLCJJY29uQnV0dG9uIiwiU2NyaXB0dXJlUGFuZSIsIlNjcmlwdHVyZVNlbGVjdG9yIiwidXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJnZXRSZXNvdXJjZUxpbmsiLCJnZXRSZXNvdXJjZU1lc3NhZ2UiLCJnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3MiLCJpc09yaWdpbmFsQmlibGUiLCJUaXRsZSIsIk5UX09SSUdfTEFORyIsIk9SSUdJTkFMX1NPVVJDRSIsIk9UX09SSUdfTEFORyIsInVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJLRVlfRk9OVF9TSVpFX0JBU0UiLCJsYWJlbCIsInN0eWxlIiwibWFyZ2luVG9wIiwid2lkdGgiLCJTY3JpcHR1cmVDYXJkIiwiaWQiLCJpc05UIiwidGl0bGUiLCJzZXJ2ZXIiLCJhcHBSZWYiLCJjYXJkTnVtIiwiY2xhc3NlcyIsInJlc291cmNlIiwib3duZXIiLCJsYW5ndWFnZUlkIiwicmVzb3VyY2VJZCIsIm9yaWdpbmFsTGFuZ3VhZ2VPd25lciIsImdldExhbmd1YWdlIiwicmVmZXJlbmNlIiwidmVyc2UiLCJjaGFwdGVyIiwiYm9va0lkIiwicHJvamVjdElkIiwicmVzb3VyY2VMaW5rIiwidXNlVXNlckxvY2FsU3RvcmFnZSIsImRpc2FibGVXb3JkUG9wb3ZlciIsIm9uUmVzb3VyY2VFcnJvciIsImh0dHBDb25maWciLCJncmVla1JlcG9VcmwiLCJoZWJyZXdSZXBvVXJsIiwiZ2V0TGV4aWNvbkRhdGEiLCJmZXRjaEdsb3NzZXNGb3JWZXJzZSIsInRyYW5zbGF0ZSIsIm9uTWluaW1pemUiLCJsb2dnZWRJblVzZXIiLCJhdXRoZW50aWNhdGlvbiIsInNldFNhdmVkQ2hhbmdlcyIsImJvb2tJbmRleCIsImFkZFZlcnNlUmFuZ2UiLCJzZXRXb3JkQWxpZ25lclN0YXR1cyIsInVzZVN0YXRlIiwiY3VycmVudFZlcnNlTnVtIiwicmVmIiwidXJsRXJyb3IiLCJ1c2luZ1VzZXJCcmFuY2giLCJkb2luZ0FsaWdubWVudCIsInN0YXRlIiwic2V0U3RhdGVfIiwiZm9udFNpemUiLCJzZXRGb250U2l6ZSIsImlzTlRfIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImNhY2hlIiwibWF4QWdlIiwic2V0VXJsRXJyb3IiLCJlcnJvciIsIndob2xlQm9vayIsImlzTmV3VGVzdGFtZW50Iiwic2NyaXB0dXJlQ29uZmlnIiwic2V0U2NyaXB0dXJlIiwic2NyaXB0dXJlU2V0dGluZ3MiLCJzY3JpcHR1cmVWZXJzaW9uSGlzdCIsImNhcmRSZXNvdXJjZUlkIiwiY3VycmVudFZlcnNlRGF0YV8iLCJ2ZXJzZXNGb3JSZWYiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwidmVyc2VEYXRhIiwidmVyc2VPYmplY3RzIiwicmVmXyIsImNhblVzZUVkaXRCcmFuY2giLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJjYXJkSWQiLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJ1c2luZ1VzZXJCcmFuY2hfIiwic3RhcnRFZGl0QnJhbmNoIiwiYWN0aW9ucyIsInN0YXJ0RWRpdCIsIndvcmtpbmdSZWYiLCJzY3JpcHR1cmVUaXRsZSIsInVzZUVmZmVjdCIsIndvcmtpbmdSZWZfIiwicmVzb3VyY2VTdGF0dXMiLCJtZXNzYWdlIiwiaXNBY2Nlc3NFcnJvciIsInZlcnNpb24iLCJ1cGRhdGVUaXRsZSIsImdldFNjcmlwdHVyZVNlbGVjdG9yIiwic2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnIiwib25NZW51Q2xvc2UiLCJsYW5ndWFnZUlkXyIsImxhbmd1YWdlIiwiZGlyZWN0aW9uIiwiaXNIZWJyZXciLCJmb250RmFjdG9yIiwic2NhbGVkRm9udFNpemUiLCJjdXJyZW50VmVyc2VTdHIiLCJ0b1N0cmluZyIsIml0ZW1zIiwiaGVhZGVycyIsImZpbHRlcnMiLCJpdGVtSW5kZXgiLCJtYXJrZG93blZpZXciLCJzZXRGaWx0ZXJzIiwic2V0SXRlbUluZGV4Iiwic2V0TWFya2Rvd25WaWV3IiwicmVmU3R5bGUiLCJ1c2VNZW1vIiwiZm9udEZhbWlseSIsIk1hdGgiLCJyb3VuZCIsImNvbnRlbnRTdHlsZSIsInNjcmlwdHVyZUxhYmVsIiwiZGlzYWJsZVdvcmRQb3BvdmVyXyIsInVzaW5nT3JpZ2luYWxCaWJsZSIsInVuZGVmaW5lZCIsImZldGNoR2xvc3NEYXRhRm9yVmVyc2UiLCJlbmFibGVFZGl0IiwiZW5hYmxlQWxpZ25tZW50Iiwib3JpZ2luYWxSZXBvVXJsIiwiX3NjcmlwdHVyZUFsaWdubWVudEVkaXQiLCJjdXJyZW50VmVyc2VSZWYiLCJ0YXJnZXRMYW5ndWFnZSIsInNvdXJjZUxhbmd1YWdlIiwiY3VycmVudFZlcnNlT2JqZWN0cyIsImhhbmRsZUFsaWdubWVudENsaWNrIiwic2V0RWRpdGluZyIsInNldFZlcnNlQ2hhbmdlZCIsInNhdmVDaGFuZ2VzVG9DbG91ZCIsImFsaWduZWQiLCJhbGlnbmVyRGF0YSIsImRvaW5nU2F2ZSIsImVkaXRpbmciLCJ1bnNhdmVkQ2hhbmdlcyIsInVuc2F2ZWRDaGFuZ2VzXyIsImNoZWNraW5nU3RhdGUiLCJ0aXRsZVRleHQiLCJvblJlbmRlclRvb2xiYXIiLCJtYXJnaW4iLCJjdXJzb3IiLCJfdmVyc2UiLCJpbmNsdWRlcyIsInByb3BUeXBlcyIsInN0cmluZyIsImZ1bmMiLCJpc1JlcXVpcmVkIiwibnVtYmVyIiwic2hhcGUiLCJvbmVPZlR5cGUiLCJib29sIiwib2JqZWN0IiwiYW55Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUNBLE9BQU8sS0FB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RXhCO0FBQ0FwSCxFQUFBQSxlQUFlLEVBQUUxRCxTQUFTLENBQUN3SyxJQWxFSDs7QUFtRXhCO0FBQ0E3RyxFQUFBQSxTQUFTLEVBQUUzRCxTQUFTLENBQUN1SyxNQXBFRzs7QUFxRXhCO0FBQ0EzRyxFQUFBQSxhQUFhLEVBQUU1RCxTQUFTLENBQUN3SyxJQXRFRDs7QUF1RXhCO0FBQ0EzRyxFQUFBQSxvQkFBb0IsRUFBRTdELFNBQVMsQ0FBQ3dLO0FBeEVSLENBQTFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgKiBhcyBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcydcbmltcG9ydCB7IFJ4TGluazIsIFJ4TGlua0JyZWFrMiB9IGZyb20gJ3JlYWN0LWljb25zL3J4J1xuXG5pbXBvcnQge1xuICBDYXJkLFxuICB1c2VDYXJkU3RhdGUsXG4gIHVzZVVzZXJCcmFuY2gsXG4gIEVSUk9SX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnQG11aS9tYXRlcmlhbCdcbmltcG9ydCB7IFNjcmlwdHVyZVBhbmUsIFNjcmlwdHVyZVNlbGVjdG9yIH0gZnJvbSAnLi4nXG5pbXBvcnQgeyB1c2VTY3JpcHR1cmVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgZ2V0UmVzb3VyY2VMaW5rLFxuICBnZXRSZXNvdXJjZU1lc3NhZ2UsXG4gIGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyxcbiAgaXNPcmlnaW5hbEJpYmxlLFxufSBmcm9tICcuLi8uLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnLi4vU2NyaXB0dXJlUGFuZS9zdHlsZWQnXG5pbXBvcnQge1xuICBOVF9PUklHX0xBTkcsXG4gIE9SSUdJTkFMX1NPVVJDRSxcbiAgT1RfT1JJR19MQU5HLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQgfSBmcm9tICcuLi8uLi9ob29rcy91c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0J1xuXG5jb25zdCBLRVlfRk9OVF9TSVpFX0JBU0UgPSAnc2NyaXB0dXJlUGFuZUZvbnRTaXplXydcbmNvbnN0IGxhYmVsID0gJ1ZlcnNpb24nXG5jb25zdCBzdHlsZSA9IHsgbWFyZ2luVG9wOiAnMTZweCcsIHdpZHRoOiAnNTAwcHgnIH1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2NyaXB0dXJlQ2FyZCh7XG4gIGlkLFxuICBpc05ULFxuICB0aXRsZSxcbiAgc2VydmVyLFxuICBhcHBSZWYsXG4gIGNhcmROdW0sXG4gIGNsYXNzZXMsXG4gIHJlc291cmNlOiB7XG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgfSxcbiAgZ2V0TGFuZ3VhZ2UsXG4gIHJlZmVyZW5jZToge1xuICAgIHZlcnNlLFxuICAgIGNoYXB0ZXIsXG4gICAgcHJvamVjdElkOiBib29rSWQsXG4gIH0sXG4gIHJlc291cmNlTGluayxcbiAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBvblJlc291cmNlRXJyb3IsXG4gIGh0dHBDb25maWcsXG4gIGdyZWVrUmVwb1VybCxcbiAgaGVicmV3UmVwb1VybCxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIGZldGNoR2xvc3Nlc0ZvclZlcnNlLFxuICB0cmFuc2xhdGUsXG4gIG9uTWluaW1pemUsXG4gIGxvZ2dlZEluVXNlcixcbiAgYXV0aGVudGljYXRpb24sXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgYm9va0luZGV4LFxuICBhZGRWZXJzZVJhbmdlLFxuICBzZXRXb3JkQWxpZ25lclN0YXR1cyxcbn0pIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIGN1cnJlbnRWZXJzZU51bTogMCwgLy9UT0RPIHdpbGwgYmUgdXNlZCBpbiBmdXR1cmUgd2hlbiBuZWVkIHRvIHN1cHBvcnQgbXVsdGlwbGUgdmVyc2VzIGluIGNhcmRcbiAgICByZWY6IGFwcFJlZixcbiAgICB1cmxFcnJvcjogbnVsbCxcbiAgICB1c2luZ1VzZXJCcmFuY2g6IGZhbHNlLFxuICAgIGRvaW5nQWxpZ25tZW50OiBmYWxzZSxcbiAgfSlcbiAgY29uc3Qge1xuICAgIGN1cnJlbnRWZXJzZU51bSxcbiAgICByZWYsXG4gICAgdXJsRXJyb3IsXG4gICAgdXNpbmdVc2VyQnJhbmNoLFxuICAgIGRvaW5nQWxpZ25tZW50LFxuICB9ID0gc3RhdGVcblxuICBjb25zdCBbZm9udFNpemUsIHNldEZvbnRTaXplXSA9IHVzZVVzZXJMb2NhbFN0b3JhZ2UoS0VZX0ZPTlRfU0laRV9CQVNFICsgY2FyZE51bSwgMTAwKVxuICBjb25zdCBpc05UXyA9IGlzTlQoYm9va0lkKVxuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoeyAuLi5wcmV2U3RhdGUsIC4uLm5ld1N0YXRlIH0pKVxuICB9XG5cbiAgaWYgKHVzaW5nVXNlckJyYW5jaCkge1xuICAgIGh0dHBDb25maWcgPSB7IC4uLmh0dHBDb25maWcsIGNhY2hlOiB7IG1heEFnZTogMCB9IH0gLy8gZGlzYWJsZSBodHRwIGNhY2hpbmdcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBzY3JpcHR1cmVDb25maWcsXG4gICAgc2V0U2NyaXB0dXJlLFxuICAgIHNjcmlwdHVyZVNldHRpbmdzLFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICB9ID0gdXNlU2NyaXB0dXJlU2V0dGluZ3Moe1xuICAgIGlzTlQsXG4gICAgdGl0bGUsXG4gICAgdmVyc2UsXG4gICAgb3duZXIsXG4gICAgYm9va0lkLFxuICAgIGFwcFJlZjogcmVmLFxuICAgIHNlcnZlcixcbiAgICBjYXJkTnVtLFxuICAgIGNoYXB0ZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIHJlc291cmNlTGluayxcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgc2V0VXJsRXJyb3I6IChlcnJvcikgPT4gc2V0U3RhdGUoeyB1cmxFcnJvcjogZXJyb3IgfSksXG4gICAgaHR0cENvbmZpZyxcbiAgICBncmVla1JlcG9VcmwsXG4gICAgaGVicmV3UmVwb1VybCxcbiAgICB3aG9sZUJvb2s6IHRydWUsXG4gIH0pXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBjYXJkUmVzb3VyY2VJZCA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnByb2plY3RJZCB8fCByZXNvdXJjZUlkXG4gIGNvbnN0IGN1cnJlbnRWZXJzZURhdGFfID0gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWY/LltjdXJyZW50VmVyc2VOdW1dIHx8IG51bGxcbiAgY29uc3QgaW5pdGlhbFZlcnNlT2JqZWN0cyA9IGN1cnJlbnRWZXJzZURhdGFfPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cyB8fCBudWxsXG4gIC8vIEB0cy1pZ25vcmVcbiAgbGV0IHJlZl8gPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5yZWYgfHwgYXBwUmVmXG4gIGNvbnN0IGNhblVzZUVkaXRCcmFuY2ggPSBsb2dnZWRJblVzZXIgJiYgYXV0aGVudGljYXRpb24gJiZcbiAgICAocmVzb3VyY2VJZCAhPT0gT1JJR0lOQUxfU09VUkNFKSAmJlxuICAgICgocmVmXyA9PT0gJ21hc3RlcicpIHx8IChyZWZfLnN1YnN0cmluZygwLCBsb2dnZWRJblVzZXIubGVuZ3RoKSA9PT0gbG9nZ2VkSW5Vc2VyKSApIC8vIG5vdCB0YWdcblxuICBjb25zdCB7XG4gICAgc3RhdGU6IHsgd29ya2luZ1Jlc291cmNlQnJhbmNoLCB1c2luZ1VzZXJCcmFuY2g6IHVzaW5nVXNlckJyYW5jaF8gfSxcbiAgICBhY3Rpb25zOiB7IHN0YXJ0RWRpdDogc3RhcnRFZGl0QnJhbmNoIH0sXG4gIH0gPSB1c2VVc2VyQnJhbmNoKHtcbiAgICBvd25lcixcbiAgICBzZXJ2ZXIsXG4gICAgYXBwUmVmLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgY2FyZElkOiBpZCxcbiAgICBsb2dnZWRJblVzZXI6IGNhblVzZUVkaXRCcmFuY2ggPyBsb2dnZWRJblVzZXIgOiBudWxsLFxuICAgIGF1dGhlbnRpY2F0aW9uOiBjYW5Vc2VFZGl0QnJhbmNoID8gYXV0aGVudGljYXRpb24gOiBudWxsLFxuICAgIGNhcmRSZXNvdXJjZUlkLFxuICAgIG9uUmVzb3VyY2VFcnJvcixcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICB9KVxuXG4gIGNvbnN0IHdvcmtpbmdSZWYgPSBjYW5Vc2VFZGl0QnJhbmNoID8gd29ya2luZ1Jlc291cmNlQnJhbmNoIDogYXBwUmVmXG4gIGxldCBzY3JpcHR1cmVUaXRsZVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNlbGVjdCBjb3JyZWN0IHdvcmtpbmcgcmVmIC0gY291bGQgYmUgbWFzdGVyLCB1c2VyIGJyYW5jaCwgb3IgcmVsZWFzZVxuICAgIGlmICh1c2luZ1VzZXJCcmFuY2hfICE9PSB1c2luZ1VzZXJCcmFuY2gpIHtcbiAgICAgIHNldFN0YXRlKHsgdXNpbmdVc2VyQnJhbmNoOiB1c2luZ1VzZXJCcmFuY2hfIH0pXG4gICAgfVxuICB9LCBbdXNpbmdVc2VyQnJhbmNoXywgdXNpbmdVc2VyQnJhbmNoXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBzZWxlY3QgY29ycmVjdCB3b3JraW5nIHJlZiAtIGNvdWxkIGJlIG1hc3RlciwgdXNlciBicmFuY2gsIG9yIHJlbGVhc2VcbiAgICBsZXQgd29ya2luZ1JlZl8gPSB3b3JraW5nUmVmIHx8IGFwcFJlZlxuXG4gICAgaWYgKHJlZiAhPT0gd29ya2luZ1JlZl8pIHtcbiAgICAgIHNldFN0YXRlKHsgcmVmOiB3b3JraW5nUmVmXyB9KVxuICAgIH1cbiAgfSwgW3dvcmtpbmdSZWYsIHJlZiwgYXBwUmVmXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB1cGRhdGUgZGlzcGxheSBzdGF0dXMgaWYgZXJyb3JcbiAgICBjb25zdCBlcnJvciA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1cblxuICAgIGlmIChlcnJvcikgeyAvLyBpZiBlcnJvciB3YXMgZm91bmQgZG8gY2FsbGJhY2tcbiAgICAgIGNvbnN0IHJlc291cmNlU3RhdHVzID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1c1xuICAgICAgY29uc3QgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZUNvbmZpZylcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXMsIHNlcnZlciwgcmVzb3VyY2VMaW5rLCBpc05UXylcbiAgICAgIGNvbnN0IGlzQWNjZXNzRXJyb3IgPSByZXNvdXJjZVN0YXR1c1tNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXVxuICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihtZXNzYWdlLCBpc0FjY2Vzc0Vycm9yLCByZXNvdXJjZVN0YXR1cylcbiAgICB9XG4gIH0sIFtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzPy5bRVJST1JfU1RBVEVdLCBvblJlc291cmNlRXJyb3JdKVxuXG4gIGlmIChzY3JpcHR1cmVDb25maWcudGl0bGUgJiYgc2NyaXB0dXJlQ29uZmlnLnZlcnNpb24pIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGAke3NjcmlwdHVyZUNvbmZpZy50aXRsZX0gdiR7c2NyaXB0dXJlQ29uZmlnLnZlcnNpb259YFxuICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LnVwZGF0ZVRpdGxlKHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssIHNjcmlwdHVyZVRpdGxlKVxuICB9IGVsc2Uge1xuICAgIHNjcmlwdHVyZVRpdGxlID0gYFRpdGxlIG1pc3NpbmcgZnJvbSBwcm9qZWN0IG1hbmlmZXN0YFxuICB9XG5cbiAgLyoqIER5bmFtaWNhbGx5IGNyZWF0ZXMgdGhlIHNjcmlwdHVyZSBzZWxlY3Rpb24gZHJvcGRvd24gdG8gYmUgaW5zZXJ0ZWQgaW50byBjYXJkIHNldHRpbmdzICovXG4gIGZ1bmN0aW9uIGdldFNjcmlwdHVyZVNlbGVjdG9yKCkge1xuICAgIGNvbnN0IHNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZyA9IGdldFNjcmlwdHVyZVZlcnNpb25TZXR0aW5ncyh7XG4gICAgICBsYWJlbCxcbiAgICAgIHJlc291cmNlTGluazogc2NyaXB0dXJlQ29uZmlnLnJlc291cmNlTGluayxcbiAgICAgIHNldFNjcmlwdHVyZSxcbiAgICAgIHNjcmlwdHVyZVZlcnNpb25IaXN0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gPFNjcmlwdHVyZVNlbGVjdG9yIHsuLi5zY3JpcHR1cmVTZWxlY3Rpb25Db25maWd9IHN0eWxlPXtzdHlsZX0gZXJyb3JNZXNzYWdlPXt1cmxFcnJvcn0gLz5cbiAgfVxuXG4gIGZ1bmN0aW9uIG9uTWVudUNsb3NlKCkge1xuICAgIC8vIGNvbnNvbGUubG9nKGBvbk1lbnVDbG9zZSgpYClcbiAgICBzZXRTdGF0ZSh7IHVybEVycm9yOiBudWxsIH0pXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGxhbmd1YWdlSWRfID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZFxuICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlKHsgbGFuZ3VhZ2VJZDogbGFuZ3VhZ2VJZF8gfSlcbiAgY29uc3QgZGlyZWN0aW9uID0gKGxhbmd1YWdlPy5kaXJlY3Rpb24pIHx8ICdsdHInXG4gIGNvbnN0IHJlZmVyZW5jZSA9IHsgLi4uc2NyaXB0dXJlQ29uZmlnLnJlZmVyZW5jZSB9XG5cbiAgY29uc3QgaXNIZWJyZXcgPSAobGFuZ3VhZ2VJZF8gPT09ICdoYm8nKVxuICBjb25zdCBmb250RmFjdG9yID0gaXNIZWJyZXcgPyAxLjQgOiAxIC8vIHdlIGF1dG9tYXRpY2FsbHkgc2NhbGUgdXAgZm9udCBzaXplIGZvciBIZWJyZXdcbiAgY29uc3Qgc2NhbGVkRm9udFNpemUgPSBmb250U2l6ZSAqIGZvbnRGYWN0b3JcbiAgY29uc3QgY3VycmVudFZlcnNlU3RyID0gY3VycmVudFZlcnNlRGF0YV8/LnZlcnNlLnRvU3RyaW5nKClcblxuICBpZiAoY3VycmVudFZlcnNlU3RyICYmIChjdXJyZW50VmVyc2VTdHIgIT09IHJlZmVyZW5jZS52ZXJzZSkpIHsgLy8gc3VwcG9ydCBmb3IgdmVyc2Ugc3BhblxuICAgIHJlZmVyZW5jZS52ZXJzZSA9IGN1cnJlbnRWZXJzZVN0clxuICB9XG5cbiAgY29uc3QgaXRlbXMgPSBudWxsXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgaGVhZGVycywgZmlsdGVycywgaXRlbUluZGV4LCBtYXJrZG93blZpZXcsXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBzZXRGaWx0ZXJzLCBzZXRJdGVtSW5kZXgsIHNldE1hcmtkb3duVmlldyxcbiAgICB9LFxuICB9ID0gdXNlQ2FyZFN0YXRlKHsgaXRlbXMgfSlcblxuICBjb25zdCByZWZTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7TWF0aC5yb3VuZChzY2FsZWRGb250U2l6ZSAqIDAuOSl9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IGNvbnRlbnRTdHlsZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogYCR7c2NhbGVkRm9udFNpemV9JWAsXG4gIH0pLCBbc2NhbGVkRm9udFNpemVdKVxuXG4gIGNvbnN0IHNjcmlwdHVyZUxhYmVsID0gPFRpdGxlPntzY3JpcHR1cmVUaXRsZX08L1RpdGxlPlxuICBsZXQgZGlzYWJsZVdvcmRQb3BvdmVyXyA9IGRpc2FibGVXb3JkUG9wb3ZlclxuICBjb25zdCB1c2luZ09yaWdpbmFsQmlibGUgPSBpc09yaWdpbmFsQmlibGUoc2NyaXB0dXJlQ29uZmlnWydyZXNvdXJjZSddPy5wcm9qZWN0SWQpXG5cbiAgaWYgKGRpc2FibGVXb3JkUG9wb3ZlciA9PT0gdW5kZWZpbmVkKSB7IC8vIGlmIG5vdCBzcGVjaWZpZWQsIHRoZW4gZGV0ZXJtaW5lIGlmIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyXyA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHByZS1jYWNoZSBnbG9zc2VzIG9uIHZlcnNlIGNoYW5nZVxuICAgIGNvbnN0IGZldGNoR2xvc3NEYXRhRm9yVmVyc2UgPSBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoIWRpc2FibGVXb3JkUG9wb3ZlciAmJiBpbml0aWFsVmVyc2VPYmplY3RzICYmIGZldGNoR2xvc3Nlc0ZvclZlcnNlKSB7XG4gICAgICAgIGF3YWl0IGZldGNoR2xvc3Nlc0ZvclZlcnNlKGluaXRpYWxWZXJzZU9iamVjdHMsIGxhbmd1YWdlSWRfKVxuICAgICAgfVxuICAgIH1cblxuICAgIGZldGNoR2xvc3NEYXRhRm9yVmVyc2UoKVxuICB9LCBbIGluaXRpYWxWZXJzZU9iamVjdHMsIGRpc2FibGVXb3JkUG9wb3ZlciwgbGFuZ3VhZ2VJZF8sIGZldGNoR2xvc3Nlc0ZvclZlcnNlIF0pXG5cbiAgY29uc3QgZW5hYmxlRWRpdCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3QgZW5hYmxlQWxpZ25tZW50ID0gIXVzaW5nT3JpZ2luYWxCaWJsZVxuICBjb25zdCBvcmlnaW5hbFJlcG9VcmwgPSBpc05ld1Rlc3RhbWVudCA/IGdyZWVrUmVwb1VybCA6IGhlYnJld1JlcG9VcmxcbiAgY29uc3QgX3NjcmlwdHVyZUFsaWdubWVudEVkaXQgPSB1c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0KHtcbiAgICBhdXRoZW50aWNhdGlvbjogY2FuVXNlRWRpdEJyYW5jaCA/IGF1dGhlbnRpY2F0aW9uIDogbnVsbCxcbiAgICBjdXJyZW50VmVyc2VSZWY6IHJlZmVyZW5jZSxcbiAgICBlbmFibGVFZGl0LFxuICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICBodHRwQ29uZmlnLFxuICAgIGluaXRpYWxWZXJzZU9iamVjdHMsXG4gICAgaXNOZXdUZXN0YW1lbnQsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIG9yaWdpbmFsUmVwb1VybCxcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgc2NyaXB0dXJlQ29uZmlnLFxuICAgIHNjcmlwdHVyZVNldHRpbmdzLFxuICAgIHN0YXJ0RWRpdEJyYW5jaCxcbiAgICBib29rSW5kZXgsXG4gICAgd29ya2luZ1Jlc291cmNlQnJhbmNoOiByZWYsXG4gICAgY3VycmVudFZlcnNlTnVtLFxuICAgIHRhcmdldExhbmd1YWdlOiBsYW5ndWFnZSxcbiAgICBzb3VyY2VMYW5ndWFnZTogaXNOVF8gPyBOVF9PUklHX0xBTkcgOiBPVF9PUklHX0xBTkcsXG4gICAgdGl0bGU6IHNjcmlwdHVyZVRpdGxlLFxuICB9KVxuICBjb25zdCB7XG4gICAgYWN0aW9uczoge1xuICAgICAgY3VycmVudFZlcnNlT2JqZWN0cyxcbiAgICAgIGhhbmRsZUFsaWdubWVudENsaWNrLFxuICAgICAgc2V0RWRpdGluZyxcbiAgICAgIHNldFZlcnNlQ2hhbmdlZCxcbiAgICAgIHNhdmVDaGFuZ2VzVG9DbG91ZCxcbiAgICB9LFxuICAgIHN0YXRlOiB7XG4gICAgICBhbGlnbmVkLFxuICAgICAgYWxpZ25lckRhdGEsXG4gICAgICBkb2luZ1NhdmUsXG4gICAgICBlZGl0aW5nLFxuICAgICAgdW5zYXZlZENoYW5nZXMsXG4gICAgfSxcbiAgfSA9IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoX3NjcmlwdHVyZUFsaWdubWVudEVkaXQ/LnN0YXRlPy5hbGlnbmVyRGF0YSAmJiAhZG9pbmdBbGlnbm1lbnQpIHtcbiAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzKF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0KVxuICAgICAgc2V0U3RhdGUoeyBkb2luZ0FsaWdubWVudDogdHJ1ZSB9KVxuICAgIH0gZWxzZSBpZiAoZG9pbmdBbGlnbm1lbnQpIHtcbiAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzKF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0KVxuICAgICAgc2V0U3RhdGUoeyBkb2luZ0FsaWdubWVudDogZmFsc2UgfSlcbiAgICB9XG4gIH0sIFtfc2NyaXB0dXJlQWxpZ25tZW50RWRpdD8uc3RhdGU/LmFsaWduZXJEYXRhXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBzZXQgc2F2ZWQgY2hhbmdlcyB3aGVuZXZlciB1c2VyIGVkaXRzIHZlcnNlIHRleHQgb3IgYWxpZ25tZW50cyBvciBpZiBhbGlnbm1lbnRzIGFyZSBvcGVuXG4gICAgY29uc3QgdW5zYXZlZENoYW5nZXNfID0gdW5zYXZlZENoYW5nZXMgfHwgYWxpZ25lckRhdGFcbiAgICBzZXRTYXZlZENoYW5nZXMgJiYgc2V0U2F2ZWRDaGFuZ2VzKHJlc291cmNlSWQsICF1bnNhdmVkQ2hhbmdlc18pXG4gIH0sIFt1bnNhdmVkQ2hhbmdlcywgYWxpZ25lckRhdGFdKVxuXG4gIGNvbnN0IGNoZWNraW5nU3RhdGUgPSBhbGlnbmVkID8gJ3ZhbGlkJyA6ICdpbnZhbGlkJ1xuICBjb25zdCB0aXRsZVRleHQgPSBjaGVja2luZ1N0YXRlID09PSAndmFsaWQnID8gJ0FsaWdubWVudCBpcyBWYWxpZCcgOiAnQWxpZ25tZW50IGlzIEludmFsaWQnXG4gIGNvbnN0IG9uUmVuZGVyVG9vbGJhciA9ICh7IGl0ZW1zIH0pID0+IFtcbiAgICAuLi5pdGVtcyxcbiAgICA8SWNvbkJ1dHRvblxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLm1hcmdpbn1cbiAgICAgIGtleT0nY2hlY2tpbmctYnV0dG9uJ1xuICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlQWxpZ25tZW50Q2xpY2soKX1cbiAgICAgIHRpdGxlPXt0aXRsZVRleHR9XG4gICAgICBhcmlhLWxhYmVsPXt0aXRsZVRleHR9XG4gICAgICBzdHlsZT17eyBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgID5cbiAgICAgIHtjaGVja2luZ1N0YXRlID09PSAndmFsaWQnID8gKFxuICAgICAgICA8UnhMaW5rMiBpZD0ndmFsaWRfaWNvbicgY29sb3I9JyNCQkInIC8+XG4gICAgICApIDogKFxuICAgICAgICA8UnhMaW5rQnJlYWsyIGlkPSdpbnZhbGlkX2ljb24nIGNvbG9yPScjMDAwJyAvPlxuICAgICAgKX1cbiAgICA8L0ljb25CdXR0b24+LFxuICBdXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBjaGVjayBmb3IgdmVyc2UgcmFuZ2VcbiAgICBjb25zdCBfdmVyc2UgPSByZWZlcmVuY2UudmVyc2VcblxuICAgIGlmIChhZGRWZXJzZVJhbmdlICYmICh0eXBlb2YgX3ZlcnNlID09PSAnc3RyaW5nJykpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmIChfdmVyc2UuaW5jbHVkZXMoJy0nKSkge1xuICAgICAgICBhZGRWZXJzZVJhbmdlKGAke3NjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlPy5jaGFwdGVyfToke192ZXJzZX1gKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3JlZmVyZW5jZS52ZXJzZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8Q2FyZFxuICAgICAgaWQ9e2BzY3JpcHR1cmVfY2FyZF8ke2NhcmROdW19YH1cbiAgICAgIHRpdGxlPXtzY3JpcHR1cmVMYWJlbH1cbiAgICAgIHNldHRpbmdzVGl0bGU9e3NjcmlwdHVyZVRpdGxlICsgJyBTZXR0aW5ncyd9XG4gICAgICBpdGVtcz17aXRlbXN9XG4gICAgICBjbGFzc2VzPXtjbGFzc2VzfVxuICAgICAgaGVhZGVycz17aGVhZGVyc31cbiAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICBpdGVtSW5kZXg9e2l0ZW1JbmRleH1cbiAgICAgIHNldEZpbHRlcnM9e3NldEZpbHRlcnN9XG4gICAgICBzZXRGb250U2l6ZT17c2V0Rm9udFNpemV9XG4gICAgICBzZXRJdGVtSW5kZXg9e3NldEl0ZW1JbmRleH1cbiAgICAgIG1hcmtkb3duVmlldz17bWFya2Rvd25WaWV3fVxuICAgICAgc2V0TWFya2Rvd25WaWV3PXtzZXRNYXJrZG93blZpZXd9XG4gICAgICBnZXRDdXN0b21Db21wb25lbnQ9e2dldFNjcmlwdHVyZVNlbGVjdG9yfVxuICAgICAgaGlkZU1hcmtkb3duVG9nZ2xlXG4gICAgICBvbk1lbnVDbG9zZT17b25NZW51Q2xvc2V9XG4gICAgICBvbk1pbmltaXplPXtvbk1pbmltaXplID8gKCkgPT4gb25NaW5pbWl6ZShpZCkgOiBudWxsfVxuICAgICAgZWRpdGFibGU9e2VuYWJsZUVkaXQgfHwgZW5hYmxlQWxpZ25tZW50fVxuICAgICAgc2F2ZWQ9e2RvaW5nU2F2ZSB8fCAhdW5zYXZlZENoYW5nZXN9XG4gICAgICBvblNhdmVFZGl0PXtzYXZlQ2hhbmdlc1RvQ2xvdWR9XG4gICAgICBvbkJsdXI9eygpID0+IHNldEVkaXRpbmcoZmFsc2UpfVxuICAgICAgb25SZW5kZXJUb29sYmFyPXtvblJlbmRlclRvb2xiYXJ9XG4gICAgPlxuICAgICAgPFNjcmlwdHVyZVBhbmVcbiAgICAgICAgcmVmU3R5bGU9e3JlZlN0eWxlfVxuICAgICAgICB7Li4uc2NyaXB0dXJlQ29uZmlnfVxuICAgICAgICB2ZXJzZU9iamVjdHM9e2N1cnJlbnRWZXJzZU9iamVjdHN9XG4gICAgICAgIGlzTlQ9e2lzTlRffVxuICAgICAgICBzZXJ2ZXI9e3NlcnZlcn1cbiAgICAgICAgcmVmZXJlbmNlPXtyZWZlcmVuY2V9XG4gICAgICAgIGRpcmVjdGlvbj17ZGlyZWN0aW9ufVxuICAgICAgICBjb250ZW50U3R5bGU9e2NvbnRlbnRTdHlsZX1cbiAgICAgICAgZm9udFNpemU9e2ZvbnRTaXplfVxuICAgICAgICBkaXNhYmxlV29yZFBvcG92ZXI9e2Rpc2FibGVXb3JkUG9wb3Zlcl99XG4gICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgIGVkaXRpbmc9e2VkaXRpbmd9XG4gICAgICAgIHNldEVkaXRpbmc9e3NldEVkaXRpbmd9XG4gICAgICAgIHNldFZlcnNlQ2hhbmdlZD17c2V0VmVyc2VDaGFuZ2VkfVxuICAgICAgICBzYXZpbmc9e2RvaW5nU2F2ZX1cbiAgICAgIC8+XG4gICAgPC9DYXJkPlxuICApXG59XG5cblNjcmlwdHVyZUNhcmQucHJvcFR5cGVzID0ge1xuICAvKiogaHRtbCBpZGVudGlmaWVyIHRvIHVzZSBmb3IgY2FyZCAqL1xuICBpZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgTlQgb3IgT1QgKi9cbiAgaXNOVDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLyoqIHRpdGxlIGZvciBzY3JpcHR1cmUgY2FyZCAqL1xuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogZ2V0IGxhbmd1YWdlIGRldGFpbHMgKi9cbiAgZ2V0TGFuZ3VhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBzY3JpcHR1cmUgY2FyZCBudW1iZXIgKDAgdG8gMiBmb3IgZXhhbXBsZSkgKi9cbiAgY2FyZE51bTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAvKiogcmVzb3VyY2Ugb2JqZWN0ICovXG4gIHJlc291cmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiByZXNvdXJjZSBsYW5ndWFnZSB0byB1c2UgKi9cbiAgICBsYW5ndWFnZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgc3VjaCBhcyB1bmZvbGRpbmdXb3JkICovXG4gICAgb3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVzb3VyY2VJZCB0byB1c2UgKGUuZy4gdWdudCkgKi9cbiAgICByZXNvdXJjZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgZm9yIG9yaWdpbmFsIGxhbmd1YWdlcyBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSksXG4gIHJlZmVyZW5jZTogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAvKiogcHJvamVjdElkIChib29rSUQpIHRvIHVzZSAqL1xuICAgIHByb2plY3RJZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBjdXJyZW50IGNoYXB0ZXIgbnVtYmVyICovXG4gICAgY2hhcHRlcjogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gICAgLyoqIGN1cnJlbnQgdmVyc2UgbnVtYmVyICovXG4gICAgdmVyc2U6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKS5pc1JlcXVpcmVkLFxuICB9KSxcbiAgLyoqIHNlcnZlciAoZS5nLiAnaHR0cHM6Ly9naXQuZG9vcjQzLm9yZycpICovXG4gIHNlcnZlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogcmVwbyBicmFuY2ggb3IgdGFnIHN1Y2ggYXMgbWFzdGVyICovXG4gIGFwcFJlZjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAvKiogaWYgdHJ1ZSB0aGVuIHdvcmQgZGF0YSBob3ZlciBpcyBzaG93biAqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IFByb3BUeXBlcy5ib29sLFxuICAvKiogQ1NTIGNsYXNzZXMgKi9cbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIHJlc291cmNlTGluayAqL1xuICByZXNvdXJjZUxpbms6IFByb3BUeXBlcy5hbnksXG4gIC8qKiB1c2UgbWV0aG9kIGZvciB1c2luZyBsb2NhbCBzdG9yYWdlIHNwZWNpZmljIGZvciB1c2VyICovXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiBvcHRpb25hbCBjYWxsYmFjayBpZiBlcnJvciBsb2FkaW5nIHJlc291cmNlLCBwYXJhbWV0ZXIgcmV0dXJuZWQgYXJlOlxuICAgKiAgICAoe3N0cmluZ30gZXJyb3JNZXNzYWdlLCB7Ym9vbGVhbn0gaXNBY2Nlc3NFcnJvciwge29iamVjdH0gcmVzb3VyY2VTdGF0dXMpXG4gICAqICAgICAgLSBpc0FjY2Vzc0Vycm9yIC0gaXMgdHJ1ZSBpZiB0aGlzIHdhcyBhbiBlcnJvciB0cnlpbmcgdG8gYWNjZXNzIGZpbGVcbiAgICogICAgICAtIHJlc291cmNlU3RhdHVzIC0gaXMgb2JqZWN0IGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dCBwcm9ibGVtcyBmZXRjaGluZyByZXNvdXJjZSAqL1xuICBvblJlc291cmNlRXJyb3I6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgaHR0cCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgZmV0Y2hpbmcgcmVzb3VyY2VzLCBkZWZhdWx0IGlzIDAgKHZlcnkgbG9uZyB3YWl0KSAqL1xuICBodHRwQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBncmVlayByZXBvICovXG4gIGdyZWVrUmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgaGVicmV3IHJlcG8gKi9cbiAgaGVicmV3UmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGZ1bmN0aW9uIHRvIHByZS1sb2FkIGxleGljb24gZGF0YSBmb3IgdmVyc2UgKi9cbiAgZmV0Y2hHbG9zc2VzRm9yVmVyc2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgZnVuY3Rpb24gZm9yIGxvY2FsaXphdGlvbiAqL1xuICB0cmFuc2xhdGU6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogZnVuY3Rpb24gdG8gbWluaW1pemUgdGhlIGNhcmQgKG9wdGlvbmFsKSAqL1xuICBvbk1pbmltaXplOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIHVzZXItbmFtZSAqL1xuICBsb2dnZWRJblVzZXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBhdXRoZW50aWNhdGlvbiBpbmZvICovXG4gIGF1dGhlbnRpY2F0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogZnVuY3Rpb24gdG8gc2V0IHN0YXRlIGluIGFwcCB0aGF0IHRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGluZGV4IGZvciBjdXJyZW50IGJvb2sgKGUuZy4gJzAxJyBmb3IgJ2dlbicpKi9cbiAgYm9va0luZGV4OiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogY2FsbGJhY2sgdG8gaW5kaWNhdGUgdGhhdCB3ZSBhcmUgdXNpbmcgYSB2ZXJzZSByYW5nZSBoZXJlICovXG4gIGFkZFZlcnNlUmFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gdXBkYXRlIHdvcmQgYWxpZ25lciBzdGF0ZSAqL1xuICBzZXRXb3JkQWxpZ25lclN0YXR1czogUHJvcFR5cGVzLmZ1bmMsXG59XG4iXX0=
|
|
@@ -63,14 +63,15 @@ function ScripturePane(_ref) {
|
|
|
63
63
|
translate = _ref.translate,
|
|
64
64
|
editing = _ref.editing,
|
|
65
65
|
setEditing = _ref.setEditing,
|
|
66
|
-
setVerseChanged = _ref.setVerseChanged
|
|
66
|
+
setVerseChanged = _ref.setVerseChanged,
|
|
67
|
+
saving = _ref.saving;
|
|
67
68
|
|
|
68
69
|
var _React$useState = React.useState(null),
|
|
69
70
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
70
71
|
initialVerseText = _React$useState2[0],
|
|
71
72
|
setInitialVerseText = _React$useState2[1];
|
|
72
73
|
|
|
73
|
-
var resourceMsg = getResourceMessage(resourceStatus, server, resourceLink, isNT);
|
|
74
|
+
var resourceMsg = saving ? 'Saving Changes...' : getResourceMessage(resourceStatus, server, resourceLink, isNT);
|
|
74
75
|
var chapter = reference.chapter,
|
|
75
76
|
verse = reference.verse;
|
|
76
77
|
direction = direction || 'ltr';
|
|
@@ -153,4 +154,4 @@ ScripturePane.defaultProps = {
|
|
|
153
154
|
verseObjects: []
|
|
154
155
|
};
|
|
155
156
|
export default ScripturePane;
|
|
156
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJWZXJzZU9iamVjdHNUeXBlIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiQ29udGFpbmVyIiwiQ29udGVudCIsIk1lc3NhZ2VTdHlsZSIsImRpcmVjdGlvbiIsIndoaXRlU3BhY2UiLCJsaW5lSGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImhlaWdodCIsIndpZHRoIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIlRleHRBcmVhU3R5bGUiLCJtaW5XaWR0aCIsIlNjcmlwdHVyZVBhbmUiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsImNvbnRlbnRTdHlsZSIsInZlcnNlT2JqZWN0cyIsImRpc2FibGVXb3JkUG9wb3ZlciIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2VydmVyIiwiaXNOVCIsImdldExleGljb25EYXRhIiwidHJhbnNsYXRlIiwiZWRpdGluZyIsInNldEVkaXRpbmciLCJzZXRWZXJzZUNoYW5nZWQiLCJ1c2VTdGF0ZSIsImluaXRpYWxWZXJzZVRleHQiLCJzZXRJbml0aWFsVmVyc2VUZXh0IiwicmVzb3VyY2VNc2ciLCJjaGFwdGVyIiwidmVyc2UiLCJjYWxjdWxhdGVkRm9udFNpemUiLCJ1c2VNZW1vIiwicGFyc2VGbG9hdCIsInRleHRBcmVhU3R5bGUiLCJ2ZXJzZVRleHQiLCJnZXRVc2ZtRm9yVmVyc2VDb250ZW50Iiwib25UZXh0Q2hhbmdlIiwiZXZlbnQiLCJuZXdUZXh0IiwidGFyZ2V0IiwidmFsdWUiLCJjaGFuZ2VkIiwib25CbHVyIiwiZGVmYXVsdFByb3BzIl0sIm1h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QUFFUyxNQUFBQSxRQUFRLFlBQUtBLFFBQUw7QUFBVjtBQUFaLFVBQTRDdUIsV0FBNUMsTUFERixDQUZVLGdCQU1WLG9CQUFDLE9BQUQscUJBQ0U7QUFBTSxJQUFBLEtBQUssRUFBRWhCO0FBQWIsVUFBeUJpQixPQUF6QixPQUFtQ0MsS0FBbkMsU0FERixlQUVFO0FBQU0sSUFBQSxLQUFLLEVBQUVqQixZQUFiO0FBQTJCLElBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ3hDVSxNQUFBQSxVQUFVLElBQUlBLFVBQVUsQ0FBQyxJQUFELENBQXhCO0FBQ0Q7QUFGRCxLQUlHRCxPQUFPLGdCQUNOO0FBQ0UsSUFBQSxZQUFZLEVBQUVJLGdCQURoQjtBQUVFLElBQUEsUUFBUSxFQUFFVyxZQUZaO0FBR0UsSUFBQSxNQUFNLEVBQUVNLE1BSFY7QUFJRSxJQUFBLEtBQUssRUFBRVQsYUFKVDtBQUtFLElBQUEsU0FBUztBQUxYLElBRE0sZ0JBU04sb0JBQUMsWUFBRDtBQUNFLElBQUEsUUFBUSxZQUFLdkIsU0FBUyxDQUFDa0IsT0FBZixjQUEwQmxCLFNBQVMsQ0FBQ21CLEtBQXBDLENBRFY7QUFFRSxJQUFBLFlBQVksRUFBRWhCLFlBQVksSUFBSSxFQUZoQztBQUdFLElBQUEsa0JBQWtCLEVBQUVDLGtCQUh0QjtBQUlFLElBQUEsY0FBYyxFQUFFSyxjQUpsQjtBQUtFLElBQUEsU0FBUyxFQUFFQztBQUxiLElBYkosQ0FGRixDQVBKLENBREY7QUFvQ0Q7O0FBRURYLGFBQWEsQ0FBQ2tDLFlBQWQsR0FBNkI7QUFBRTlCLEVBQUFBLFlBQVksRUFBRTtBQUFoQixDQUE3QjtBQUVBLGVBQWVKLGFBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB1c2VEZWVwQ29tcGFyZUVmZmVjdCBmcm9tICd1c2UtZGVlcC1jb21wYXJlLWVmZmVjdCdcbmltcG9ydCB7IFZlcnNlT2JqZWN0cyB9IGZyb20gJ3NjcmlwdHVyZS1yZXNvdXJjZXMtcmNsJ1xuaW1wb3J0IHsgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBTY3JpcHR1cmVSZWZlcmVuY2UsIFZlcnNlT2JqZWN0c1R5cGUgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB7IGdldFJlc291cmNlTWVzc2FnZSB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgQ29udGFpbmVyLCBDb250ZW50IH0gZnJvbSAnLi9zdHlsZWQnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiBjdXJyZW50IHJlZmVyZW5jZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciByZWZlcmVuY2UgKiovXG4gIHJlZlN0eWxlOiBhbnk7XG4gIC8qKiBvcHRpb25hbCBzdHlsZXMgdG8gdXNlIGZvciBjb250ZW50ICoqL1xuICBjb250ZW50U3R5bGU6IGFueTtcbiAgLyoqIGxhbmd1YWdlIGRpcmVjdGlvbiB0byB1c2UgKiovXG4gIGRpcmVjdGlvbjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHZlcnNlT2JqZWN0cyAqKi9cbiAgdmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlfHVuZGVmaW5lZDtcbiAgLyoqIGlmIHRydWUgdGhlbiBkbyBub3QgZGlzcGxheSBsZXhpY29uIHBvcG92ZXIgb24gaG92ZXIgKiovXG4gIGRpc2FibGVXb3JkUG9wb3ZlcjogYm9vbGVhbnx1bmRlZmluZWQ7XG4gIC8qKiBvYmplY3QgdGhhdCBjb250YWlucyByZXNvdXJjZSBsb2FkaW5nIHN0YXR1cyBvciBmZXRjaGluZyBlcnJvcnMgKi9cbiAgcmVzb3VyY2VTdGF0dXM6IG9iamVjdHx1bmRlZmluZWQ7XG4gIC8qKiByZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQgKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogc2VydmVyICovXG4gIHNlcnZlcjogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHRydWUgaWYgYnJvd3NpbmcgTlQgKi9cbiAgaXNOVDogYm9vbGVhbjtcbiAgLyoqIGZvbnQgc2l6ZSBmb3IgbWVzc2FnZXMgKi9cbiAgZm9udFNpemU6IG51bWJlcjtcbiAgLyoqIGZ1bmN0aW9uIHRvIGdldCBsYXRlc3QgbGV4aWNvbiBkYXRhICovXG4gIGdldExleGljb25EYXRhOiBGdW5jdGlvbjtcbiAgLyoqIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBsb2NhbGl6YXRpb24gKi9cbiAgdHJhbnNsYXRlOiBGdW5jdGlvbjtcbiAgLyoqIHRydWUgaWYgaW4gZWRpdCBtb2RlICovXG4gIGVkaXRpbmc6IGJvb2xlYW47XG4gIC8qKiBjYWxsYmFjayB0byBzZXQgZWRpdCBtb2RlICovXG4gIHNldEVkaXRpbmc6IEZ1bmN0aW9uO1xuICAvKiogY2FsbGJhY2sgdG8gc2V0IHRoYXQgdmVyc2UgaGFzIGNoYW5nZWQgKi9cbiAgc2V0VmVyc2VDaGFuZ2VkOiBGdW5jdGlvbjtcbn1cblxuY29uc3QgTWVzc2FnZVN0eWxlID0ge1xuICBkaXJlY3Rpb246ICdsdHInLFxuICB3aGl0ZVNwYWNlOiAncHJlLXdyYXAnLFxuICBsaW5lSGVpZ2h0OiAnbm9ybWFsJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgZm9udFNpemU6ICcxNnB4JyxcbiAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gIGZvbnRXZWlnaHQ6ICdib2xkJyxcbn1cblxuY29uc3QgVGV4dEFyZWFTdHlsZSA9IHtcbiAgaGVpZ2h0OiAnNjAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgbWluV2lkdGg6ICcyMjBweCcsXG4gIGZvbnRTaXplOiAnMTZweCcsXG59XG5cbmZ1bmN0aW9uIFNjcmlwdHVyZVBhbmUoe1xuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICBkaXJlY3Rpb24sXG4gIGNvbnRlbnRTdHlsZSxcbiAgdmVyc2VPYmplY3RzLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIHJlc291cmNlU3RhdHVzLFxuICByZXNvdXJjZUxpbmssXG4gIHNlcnZlcixcbiAgaXNOVCxcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICB0cmFuc2xhdGUsXG4gIGVkaXRpbmcsXG4gIHNldEVkaXRpbmcsXG4gIHNldFZlcnNlQ2hhbmdlZCxcbn0gOiBQcm9wcykge1xuICBjb25zdCBbaW5pdGlhbFZlcnNlVGV4dCwgc2V0SW5pdGlhbFZlcnNlVGV4dF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKVxuICBjb25zdCByZXNvdXJjZU1zZyA9IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlQpXG4gIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IHJlZmVyZW5jZVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICAvLyBkeW5hbWljYWxseSBhZGp1c3QgZm9udCBzaXplXG4gIGNvbnN0IGNhbGN1bGF0ZWRGb250U2l6ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKFxuICAgIHBhcnNlRmxvYXQoVGV4dEFyZWFTdHlsZS5mb250U2l6ZSkgKiBmb250U2l6ZSAvIDEwMCArICdweCdcbiAgKSwgW2ZvbnRTaXplXSlcblxuICBjb25zdCB0ZXh0QXJlYVN0eWxlID0ge1xuICAgIC4uLmNvbnRlbnRTdHlsZSxcbiAgICAuLi5UZXh0QXJlYVN0eWxlLFxuICAgIGZvbnRTaXplOiBjYWxjdWxhdGVkRm9udFNpemUsXG4gIH1cblxuICB1c2VEZWVwQ29tcGFyZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5nZXRVc2ZtRm9yVmVyc2VDb250ZW50KHsgdmVyc2VPYmplY3RzIH0pXG4gICAgc2V0SW5pdGlhbFZlcnNlVGV4dCh2ZXJzZVRleHQpXG4gIH0sIFt7IHZlcnNlT2JqZWN0cyB9XSlcblxuICBmdW5jdGlvbiBvblRleHRDaGFuZ2UoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgY29uc3QgbmV3VGV4dCA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlXG4gICAgY29uc3QgY2hhbmdlZCA9IG5ld1RleHQgIT09IGluaXRpYWxWZXJzZVRleHRcbiAgICBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZCwgbmV3VGV4dCwgaW5pdGlhbFZlcnNlVGV4dClcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uQmx1cihldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBzZXRFZGl0aW5nKGZhbHNlKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfX0+XG4gICAgICB7cmVzb3VyY2VNc2cgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1zZ30gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9IG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldEVkaXRpbmcgJiYgc2V0RWRpdGluZyh0cnVlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2VkaXRpbmcgP1xuICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2luaXRpYWxWZXJzZVRleHR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uVGV4dENoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICAgICAgICBzdHlsZT17dGV4dEFyZWFTdHlsZX1cbiAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICA8VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgdmVyc2VLZXk9e2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gfVxuICAgICAgICAgICAgICAgIHZlcnNlT2JqZWN0cz17dmVyc2VPYmplY3RzIHx8IFtdfVxuICAgICAgICAgICAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyfVxuICAgICAgICAgICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvQ29udGVudD5cbiAgICAgIH1cbiAgICA8L0NvbnRhaW5lcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVQYW5lLmRlZmF1bHRQcm9wcyA9IHsgdmVyc2VPYmplY3RzOiBbXSB9XG5cbmV4cG9ydCBkZWZhdWx0IFNjcmlwdHVyZVBhbmVcbiJdfQ==
|
|
157
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZVBhbmUvU2NyaXB0dXJlUGFuZS50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsIlZlcnNlT2JqZWN0cyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJWZXJzZU9iamVjdHNUeXBlIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiQ29udGFpbmVyIiwiQ29udGVudCIsIk1lc3NhZ2VTdHlsZSIsImRpcmVjdGlvbiIsIndoaXRlU3BhY2UiLCJsaW5lSGVpZ2h0IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImhlaWdodCIsIndpZHRoIiwiZm9udFNpemUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIlRleHRBcmVhU3R5bGUiLCJtaW5XaWR0aCIsIlNjcmlwdHVyZVBhbmUiLCJyZWZlcmVuY2UiLCJyZWZTdHlsZSIsImNvbnRlbnRTdHlsZSIsInZlcnNlT2JqZWN0cyIsImRpc2FibGVXb3JkUG9wb3ZlciIsInJlc291cmNlU3RhdHVzIiwicmVzb3VyY2VMaW5rIiwic2VydmVyIiwiaXNOVCIsImdldExleGljb25EYXRhIiwidHJhbnNsYXRlIiwiZWRpdGluZyIsInNldEVkaXRpbmciLCJzZXRWZXJzZUNoYW5nZWQiLCJzYXZpbmciLCJ1c2VTdGF0ZSIsImluaXRpYWxWZXJzZVRleHQiLCJzZXRJbml0aWFsVmVyc2VUZXh0IiwicmVzb3VyY2VNc2ciLCJjaGFwdGVyIiwidmVyc2UiLCJjYWxjdWxhdGVkRm9udFNpemUiLCJ1c2VNZW1vIiwicGFyc2VGbG9hdCIsInRleHRBcmVhU3R5bGUiLCJ2ZXJzZVRleHQiLCJnZXRVc2ZtRm9yVmVyc2VDb250ZW50Iiwib25UZXh0Q2hhbmdlIiwiZXZlbnQiLCJuZXdUZXh0IiwidGFyZ2V0IiwidmFsdWUiLCJjaGFuZ2VkIiwib25CbHVyIiwiZGVmYXVsdFBy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QUFDVjtBQUNBO0FBQUssSUFBQSxLQUFLLEVBQUVqQztBQUFaLGtCQUNFO0FBQUssSUFBQSxLQUFLLEVBQUU7QUFBRVMsTUFBQUEsUUFBUSxZQUFLQSxRQUFMO0FBQVY7QUFBWixVQUE0Q3dCLFdBQTVDLE1BREYsQ0FGVSxnQkFNVixvQkFBQyxPQUFELHFCQUNFO0FBQU0sSUFBQSxLQUFLLEVBQUVqQjtBQUFiLFVBQXlCa0IsT0FBekIsT0FBbUNDLEtBQW5DLFNBREYsZUFFRTtBQUFNLElBQUEsS0FBSyxFQUFFbEIsWUFBYjtBQUEyQixJQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUN4Q1UsTUFBQUEsVUFBVSxJQUFJQSxVQUFVLENBQUMsSUFBRCxDQUF4QjtBQUNEO0FBRkQsS0FJR0QsT0FBTyxnQkFDTjtBQUNFLElBQUEsWUFBWSxFQUFFSyxnQkFEaEI7QUFFRSxJQUFBLFFBQVEsRUFBRVcsWUFGWjtBQUdFLElBQUEsTUFBTSxFQUFFTSxNQUhWO0FBSUUsSUFBQSxLQUFLLEVBQUVULGFBSlQ7QUFLRSxJQUFBLFNBQVM7QUFMWCxJQURNLGdCQVNOLG9CQUFDLFlBQUQ7QUFDRSxJQUFBLFFBQVEsWUFBS3hCLFNBQVMsQ0FBQ21CLE9BQWYsY0FBMEJuQixTQUFTLENBQUNvQixLQUFwQyxDQURWO0FBRUUsSUFBQSxZQUFZLEVBQUVqQixZQUFZLElBQUksRUFGaEM7QUFHRSxJQUFBLGtCQUFrQixFQUFFQyxrQkFIdEI7QUFJRSxJQUFBLGNBQWMsRUFBRUssY0FKbEI7QUFLRSxJQUFBLFNBQVMsRUFBRUM7QUFMYixJQWJKLENBRkYsQ0FQSixDQURGO0FBb0NEOztBQUVEWCxhQUFhLENBQUNtQyxZQUFkLEdBQTZCO0FBQUUvQixFQUFBQSxZQUFZLEVBQUU7QUFBaEIsQ0FBN0I7QUFFQSxlQUFlSixhQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdXNlRGVlcENvbXBhcmVFZmZlY3QgZnJvbSAndXNlLWRlZXAtY29tcGFyZS1lZmZlY3QnXG5pbXBvcnQgeyBWZXJzZU9iamVjdHMgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB7IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgU2NyaXB0dXJlUmVmZXJlbmNlLCBWZXJzZU9iamVjdHNUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyBnZXRSZXNvdXJjZU1lc3NhZ2UgfSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IENvbnRhaW5lciwgQ29udGVudCB9IGZyb20gJy4vc3R5bGVkJ1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKiogY3VycmVudCByZWZlcmVuY2UgKiovXG4gIHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlO1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgcmVmZXJlbmNlICoqL1xuICByZWZTdHlsZTogYW55O1xuICAvKiogb3B0aW9uYWwgc3R5bGVzIHRvIHVzZSBmb3IgY29udGVudCAqKi9cbiAgY29udGVudFN0eWxlOiBhbnk7XG4gIC8qKiBsYW5ndWFnZSBkaXJlY3Rpb24gdG8gdXNlICoqL1xuICBkaXJlY3Rpb246IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiB2ZXJzZU9iamVjdHMgKiovXG4gIHZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZXx1bmRlZmluZWQ7XG4gIC8qKiBpZiB0cnVlIHRoZW4gZG8gbm90IGRpc3BsYXkgbGV4aWNvbiBwb3BvdmVyIG9uIGhvdmVyICoqL1xuICBkaXNhYmxlV29yZFBvcG92ZXI6IGJvb2xlYW58dW5kZWZpbmVkO1xuICAvKiogb2JqZWN0IHRoYXQgY29udGFpbnMgcmVzb3VyY2UgbG9hZGluZyBzdGF0dXMgb3IgZmV0Y2hpbmcgZXJyb3JzICovXG4gIHJlc291cmNlU3RhdHVzOiBvYmplY3R8dW5kZWZpbmVkO1xuICAvKiogcmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkICovXG4gIHJlc291cmNlTGluazogc3RyaW5nfHVuZGVmaW5lZDtcbiAgLyoqIHNlcnZlciAqL1xuICBzZXJ2ZXI6IHN0cmluZ3x1bmRlZmluZWQ7XG4gIC8qKiB0cnVlIGlmIGJyb3dzaW5nIE5UICovXG4gIGlzTlQ6IGJvb2xlYW47XG4gIC8qKiBmb250IHNpemUgZm9yIG1lc3NhZ2VzICovXG4gIGZvbnRTaXplOiBudW1iZXI7XG4gIC8qKiBmdW5jdGlvbiB0byBnZXQgbGF0ZXN0IGxleGljb24gZGF0YSAqL1xuICBnZXRMZXhpY29uRGF0YTogRnVuY3Rpb247XG4gIC8qKiBvcHRpb25hbCBmdW5jdGlvbiBmb3IgbG9jYWxpemF0aW9uICovXG4gIHRyYW5zbGF0ZTogRnVuY3Rpb247XG4gIC8qKiB0cnVlIGlmIGluIGVkaXQgbW9kZSAqL1xuICBlZGl0aW5nOiBib29sZWFuO1xuICAvKiogY2FsbGJhY2sgdG8gc2V0IGVkaXQgbW9kZSAqL1xuICBzZXRFZGl0aW5nOiBGdW5jdGlvbjtcbiAgLyoqIGNhbGxiYWNrIHRvIHNldCB0aGF0IHZlcnNlIGhhcyBjaGFuZ2VkICovXG4gIHNldFZlcnNlQ2hhbmdlZDogRnVuY3Rpb247XG4gIC8qKiB0cnVlIGlmIGN1cnJlbnRseSBzYXZpbmcgdXBkYXRlZCB0ZXh0IGFuZCBhbGlnbm1lbnRzICovXG4gIHNhdmluZzogYm9vbGVhbjtcbn1cblxuY29uc3QgTWVzc2FnZVN0eWxlID0ge1xuICBkaXJlY3Rpb246ICdsdHInLFxuICB3aGl0ZVNwYWNlOiAncHJlLXdyYXAnLFxuICBsaW5lSGVpZ2h0OiAnbm9ybWFsJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICBoZWlnaHQ6ICcxMDAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgZm9udFNpemU6ICcxNnB4JyxcbiAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gIGZvbnRXZWlnaHQ6ICdib2xkJyxcbn1cblxuY29uc3QgVGV4dEFyZWFTdHlsZSA9IHtcbiAgaGVpZ2h0OiAnNjAlJyxcbiAgd2lkdGg6ICcxMDAlJyxcbiAgbWluV2lkdGg6ICcyMjBweCcsXG4gIGZvbnRTaXplOiAnMTZweCcsXG59XG5cbmZ1bmN0aW9uIFNjcmlwdHVyZVBhbmUoe1xuICByZWZlcmVuY2UsXG4gIHJlZlN0eWxlLFxuICBkaXJlY3Rpb24sXG4gIGNvbnRlbnRTdHlsZSxcbiAgdmVyc2VPYmplY3RzLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIHJlc291cmNlU3RhdHVzLFxuICByZXNvdXJjZUxpbmssXG4gIHNlcnZlcixcbiAgaXNOVCxcbiAgZm9udFNpemUsXG4gIGdldExleGljb25EYXRhLFxuICB0cmFuc2xhdGUsXG4gIGVkaXRpbmcsXG4gIHNldEVkaXRpbmcsXG4gIHNldFZlcnNlQ2hhbmdlZCxcbiAgc2F2aW5nLFxufSA6IFByb3BzKSB7XG4gIGNvbnN0IFtpbml0aWFsVmVyc2VUZXh0LCBzZXRJbml0aWFsVmVyc2VUZXh0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpXG4gIGNvbnN0IHJlc291cmNlTXNnID0gc2F2aW5nID8gJ1NhdmluZyBDaGFuZ2VzLi4uJyA6IGdldFJlc291cmNlTWVzc2FnZShyZXNvdXJjZVN0YXR1cywgc2VydmVyLCByZXNvdXJjZUxpbmssIGlzTlQpXG4gIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IHJlZmVyZW5jZVxuICBkaXJlY3Rpb24gPSBkaXJlY3Rpb24gfHwgJ2x0cidcblxuICByZWZTdHlsZSA9IHJlZlN0eWxlIHx8IHtcbiAgICBmb250RmFtaWx5OiAnTm90byBTYW5zJyxcbiAgICBmb250U2l6ZTogJzkwJScsXG4gIH1cblxuICBjb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGUgfHwge1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiAnMTAwJScsXG4gIH1cblxuICAvLyBkeW5hbWljYWxseSBhZGp1c3QgZm9udCBzaXplXG4gIGNvbnN0IGNhbGN1bGF0ZWRGb250U2l6ZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gKFxuICAgIHBhcnNlRmxvYXQoVGV4dEFyZWFTdHlsZS5mb250U2l6ZSkgKiBmb250U2l6ZSAvIDEwMCArICdweCdcbiAgKSwgW2ZvbnRTaXplXSlcblxuICBjb25zdCB0ZXh0QXJlYVN0eWxlID0ge1xuICAgIC4uLmNvbnRlbnRTdHlsZSxcbiAgICAuLi5UZXh0QXJlYVN0eWxlLFxuICAgIGZvbnRTaXplOiBjYWxjdWxhdGVkRm9udFNpemUsXG4gIH1cblxuICB1c2VEZWVwQ29tcGFyZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5nZXRVc2ZtRm9yVmVyc2VDb250ZW50KHsgdmVyc2VPYmplY3RzIH0pXG4gICAgc2V0SW5pdGlhbFZlcnNlVGV4dCh2ZXJzZVRleHQpXG4gIH0sIFt7IHZlcnNlT2JqZWN0cyB9XSlcblxuICBmdW5jdGlvbiBvblRleHRDaGFuZ2UoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KSB7XG4gICAgY29uc3QgbmV3VGV4dCA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlXG4gICAgY29uc3QgY2hhbmdlZCA9IG5ld1RleHQgIT09IGluaXRpYWxWZXJzZVRleHRcbiAgICBzZXRWZXJzZUNoYW5nZWQoY2hhbmdlZCwgbmV3VGV4dCwgaW5pdGlhbFZlcnNlVGV4dClcbiAgfVxuXG4gIGZ1bmN0aW9uIG9uQmx1cihldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTFRleHRBcmVhRWxlbWVudD4pIHtcbiAgICBzZXRFZGl0aW5nKGZhbHNlKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyIHN0eWxlPXt7IGRpcmVjdGlvbiwgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJScgfX0+XG4gICAgICB7cmVzb3VyY2VNc2cgP1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIDxkaXYgc3R5bGU9e01lc3NhZ2VTdHlsZX0+XG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogYCR7Zm9udFNpemV9JWAgfX0+IHtyZXNvdXJjZU1zZ30gPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA6XG4gICAgICAgIDxDb250ZW50PlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtyZWZTdHlsZX0+IHtjaGFwdGVyfTp7dmVyc2V9Jm5ic3A7PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIHN0eWxlPXtjb250ZW50U3R5bGV9IG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIHNldEVkaXRpbmcgJiYgc2V0RWRpdGluZyh0cnVlKVxuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2VkaXRpbmcgP1xuICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2luaXRpYWxWZXJzZVRleHR9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uVGV4dENoYW5nZX1cbiAgICAgICAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICAgICAgICBzdHlsZT17dGV4dEFyZWFTdHlsZX1cbiAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICA8VmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgdmVyc2VLZXk9e2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gfVxuICAgICAgICAgICAgICAgIHZlcnNlT2JqZWN0cz17dmVyc2VPYmplY3RzIHx8IFtdfVxuICAgICAgICAgICAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyfVxuICAgICAgICAgICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvQ29udGVudD5cbiAgICAgIH1cbiAgICA8L0NvbnRhaW5lcj5cbiAgKVxufVxuXG5TY3JpcHR1cmVQYW5lLmRlZmF1bHRQcm9wcyA9IHsgdmVyc2VPYmplY3RzOiBbXSB9XG5cbmV4cG9ydCBkZWZhdWx0IFNjcmlwdHVyZVBhbmVcbiJdfQ==
|