@sapui5/sap.fe.macros 1.141.0 → 1.142.0
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/package.json +1 -1
- package/src/sap/fe/macros/.library +1 -1
- package/src/sap/fe/macros/Breadcrumbs.js +4 -10
- package/src/sap/fe/macros/Breadcrumbs.tsx +2 -8
- package/src/sap/fe/macros/Chart.js +34 -23
- package/src/sap/fe/macros/Chart.tsx +25 -11
- package/src/sap/fe/macros/CollaborativeDraftHandler.js +48 -31
- package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +51 -26
- package/src/sap/fe/macros/CollectionBindingInfo.js +8 -2
- package/src/sap/fe/macros/CollectionBindingInfo.ts +11 -6
- package/src/sap/fe/macros/CommonHelper.js +14 -24
- package/src/sap/fe/macros/CommonHelper.ts +18 -25
- package/src/sap/fe/macros/Field.js +30 -13
- package/src/sap/fe/macros/Field.ts +60 -30
- package/src/sap/fe/macros/FooterContent.js +5 -2
- package/src/sap/fe/macros/FooterContent.tsx +6 -3
- package/src/sap/fe/macros/KPITag.js +1 -1
- package/src/sap/fe/macros/KPITag.tsx +3 -1
- package/src/sap/fe/macros/MacroAPI.js +3 -2
- package/src/sap/fe/macros/MacroAPI.ts +2 -2
- package/src/sap/fe/macros/MessageButton.js +3 -2
- package/src/sap/fe/macros/MessageButton.tsx +5 -2
- package/src/sap/fe/macros/MicroChart.js +10 -6
- package/src/sap/fe/macros/MicroChart.tsx +8 -2
- package/src/sap/fe/macros/MultiValueField.js +22 -36
- package/src/sap/fe/macros/MultiValueField.tsx +34 -66
- package/src/sap/fe/macros/RichTextEditor.js +3 -4
- package/src/sap/fe/macros/RichTextEditor.tsx +2 -3
- package/src/sap/fe/macros/Status.js +35 -8
- package/src/sap/fe/macros/Status.tsx +23 -2
- package/src/sap/fe/macros/ValueHelp.js +5 -2
- package/src/sap/fe/macros/ValueHelp.tsx +5 -0
- package/src/sap/fe/macros/ai/EasyFilterBar.js +7 -34
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +6 -35
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +31 -7
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +33 -6
- package/src/sap/fe/macros/chart/Action.js +25 -2
- package/src/sap/fe/macros/chart/Action.ts +13 -0
- package/src/sap/fe/macros/chart/ActionGroup.js +25 -2
- package/src/sap/fe/macros/chart/ActionGroup.ts +13 -0
- package/src/sap/fe/macros/chart/ChartDelegate.js +8 -8
- package/src/sap/fe/macros/chart/ChartDelegate.ts +17 -12
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +54 -11
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +70 -11
- package/src/sap/fe/macros/chart/OverflowGroup.js +62 -0
- package/src/sap/fe/macros/chart/OverflowGroup.ts +22 -0
- package/src/sap/fe/macros/controls/FilterBar.js +39 -3
- package/src/sap/fe/macros/controls/FilterBar.ts +42 -1
- package/src/sap/fe/macros/controls/RadioButtons.js +18 -5
- package/src/sap/fe/macros/controls/RadioButtons.tsx +10 -1
- package/src/sap/fe/macros/coreUI/CreateDialog.js +2 -2
- package/src/sap/fe/macros/coreUI/CreateDialog.tsx +1 -1
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +37 -9
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +45 -6
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +4 -2
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +3 -1
- package/src/sap/fe/macros/field/FieldFormatOptions.js +3 -3
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +1 -1
- package/src/sap/fe/macros/field/FieldHelper.js +4 -3
- package/src/sap/fe/macros/field/FieldHelper.ts +7 -1
- package/src/sap/fe/macros/field/FieldRuntime.js +38 -8
- package/src/sap/fe/macros/field/FieldRuntime.ts +65 -7
- package/src/sap/fe/macros/field/FieldRuntimeHelper.js +3 -34
- package/src/sap/fe/macros/field/FieldRuntimeHelper.ts +28 -53
- package/src/sap/fe/macros/field/FieldTemplating.js +5 -4
- package/src/sap/fe/macros/field/FieldTemplating.ts +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.js +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.ts +7 -2
- package/src/sap/fe/macros/filter/FilterUtils.js +100 -36
- package/src/sap/fe/macros/filter/FilterUtils.ts +127 -39
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.js +2 -2
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.ts +1 -1
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +4 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +19 -8
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +10 -7
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +31 -16
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +4 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +5 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +4 -3
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +3 -2
- package/src/sap/fe/macros/form/Form.block.js +27 -2
- package/src/sap/fe/macros/form/Form.block.ts +31 -11
- package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -3
- package/src/sap/fe/macros/form/FormContainer.block.js +96 -65
- package/src/sap/fe/macros/form/FormContainer.block.ts +104 -65
- package/src/sap/fe/macros/formatters/TableFormatter.js +13 -10
- package/src/sap/fe/macros/formatters/TableFormatter.ts +11 -9
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.js +6 -4
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.ts +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.js +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +4 -4
- package/src/sap/fe/macros/insights/InsightsService.js +3 -2
- package/src/sap/fe/macros/insights/InsightsService.ts +2 -1
- package/src/sap/fe/macros/internal/DataPoint.js +7 -8
- package/src/sap/fe/macros/internal/DataPoint.tsx +6 -9
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +8 -6
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +7 -8
- package/src/sap/fe/macros/internal/field/EditStyle.js +9 -20
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +17 -41
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.js +2 -2
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.tsx +1 -1
- package/src/sap/fe/macros/internal/field/FieldStructure.js +1 -2
- package/src/sap/fe/macros/internal/field/FieldStructure.tsx +0 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +7 -7
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +17 -11
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +6 -2
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +5 -1
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js +9 -6
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.ts +7 -5
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +4 -4
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +6 -6
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +5 -2
- package/src/sap/fe/macros/library.js +3 -3
- package/src/sap/fe/macros/library.ts +2 -0
- package/src/sap/fe/macros/mdc/adapter/StateHelper.js +15 -5
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +21 -5
- package/src/sap/fe/macros/messagebundle.properties +7 -5
- package/src/sap/fe/macros/messagebundle_ar.properties +12 -3
- package/src/sap/fe/macros/messagebundle_bg.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ca.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cnr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cs.properties +11 -2
- package/src/sap/fe/macros/messagebundle_cy.properties +12 -3
- package/src/sap/fe/macros/messagebundle_da.properties +12 -3
- package/src/sap/fe/macros/messagebundle_de.properties +16 -7
- package/src/sap/fe/macros/messagebundle_el.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_GB.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_es.properties +12 -3
- package/src/sap/fe/macros/messagebundle_es_MX.properties +12 -3
- package/src/sap/fe/macros/messagebundle_et.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hr.properties +13 -4
- package/src/sap/fe/macros/messagebundle_hu.properties +12 -3
- package/src/sap/fe/macros/messagebundle_id.properties +18 -9
- package/src/sap/fe/macros/messagebundle_it.properties +12 -3
- package/src/sap/fe/macros/messagebundle_iw.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ja.properties +12 -3
- package/src/sap/fe/macros/messagebundle_kk.properties +11 -2
- package/src/sap/fe/macros/messagebundle_ko.properties +13 -4
- package/src/sap/fe/macros/messagebundle_lt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_lv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_mk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ms.properties +12 -3
- package/src/sap/fe/macros/messagebundle_nl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_no.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ro.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ru.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sh.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sl.properties +13 -4
- package/src/sap/fe/macros/messagebundle_sr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_th.properties +11 -2
- package/src/sap/fe/macros/messagebundle_tr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_uk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_vi.properties +13 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +12 -3
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -3
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.js +2 -2
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.ts +2 -2
- package/src/sap/fe/macros/table/Action.js +15 -2
- package/src/sap/fe/macros/table/Action.ts +11 -1
- package/src/sap/fe/macros/table/ActionGroup.js +15 -2
- package/src/sap/fe/macros/table/ActionGroup.ts +8 -0
- package/src/sap/fe/macros/table/ActionGroupOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionGroupOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +16 -2
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +15 -0
- package/src/sap/fe/macros/table/MdcTableTemplate.js +91 -10
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +131 -10
- package/src/sap/fe/macros/table/OverflowGroups.js +59 -0
- package/src/sap/fe/macros/table/OverflowGroups.ts +27 -0
- package/src/sap/fe/macros/table/Table.block.js +70 -29
- package/src/sap/fe/macros/table/Table.block.tsx +65 -12
- package/src/sap/fe/macros/table/TableAPI.js +169 -131
- package/src/sap/fe/macros/table/TableAPI.ts +58 -28
- package/src/sap/fe/macros/table/TableDefinition.js +19 -2
- package/src/sap/fe/macros/table/TableDefinition.ts +17 -1
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +4 -3
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +8 -9
- package/src/sap/fe/macros/table/TableHelper.js +5 -2
- package/src/sap/fe/macros/table/TableHelper.ts +5 -2
- package/src/sap/fe/macros/table/TableRuntime.js +2 -2
- package/src/sap/fe/macros/table/TableRuntime.ts +4 -6
- package/src/sap/fe/macros/table/TableSizeHelper.js +4 -4
- package/src/sap/fe/macros/table/TableSizeHelper.ts +6 -11
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +67 -26
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +108 -118
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +2 -2
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +1 -1
- package/src/sap/fe/macros/table/massEdit/MassEditField.js +1 -1
- package/src/sap/fe/macros/table/massEdit/MassEditField.tsx +3 -6
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +6 -5
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +10 -4
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +7 -9
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +7 -8
- package/src/sap/fe/macros/table/mixin/TableExport.js +1 -1
- package/src/sap/fe/macros/table/mixin/TableExport.ts +3 -3
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +4 -4
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.ts +3 -3
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +20 -2
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +28 -6
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +6 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +4 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.js +3 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.tsx +10 -4
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveDonutChart.fragment.xml +1 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/core/buildingBlocks/BuildingBlock", "sap/m/RadioButton", "sap/m/RadioButtonGroup", "sap/ui/core/CustomData", "sap/fe/base/jsx-runtime/jsx"], function (BindingToolkit, ClassSupport, CommonUtils, BuildingBlock, RadioButton, RadioButtonGroup, CustomData, _jsx) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
-
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;
|
|
8
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12;
|
|
9
9
|
var _exports = {};
|
|
10
10
|
var property = ClassSupport.property;
|
|
11
11
|
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
@@ -38,8 +38,12 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
38
38
|
}), _dec10 = property({
|
|
39
39
|
type: "boolean"
|
|
40
40
|
}), _dec11 = property({
|
|
41
|
-
type: "string"
|
|
41
|
+
type: "string",
|
|
42
|
+
isBindingInfo: true
|
|
42
43
|
}), _dec12 = property({
|
|
44
|
+
type: "string",
|
|
45
|
+
isBindingInfo: true
|
|
46
|
+
}), _dec13 = property({
|
|
43
47
|
type: "string"
|
|
44
48
|
}), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlock) {
|
|
45
49
|
function RadioButtons(properties, others) {
|
|
@@ -62,7 +66,8 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
62
66
|
_initializerDefineProperty(_this, "radioButtonKeyProperty", _descriptor8, _this);
|
|
63
67
|
_initializerDefineProperty(_this, "horizontalLayout", _descriptor9, _this);
|
|
64
68
|
_initializerDefineProperty(_this, "enabledExpression", _descriptor10, _this);
|
|
65
|
-
_initializerDefineProperty(_this, "
|
|
69
|
+
_initializerDefineProperty(_this, "editableExpression", _descriptor11, _this);
|
|
70
|
+
_initializerDefineProperty(_this, "width", _descriptor12, _this);
|
|
66
71
|
_this.content = _this.createContent();
|
|
67
72
|
return _this;
|
|
68
73
|
}
|
|
@@ -165,6 +170,7 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
165
170
|
const radioButtonGroup = _jsx(RadioButtonGroup, {
|
|
166
171
|
buttons: buttonsBindingContext,
|
|
167
172
|
select: this.onRadioButtonSelect.bind(this),
|
|
173
|
+
editable: this.editableExpression,
|
|
168
174
|
enabled: this.enabledExpression,
|
|
169
175
|
fieldGroupIds: this.fieldGroupIds,
|
|
170
176
|
ariaLabelledBy: this.ariaLabelledBy,
|
|
@@ -236,7 +242,14 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
236
242
|
initializer: function () {
|
|
237
243
|
return "";
|
|
238
244
|
}
|
|
239
|
-
}), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "
|
|
245
|
+
}), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "editableExpression", [_dec12], {
|
|
246
|
+
configurable: true,
|
|
247
|
+
enumerable: true,
|
|
248
|
+
writable: true,
|
|
249
|
+
initializer: function () {
|
|
250
|
+
return "";
|
|
251
|
+
}
|
|
252
|
+
}), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "width", [_dec13], {
|
|
240
253
|
configurable: true,
|
|
241
254
|
enumerable: true,
|
|
242
255
|
writable: true,
|
|
@@ -247,4 +260,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
247
260
|
_exports = RadioButtons;
|
|
248
261
|
return _exports;
|
|
249
262
|
}, false);
|
|
250
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSYWRpb0J1dHRvbnMiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsImRlZmF1bHRWYWx1ZSIsIl9kZWM2IiwiX2RlYzciLCJiaW5kVG9TdGF0ZSIsIl9kZWM4IiwiaXNCaW5kaW5nSW5mbyIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uUmFkaW9CdXR0b25TZWxlY3QiLCJldmVudCIsInJhZGlvQnV0dG9uR3JvdXAiLCJnZXRTb3VyY2UiLCJzZWxlY3RlZEluZGV4IiwiZ2V0UGFyYW1ldGVyIiwidW5kZWZpbmVkIiwic2VsZWN0ZWRSYWRpb0J1dHRvbktleSIsImdldEJ1dHRvbnMiLCJnZXRDdXN0b21EYXRhIiwiZ2V0VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJfc2lkZUVmZmVjdHMiLCJoYW5kbGVGaWVsZENoYW5nZSIsImJpbmRQcm9wZXJ0eSIsIm5hbWUiLCJiaW5kaW5nSW5mbyIsImZvcm1hdHRlciIsInRhcmdldFR5cGUiLCJzZXRWYWx1ZSIsIm5ld1ZhbHVlIiwidmFsdWUiLCJyYWRpb0J1dHRvbnMiLCJsZW5ndGgiLCJyYWRpb0J1dHRvbkluZGV4IiwicmFkaW9CdXR0b24iLCJrZXlDdXN0b21EYXRhIiwiZ2V0QmluZGluZyIsInNldFNlbGVjdGVkSW5kZXgiLCJidXR0b25zQmluZGluZ0NvbnRleHQiLCJwb3NzaWJsZVZhbHVlcyIsImJpbmRTdGF0ZSIsInJhZGlvQnV0dG9uVGV4dFByb3BlcnR5IiwicGF0aEluTW9kZWwiLCJyYWRpb0J1dHRvbktleVByb3BlcnR5IiwicGF0aCIsImZpeGVkVmFsdWVzUGF0aCIsInBhcmFtZXRlcnMiLCIkY291bnQiLCJldmVudHMiLCJkYXRhUmVjZWl2ZWQiLCJldiIsImNvdW50IiwiZ2V0Q291bnQiLCJob3Jpem9udGFsTGF5b3V0Iiwic2V0Q29sdW1ucyIsImdldFNlbGVjdGVkSW5kZXgiLCJiaW5kIiwiX2pzeCIsIlJhZGlvQnV0dG9uR3JvdXAiLCJidXR0b25zIiwic2VsZWN0IiwiZW5hYmxlZCIsImVuYWJsZWRFeHByZXNzaW9uIiwiZmllbGRHcm91cElkcyIsImFyaWFMYWJlbGxlZEJ5Iiwid2lkdGgiLCJjb2x1bW5zIiwiY2hpbGRyZW4iLCJSYWRpb0J1dHRvbiIsInRleHQiLCJjdXN0b21EYXRhIiwiQ3VzdG9tRGF0YSIsImNsYXNzIiwidG9vbHRpcCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlJhZGlvQnV0dG9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBwYXRoSW5Nb2RlbCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IFJhZGlvQnV0dG9uIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBSYWRpb0J1dHRvbkdyb3VwJFNlbGVjdEV2ZW50IH0gZnJvbSBcInNhcC9tL1JhZGlvQnV0dG9uR3JvdXBcIjtcbmltcG9ydCBSYWRpb0J1dHRvbkdyb3VwIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgQWdncmVnYXRpb25CaW5kaW5nSW5mbywgUHJvcGVydHlCaW5kaW5nSW5mbyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEN1c3RvbURhdGEgZnJvbSBcInNhcC91aS9jb3JlL0N1c3RvbURhdGFcIjtcbmltcG9ydCB0eXBlIFByb3BlcnR5QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL1Byb3BlcnR5QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5SYWRpb0J1dHRvbnNcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhZGlvQnV0dG9ucyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8UmFkaW9CdXR0b25Hcm91cCwgeyBwb3NzaWJsZVZhbHVlczogeyB0ZXh0OiBzdHJpbmc7IGtleTogbnVtYmVyIH1bXSB9PiB7XG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgaWQhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1tdXCJcblx0fSlcblx0cHVibGljIGZpZWxkR3JvdXBJZHM/OiBzdHJpbmdbXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIHJlcXVpcmVkRXhwcmVzc2lvbj86IHN0cmluZztcblxuXHQvLyBXZSB1c2UgdHlwZSAncmF3JyBoZXJlIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBiaW5kaW5nIHdpbGwgcmVmdXNlIHRvIHVwZGF0ZSB0aGUgdmFsdWUsIGFzIGl0IGRvZXNuJ3Qga25vdyBob3cgdG8gY29udmVydCBmcm9tIGFueSB0byBzdHJpbmdcblx0Ly8gU2V0dGluZyBpdCB0byByYXcgbWFrZSBzdXJlIHRoYXQgbm8gY29udmVyc2lvbiBpcyBhdHRlbXB0ZWQgd2hpY2ggdGhlbiB3b3Jrc1xuXHQvLyBEZWZhdWx0IHZhbHVlIGlzIHNldCB0byBudWxsIHRvIGFsbG93IGhhdmluZyBhIHJhZGlvIGJ1dHRvbiBwb2ludGluZyB0byBhIGBudWxsYCB2YWx1ZVxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFueVwiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0cHVibGljIHZhbHVlITogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGZpeGVkVmFsdWVzUGF0aCE6IGB7JHtzdHJpbmd9fWA7XG5cblx0LyoqXG5cdCAqIEFuIGFycmF5IG9mIHBvc3NpYmxlLCBmaXhlZCB2YWx1ZSBsaXN0IG9iamVjdFxuXHQgKiBJZiB0aGlzIHByb3BlcnR5IGlzIHVzZWQsIHRoZSBmaXhlZFZhbHVlc1BhdGggcHJvcGVydHkgaXMgaWdub3JlZC5cblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJvYmplY3RcIixcblx0XHRiaW5kVG9TdGF0ZTogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcG9zc2libGVWYWx1ZXM/OiB7IGtleTogUHJpbWl0aXZlVHlwZTsgdGV4dDogc3RyaW5nIH1bXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYW55XCIsXG5cdFx0aXNCaW5kaW5nSW5mbzogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcmFkaW9CdXR0b25UZXh0UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImFueVwiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIHJhZGlvQnV0dG9uS2V5UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRwdWJsaWMgaG9yaXpvbnRhbExheW91dCA9IGZhbHNlO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgZW5hYmxlZEV4cHJlc3Npb24gPSBcIlwiO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgd2lkdGggPSBcIjEwMCVcIjtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPFJhZGlvQnV0dG9ucz4sIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wZXJ0aWVzLCBvdGhlcnMpO1xuXHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgZm9yIHRoZSBSYWRpb0J1dHRvbkdyb3VwJ3Mgc2VsZWN0IGV2ZW50LlxuXHQgKiBXZSBuZWVkIHRvIHBhcnNlIGZyb20gdGhlIHJhZGlvIGJ1dHRvbiBncm91cCBpbmRleCB0byB0aGUgbW9kZWwgdmFsdWUuXG5cdCAqIEBwYXJhbSBldmVudFxuXHQgKi9cblx0b25SYWRpb0J1dHRvblNlbGVjdChldmVudDogUmFkaW9CdXR0b25Hcm91cCRTZWxlY3RFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IHJhZGlvQnV0dG9uR3JvdXA6IFJhZGlvQnV0dG9uR3JvdXAgPSBldmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBzZWxlY3RlZEluZGV4ID0gZXZlbnQuZ2V0UGFyYW1ldGVyKFwic2VsZWN0ZWRJbmRleFwiKTtcblx0XHRpZiAoc2VsZWN0ZWRJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRjb25zdCBzZWxlY3RlZFJhZGlvQnV0dG9uS2V5OiBzdHJpbmcgPSByYWRpb0J1dHRvbkdyb3VwPy5nZXRCdXR0b25zKClbc2VsZWN0ZWRJbmRleF0uZ2V0Q3VzdG9tRGF0YSgpWzBdLmdldFZhbHVlKCk7XG5cdFx0XHQvLyBOb3cgd2UgaGF2ZSB0aGUgdmFsdWUgPT4gd3JpdGUgaXQgdG8gdGhlIG1vZGVsIVxuXHRcdFx0dGhpcy5zZXRQcm9wZXJ0eShcInZhbHVlXCIsIHNlbGVjdGVkUmFkaW9CdXR0b25LZXkpO1xuXHRcdFx0Q29tbW9uVXRpbHMuZ2V0VGFyZ2V0VmlldyhyYWRpb0J1dHRvbkdyb3VwKT8uZ2V0Q29udHJvbGxlcigpPy5fc2lkZUVmZmVjdHM/LmhhbmRsZUZpZWxkQ2hhbmdlKGV2ZW50LCB0cnVlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhlIHZhbHVlIHByb3BlcnR5IHR5cGUgbmVlZHMgdG8gYmUgaW5pdGlhbGx5ICdhbnknIGJ1dCBoYXMgdG8gYmUgY2hhbmdlZCB0byAncmF3JyB0byBhdm9pZCBwYXJzaW5nIGVycm9ycy5cblx0ICogQHBhcmFtIG5hbWVcblx0ICogQHBhcmFtIGJpbmRpbmdJbmZvXG5cdCAqIEByZXR1cm5zIFRoaXNcblx0ICovXG5cdGJpbmRQcm9wZXJ0eShuYW1lOiBzdHJpbmcsIGJpbmRpbmdJbmZvOiBQcm9wZXJ0eUJpbmRpbmdJbmZvKTogdGhpcyB7XG5cdFx0aWYgKG5hbWUgPT09IFwidmFsdWVcIiAmJiAhYmluZGluZ0luZm8uZm9ybWF0dGVyKSB7XG5cdFx0XHQvLyBub3QgaWYgYSBmb3JtYXR0ZXIgaXMgdXNlZCwgYXMgdGhpcyBuZWVkcyB0byBiZSBleGVjdXRlZFxuXHRcdFx0YmluZGluZ0luZm8udGFyZ2V0VHlwZSA9IFwicmF3XCI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHN1cGVyLmJpbmRQcm9wZXJ0eShuYW1lLCBiaW5kaW5nSW5mbyk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBpcyBiZWluZyBjYWxsZWQgd2hlbiB0aGUgbW9kZWwgZmV0Y2hlcyB0aGUgZGF0YSBmcm9tIHRoZSBiYWNrZW5kIG9yIHdoZW4gd2UgY2FsbCBpdCBkaXJlY3RseS5cblx0ICogV2UgbmVlZCB0byBwYXJzZSBmcm9tIHRoZSBtb2RlbCB2YWx1ZSB0byB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGluZGV4LlxuXHQgKiBAcGFyYW0gbmV3VmFsdWVcblx0ICovXG5cdHNldFZhbHVlKG5ld1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuKTogdm9pZCB7XG5cdFx0dGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuXHRcdGlmICh0aGlzLmNvbnRlbnQpIHtcblx0XHRcdC8vIENvbXB1dGUgdGhlIG5ldyByYWRpbyBidXR0b24gaW5kZXhcblx0XHRcdGNvbnN0IHJhZGlvQnV0dG9ucyA9IHRoaXMuY29udGVudC5nZXRCdXR0b25zKCk7XG5cdFx0XHRpZiAocmFkaW9CdXR0b25zLmxlbmd0aCAhPSAwKSB7XG5cdFx0XHRcdGxldCByYWRpb0J1dHRvbkluZGV4ID0gMDtcblx0XHRcdFx0Zm9yIChjb25zdCByYWRpb0J1dHRvbiBvZiByYWRpb0J1dHRvbnMpIHtcblx0XHRcdFx0XHRjb25zdCBrZXlDdXN0b21EYXRhID0gKHJhZGlvQnV0dG9uLmdldEN1c3RvbURhdGEoKVswXS5nZXRCaW5kaW5nKFwidmFsdWVcIikgYXMgUHJvcGVydHlCaW5kaW5nIHwgdW5kZWZpbmVkKT8uZ2V0VmFsdWUoKTtcblx0XHRcdFx0XHRpZiAoa2V5Q3VzdG9tRGF0YSA9PT0gbmV3VmFsdWUpIHtcblx0XHRcdFx0XHRcdHRoaXMuY29udGVudC5zZXRTZWxlY3RlZEluZGV4KHJhZGlvQnV0dG9uSW5kZXgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyYWRpb0J1dHRvbkluZGV4Kys7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIElmIG5vIHZhbHVlIGNvdWxkIGJlIGZvdW5kIG9yIGlmIHRoZSByYWRpbyBidXR0b24gYWdncmVnYXRpb24gd2FzIGVtcHR5LCB3aGljaCBjYW4gaGFwcGVuIGR1ZSB0b1xuXHRcdFx0Ly8gYSB2ZXJ5IGVhcmx5IGNhbGwgb2Ygc2V0VmFsdWUsIHNldCB0aGUgc2VsZWN0ZWQgdG8gaW5kZXggdG8gLTEgd2hpY2ggcmVzdWx0cyBpbiBOTyByYWRpbyBidXR0b24gdG8gYmUgc2VsZWN0ZWQuXG5cdFx0XHR0aGlzLmNvbnRlbnQuc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBidWlsZGluZyBibG9jayByZW5kZXIgZnVuY3Rpb24uXG5cdCAqIEByZXR1cm5zIFRoZSByYWRpbyBidXR0b24gZ3JvdXBcblx0ICovXG5cdGNyZWF0ZUNvbnRlbnQoKTogUmFkaW9CdXR0b25Hcm91cCB7XG5cdFx0Ly8gU2V0dGluZyB1cCB0aGUgYmluZGluZyBzbyB0aGF0IHdlIGNhbiBhY2Nlc3MgJGNvdW50IGZvciBnZXR0aW5nIHRoZSBudW1iZXJcblx0XHQvLyBvZiBlbnRyaWVzIGluIHRoZSBmaXhlZCB2YWx1ZSBsaXN0IGFuZCBzZXQgdGhpcyBhcyBudW1iZXIgb2YgcmFkaW8gYnV0dG9uIGNvbHVtbnNcblx0XHQvLyBpbiBjYXNlIGhvcml6b250YWwgbGF5b3V0IGlzIGNvbmZpZ3VyZWRcblx0XHRsZXQgYnV0dG9uc0JpbmRpbmdDb250ZXh0OiBBZ2dyZWdhdGlvbkJpbmRpbmdJbmZvIHwgdW5kZWZpbmVkO1xuXHRcdGlmICh0aGlzLnBvc3NpYmxlVmFsdWVzKSB7XG5cdFx0XHRidXR0b25zQmluZGluZ0NvbnRleHQgPSB0aGlzLmJpbmRTdGF0ZShcInBvc3NpYmxlVmFsdWVzXCIpO1xuXHRcdFx0dGhpcy5yYWRpb0J1dHRvblRleHRQcm9wZXJ0eSA9IHBhdGhJbk1vZGVsKFwidGV4dFwiLCBcIiRjb21wb25lbnRTdGF0ZVwiKTtcblx0XHRcdHRoaXMucmFkaW9CdXR0b25LZXlQcm9wZXJ0eSA9IHBhdGhJbk1vZGVsKFwia2V5XCIsIFwiJGNvbXBvbmVudFN0YXRlXCIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRidXR0b25zQmluZGluZ0NvbnRleHQgPSB7XG5cdFx0XHRcdHBhdGg6IGAke3RoaXMuZml4ZWRWYWx1ZXNQYXRofWAsXG5cdFx0XHRcdHBhcmFtZXRlcnM6IHsgJGNvdW50OiB0cnVlIH0sXG5cdFx0XHRcdGV2ZW50czoge1xuXHRcdFx0XHRcdGRhdGFSZWNlaXZlZDogKGV2OiBFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgY291bnQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IChldi5nZXRTb3VyY2UoKSBhcyB1bmtub3duIGFzIE9EYXRhTGlzdEJpbmRpbmcpPy5nZXRDb3VudCgpO1xuXHRcdFx0XHRcdFx0aWYgKGNvdW50ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5ob3Jpem9udGFsTGF5b3V0KSB7XG5cdFx0XHRcdFx0XHRcdHJhZGlvQnV0dG9uR3JvdXAuc2V0Q29sdW1ucyhjb3VudCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQvLyBDaGVjayBpZiB0aGVyZSBpcyBhIHZhbHVlIHN0b3JlZCBmcm9tIHRoZSBpbml0aWFsaXphdGlvbiBidXQgdGhlIHJhZGlvXG5cdFx0XHRcdFx0XHQvLyBidXR0b24gc2VsZWN0aW9uIGhhcyBub3QgeWV0IGJlZW4gZG9uZSBhbmQgZG8gdGhpcyBub3dcblx0XHRcdFx0XHRcdGlmICh0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcmFkaW9CdXR0b25Hcm91cC5nZXRTZWxlY3RlZEluZGV4KCkgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSBhcyBzdHJpbmcpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9XG5cblx0XHR0aGlzLm9uUmFkaW9CdXR0b25TZWxlY3QuYmluZCh0aGlzKTtcblx0XHRjb25zdCByYWRpb0J1dHRvbkdyb3VwID0gKFxuXHRcdFx0PFJhZGlvQnV0dG9uR3JvdXBcblx0XHRcdFx0YnV0dG9ucz17YnV0dG9uc0JpbmRpbmdDb250ZXh0fVxuXHRcdFx0XHRzZWxlY3Q9e3RoaXMub25SYWRpb0J1dHRvblNlbGVjdC5iaW5kKHRoaXMpfVxuXHRcdFx0XHRlbmFibGVkPXt0aGlzLmVuYWJsZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRmaWVsZEdyb3VwSWRzPXt0aGlzLmZpZWxkR3JvdXBJZHN9XG5cdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXt0aGlzLmFyaWFMYWJlbGxlZEJ5fVxuXHRcdFx0XHR3aWR0aD17dGhpcy53aWR0aH1cblx0XHRcdFx0Y29sdW1ucz17dGhpcy5wb3NzaWJsZVZhbHVlcz8ubGVuZ3RoID8/IDF9XG5cdFx0XHQ+XG5cdFx0XHRcdDxSYWRpb0J1dHRvblxuXHRcdFx0XHRcdHRleHQ9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdFx0Y3VzdG9tRGF0YT17PEN1c3RvbURhdGEga2V5PXtcImtleVwifSB2YWx1ZT17dGhpcy5yYWRpb0J1dHRvbktleVByb3BlcnR5fSAvPn1cblx0XHRcdFx0XHRjbGFzcz1cInNhcFVpU21hbGxNYXJnaW5FbmRcIlxuXHRcdFx0XHRcdHRvb2x0aXA9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1JhZGlvQnV0dG9uR3JvdXA+XG5cdFx0KSBhcyBSYWRpb0J1dHRvbkdyb3VwO1xuXG5cdFx0cmV0dXJuIHJhZGlvQnV0dG9uR3JvdXA7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpQnFCQSxZQUFZLElBQUFDLElBQUEsR0FEaENDLGNBQWMsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFBQyxLQUFBLEdBRXBEQyxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFO0VBQ1AsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHREYsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRTtFQUNQLENBQUMsQ0FBQyxFQUFBRSxLQUFBLEdBR0RILFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQUcsS0FBQSxHQU1ESixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLEtBQUs7SUFBRUksWUFBWSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHN0NOLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQU0sS0FBQSxHQU9EUCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLFFBQVE7SUFDZE8sV0FBVyxFQUFFO0VBQ2QsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHRFQsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRSxLQUFLO0lBQ1hTLGFBQWEsRUFBRTtFQUNoQixDQUFDLENBQUMsRUFBQUMsS0FBQSxHQUdEWCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLEtBQUs7SUFDWFMsYUFBYSxFQUFFO0VBQ2hCLENBQUMsQ0FBQyxFQUFBRSxNQUFBLEdBR0RaLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFB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
|
|
263
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSYWRpb0J1dHRvbnMiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsImRlZmF1bHRWYWx1ZSIsIl9kZWM2IiwiX2RlYzciLCJiaW5kVG9TdGF0ZSIsIl9kZWM4IiwiaXNCaW5kaW5nSW5mbyIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2RlYzEzIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsIl9kZXNjcmlwdG9yMTIiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvblJhZGlvQnV0dG9uU2VsZWN0IiwiZXZlbnQiLCJyYWRpb0J1dHRvbkdyb3VwIiwiZ2V0U291cmNlIiwic2VsZWN0ZWRJbmRleCIsImdldFBhcmFtZXRlciIsInVuZGVmaW5lZCIsInNlbGVjdGVkUmFkaW9CdXR0b25LZXkiLCJnZXRCdXR0b25zIiwiZ2V0Q3VzdG9tRGF0YSIsImdldFZhbHVlIiwic2V0UHJvcGVydHkiLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJnZXRDb250cm9sbGVyIiwiX3NpZGVFZmZlY3RzIiwiaGFuZGxlRmllbGRDaGFuZ2UiLCJiaW5kUHJvcGVydHkiLCJuYW1lIiwiYmluZGluZ0luZm8iLCJmb3JtYXR0ZXIiLCJ0YXJnZXRUeXBlIiwic2V0VmFsdWUiLCJuZXdWYWx1ZSIsInZhbHVlIiwicmFkaW9CdXR0b25zIiwibGVuZ3RoIiwicmFkaW9CdXR0b25JbmRleCIsInJhZGlvQnV0dG9uIiwia2V5Q3VzdG9tRGF0YSIsImdldEJpbmRpbmciLCJzZXRTZWxlY3RlZEluZGV4IiwiYnV0dG9uc0JpbmRpbmdDb250ZXh0IiwicG9zc2libGVWYWx1ZXMiLCJiaW5kU3RhdGUiLCJyYWRpb0J1dHRvblRleHRQcm9wZXJ0eSIsInBhdGhJbk1vZGVsIiwicmFkaW9CdXR0b25LZXlQcm9wZXJ0eSIsInBhdGgiLCJmaXhlZFZhbHVlc1BhdGgiLCJwYXJhbWV0ZXJzIiwiJGNvdW50IiwiZXZlbnRzIiwiZGF0YVJlY2VpdmVkIiwiZXYiLCJjb3VudCIsImdldENvdW50IiwiaG9yaXpvbnRhbExheW91dCIsInNldENvbHVtbnMiLCJnZXRTZWxlY3RlZEluZGV4IiwiYmluZCIsIl9qc3giLCJSYWRpb0J1dHRvbkdyb3VwIiwiYnV0dG9ucyIsInNlbGVjdCIsImVkaXRhYmxlIiwiZWRpdGFibGVFeHByZXNzaW9uIiwiZW5hYmxlZCIsImVuYWJsZWRFeHByZXNzaW9uIiwiZmllbGRHcm91cElkcyIsImFyaWFMYWJlbGxlZEJ5Iiwid2lkdGgiLCJjb2x1bW5zIiwiY2hpbGRyZW4iLCJSYWRpb0J1dHRvbiIsInRleHQiLCJjdXN0b21EYXRhIiwiQ3VzdG9tRGF0YSIsImNsYXNzIiwidG9vbHRpcCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlJhZGlvQnV0dG9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBwYXRoSW5Nb2RlbCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IFJhZGlvQnV0dG9uIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBSYWRpb0J1dHRvbkdyb3VwJFNlbGVjdEV2ZW50IH0gZnJvbSBcInNhcC9tL1JhZGlvQnV0dG9uR3JvdXBcIjtcbmltcG9ydCBSYWRpb0J1dHRvbkdyb3VwIGZyb20gXCJzYXAvbS9SYWRpb0J1dHRvbkdyb3VwXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgQWdncmVnYXRpb25CaW5kaW5nSW5mbywgUHJvcGVydHlCaW5kaW5nSW5mbyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEN1c3RvbURhdGEgZnJvbSBcInNhcC91aS9jb3JlL0N1c3RvbURhdGFcIjtcbmltcG9ydCB0eXBlIFByb3BlcnR5QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL1Byb3BlcnR5QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFMaXN0QmluZGluZyBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTGlzdEJpbmRpbmdcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5SYWRpb0J1dHRvbnNcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhZGlvQnV0dG9ucyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8UmFkaW9CdXR0b25Hcm91cCwgeyBwb3NzaWJsZVZhbHVlczogeyB0ZXh0OiBzdHJpbmc7IGtleTogbnVtYmVyIH1bXSB9PiB7XG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwdWJsaWMgaWQhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1tdXCJcblx0fSlcblx0cHVibGljIGZpZWxkR3JvdXBJZHM/OiBzdHJpbmdbXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIHJlcXVpcmVkRXhwcmVzc2lvbj86IHN0cmluZztcblxuXHQvLyBXZSB1c2UgdHlwZSAncmF3JyBoZXJlIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBiaW5kaW5nIHdpbGwgcmVmdXNlIHRvIHVwZGF0ZSB0aGUgdmFsdWUsIGFzIGl0IGRvZXNuJ3Qga25vdyBob3cgdG8gY29udmVydCBmcm9tIGFueSB0byBzdHJpbmdcblx0Ly8gU2V0dGluZyBpdCB0byByYXcgbWFrZSBzdXJlIHRoYXQgbm8gY29udmVyc2lvbiBpcyBhdHRlbXB0ZWQgd2hpY2ggdGhlbiB3b3Jrc1xuXHQvLyBEZWZhdWx0IHZhbHVlIGlzIHNldCB0byBudWxsIHRvIGFsbG93IGhhdmluZyBhIHJhZGlvIGJ1dHRvbiBwb2ludGluZyB0byBhIGBudWxsYCB2YWx1ZVxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImFueVwiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0cHVibGljIHZhbHVlITogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0cHVibGljIGZpeGVkVmFsdWVzUGF0aCE6IGB7JHtzdHJpbmd9fWA7XG5cblx0LyoqXG5cdCAqIEFuIGFycmF5IG9mIHBvc3NpYmxlLCBmaXhlZCB2YWx1ZSBsaXN0IG9iamVjdFxuXHQgKiBJZiB0aGlzIHByb3BlcnR5IGlzIHVzZWQsIHRoZSBmaXhlZFZhbHVlc1BhdGggcHJvcGVydHkgaXMgaWdub3JlZC5cblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJvYmplY3RcIixcblx0XHRiaW5kVG9TdGF0ZTogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcG9zc2libGVWYWx1ZXM/OiB7IGtleTogUHJpbWl0aXZlVHlwZTsgdGV4dDogc3RyaW5nIH1bXTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYW55XCIsXG5cdFx0aXNCaW5kaW5nSW5mbzogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgcmFkaW9CdXR0b25UZXh0UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImFueVwiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIHJhZGlvQnV0dG9uS2V5UHJvcGVydHk6IFByb3BlcnR5QmluZGluZ0luZm87XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRwdWJsaWMgaG9yaXpvbnRhbExheW91dCA9IGZhbHNlO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRpc0JpbmRpbmdJbmZvOiB0cnVlXG5cdH0pXG5cdHB1YmxpYyBlbmFibGVkRXhwcmVzc2lvbiA9IFwiXCI7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0cHVibGljIGVkaXRhYmxlRXhwcmVzc2lvbiA9IFwiXCI7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyB3aWR0aCA9IFwiMTAwJVwiO1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6ICRDb250cm9sU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8UmFkaW9CdXR0b25zPiwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BlcnRpZXMsIG90aGVycyk7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciBmb3IgdGhlIFJhZGlvQnV0dG9uR3JvdXAncyBzZWxlY3QgZXZlbnQuXG5cdCAqIFdlIG5lZWQgdG8gcGFyc2UgZnJvbSB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGluZGV4IHRvIHRoZSBtb2RlbCB2YWx1ZS5cblx0ICogQHBhcmFtIGV2ZW50XG5cdCAqL1xuXHRvblJhZGlvQnV0dG9uU2VsZWN0KGV2ZW50OiBSYWRpb0J1dHRvbkdyb3VwJFNlbGVjdEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgcmFkaW9CdXR0b25Hcm91cDogUmFkaW9CdXR0b25Hcm91cCA9IGV2ZW50LmdldFNvdXJjZSgpO1xuXHRcdGNvbnN0IHNlbGVjdGVkSW5kZXggPSBldmVudC5nZXRQYXJhbWV0ZXIoXCJzZWxlY3RlZEluZGV4XCIpO1xuXHRcdGlmIChzZWxlY3RlZEluZGV4ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGNvbnN0IHNlbGVjdGVkUmFkaW9CdXR0b25LZXk6IHN0cmluZyA9IHJhZGlvQnV0dG9uR3JvdXA/LmdldEJ1dHRvbnMoKVtzZWxlY3RlZEluZGV4XS5nZXRDdXN0b21EYXRhKClbMF0uZ2V0VmFsdWUoKTtcblx0XHRcdC8vIE5vdyB3ZSBoYXZlIHRoZSB2YWx1ZSA9PiB3cml0ZSBpdCB0byB0aGUgbW9kZWwhXG5cdFx0XHR0aGlzLnNldFByb3BlcnR5KFwidmFsdWVcIiwgc2VsZWN0ZWRSYWRpb0J1dHRvbktleSk7XG5cdFx0XHRDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHJhZGlvQnV0dG9uR3JvdXApPy5nZXRDb250cm9sbGVyKCk/Ll9zaWRlRWZmZWN0cz8uaGFuZGxlRmllbGRDaGFuZ2UoZXZlbnQsIHRydWUpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgdmFsdWUgcHJvcGVydHkgdHlwZSBuZWVkcyB0byBiZSBpbml0aWFsbHkgJ2FueScgYnV0IGhhcyB0byBiZSBjaGFuZ2VkIHRvICdyYXcnIHRvIGF2b2lkIHBhcnNpbmcgZXJyb3JzLlxuXHQgKiBAcGFyYW0gbmFtZVxuXHQgKiBAcGFyYW0gYmluZGluZ0luZm9cblx0ICogQHJldHVybnMgVGhpc1xuXHQgKi9cblx0YmluZFByb3BlcnR5KG5hbWU6IHN0cmluZywgYmluZGluZ0luZm86IFByb3BlcnR5QmluZGluZ0luZm8pOiB0aGlzIHtcblx0XHRpZiAobmFtZSA9PT0gXCJ2YWx1ZVwiICYmICFiaW5kaW5nSW5mby5mb3JtYXR0ZXIpIHtcblx0XHRcdC8vIG5vdCBpZiBhIGZvcm1hdHRlciBpcyB1c2VkLCBhcyB0aGlzIG5lZWRzIHRvIGJlIGV4ZWN1dGVkXG5cdFx0XHRiaW5kaW5nSW5mby50YXJnZXRUeXBlID0gXCJyYXdcIjtcblx0XHR9XG5cblx0XHRyZXR1cm4gc3VwZXIuYmluZFByb3BlcnR5KG5hbWUsIGJpbmRpbmdJbmZvKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGlzIGJlaW5nIGNhbGxlZCB3aGVuIHRoZSBtb2RlbCBmZXRjaGVzIHRoZSBkYXRhIGZyb20gdGhlIGJhY2tlbmQgb3Igd2hlbiB3ZSBjYWxsIGl0IGRpcmVjdGx5LlxuXHQgKiBXZSBuZWVkIHRvIHBhcnNlIGZyb20gdGhlIG1vZGVsIHZhbHVlIHRvIHRoZSByYWRpbyBidXR0b24gZ3JvdXAgaW5kZXguXG5cdCAqIEBwYXJhbSBuZXdWYWx1ZVxuXHQgKi9cblx0c2V0VmFsdWUobmV3VmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlID0gbmV3VmFsdWU7XG5cdFx0aWYgKHRoaXMuY29udGVudCkge1xuXHRcdFx0Ly8gQ29tcHV0ZSB0aGUgbmV3IHJhZGlvIGJ1dHRvbiBpbmRleFxuXHRcdFx0Y29uc3QgcmFkaW9CdXR0b25zID0gdGhpcy5jb250ZW50LmdldEJ1dHRvbnMoKTtcblx0XHRcdGlmIChyYWRpb0J1dHRvbnMubGVuZ3RoICE9IDApIHtcblx0XHRcdFx0bGV0IHJhZGlvQnV0dG9uSW5kZXggPSAwO1xuXHRcdFx0XHRmb3IgKGNvbnN0IHJhZGlvQnV0dG9uIG9mIHJhZGlvQnV0dG9ucykge1xuXHRcdFx0XHRcdGNvbnN0IGtleUN1c3RvbURhdGEgPSAocmFkaW9CdXR0b24uZ2V0Q3VzdG9tRGF0YSgpWzBdLmdldEJpbmRpbmcoXCJ2YWx1ZVwiKSBhcyBQcm9wZXJ0eUJpbmRpbmcgfCB1bmRlZmluZWQpPy5nZXRWYWx1ZSgpO1xuXHRcdFx0XHRcdGlmIChrZXlDdXN0b21EYXRhID09PSBuZXdWYWx1ZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5jb250ZW50LnNldFNlbGVjdGVkSW5kZXgocmFkaW9CdXR0b25JbmRleCk7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJhZGlvQnV0dG9uSW5kZXgrKztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Ly8gSWYgbm8gdmFsdWUgY291bGQgYmUgZm91bmQgb3IgaWYgdGhlIHJhZGlvIGJ1dHRvbiBhZ2dyZWdhdGlvbiB3YXMgZW1wdHksIHdoaWNoIGNhbiBoYXBwZW4gZHVlIHRvXG5cdFx0XHQvLyBhIHZlcnkgZWFybHkgY2FsbCBvZiBzZXRWYWx1ZSwgc2V0IHRoZSBzZWxlY3RlZCB0byBpbmRleCB0byAtMSB3aGljaCByZXN1bHRzIGluIE5PIHJhZGlvIGJ1dHRvbiB0byBiZSBzZWxlY3RlZC5cblx0XHRcdHRoaXMuY29udGVudC5zZXRTZWxlY3RlZEluZGV4KC0xKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhlIGJ1aWxkaW5nIGJsb2NrIHJlbmRlciBmdW5jdGlvbi5cblx0ICogQHJldHVybnMgVGhlIHJhZGlvIGJ1dHRvbiBncm91cFxuXHQgKi9cblx0Y3JlYXRlQ29udGVudCgpOiBSYWRpb0J1dHRvbkdyb3VwIHtcblx0XHQvLyBTZXR0aW5nIHVwIHRoZSBiaW5kaW5nIHNvIHRoYXQgd2UgY2FuIGFjY2VzcyAkY291bnQgZm9yIGdldHRpbmcgdGhlIG51bWJlclxuXHRcdC8vIG9mIGVudHJpZXMgaW4gdGhlIGZpeGVkIHZhbHVlIGxpc3QgYW5kIHNldCB0aGlzIGFzIG51bWJlciBvZiByYWRpbyBidXR0b24gY29sdW1uc1xuXHRcdC8vIGluIGNhc2UgaG9yaXpvbnRhbCBsYXlvdXQgaXMgY29uZmlndXJlZFxuXHRcdGxldCBidXR0b25zQmluZGluZ0NvbnRleHQ6IEFnZ3JlZ2F0aW9uQmluZGluZ0luZm8gfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHRoaXMucG9zc2libGVWYWx1ZXMpIHtcblx0XHRcdGJ1dHRvbnNCaW5kaW5nQ29udGV4dCA9IHRoaXMuYmluZFN0YXRlKFwicG9zc2libGVWYWx1ZXNcIik7XG5cdFx0XHR0aGlzLnJhZGlvQnV0dG9uVGV4dFByb3BlcnR5ID0gcGF0aEluTW9kZWwoXCJ0ZXh0XCIsIFwiJGNvbXBvbmVudFN0YXRlXCIpO1xuXHRcdFx0dGhpcy5yYWRpb0J1dHRvbktleVByb3BlcnR5ID0gcGF0aEluTW9kZWwoXCJrZXlcIiwgXCIkY29tcG9uZW50U3RhdGVcIik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGJ1dHRvbnNCaW5kaW5nQ29udGV4dCA9IHtcblx0XHRcdFx0cGF0aDogYCR7dGhpcy5maXhlZFZhbHVlc1BhdGh9YCxcblx0XHRcdFx0cGFyYW1ldGVyczogeyAkY291bnQ6IHRydWUgfSxcblx0XHRcdFx0ZXZlbnRzOiB7XG5cdFx0XHRcdFx0ZGF0YVJlY2VpdmVkOiAoZXY6IEV2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBjb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkID0gKGV2LmdldFNvdXJjZSgpIGFzIHVua25vd24gYXMgT0RhdGFMaXN0QmluZGluZyk/LmdldENvdW50KCk7XG5cdFx0XHRcdFx0XHRpZiAoY291bnQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmhvcml6b250YWxMYXlvdXQpIHtcblx0XHRcdFx0XHRcdFx0cmFkaW9CdXR0b25Hcm91cC5zZXRDb2x1bW5zKGNvdW50KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vIENoZWNrIGlmIHRoZXJlIGlzIGEgdmFsdWUgc3RvcmVkIGZyb20gdGhlIGluaXRpYWxpemF0aW9uIGJ1dCB0aGUgcmFkaW9cblx0XHRcdFx0XHRcdC8vIGJ1dHRvbiBzZWxlY3Rpb24gaGFzIG5vdCB5ZXQgYmVlbiBkb25lIGFuZCBkbyB0aGlzIG5vd1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiByYWRpb0J1dHRvbkdyb3VwLmdldFNlbGVjdGVkSW5kZXgoKSA9PT0gLTEpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlIGFzIHN0cmluZyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdHRoaXMub25SYWRpb0J1dHRvblNlbGVjdC5iaW5kKHRoaXMpO1xuXG5cdFx0Y29uc3QgcmFkaW9CdXR0b25Hcm91cCA9IChcblx0XHRcdDxSYWRpb0J1dHRvbkdyb3VwXG5cdFx0XHRcdGJ1dHRvbnM9e2J1dHRvbnNCaW5kaW5nQ29udGV4dH1cblx0XHRcdFx0c2VsZWN0PXt0aGlzLm9uUmFkaW9CdXR0b25TZWxlY3QuYmluZCh0aGlzKX1cblx0XHRcdFx0ZWRpdGFibGU9e3RoaXMuZWRpdGFibGVFeHByZXNzaW9ufVxuXHRcdFx0XHRlbmFibGVkPXt0aGlzLmVuYWJsZWRFeHByZXNzaW9ufVxuXHRcdFx0XHRmaWVsZEdyb3VwSWRzPXt0aGlzLmZpZWxkR3JvdXBJZHN9XG5cdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXt0aGlzLmFyaWFMYWJlbGxlZEJ5fVxuXHRcdFx0XHR3aWR0aD17dGhpcy53aWR0aH1cblx0XHRcdFx0Y29sdW1ucz17dGhpcy5wb3NzaWJsZVZhbHVlcz8ubGVuZ3RoID8/IDF9XG5cdFx0XHQ+XG5cdFx0XHRcdDxSYWRpb0J1dHRvblxuXHRcdFx0XHRcdHRleHQ9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdFx0Y3VzdG9tRGF0YT17PEN1c3RvbURhdGEga2V5PXtcImtleVwifSB2YWx1ZT17dGhpcy5yYWRpb0J1dHRvbktleVByb3BlcnR5fSAvPn1cblx0XHRcdFx0XHRjbGFzcz1cInNhcFVpU21hbGxNYXJnaW5FbmRcIlxuXHRcdFx0XHRcdHRvb2x0aXA9e3RoaXMucmFkaW9CdXR0b25UZXh0UHJvcGVydHl9XG5cdFx0XHRcdC8+XG5cdFx0XHQ8L1JhZGlvQnV0dG9uR3JvdXA+XG5cdFx0KSBhcyBSYWRpb0J1dHRvbkdyb3VwO1xuXG5cdFx0cmV0dXJuIHJhZGlvQnV0dG9uR3JvdXA7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpQnFCQSxZQUFZLElBQUFDLElBQUEsR0FEaENDLGNBQWMsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFBQyxLQUFBLEdBRXBEQyxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFO0VBQ1AsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHREYsUUFBUSxDQUFDO0lBQ1RDLElBQUksRUFBRTtFQUNQLENBQUMsQ0FBQyxFQUFBRSxLQUFBLEdBR0RILFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQUcsS0FBQSxHQU1ESixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLEtBQUs7SUFBRUksWUFBWSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FHN0NOLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUU7RUFDUCxDQUFDLENBQUMsRUFBQU0sS0FBQSxHQU9EUCxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLFFBQVE7SUFDZE8sV0FBVyxFQUFF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
|
|
@@ -70,10 +70,17 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup, { poss
|
|
|
70
70
|
public horizontalLayout = false;
|
|
71
71
|
|
|
72
72
|
@property({
|
|
73
|
-
type: "string"
|
|
73
|
+
type: "string",
|
|
74
|
+
isBindingInfo: true
|
|
74
75
|
})
|
|
75
76
|
public enabledExpression = "";
|
|
76
77
|
|
|
78
|
+
@property({
|
|
79
|
+
type: "string",
|
|
80
|
+
isBindingInfo: true
|
|
81
|
+
})
|
|
82
|
+
public editableExpression = "";
|
|
83
|
+
|
|
77
84
|
@property({
|
|
78
85
|
type: "string"
|
|
79
86
|
})
|
|
@@ -176,10 +183,12 @@ export default class RadioButtons extends BuildingBlock<RadioButtonGroup, { poss
|
|
|
176
183
|
}
|
|
177
184
|
|
|
178
185
|
this.onRadioButtonSelect.bind(this);
|
|
186
|
+
|
|
179
187
|
const radioButtonGroup = (
|
|
180
188
|
<RadioButtonGroup
|
|
181
189
|
buttons={buttonsBindingContext}
|
|
182
190
|
select={this.onRadioButtonSelect.bind(this)}
|
|
191
|
+
editable={this.editableExpression}
|
|
183
192
|
enabled={this.enabledExpression}
|
|
184
193
|
fieldGroupIds={this.fieldGroupIds}
|
|
185
194
|
ariaLabelledBy={this.ariaLabelledBy}
|
|
@@ -364,8 +364,8 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
364
364
|
}
|
|
365
365
|
this.dialog = this.createDialog();
|
|
366
366
|
this.dialog.setEscapeHandler(this.onEscape.bind(this));
|
|
367
|
-
this.parentControl?.addDependent(this.dialog);
|
|
368
367
|
this.dialog.setBindingContext(this.contextToUpdate);
|
|
368
|
+
this.parentControl?.addDependent(this.dialog);
|
|
369
369
|
this.dialog.open();
|
|
370
370
|
return this.dialog;
|
|
371
371
|
}
|
|
@@ -414,4 +414,4 @@ sap.ui.define(["sap/fe/base/BindingToolkit", "sap/fe/base/ClassSupport", "sap/fe
|
|
|
414
414
|
_exports = CreateDialog;
|
|
415
415
|
return _exports;
|
|
416
416
|
}, false);
|
|
417
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250ZXh0VXBkYXRlRGlhbG9nRXZlbnRQcm92aWRlciIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwiZXZlbnQiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0V2ZW50UHJvdmlkZXIiLCJfdGhpcyIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfaW5oZXJpdHNMb29zZSIsIkV2ZW50UHJvdmlkZXIiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwicHJvdG90eXBlIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiLCJDcmVhdGVEaWFsb2ciLCJjb250ZXh0VG9VcGRhdGUiLCJmaWVsZE5hbWVzIiwiYXBwQ29tcG9uZW50IiwibW9kZSIsInBhcmVudENvbnRyb2wiLCJhY3Rpb25QYXJhbWV0ZXJJbmZvcyIsImV2ZW50UHJvdmlkZXIiLCJtb2RlbCIsImdldE1vZGVsIiwibWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwibWV0YVBhdGgiLCJnZXRNZXRhUGF0aCIsImdldFBhdGgiLCJyZXF1aXJlZEZpZWxkTmFtZXMiLCJnZXRSZXF1aXJlZFByb3BlcnRpZXNGcm9tSW5zZXJ0UmVzdHJpY3Rpb25zIiwiX2V4cG9ydHMiLCJfcHJvdG8iLCJhdHRhY2hFeGl0RGlhbG9nIiwib0RhdGEiLCJmbkZ1bmN0aW9uIiwib0xpc3RlbmVyIiwiYXR0YWNoRXZlbnQiLCJmaXJlRXhpdERpYWxvZyIsImFjY2VwdCIsImZpcmVFdmVudCIsImdldEVkaXRNb2RlIiwicHJvcGVydHkiLCJhbm5vdGF0aW9ucyIsIkNvbW1vbiIsIkZpZWxkQ29udHJvbCIsImZpZWxkQ29udHJvbCIsIiRFbnVtTWVtYmVyIiwiZ2V0RmllbGRWSFR5cGVBaGVhZCIsImZpZWxkTmFtZSIsInByb3BlcnR5T2JqZWN0UGF0aCIsIl9qc3giLCJQb3BvdmVyIiwiY2hpbGRyZW4iLCJNVGFibGUiLCJpZCIsImdlbmVyYXRlIiwiY2FzZVNlbnNpdGl2ZSIsInVzZUNhc2VTZW5zaXRpdmVGaWx0ZXJSZXF1ZXN0cyIsImNvbnZlcnRlZFR5cGVzIiwiZW50aXR5Q29udGFpbmVyIiwiQ2FwYWJpbGl0aWVzIiwiRmlsdGVyRnVuY3Rpb25zIiwidXNlQXNWYWx1ZUhlbHAiLCJWYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXMiLCJnZXRGaWVsZFZIRGlhbG9nIiwidmFsdWVPZiIsIlZIRGlhbG9nIiwidW5kZWZpbmVkIiwiZ2V0RmllbGRWYWx1ZUhlbHAiLCJoYXNWYWx1ZUhlbHAiLCJ2aERlbGVnYXRlIiwibmFtZSIsInBheWxvYWQiLCJwcm9wZXJ0eVBhdGgiLCJnZXRUYXJnZXRPYmplY3RQYXRoIiwicXVhbGlmaWVycyIsInZhbHVlSGVscFF1YWxpZmllciIsIlZhbHVlSGVscCIsImRlbGVnYXRlIiwidmFsaWRhdGVJbnB1dCIsInJlcXVpcmVzVmFsaWRhdGlvbiIsInR5cGVhaGVhZCIsImRpYWxvZyIsImNyZWF0ZUZvcm1FbGVtZW50IiwibGlzdE9iamVjdFBhdGgiLCJsaXN0TWV0YVBhdGgiLCJlbmhhbmNlRGF0YU1vZGVsUGF0aCIsInRhcmdldE9iamVjdCIsInByb3BlcnR5TWV0YUNvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsInByb3BlcnR5UGxhY2VIb2xkZXJNZXRhQ29udGV4dCIsImZpZWxkIiwiTURDRmllbGQiLCJyZXRyaWV2ZVRleHRGcm9tVmFsdWVMaXN0IiwidGFyZ2V0RW50aXR5VHlwZSIsInZhbHVlIiwiQW5ub3RhdGlvbkhlbHBlciIsImZvcm1hdCIsImdldE9iamVjdCIsImNvbnRleHQiLCJwbGFjZWhvbGRlciIsIndpZHRoIiwicmVxdWlyZWQiLCJjb21waWxlRXhwcmVzc2lvbiIsIm9yIiwiaXNSZXF1aXJlZEV4cHJlc3Npb24iLCJpbmNsdWRlcyIsImRpc3BsYXkiLCJGaWVsZEhlbHBlciIsImdldEFQRGlhbG9nRGlzcGxheUZvcm1hdCIsInZhbHVlSGVscCIsImVkaXRNb2RlIiwiZGVwZW5kZW50cyIsImN1c3RvbURhdGEiLCJDdXN0b21EYXRhIiwibGl2ZUNoYW5nZSIsImhhbmRsZUxpdmVDaGFuZ2UiLCJiaW5kIiwiY2hhbmdlIiwiaGFuZGxlQ2hhbmdlIiwicHVzaCIsImlzTXVsdGlWYWx1ZSIsImdldFZhbHVlIiwidmFsaWRhdGlvblByb21pc2UiLCJoYXNFcnJvciIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiTGFiZWwiLCJ0ZXh0IiwiYWZ0ZXJPcGVuIiwiZmlyc3RGaWVsZCIsImZvY3VzSW5mbyIsImdldEZvY3VzSW5mbyIsInRhcmdldEluZm8iLCJzaWxlbnQiLCJmb2N1cyIsImNyZWF0ZURpYWxvZyIsInJlc291cmNlTW9kZWwiLCJnZXRSZXNvdXJjZU1vZGVsIiwibWV0YUNvbnRleHQiLCJvYmplY3RQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwiYmVnaW5CdXR0b25MYWJlbCIsImdldFRleHQiLCJlbmRCdXR0b24iLCJCdXR0b24iLCJwcmVzcyIsIm9uQ2FuY2VsIiwiRGlhbG9nIiwidGl0bGUiLCJ0YXJnZXRFbnRpdHlTZXQiLCJyZXNpemFibGUiLCJkcmFnZ2FibGUiLCJpbml0aWFsRm9jdXMiLCJiZWdpbkJ1dHRvbiIsIm9uT0siLCJ0eXBlIiwiY29udGVudCIsIlNpbXBsZUZvcm0iLCJtYXAiLCJkaXNwbGF5RXJyb3JNZXNzYWdlcyIsIm1lc3NhZ2VzIiwiY29udGV4dE1ldGFQYXRoIiwibWVzc2FnZSIsInRhcmdldCIsImdldFRhcmdldHMiLCJ0YXJnZXRNZXRhUGF0aCIsInBhcmFtZXRlckluZm8iLCJmaW5kIiwiYWN0aW9uUGFyYW1ldGVySW5mbyIsInNldFZhbHVlU3RhdGUiLCJnZXRUeXBlIiwiTWVzc2FnZVR5cGUiLCJFcnJvciIsInNldFZhbHVlU3RhdGVUZXh0IiwiZ2V0TWVzc2FnZSIsIm1lc3NhZ2VDb250cm9sSURzIiwiZ2V0Q29udHJvbElkcyIsImdldElkIiwicmVtb3ZlTWVzc2FnZXNGb3JBY3Rpb25QYXJhbWV0ZXIiLCJtZXNzYWdlQ29udHJvbElkIiwiYWxsTWVzc2FnZXMiLCJNZXNzYWdpbmciLCJnZXRNZXNzYWdlTW9kZWwiLCJnZXREYXRhIiwicmVsZXZhbnRNZXNzYWdlcyIsImZpbHRlciIsIm1zZyIsInNvbWUiLCJjb250cm9sSWQiLCJyZW1vdmVNZXNzYWdlcyIsImxpdmVDaGFuZ2VFdmVudCIsImZpZWxkSWQiLCJnZXRTb3VyY2UiLCJjaGFuZ2VFdmVudCIsImdldFBhcmFtZXRlciIsIk5vbmUiLCJlcnJvciIsIkFjdGlvblJ1bnRpbWUiLCJ2YWxpZGF0ZVByb3BlcnRpZXMiLCJvbkVzY2FwZSIsInAiLCJyZWplY3QiLCJvcGVuRGlhbG9nIiwic2V0RXNjYXBlSGFuZGxlciIsImFkZERlcGVuZGVudCIsInNldEJpbmRpbmdDb250ZXh0Iiwib3BlbiIsImNsb3NlRGlhbG9nIiwiQnVzeUxvY2tlciIsImlzTG9ja2VkIiwidW5sb2NrIiwiY2xvc2UiLCJkZXN0cm95Iiwic2V0QnVzeSIsImJ1c3kiLCJsb2NrIiwiaXNPcGVuIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDcmVhdGVEaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5U2V0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBjb21waWxlRXhwcmVzc2lvbiwgb3IgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBldmVudCB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgQWN0aW9uUGFyYW1ldGVySW5mbyB9IGZyb20gXCJzYXAvZmUvY29yZS9BY3Rpb25SdW50aW1lXCI7XG5pbXBvcnQgQWN0aW9uUnVudGltZSBmcm9tIFwic2FwL2ZlL2NvcmUvQWN0aW9uUnVudGltZVwiO1xuaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgU3RhbmRhcmREaWFsb2cgfSBmcm9tIFwic2FwL2ZlL2NvcmUvVUlQcm92aWRlclwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0J1c3lMb2NrZXJcIjtcbmltcG9ydCB7IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgZ2V0UmVxdWlyZWRQcm9wZXJ0aWVzRnJvbUluc2VydFJlc3RyaWN0aW9ucyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01ldGFNb2RlbEZ1bmN0aW9uXCI7XG5pbXBvcnQgeyBnZXRSZXNvdXJjZU1vZGVsIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvUmVzb3VyY2VNb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHsgZW5oYW5jZURhdGFNb2RlbFBhdGgsIGdldFRhcmdldE9iamVjdFBhdGgsIHR5cGUgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGlzUmVxdWlyZWRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRmllbGRDb250cm9sSGVscGVyXCI7XG5pbXBvcnQgeyBoYXNWYWx1ZUhlbHAgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IEZpZWxkSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkSGVscGVyXCI7XG5pbXBvcnQgeyByZXF1aXJlc1ZhbGlkYXRpb24sIHVzZUNhc2VTZW5zaXRpdmVGaWx0ZXJSZXF1ZXN0cyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL3ZhbHVlaGVscC9WYWx1ZUhlbHBUZW1wbGF0aW5nXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBEaWFsb2cgZnJvbSBcInNhcC9tL0RpYWxvZ1wiO1xuaW1wb3J0IExhYmVsIGZyb20gXCJzYXAvbS9MYWJlbFwiO1xuaW1wb3J0IEV2ZW50UHJvdmlkZXIgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50UHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9DdXN0b21EYXRhXCI7XG5pbXBvcnQgTWVzc2FnaW5nIGZyb20gXCJzYXAvdWkvY29yZS9NZXNzYWdpbmdcIjtcbmltcG9ydCB0eXBlIE1lc3NhZ2UgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZVwiO1xuaW1wb3J0IE1lc3NhZ2VUeXBlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VUeXBlXCI7XG5pbXBvcnQgU2ltcGxlRm9ybSBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL1NpbXBsZUZvcm1cIjtcbmltcG9ydCBNRENGaWVsZCwgeyB0eXBlIEZpZWxkJENoYW5nZUV2ZW50IH0gZnJvbSBcInNhcC91aS9tZGMvRmllbGRcIjtcbmltcG9ydCBWYWx1ZUhlbHAgZnJvbSBcInNhcC91aS9tZGMvVmFsdWVIZWxwXCI7XG5pbXBvcnQgeyB0eXBlIEZpZWxkQmFzZSRMaXZlQ2hhbmdlRXZlbnQgfSBmcm9tIFwic2FwL3VpL21kYy9maWVsZC9GaWVsZEJhc2VcIjtcbmltcG9ydCBWSERpYWxvZyBmcm9tIFwic2FwL3VpL21kYy92YWx1ZWhlbHAvRGlhbG9nXCI7XG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwic2FwL3VpL21kYy92YWx1ZWhlbHAvUG9wb3ZlclwiO1xuaW1wb3J0IE1UYWJsZSBmcm9tIFwic2FwL3VpL21kYy92YWx1ZWhlbHAvY29udGVudC9NVGFibGVcIjtcbmltcG9ydCBBbm5vdGF0aW9uSGVscGVyIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQW5ub3RhdGlvbkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgT0RhdGFWNENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Sb3V0aW5nU2VydmljZUV2ZW50aW5nXCIpXG5jbGFzcyBDb250ZXh0VXBkYXRlRGlhbG9nRXZlbnRQcm92aWRlciBleHRlbmRzIEV2ZW50UHJvdmlkZXIge1xuXHRAZXZlbnQoKVxuXHRleGl0RGlhbG9nITogRnVuY3Rpb247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENyZWF0ZURpYWxvZyBpbXBsZW1lbnRzIFN0YW5kYXJkRGlhbG9nIHtcblx0cHJpdmF0ZSBkaWFsb2c/OiBEaWFsb2c7XG5cblx0cHJpdmF0ZSBtZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsO1xuXG5cdHByaXZhdGUgcmVxdWlyZWRGaWVsZE5hbWVzOiBzdHJpbmdbXTtcblxuXHRwcml2YXRlIGFjdGlvblBhcmFtZXRlckluZm9zOiBBY3Rpb25QYXJhbWV0ZXJJbmZvW10gPSBbXTtcblxuXHRwcml2YXRlIGV2ZW50UHJvdmlkZXIgPSBuZXcgQ29udGV4dFVwZGF0ZURpYWxvZ0V2ZW50UHJvdmlkZXIoKTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIGNvbnRleHRUb1VwZGF0ZTogT0RhdGFWNENvbnRleHQsXG5cdFx0cHJpdmF0ZSBmaWVsZE5hbWVzOiBzdHJpbmdbXSxcblx0XHRwcml2YXRlIGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LFxuXHRcdHByaXZhdGUgbW9kZTogXCJTdGFuZGFsb25lXCIgfCBcIldpdGhOYXZpZ2F0aW9uXCIsXG5cdFx0cHJpdmF0ZSBwYXJlbnRDb250cm9sPzogQ29udHJvbFxuXHQpIHtcblx0XHRjb25zdCBtb2RlbDogT0RhdGFNb2RlbCA9IGNvbnRleHRUb1VwZGF0ZS5nZXRNb2RlbCgpO1xuXHRcdHRoaXMubWV0YU1vZGVsID0gbW9kZWwuZ2V0TWV0YU1vZGVsKCk7XG5cblx0XHRjb25zdCBtZXRhUGF0aCA9IHRoaXMubWV0YU1vZGVsLmdldE1ldGFQYXRoKGNvbnRleHRUb1VwZGF0ZS5nZXRQYXRoKCkpO1xuXHRcdHRoaXMucmVxdWlyZWRGaWVsZE5hbWVzID0gZ2V0UmVxdWlyZWRQcm9wZXJ0aWVzRnJvbUluc2VydFJlc3RyaWN0aW9ucyhtZXRhUGF0aCwgdGhpcy5tZXRhTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEF0dGFjaGVzIGFuIGV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xvc2VzIHRoZSBkaWFsb2cgKGVpdGhlciB3aXRoIE9LIG9yIENhbmNlbCkuXG5cdCAqXG5cdCAqIFRoZSBldmVudCBoYXMgYW4gJ2FjY2VwdCcgcGFyYW1ldGVyIHRoYXQgaXMgdHJ1ZSAocmVzcC4gZmFsc2UpIGlmIHRoZSB1c2VyIGNsaWNrZWQgb24gT0sgKHJlc3AuIENhbmNlbCkuXG5cdCAqIEBwYXJhbSBvRGF0YSBQYXlsb2FkIG9iamVjdCB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBldmVudCBoYW5kbGVyIGFsb25nIHdpdGggdGhlIGV2ZW50IG9iamVjdCB3aGVuIGZpcmluZyB0aGUgZXZlbnRcblx0ICogQHBhcmFtIGZuRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBldmVudCBvY2N1cnNcblx0ICogQHBhcmFtIG9MaXN0ZW5lciBDb250ZXh0IG9iamVjdCB0byBjYWxsIHRoZSBldmVudCBoYW5kbGVyIHdpdGhcblx0ICovXG5cdGF0dGFjaEV4aXREaWFsb2cob0RhdGE6IG9iamVjdCwgZm5GdW5jdGlvbjogRnVuY3Rpb24sIG9MaXN0ZW5lcj86IG9iamVjdCk6IHZvaWQge1xuXHRcdHRoaXMuZXZlbnRQcm92aWRlci5hdHRhY2hFdmVudChcImV4aXREaWFsb2dcIiwgb0RhdGEsIGZuRnVuY3Rpb24sIG9MaXN0ZW5lcik7XG5cdH1cblxuXHRwcml2YXRlIGZpcmVFeGl0RGlhbG9nKGFjY2VwdDogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMuZXZlbnRQcm92aWRlci5maXJlRXZlbnQoXCJleGl0RGlhbG9nXCIsIHsgYWNjZXB0IH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGVkaXRNb2RlIGZvciBhIHByb3BlcnR5LlxuXHQgKiBAcGFyYW0gcHJvcGVydHlcblx0ICogQHJldHVybnMgRGlzcGxheSBvciBFZGl0YWJsZVxuXHQgKi9cblx0cHJpdmF0ZSBnZXRFZGl0TW9kZShwcm9wZXJ0eTogUHJvcGVydHkpOiBzdHJpbmcge1xuXHRcdGlmIChwcm9wZXJ0eS5hbm5vdGF0aW9ucy5Db21tb24/LkZpZWxkQ29udHJvbCkge1xuXHRcdFx0Y29uc3QgZmllbGRDb250cm9sID0gcHJvcGVydHkuYW5ub3RhdGlvbnMuQ29tbW9uLkZpZWxkQ29udHJvbCBhcyB1bmtub3duIGFzIHsgJEVudW1NZW1iZXI/OiBzdHJpbmcgfTtcblx0XHRcdHJldHVybiBmaWVsZENvbnRyb2wuJEVudW1NZW1iZXIgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkZpZWxkQ29udHJvbFR5cGUvUmVhZE9ubHlcIiA/IFwiRGlzcGxheVwiIDogXCJFZGl0YWJsZVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gXCJFZGl0YWJsZVwiO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBwb3BvdmVyIGZvciB0aGUgVkggdHlwZWFoZWFkLlxuXHQgKiBAcGFyYW0gZmllbGROYW1lXG5cdCAqIEBwYXJhbSBwcm9wZXJ0eVxuXHQgKiBAcGFyYW0gcHJvcGVydHlPYmplY3RQYXRoXG5cdCAqIEByZXR1cm5zIFRoZSBwb3BvdmVyXG5cdCAqL1xuXHRwcml2YXRlIGdldEZpZWxkVkhUeXBlQWhlYWQoZmllbGROYW1lOiBzdHJpbmcsIHByb3BlcnR5OiBQcm9wZXJ0eSwgcHJvcGVydHlPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPFByb3BlcnR5Pik6IFBvcG92ZXIge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8UG9wb3Zlcj5cblx0XHRcdFx0PE1UYWJsZVxuXHRcdFx0XHRcdGlkPXtnZW5lcmF0ZShbZmllbGROYW1lLCBcIlZIXCIsIFwiUG9wb3ZlclwiLCBcInF1YWxpZmllclwiXSl9XG5cdFx0XHRcdFx0Y2FzZVNlbnNpdGl2ZT17dXNlQ2FzZVNlbnNpdGl2ZUZpbHRlclJlcXVlc3RzKFxuXHRcdFx0XHRcdFx0cHJvcGVydHlPYmplY3RQYXRoLFxuXHRcdFx0XHRcdFx0KHByb3BlcnR5T2JqZWN0UGF0aC5jb252ZXJ0ZWRUeXBlcy5lbnRpdHlDb250YWluZXIuYW5ub3RhdGlvbnMuQ2FwYWJpbGl0aWVzXG5cdFx0XHRcdFx0XHRcdD8uRmlsdGVyRnVuY3Rpb25zIGFzIHVua25vd24gYXMgc3RyaW5nW10pID8/IFtdXG5cdFx0XHRcdFx0KX1cblx0XHRcdFx0XHR1c2VBc1ZhbHVlSGVscD17ISFwcm9wZXJ0eS5hbm5vdGF0aW9ucy5Db21tb24/LlZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlc31cblx0XHRcdFx0Lz5cblx0XHRcdDwvUG9wb3Zlcj5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIFZIIGRpYWxvZyBmb3IgYSBnaXZlbiBwcm9wZXJ0eS5cblx0ICogQHBhcmFtIHByb3BlcnR5XG5cdCAqIEByZXR1cm5zIEEgZGlhbG9nIGlmIHRoZSBwcm9wZXJ0eSBoYXMgYSBWSCwgdW5kZWZpbmVkIG90aGVyd2lzZVxuXHQgKi9cblx0cHJpdmF0ZSBnZXRGaWVsZFZIRGlhbG9nKHByb3BlcnR5OiBQcm9wZXJ0eSk6IFZIRGlhbG9nIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAocHJvcGVydHkuYW5ub3RhdGlvbnMuQ29tbW9uPy5WYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXM/LnZhbHVlT2YoKSAhPT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIDxWSERpYWxvZyAvPjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgVkggZm9yIGEgZ2l2ZW4gZmllbGQuXG5cdCAqIEBwYXJhbSBmaWVsZE5hbWVcblx0ICogQHBhcmFtIHByb3BlcnR5XG5cdCAqIEBwYXJhbSBwcm9wZXJ0eU9iamVjdFBhdGhcblx0ICogQHJldHVybnMgVGhlIFZhbHVlSGVscCBjb250cm9sIGlmIHRoZSBwcm9wZXJ0eSBoYXMgYSBWSCwgdW5kZWZpbmVkIG90aGVyd2lzZVxuXHQgKi9cblx0cHJpdmF0ZSBnZXRGaWVsZFZhbHVlSGVscChcblx0XHRmaWVsZE5hbWU6IHN0cmluZyxcblx0XHRwcm9wZXJ0eTogUHJvcGVydHksXG5cdFx0cHJvcGVydHlPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPFByb3BlcnR5PlxuXHQpOiBWYWx1ZUhlbHAgfCB1bmRlZmluZWQge1xuXHRcdGlmICghaGFzVmFsdWVIZWxwKHByb3BlcnR5KSkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHRjb25zdCB2aERlbGVnYXRlID0ge1xuXHRcdFx0bmFtZTogXCJzYXAvZmUvbWFjcm9zL3ZhbHVlaGVscC9WYWx1ZUhlbHBEZWxlZ2F0ZVwiLFxuXHRcdFx0cGF5bG9hZDoge1xuXHRcdFx0XHRwcm9wZXJ0eVBhdGg6IGdldFRhcmdldE9iamVjdFBhdGgocHJvcGVydHlPYmplY3RQYXRoKSxcblx0XHRcdFx0cXVhbGlmaWVyczoge30sXG5cdFx0XHRcdHZhbHVlSGVscFF1YWxpZmllcjogXCJcIlxuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PFZhbHVlSGVscFxuXHRcdFx0XHRpZD17Z2VuZXJhdGUoW2ZpZWxkTmFtZSwgXCJWSFwiXSl9XG5cdFx0XHRcdGRlbGVnYXRlPXt2aERlbGVnYXRlfVxuXHRcdFx0XHR2YWxpZGF0ZUlucHV0PXtyZXF1aXJlc1ZhbGlkYXRpb24ocHJvcGVydHkpfVxuXHRcdFx0XHR0eXBlYWhlYWQ9e3RoaXMuZ2V0RmllbGRWSFR5cGVBaGVhZChmaWVsZE5hbWUsIHByb3BlcnR5LCBwcm9wZXJ0eU9iamVjdFBhdGgpfVxuXHRcdFx0XHRkaWFsb2c9e3RoaXMuZ2V0RmllbGRWSERpYWxvZyhwcm9wZXJ0eSl9XG5cdFx0XHQ+PC9WYWx1ZUhlbHA+XG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBGb3JtIGVsZW1lbnQgKGxhYmVsICsgZmllbGQpIGZvciBhIGdpdmVuIHByb3BlcnR5IG5hbWUuXG5cdCAqIEBwYXJhbSBmaWVsZE5hbWVcblx0ICogQHBhcmFtIGxpc3RPYmplY3RQYXRoXG5cdCAqIEBwYXJhbSBsaXN0TWV0YVBhdGhcblx0ICogQHJldHVybnMgVGhlIGVsZW1lbnRcblx0ICovXG5cdHByaXZhdGUgY3JlYXRlRm9ybUVsZW1lbnQoZmllbGROYW1lOiBzdHJpbmcsIGxpc3RPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPEVudGl0eVNldD4sIGxpc3RNZXRhUGF0aDogc3RyaW5nKTogdW5rbm93biB7XG5cdFx0Y29uc3QgcHJvcGVydHlPYmplY3RQYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGg8UHJvcGVydHk+KGxpc3RPYmplY3RQYXRoLCBmaWVsZE5hbWUpO1xuXHRcdGNvbnN0IHByb3BlcnR5ID0gcHJvcGVydHlPYmplY3RQYXRoLnRhcmdldE9iamVjdCBhcyBQcm9wZXJ0eTtcblx0XHRjb25zdCBwcm9wZXJ0eU1ldGFDb250ZXh0ID0gdGhpcy5tZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoYCR7bGlzdE1ldGFQYXRofS8ke2ZpZWxkTmFtZX1gKSE7XG5cdFx0Y29uc3QgcHJvcGVydHlQbGFjZUhvbGRlck1ldGFDb250ZXh0ID0gdGhpcy5tZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXG5cdFx0XHRgJHtsaXN0TWV0YVBhdGh9LyR7ZmllbGROYW1lfUBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5QbGFjZWhvbGRlcmBcblx0XHQpITtcblxuXHRcdGNvbnN0IGZpZWxkID0gKFxuXHRcdFx0PE1EQ0ZpZWxkXG5cdFx0XHRcdGRlbGVnYXRlPXt7IG5hbWU6IFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZEJhc2VEZWxlZ2F0ZVwiLCBwYXlsb2FkOiB7IHJldHJpZXZlVGV4dEZyb21WYWx1ZUxpc3Q6IHRydWUgfSB9fVxuXHRcdFx0XHRpZD17Z2VuZXJhdGUoW1wiQ3JlYXRlRGlhbG9nXCIsIGxpc3RPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGUubmFtZSwgZmllbGROYW1lXSl9XG5cdFx0XHRcdHZhbHVlPXtBbm5vdGF0aW9uSGVscGVyLmZvcm1hdChwcm9wZXJ0eU1ldGFDb250ZXh0LmdldE9iamVjdCgpLCB7IGNvbnRleHQ6IHByb3BlcnR5TWV0YUNvbnRleHQgfSl9XG5cdFx0XHRcdHBsYWNlaG9sZGVyPXtBbm5vdGF0aW9uSGVscGVyLnZhbHVlKHByb3BlcnR5UGxhY2VIb2xkZXJNZXRhQ29udGV4dC5nZXRPYmplY3QoKSwge1xuXHRcdFx0XHRcdGNvbnRleHQ6IHByb3BlcnR5UGxhY2VIb2xkZXJNZXRhQ29udGV4dFxuXHRcdFx0XHR9KX1cblx0XHRcdFx0d2lkdGg9XCIxMDAlXCJcblx0XHRcdFx0cmVxdWlyZWQ9e2NvbXBpbGVFeHByZXNzaW9uKG9yKGlzUmVxdWlyZWRFeHByZXNzaW9uKHByb3BlcnR5KSwgdGhpcy5yZXF1aXJlZEZpZWxkTmFtZXMuaW5jbHVkZXMoZmllbGROYW1lKSkpfVxuXHRcdFx0XHRkaXNwbGF5PXtGaWVsZEhlbHBlci5nZXRBUERpYWxvZ0Rpc3BsYXlGb3JtYXQocHJvcGVydHlNZXRhQ29udGV4dC5nZXRPYmplY3QoKSwgeyBjb250ZXh0OiBwcm9wZXJ0eU1ldGFDb250ZXh0IH0pfVxuXHRcdFx0XHR2YWx1ZUhlbHA9e2hhc1ZhbHVlSGVscChwcm9wZXJ0eSkgPyBnZW5lcmF0ZShbZmllbGROYW1lLCBcIlZIXCJdKSA6IHVuZGVmaW5lZH1cblx0XHRcdFx0ZWRpdE1vZGU9e3RoaXMuZ2V0RWRpdE1vZGUocHJvcGVydHkpfVxuXHRcdFx0XHRkZXBlbmRlbnRzPXt0aGlzLmdldEZpZWxkVmFsdWVIZWxwKGZpZWxkTmFtZSwgcHJvcGVydHksIHByb3BlcnR5T2JqZWN0UGF0aCl9XG5cdFx0XHRcdGN1c3RvbURhdGE9ezxDdXN0b21EYXRhIGtleT1cImZpZWxkTmFtZVwiIHZhbHVlPXtmaWVsZE5hbWV9IC8+fVxuXHRcdFx0XHRsaXZlQ2hhbmdlPXt0aGlzLmhhbmRsZUxpdmVDaGFuZ2UuYmluZCh0aGlzKX1cblx0XHRcdFx0Y2hhbmdlPXt0aGlzLmhhbmRsZUNoYW5nZS5iaW5kKHRoaXMpfVxuXHRcdFx0Lz5cblx0XHQpO1xuXG5cdFx0dGhpcy5hY3Rpb25QYXJhbWV0ZXJJbmZvcy5wdXNoKHtcblx0XHRcdGlzTXVsdGlWYWx1ZTogZmFsc2UsXG5cdFx0XHRmaWVsZDogZmllbGQsXG5cdFx0XHR2YWx1ZTogZmllbGQuZ2V0VmFsdWUoKSxcblx0XHRcdHZhbGlkYXRpb25Qcm9taXNlOiB1bmRlZmluZWQsXG5cdFx0XHRoYXNFcnJvcjogZmFsc2UsXG5cdFx0XHRwcm9wZXJ0eVBhdGg6IGZpZWxkTmFtZVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdDw+XG5cdFx0XHRcdDxMYWJlbCB0ZXh0PXtwcm9wZXJ0eS5hbm5vdGF0aW9ucy5Db21tb24/LkxhYmVsfSAvPlxuXHRcdFx0XHR7ZmllbGR9XG5cdFx0XHQ8Lz5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENhbGxiYWNrIHdoZW4gdGhlIGRpYWxvZyBpcyBvcGVuZWQuIFNldHMgdGhlIGZvY3VzIG9uIHRoZSBmaXJzdCBmaWVsZCB3aXRob3V0IG9wZW5pbmcgdGhlIFZIIGRpYWxvZy5cblx0ICovXG5cdHByaXZhdGUgYWZ0ZXJPcGVuKCk6IHZvaWQge1xuXHRcdGNvbnN0IGZpcnN0RmllbGQgPSB0aGlzLmFjdGlvblBhcmFtZXRlckluZm9zWzBdLmZpZWxkO1xuXHRcdGNvbnN0IGZvY3VzSW5mbyA9IGZpcnN0RmllbGQuZ2V0Rm9jdXNJbmZvKCkgYXMgeyB0YXJnZXRJbmZvOiBvYmplY3QgfTtcblx0XHRmb2N1c0luZm8udGFyZ2V0SW5mbyA9IHsgc2lsZW50OiB0cnVlIH07XG5cdFx0Zmlyc3RGaWVsZC5mb2N1cyhmb2N1c0luZm8pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEludGVybmFsIG1ldGhvZCB0byBjcmVhdGUgdGhlIERpYWxvZyBjb250cm9sIGFuZCBpdHMgY29udGVudC5cblx0ICogQHJldHVybnMgVGhlIGRpYWxvZyBjb250cm9sXG5cdCAqL1xuXHRwcml2YXRlIGNyZWF0ZURpYWxvZygpOiBEaWFsb2cge1xuXHRcdGNvbnN0IHJlc291cmNlTW9kZWwgPSBnZXRSZXNvdXJjZU1vZGVsKHRoaXMucGFyZW50Q29udHJvbCA/PyB0aGlzLmFwcENvbXBvbmVudCk7XG5cdFx0Y29uc3QgbWV0YVBhdGggPSB0aGlzLm1ldGFNb2RlbC5nZXRNZXRhUGF0aCh0aGlzLmNvbnRleHRUb1VwZGF0ZS5nZXRQYXRoKCkpO1xuXHRcdGNvbnN0IG1ldGFDb250ZXh0ID0gdGhpcy5tZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQobWV0YVBhdGgpITtcblx0XHRjb25zdCBvYmplY3RQYXRoID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzPEVudGl0eVNldD4obWV0YUNvbnRleHQpO1xuXG5cdFx0dGhpcy5hY3Rpb25QYXJhbWV0ZXJJbmZvcyA9IFtdO1xuXG5cdFx0Y29uc3QgYmVnaW5CdXR0b25MYWJlbCA9IHJlc291cmNlTW9kZWwuZ2V0VGV4dChcblx0XHRcdHRoaXMubW9kZSA9PT0gXCJTdGFuZGFsb25lXCJcblx0XHRcdFx0PyBcIkNfVFJBTlNBQ1RJT05fSEVMUEVSX1NBUEZFX0FDVElPTl9DUkVBVEVfQlVUVE9OX0NSRUFURVwiXG5cdFx0XHRcdDogXCJDX1RSQU5TQUNUSU9OX0hFTFBFUl9TQVBGRV9BQ1RJT05fQ1JFQVRFX0JVVFRPTl9DT05USU5VRVwiXG5cdFx0KTtcblx0XHRjb25zdCBlbmRCdXR0b24gPSAoXG5cdFx0XHQ8QnV0dG9uIHRleHQ9e3Jlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09NTU9OX0FDVElPTl9QQVJBTUVURVJfRElBTE9HX0NBTkNFTFwiKX0gcHJlc3M9e3RoaXMub25DYW5jZWwuYmluZCh0aGlzKX0gLz5cblx0XHQpO1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8RGlhbG9nXG5cdFx0XHRcdGlkPXtnZW5lcmF0ZShbXCJDcmVhdGVEaWFsb2dcIiwgbWV0YVBhdGhdKX1cblx0XHRcdFx0dGl0bGU9e3Jlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfVFJBTlNBQ1RJT05fSEVMUEVSX1NBUEZFX0FDVElPTl9DUkVBVEVcIiwgdW5kZWZpbmVkLCBvYmplY3RQYXRoLnRhcmdldEVudGl0eVNldD8ubmFtZSl9XG5cdFx0XHRcdGFmdGVyT3Blbj17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdHRoaXMuYWZ0ZXJPcGVuKCk7XG5cdFx0XHRcdH19XG5cdFx0XHRcdHJlc2l6YWJsZT17dHJ1ZX1cblx0XHRcdFx0ZHJhZ2dhYmxlPXt0cnVlfVxuXHRcdFx0XHRpbml0aWFsRm9jdXM9e2VuZEJ1dHRvbn0gLy8gVGhlIGluaXRpYWwgZm9jdXMgaXMgc2V0IHByb2dyYW1tYXRpY2FsbHkgaW4gYWZ0ZXJPcGVuLCB0byBhdm9pZCBvcGVuaW5nIHRoZSBWSCBkaWFsb2dcblx0XHRcdD5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRiZWdpbkJ1dHRvbjogPEJ1dHRvbiB0ZXh0PXtiZWdpbkJ1dHRvbkxhYmVsfSBwcmVzcz17dGhpcy5vbk9LLmJpbmQodGhpcyl9IHR5cGU9XCJFbXBoYXNpemVkXCIgLz4sXG5cdFx0XHRcdFx0ZW5kQnV0dG9uOiBlbmRCdXR0b24sXG5cdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0PFNpbXBsZUZvcm0+XG5cdFx0XHRcdFx0XHRcdHt0aGlzLmZpZWxkTmFtZXMubWFwKChuYW1lKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuY3JlYXRlRm9ybUVsZW1lbnQobmFtZSwgb2JqZWN0UGF0aCwgbWV0YVBhdGgpO1xuXHRcdFx0XHRcdFx0XHR9KX1cblx0XHRcdFx0XHRcdDwvU2ltcGxlRm9ybT5cblx0XHRcdFx0XHQpXG5cdFx0XHRcdH19XG5cdFx0XHQ8L0RpYWxvZz5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGVycm9yIHN0YXRlIGluIHRoZSBkaWFsb2cgZmllbGRzIHRoYXQgY29ycmVzcG9uZCB0byBhbiBlcnJvciBpbiB0aGUgZ2l2ZW4gbWVzc2FnZXMuXG5cdCAqIEBwYXJhbSBtZXNzYWdlc1xuXHQgKi9cblx0cHVibGljIGRpc3BsYXlFcnJvck1lc3NhZ2VzKG1lc3NhZ2VzOiBNZXNzYWdlW10pOiB2b2lkIHtcblx0XHQvLyBJdGVyYXRlIG92ZXIgYWxsIG1lc3NhZ2VzIGFuZCBzZXQgdGhlIGVycm9yIHN0YXRlIGZvciB0aGUgY29ycmVzcG9uZGluZyBmaWVsZFxuXHRcdC8vIFdlIGNhbm5vdCBjb21wYXJlIHRoZSBwYXRocyBkaXJlY3RseSwgYXMgdGhlIGNvbnRleHQgaW4gdGhlIGRpYWxvZyBpcyBhIHRlbXBvcmFyeSBvbmUsIGFuZCBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIHRoYXQgaXMgc2F2ZWRcblx0XHQvLyBUaGVyZWZvcmUgd2UgY29tcGFyZSB0aGUgbWV0YXBhdGhzXG5cdFx0Y29uc3QgY29udGV4dE1ldGFQYXRoID0gdGhpcy5tZXRhTW9kZWwuZ2V0TWV0YVBhdGgodGhpcy5jb250ZXh0VG9VcGRhdGUuZ2V0UGF0aCgpKTtcblxuXHRcdGZvciAoY29uc3QgbWVzc2FnZSBvZiBtZXNzYWdlcykge1xuXHRcdFx0Zm9yIChjb25zdCB0YXJnZXQgb2YgbWVzc2FnZS5nZXRUYXJnZXRzKCkpIHtcblx0XHRcdFx0Y29uc3QgdGFyZ2V0TWV0YVBhdGggPSB0aGlzLm1ldGFNb2RlbC5nZXRNZXRhUGF0aCh0YXJnZXQpO1xuXHRcdFx0XHRjb25zdCBwYXJhbWV0ZXJJbmZvID0gdGhpcy5hY3Rpb25QYXJhbWV0ZXJJbmZvcy5maW5kKFxuXHRcdFx0XHRcdChhY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiBgJHtjb250ZXh0TWV0YVBhdGh9LyR7YWN0aW9uUGFyYW1ldGVySW5mby5wcm9wZXJ0eVBhdGh9YCA9PT0gdGFyZ2V0TWV0YVBhdGhcblx0XHRcdFx0KTtcblx0XHRcdFx0aWYgKHBhcmFtZXRlckluZm8pIHtcblx0XHRcdFx0XHRwYXJhbWV0ZXJJbmZvLmhhc0Vycm9yID0gdHJ1ZTtcblx0XHRcdFx0XHRwYXJhbWV0ZXJJbmZvLmZpZWxkLnNldFZhbHVlU3RhdGUobWVzc2FnZS5nZXRUeXBlKCkgfHwgTWVzc2FnZVR5cGUuRXJyb3IpO1xuXHRcdFx0XHRcdHBhcmFtZXRlckluZm8uZmllbGQuc2V0VmFsdWVTdGF0ZVRleHQobWVzc2FnZS5nZXRNZXNzYWdlKCkpO1xuXG5cdFx0XHRcdFx0Y29uc3QgbWVzc2FnZUNvbnRyb2xJRHMgPSBtZXNzYWdlLmdldENvbnRyb2xJZHMoKTtcblx0XHRcdFx0XHRpZiAoIW1lc3NhZ2VDb250cm9sSURzLmluY2x1ZGVzKHBhcmFtZXRlckluZm8uZmllbGQuZ2V0SWQoKSkpIHtcblx0XHRcdFx0XHRcdG1lc3NhZ2VDb250cm9sSURzLnB1c2gocGFyYW1ldGVySW5mby5maWVsZC5nZXRJZCgpKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmVtb3ZlcyB0aGUgZXJyb3IgbWVzc2FnZXMgZm9yIGEgZ2l2ZW4gZmllbGQuXG5cdCAqIEBwYXJhbSBtZXNzYWdlQ29udHJvbElkIFRoZSBJRCBvZiB0aGUgZmllbGRcblx0ICovXG5cdHByaXZhdGUgcmVtb3ZlTWVzc2FnZXNGb3JBY3Rpb25QYXJhbWV0ZXIobWVzc2FnZUNvbnRyb2xJZDogc3RyaW5nKTogdm9pZCB7XG5cdFx0Y29uc3QgYWxsTWVzc2FnZXMgPSBNZXNzYWdpbmcuZ2V0TWVzc2FnZU1vZGVsKCkuZ2V0RGF0YSgpO1xuXHRcdC8vIGFsc28gcmVtb3ZlIG1lc3NhZ2VzIGFzc2lnbmVkIHRvIGlubmVyIGNvbnRyb2xzLCBidXQgYXZvaWQgcmVtb3ZpbmcgbWVzc2FnZXMgZm9yIGRpZmZlcmVudCBwYXJhbWV0ZXJzICh3aXRoIG5hbWUgYmVpbmcgc3Vic3RyaW5nIG9mIGFub3RoZXIgcGFyYW1ldGVyIG5hbWUpXG5cdFx0Y29uc3QgcmVsZXZhbnRNZXNzYWdlcyA9IGFsbE1lc3NhZ2VzLmZpbHRlcigobXNnOiBNZXNzYWdlKSA9PlxuXHRcdFx0bXNnLmdldENvbnRyb2xJZHMoKS5zb21lKChjb250cm9sSWQ6IHN0cmluZykgPT4gY29udHJvbElkLmluY2x1ZGVzKG1lc3NhZ2VDb250cm9sSWQpKVxuXHRcdCk7XG5cdFx0TWVzc2FnaW5nLnJlbW92ZU1lc3NhZ2VzKHJlbGV2YW50TWVzc2FnZXMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENhbGxiYWNrIHdoZW4gdGhlIHVzZXIgaXMgZG9pbmcgc29tZSBsaXZlIGNoYW5nZXMgaW4gYSBmaWVsZC5cblx0ICogQHBhcmFtIGxpdmVDaGFuZ2VFdmVudFxuXHQgKi9cblx0cHJpdmF0ZSBoYW5kbGVMaXZlQ2hhbmdlKGxpdmVDaGFuZ2VFdmVudDogRmllbGRCYXNlJExpdmVDaGFuZ2VFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IGZpZWxkSWQgPSBsaXZlQ2hhbmdlRXZlbnQuZ2V0U291cmNlPE1EQ0ZpZWxkPigpLmdldElkKCk7XG5cdFx0dGhpcy5yZW1vdmVNZXNzYWdlc0ZvckFjdGlvblBhcmFtZXRlcihmaWVsZElkKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsYmFjayB3aGVuIHRoZSB1c2VyIGhhcyBjaGFuZ2VkIGEgZmllbGQgdmFsdWUuXG5cdCAqIEBwYXJhbSBjaGFuZ2VFdmVudFxuXHQgKi9cblx0cHJpdmF0ZSBhc3luYyBoYW5kbGVDaGFuZ2UoY2hhbmdlRXZlbnQ6IEZpZWxkJENoYW5nZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgZmllbGQgPSBjaGFuZ2VFdmVudC5nZXRTb3VyY2U8TURDRmllbGQ+KCk7XG5cblx0XHRjb25zdCBhY3Rpb25QYXJhbWV0ZXJJbmZvID0gdGhpcy5hY3Rpb25QYXJhbWV0ZXJJbmZvcy5maW5kKChhY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiBhY3Rpb25QYXJhbWV0ZXJJbmZvLmZpZWxkID09PSBmaWVsZCk7XG5cdFx0aWYgKGFjdGlvblBhcmFtZXRlckluZm8gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhpcy5yZW1vdmVNZXNzYWdlc0ZvckFjdGlvblBhcmFtZXRlcihmaWVsZC5nZXRJZCgpKTtcblx0XHRcdGFjdGlvblBhcmFtZXRlckluZm8udmFsaWRhdGlvblByb21pc2UgPSBjaGFuZ2VFdmVudC5nZXRQYXJhbWV0ZXIoXCJwcm9taXNlXCIpO1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0YWN0aW9uUGFyYW1ldGVySW5mby52YWx1ZSA9IGF3YWl0IGFjdGlvblBhcmFtZXRlckluZm8udmFsaWRhdGlvblByb21pc2U7XG5cdFx0XHRcdGFjdGlvblBhcmFtZXRlckluZm8uaGFzRXJyb3IgPSBmYWxzZTtcblx0XHRcdFx0YWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5zZXRWYWx1ZVN0YXRlKE1lc3NhZ2VUeXBlLk5vbmUpO1xuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdFx0ZGVsZXRlIGFjdGlvblBhcmFtZXRlckluZm8udmFsdWU7XG5cdFx0XHRcdGFjdGlvblBhcmFtZXRlckluZm8uaGFzRXJyb3IgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsYmFjayB3aGVuIHRoZSB1c2VyIGNsaWNrZWQgJ09LJy5cblx0ICovXG5cdHByaXZhdGUgYXN5bmMgb25PSygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHQvLyBWYWxpZGF0aW9uIG9mIG1hbmRhdG9yeSBhbmQgdmFsdWUgc3RhdGUgZm9yIGFjdGlvbiBwYXJhbWV0ZXJzXG5cdFx0Y29uc3QgcmVzb3VyY2VNb2RlbCA9IGdldFJlc291cmNlTW9kZWwodGhpcy5hcHBDb21wb25lbnQpO1xuXHRcdGlmIChhd2FpdCBBY3Rpb25SdW50aW1lLnZhbGlkYXRlUHJvcGVydGllcyh0aGlzLmFjdGlvblBhcmFtZXRlckluZm9zLCByZXNvdXJjZU1vZGVsKSkge1xuXHRcdFx0dGhpcy5maXJlRXhpdERpYWxvZyh0cnVlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgdXNlIGNsaWNrZWQgJ0NhbmNlbCcuXG5cdCAqL1xuXHRwcml2YXRlIG9uQ2FuY2VsKCk6IHZvaWQge1xuXHRcdHRoaXMuZmlyZUV4aXREaWFsb2coZmFsc2UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEVzY2FwZSBoYW5kbGVyIChjYWxsZWQgd2hlbiB0aGUgdXNlciB0eXBlZCAnRXNjYXBlJyB0byBsZWF2ZSB0aGUgZGlhbG9nKS5cblx0ICogQHBhcmFtIHBcblx0ICogQHBhcmFtIHAucmVzb2x2ZVxuXHQgKiBAcGFyYW0gcC5yZWplY3Rcblx0ICovXG5cdHByaXZhdGUgb25Fc2NhcGUocDogeyByZXNvbHZlOiBGdW5jdGlvbjsgcmVqZWN0OiBGdW5jdGlvbiB9KTogdm9pZCB7XG5cdFx0cC5yZWplY3QoKTsgLy8gRG8gbm90IGNsb3NlIHRoZSBkaWFsb2dcblx0XHR0aGlzLm9uQ2FuY2VsKCk7XG5cdH1cblxuXHQvKipcblx0ICogT3BlbnMgdGhlIGRpYWxvZy5cblx0ICogQHJldHVybnMgVGhlIGludGVybmFsIERpYWxvZyBjb250cm9sXG5cdCAqL1xuXHRvcGVuRGlhbG9nKCk6IERpYWxvZyB7XG5cdFx0aWYgKHRoaXMuZGlhbG9nKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3Qgb3BlbiB0aGUgQ3JlYXRlIGRpYWxvZyB0d2ljZVwiKTtcblx0XHR9XG5cblx0XHR0aGlzLmRpYWxvZyA9IHRoaXMuY3JlYXRlRGlhbG9nKCk7XG5cdFx0dGhpcy5kaWFsb2cuc2V0RXNjYXBlSGFuZGxlcih0aGlzLm9uRXNjYXBlLmJpbmQodGhpcykpO1xuXHRcdHRoaXMucGFyZW50Q29udHJvbD8uYWRkRGVwZW5kZW50KHRoaXMuZGlhbG9nKTtcblx0XHR0aGlzLmRpYWxvZy5zZXRCaW5kaW5nQ29udGV4dCh0aGlzLmNvbnRleHRUb1VwZGF0ZSk7XG5cblx0XHR0aGlzLmRpYWxvZy5vcGVuKCk7XG5cblx0XHRyZXR1cm4gdGhpcy5kaWFsb2c7XG5cdH1cblxuXHQvKipcblx0ICogQ2xvc2VzIGFuZCBkZXN0cm95cyB0aGUgZGlhbG9nLlxuXHQgKi9cblx0Y2xvc2VEaWFsb2coKTogdm9pZCB7XG5cdFx0LyogV2hlbiB0aGUgZGlhbG9nIGlzIGNhbmNlbGxlZCwgbWVzc2FnZXMgbmVlZCB0byBiZSByZW1vdmVkIGluIGNhc2UgdGhlIHNhbWUgYWN0aW9uIHNob3VsZCBiZSBleGVjdXRlZCBhZ2FpbiAqL1xuXHRcdGZvciAoY29uc3QgYWN0aW9uUGFyYW1ldGVySW5mbyBvZiB0aGlzLmFjdGlvblBhcmFtZXRlckluZm9zKSB7XG5cdFx0XHRjb25zdCBmaWVsZElkID0gYWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5nZXRJZCgpO1xuXHRcdFx0dGhpcy5yZW1vdmVNZXNzYWdlc0ZvckFjdGlvblBhcmFtZXRlcihmaWVsZElkKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5kaWFsb2cgJiYgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzLmRpYWxvZykpIHtcblx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMuZGlhbG9nKTsgLy8gVG8gYXZvaWQgYW4gZXJyb3IgaW4gdGhlIGNvbnNvbGVcblx0XHR9XG5cdFx0dGhpcy5kaWFsb2c/LmNsb3NlKCk7XG5cdFx0dGhpcy5kaWFsb2c/LmRlc3Ryb3koKTtcblx0XHR0aGlzLmRpYWxvZyA9IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBEaXNwbGF5cyBvciByZW1vdmVzIGEgYnVzeSBpbmRpY2F0b3Igb24gdGhlIGRpYWxvZy5cblx0ICogQHBhcmFtIGJ1c3lcblx0ICovXG5cdHNldEJ1c3koYnVzeTogYm9vbGVhbik6IHZvaWQge1xuXHRcdGlmICghdGhpcy5kaWFsb2cpIHtcblx0XHRcdHJldHVybjsgLy8gTm90aGluZyB0byBzZXQgYnVzeVxuXHRcdH1cblxuXHRcdGlmIChidXN5KSB7XG5cdFx0XHRCdXN5TG9ja2VyLmxvY2sodGhpcy5kaWFsb2cpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRCdXN5TG9ja2VyLnVubG9jayh0aGlzLmRpYWxvZyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIElzIERpYWxvZyBvcGVuLlxuXHQgKiBAcmV0dXJucyBCb29sZWFuXG5cdCAqL1xuXHRpc09wZW4oKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuZGlhbG9nPy5pc09wZW4oKSA/PyBmYWxzZTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Bd0NNQSxnQ0FBZ0MsSUFBQUMsSUFBQSxHQURyQ0MsY0FBYyxDQUFDLDZDQUE2QyxDQUFDLEVBQUFDLEtBQUEsR0FFNURDLEtBQUssQ0FBQyxDQUFDLEVBQUFILElBQUEsQ0FBQUksTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxjQUFBO0lBQUEsU0FBQVAsaUNBQUE7TUFBQSxJQUFBUSxLQUFBO01BQUEsU0FBQUMsSUFBQSxHQUFB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
|
|
417
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250ZXh0VXBkYXRlRGlhbG9nRXZlbnRQcm92aWRlciIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwiZXZlbnQiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0V2ZW50UHJvdmlkZXIiLCJfdGhpcyIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfaW5oZXJpdHNMb29zZSIsIkV2ZW50UHJvdmlkZXIiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwicHJvdG90eXBlIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiLCJDcmVhdGVEaWFsb2ciLCJjb250ZXh0VG9VcGRhdGUiLCJmaWVsZE5hbWVzIiwiYXBwQ29tcG9uZW50IiwibW9kZSIsInBhcmVudENvbnRyb2wiLCJhY3Rpb25QYXJhbWV0ZXJJbmZvcyIsImV2ZW50UHJvdmlkZXIiLCJtb2RlbCIsImdldE1vZGVsIiwibWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwibWV0YVBhdGgiLCJnZXRNZXRhUGF0aCIsImdldFBhdGgiLCJyZXF1aXJlZEZpZWxkTmFtZXMiLCJnZXRSZXF1aXJlZFByb3BlcnRpZXNGcm9tSW5zZXJ0UmVzdHJpY3Rpb25zIiwiX2V4cG9ydHMiLCJfcHJvdG8iLCJhdHRhY2hFeGl0RGlhbG9nIiwib0RhdGEiLCJmbkZ1bmN0aW9uIiwib0xpc3RlbmVyIiwiYXR0YWNoRXZlbnQiLCJmaXJlRXhpdERpYWxvZyIsImFjY2VwdCIsImZpcmVFdmVudCIsImdldEVkaXRNb2RlIiwicHJvcGVydHkiLCJhbm5vdGF0aW9ucyIsIkNvbW1vbiIsIkZpZWxkQ29udHJvbCIsImZpZWxkQ29udHJvbCIsIiRFbnVtTWVtYmVyIiwiZ2V0RmllbGRWSFR5cGVBaGVhZCIsImZpZWxkTmFtZSIsInByb3BlcnR5T2JqZWN0UGF0aCIsIl9qc3giLCJQb3BvdmVyIiwiY2hpbGRyZW4iLCJNVGFibGUiLCJpZCIsImdlbmVyYXRlIiwiY2FzZVNlbnNpdGl2ZSIsInVzZUNhc2VTZW5zaXRpdmVGaWx0ZXJSZXF1ZXN0cyIsImNvbnZlcnRlZFR5cGVzIiwiZW50aXR5Q29udGFpbmVyIiwiQ2FwYWJpbGl0aWVzIiwiRmlsdGVyRnVuY3Rpb25zIiwidXNlQXNWYWx1ZUhlbHAiLCJWYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXMiLCJnZXRGaWVsZFZIRGlhbG9nIiwidmFsdWVPZiIsIlZIRGlhbG9nIiwidW5kZWZpbmVkIiwiZ2V0RmllbGRWYWx1ZUhlbHAiLCJoYXNWYWx1ZUhlbHAiLCJ2aERlbGVnYXRlIiwibmFtZSIsInBheWxvYWQiLCJwcm9wZXJ0eVBhdGgiLCJnZXRUYXJnZXRPYmplY3RQYXRoIiwicXVhbGlmaWVycyIsInZhbHVlSGVscFF1YWxpZmllciIsIlZhbHVlSGVscCIsImRlbGVnYXRlIiwidmFsaWRhdGVJbnB1dCIsInJlcXVpcmVzVmFsaWRhdGlvbiIsInR5cGVhaGVhZCIsImRpYWxvZyIsImNyZWF0ZUZvcm1FbGVtZW50IiwibGlzdE9iamVjdFBhdGgiLCJsaXN0TWV0YVBhdGgiLCJlbmhhbmNlRGF0YU1vZGVsUGF0aCIsInRhcmdldE9iamVjdCIsInByb3BlcnR5TWV0YUNvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsInByb3BlcnR5UGxhY2VIb2xkZXJNZXRhQ29udGV4dCIsImZpZWxkIiwiTURDRmllbGQiLCJyZXRyaWV2ZVRleHRGcm9tVmFsdWVMaXN0IiwidGFyZ2V0RW50aXR5VHlwZSIsInZhbHVlIiwiQW5ub3RhdGlvbkhlbHBlciIsImZvcm1hdCIsImdldE9iamVjdCIsImNvbnRleHQiLCJwbGFjZWhvbGRlciIsIndpZHRoIiwicmVxdWlyZWQiLCJjb21waWxlRXhwcmVzc2lvbiIsIm9yIiwiaXNSZXF1aXJlZEV4cHJlc3Npb24iLCJpbmNsdWRlcyIsImRpc3BsYXkiLCJGaWVsZEhlbHBlciIsImdldEFQRGlhbG9nRGlzcGxheUZvcm1hdCIsInZhbHVlSGVscCIsImVkaXRNb2RlIiwiZGVwZW5kZW50cyIsImN1c3RvbURhdGEiLCJDdXN0b21EYXRhIiwibGl2ZUNoYW5nZSIsImhhbmRsZUxpdmVDaGFuZ2UiLCJiaW5kIiwiY2hhbmdlIiwiaGFuZGxlQ2hhbmdlIiwicHVzaCIsImlzTXVsdGlWYWx1ZSIsImdldFZhbHVlIiwidmFsaWRhdGlvblByb21pc2UiLCJoYXNFcnJvciIsIl9qc3hzIiwiX0ZyYWdtZW50IiwiTGFiZWwiLCJ0ZXh0IiwiYWZ0ZXJPcGVuIiwiZmlyc3RGaWVsZCIsImZvY3VzSW5mbyIsImdldEZvY3VzSW5mbyIsInRhcmdldEluZm8iLCJzaWxlbnQiLCJmb2N1cyIsImNyZWF0ZURpYWxvZyIsInJlc291cmNlTW9kZWwiLCJnZXRSZXNvdXJjZU1vZGVsIiwibWV0YUNvbnRleHQiLCJvYmplY3RQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwiYmVnaW5CdXR0b25MYWJlbCIsImdldFRleHQiLCJlbmRCdXR0b24iLCJCdXR0b24iLCJwcmVzcyIsIm9uQ2FuY2VsIiwiRGlhbG9nIiwidGl0bGUiLCJ0YXJnZXRFbnRpdHlTZXQiLCJyZXNpemFibGUiLCJkcmFnZ2FibGUiLCJpbml0aWFsRm9jdXMiLCJiZWdpbkJ1dHRvbiIsIm9uT0siLCJ0eXBlIiwiY29udGVudCIsIlNpbXBsZUZvcm0iLCJtYXAiLCJkaXNwbGF5RXJyb3JNZXNzYWdlcyIsIm1lc3NhZ2VzIiwiY29udGV4dE1ldGFQYXRoIiwibWVzc2FnZSIsInRhcmdldCIsImdldFRhcmdldHMiLCJ0YXJnZXRNZXRhUGF0aCIsInBhcmFtZXRlckluZm8iLCJmaW5kIiwiYWN0aW9uUGFyYW1ldGVySW5mbyIsInNldFZhbHVlU3RhdGUiLCJnZXRUeXBlIiwiTWVzc2FnZVR5cGUiLCJFcnJvciIsInNldFZhbHVlU3RhdGVUZXh0IiwiZ2V0TWVzc2FnZSIsIm1lc3NhZ2VDb250cm9sSURzIiwiZ2V0Q29udHJvbElkcyIsImdldElkIiwicmVtb3ZlTWVzc2FnZXNGb3JBY3Rpb25QYXJhbWV0ZXIiLCJtZXNzYWdlQ29udHJvbElkIiwiYWxsTWVzc2FnZXMiLCJNZXNzYWdpbmciLCJnZXRNZXNzYWdlTW9kZWwiLCJnZXREYXRhIiwicmVsZXZhbnRNZXNzYWdlcyIsImZpbHRlciIsIm1zZyIsInNvbWUiLCJjb250cm9sSWQiLCJyZW1vdmVNZXNzYWdlcyIsImxpdmVDaGFuZ2VFdmVudCIsImZpZWxkSWQiLCJnZXRTb3VyY2UiLCJjaGFuZ2VFdmVudCIsImdldFBhcmFtZXRlciIsIk5vbmUiLCJlcnJvciIsIkFjdGlvblJ1bnRpbWUiLCJ2YWxpZGF0ZVByb3BlcnRpZXMiLCJvbkVzY2FwZSIsInAiLCJyZWplY3QiLCJvcGVuRGlhbG9nIiwic2V0RXNjYXBlSGFuZGxlciIsInNldEJpbmRpbmdDb250ZXh0IiwiYWRkRGVwZW5kZW50Iiwib3BlbiIsImNsb3NlRGlhbG9nIiwiQnVzeUxvY2tlciIsImlzTG9ja2VkIiwidW5sb2NrIiwiY2xvc2UiLCJkZXN0cm95Iiwic2V0QnVzeSIsImJ1c3kiLCJsb2NrIiwiaXNPcGVuIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDcmVhdGVEaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5U2V0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBjb21waWxlRXhwcmVzc2lvbiwgb3IgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBldmVudCB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgQWN0aW9uUGFyYW1ldGVySW5mbyB9IGZyb20gXCJzYXAvZmUvY29yZS9BY3Rpb25SdW50aW1lXCI7XG5pbXBvcnQgQWN0aW9uUnVudGltZSBmcm9tIFwic2FwL2ZlL2NvcmUvQWN0aW9uUnVudGltZVwiO1xuaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgU3RhbmRhcmREaWFsb2cgfSBmcm9tIFwic2FwL2ZlL2NvcmUvVUlQcm92aWRlclwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0J1c3lMb2NrZXJcIjtcbmltcG9ydCB7IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgZ2V0UmVxdWlyZWRQcm9wZXJ0aWVzRnJvbUluc2VydFJlc3RyaWN0aW9ucyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01ldGFNb2RlbEZ1bmN0aW9uXCI7XG5pbXBvcnQgeyBnZXRSZXNvdXJjZU1vZGVsIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvUmVzb3VyY2VNb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHsgZW5oYW5jZURhdGFNb2RlbFBhdGgsIGdldFRhcmdldE9iamVjdFBhdGgsIHR5cGUgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGlzUmVxdWlyZWRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRmllbGRDb250cm9sSGVscGVyXCI7XG5pbXBvcnQgeyBoYXNWYWx1ZUhlbHAgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IEZpZWxkSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkSGVscGVyXCI7XG5pbXBvcnQgeyByZXF1aXJlc1ZhbGlkYXRpb24sIHVzZUNhc2VTZW5zaXRpdmVGaWx0ZXJSZXF1ZXN0cyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL3ZhbHVlaGVscC9WYWx1ZUhlbHBUZW1wbGF0aW5nXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBEaWFsb2cgZnJvbSBcInNhcC9tL0RpYWxvZ1wiO1xuaW1wb3J0IExhYmVsIGZyb20gXCJzYXAvbS9MYWJlbFwiO1xuaW1wb3J0IEV2ZW50UHJvdmlkZXIgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50UHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9DdXN0b21EYXRhXCI7XG5pbXBvcnQgTWVzc2FnaW5nIGZyb20gXCJzYXAvdWkvY29yZS9NZXNzYWdpbmdcIjtcbmltcG9ydCB0eXBlIE1lc3NhZ2UgZnJvbSBcInNhcC91aS9jb3JlL21lc3NhZ2UvTWVzc2FnZVwiO1xuaW1wb3J0IE1lc3NhZ2VUeXBlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VUeXBlXCI7XG5pbXBvcnQgU2ltcGxlRm9ybSBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL1NpbXBsZUZvcm1cIjtcbmltcG9ydCBNRENGaWVsZCwgeyB0eXBlIEZpZWxkJENoYW5nZUV2ZW50IH0gZnJvbSBcInNhcC91aS9tZGMvRmllbGRcIjtcbmltcG9ydCBWYWx1ZUhlbHAgZnJvbSBcInNhcC91aS9tZGMvVmFsdWVIZWxwXCI7XG5pbXBvcnQgeyB0eXBlIEZpZWxkQmFzZSRMaXZlQ2hhbmdlRXZlbnQgfSBmcm9tIFwic2FwL3VpL21kYy9maWVsZC9GaWVsZEJhc2VcIjtcbmltcG9ydCBWSERpYWxvZyBmcm9tIFwic2FwL3VpL21kYy92YWx1ZWhlbHAvRGlhbG9nXCI7XG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwic2FwL3VpL21kYy92YWx1ZWhlbHAvUG9wb3ZlclwiO1xuaW1wb3J0IE1UYWJsZSBmcm9tIFwic2FwL3VpL21kYy92YWx1ZWhlbHAvY29udGVudC9NVGFibGVcIjtcbmltcG9ydCBBbm5vdGF0aW9uSGVscGVyIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQW5ub3RhdGlvbkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgT0RhdGFWNENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Sb3V0aW5nU2VydmljZUV2ZW50aW5nXCIpXG5jbGFzcyBDb250ZXh0VXBkYXRlRGlhbG9nRXZlbnRQcm92aWRlciBleHRlbmRzIEV2ZW50UHJvdmlkZXIge1xuXHRAZXZlbnQoKVxuXHRleGl0RGlhbG9nITogRnVuY3Rpb247XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENyZWF0ZURpYWxvZyBpbXBsZW1lbnRzIFN0YW5kYXJkRGlhbG9nIHtcblx0cHJpdmF0ZSBkaWFsb2c/OiBEaWFsb2c7XG5cblx0cHJpdmF0ZSBtZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsO1xuXG5cdHByaXZhdGUgcmVxdWlyZWRGaWVsZE5hbWVzOiBzdHJpbmdbXTtcblxuXHRwcml2YXRlIGFjdGlvblBhcmFtZXRlckluZm9zOiBBY3Rpb25QYXJhbWV0ZXJJbmZvW10gPSBbXTtcblxuXHRwcml2YXRlIGV2ZW50UHJvdmlkZXIgPSBuZXcgQ29udGV4dFVwZGF0ZURpYWxvZ0V2ZW50UHJvdmlkZXIoKTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIGNvbnRleHRUb1VwZGF0ZTogT0RhdGFWNENvbnRleHQsXG5cdFx0cHJpdmF0ZSBmaWVsZE5hbWVzOiBzdHJpbmdbXSxcblx0XHRwcml2YXRlIGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LFxuXHRcdHByaXZhdGUgbW9kZTogXCJTdGFuZGFsb25lXCIgfCBcIldpdGhOYXZpZ2F0aW9uXCIsXG5cdFx0cHJpdmF0ZSBwYXJlbnRDb250cm9sPzogQ29udHJvbFxuXHQpIHtcblx0XHRjb25zdCBtb2RlbDogT0RhdGFNb2RlbCA9IGNvbnRleHRUb1VwZGF0ZS5nZXRNb2RlbCgpO1xuXHRcdHRoaXMubWV0YU1vZGVsID0gbW9kZWwuZ2V0TWV0YU1vZGVsKCk7XG5cblx0XHRjb25zdCBtZXRhUGF0aCA9IHRoaXMubWV0YU1vZGVsLmdldE1ldGFQYXRoKGNvbnRleHRUb1VwZGF0ZS5nZXRQYXRoKCkpO1xuXHRcdHRoaXMucmVxdWlyZWRGaWVsZE5hbWVzID0gZ2V0UmVxdWlyZWRQcm9wZXJ0aWVzRnJvbUluc2VydFJlc3RyaWN0aW9ucyhtZXRhUGF0aCwgdGhpcy5tZXRhTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEF0dGFjaGVzIGFuIGV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xvc2VzIHRoZSBkaWFsb2cgKGVpdGhlciB3aXRoIE9LIG9yIENhbmNlbCkuXG5cdCAqXG5cdCAqIFRoZSBldmVudCBoYXMgYW4gJ2FjY2VwdCcgcGFyYW1ldGVyIHRoYXQgaXMgdHJ1ZSAocmVzcC4gZmFsc2UpIGlmIHRoZSB1c2VyIGNsaWNrZWQgb24gT0sgKHJlc3AuIENhbmNlbCkuXG5cdCAqIEBwYXJhbSBvRGF0YSBQYXlsb2FkIG9iamVjdCB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBldmVudCBoYW5kbGVyIGFsb25nIHdpdGggdGhlIGV2ZW50IG9iamVjdCB3aGVuIGZpcmluZyB0aGUgZXZlbnRcblx0ICogQHBhcmFtIGZuRnVuY3Rpb24gVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBldmVudCBvY2N1cnNcblx0ICogQHBhcmFtIG9MaXN0ZW5lciBDb250ZXh0IG9iamVjdCB0byBjYWxsIHRoZSBldmVudCBoYW5kbGVyIHdpdGhcblx0ICovXG5cdGF0dGFjaEV4aXREaWFsb2cob0RhdGE6IG9iamVjdCwgZm5GdW5jdGlvbjogRnVuY3Rpb24sIG9MaXN0ZW5lcj86IG9iamVjdCk6IHZvaWQge1xuXHRcdHRoaXMuZXZlbnRQcm92aWRlci5hdHRhY2hFdmVudChcImV4aXREaWFsb2dcIiwgb0RhdGEsIGZuRnVuY3Rpb24sIG9MaXN0ZW5lcik7XG5cdH1cblxuXHRwcml2YXRlIGZpcmVFeGl0RGlhbG9nKGFjY2VwdDogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMuZXZlbnRQcm92aWRlci5maXJlRXZlbnQoXCJleGl0RGlhbG9nXCIsIHsgYWNjZXB0IH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGVkaXRNb2RlIGZvciBhIHByb3BlcnR5LlxuXHQgKiBAcGFyYW0gcHJvcGVydHlcblx0ICogQHJldHVybnMgRGlzcGxheSBvciBFZGl0YWJsZVxuXHQgKi9cblx0cHJpdmF0ZSBnZXRFZGl0TW9kZShwcm9wZXJ0eTogUHJvcGVydHkpOiBzdHJpbmcge1xuXHRcdGlmIChwcm9wZXJ0eS5hbm5vdGF0aW9ucy5Db21tb24/LkZpZWxkQ29udHJvbCkge1xuXHRcdFx0Y29uc3QgZmllbGRDb250cm9sID0gcHJvcGVydHkuYW5ub3RhdGlvbnMuQ29tbW9uLkZpZWxkQ29udHJvbCBhcyB1bmtub3duIGFzIHsgJEVudW1NZW1iZXI/OiBzdHJpbmcgfTtcblx0XHRcdHJldHVybiBmaWVsZENvbnRyb2wuJEVudW1NZW1iZXIgPT09IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkZpZWxkQ29udHJvbFR5cGUvUmVhZE9ubHlcIiA/IFwiRGlzcGxheVwiIDogXCJFZGl0YWJsZVwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gXCJFZGl0YWJsZVwiO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBwb3BvdmVyIGZvciB0aGUgVkggdHlwZWFoZWFkLlxuXHQgKiBAcGFyYW0gZmllbGROYW1lXG5cdCAqIEBwYXJhbSBwcm9wZXJ0eVxuXHQgKiBAcGFyYW0gcHJvcGVydHlPYmplY3RQYXRoXG5cdCAqIEByZXR1cm5zIFRoZSBwb3BvdmVyXG5cdCAqL1xuXHRwcml2YXRlIGdldEZpZWxkVkhUeXBlQWhlYWQoZmllbGROYW1lOiBzdHJpbmcsIHByb3BlcnR5OiBQcm9wZXJ0eSwgcHJvcGVydHlPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPFByb3BlcnR5Pik6IFBvcG92ZXIge1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8UG9wb3Zlcj5cblx0XHRcdFx0PE1UYWJsZVxuXHRcdFx0XHRcdGlkPXtnZW5lcmF0ZShbZmllbGROYW1lLCBcIlZIXCIsIFwiUG9wb3ZlclwiLCBcInF1YWxpZmllclwiXSl9XG5cdFx0XHRcdFx0Y2FzZVNlbnNpdGl2ZT17dXNlQ2FzZVNlbnNpdGl2ZUZpbHRlclJlcXVlc3RzKFxuXHRcdFx0XHRcdFx0cHJvcGVydHlPYmplY3RQYXRoLFxuXHRcdFx0XHRcdFx0KHByb3BlcnR5T2JqZWN0UGF0aC5jb252ZXJ0ZWRUeXBlcy5lbnRpdHlDb250YWluZXIuYW5ub3RhdGlvbnMuQ2FwYWJpbGl0aWVzXG5cdFx0XHRcdFx0XHRcdD8uRmlsdGVyRnVuY3Rpb25zIGFzIHVua25vd24gYXMgc3RyaW5nW10pID8/IFtdXG5cdFx0XHRcdFx0KX1cblx0XHRcdFx0XHR1c2VBc1ZhbHVlSGVscD17ISFwcm9wZXJ0eS5hbm5vdGF0aW9ucy5Db21tb24/LlZhbHVlTGlzdFdpdGhGaXhlZFZhbHVlc31cblx0XHRcdFx0Lz5cblx0XHRcdDwvUG9wb3Zlcj5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIFZIIGRpYWxvZyBmb3IgYSBnaXZlbiBwcm9wZXJ0eS5cblx0ICogQHBhcmFtIHByb3BlcnR5XG5cdCAqIEByZXR1cm5zIEEgZGlhbG9nIGlmIHRoZSBwcm9wZXJ0eSBoYXMgYSBWSCwgdW5kZWZpbmVkIG90aGVyd2lzZVxuXHQgKi9cblx0cHJpdmF0ZSBnZXRGaWVsZFZIRGlhbG9nKHByb3BlcnR5OiBQcm9wZXJ0eSk6IFZIRGlhbG9nIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAocHJvcGVydHkuYW5ub3RhdGlvbnMuQ29tbW9uPy5WYWx1ZUxpc3RXaXRoRml4ZWRWYWx1ZXM/LnZhbHVlT2YoKSAhPT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIDxWSERpYWxvZyAvPjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgVkggZm9yIGEgZ2l2ZW4gZmllbGQuXG5cdCAqIEBwYXJhbSBmaWVsZE5hbWVcblx0ICogQHBhcmFtIHByb3BlcnR5XG5cdCAqIEBwYXJhbSBwcm9wZXJ0eU9iamVjdFBhdGhcblx0ICogQHJldHVybnMgVGhlIFZhbHVlSGVscCBjb250cm9sIGlmIHRoZSBwcm9wZXJ0eSBoYXMgYSBWSCwgdW5kZWZpbmVkIG90aGVyd2lzZVxuXHQgKi9cblx0cHJpdmF0ZSBnZXRGaWVsZFZhbHVlSGVscChcblx0XHRmaWVsZE5hbWU6IHN0cmluZyxcblx0XHRwcm9wZXJ0eTogUHJvcGVydHksXG5cdFx0cHJvcGVydHlPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPFByb3BlcnR5PlxuXHQpOiBWYWx1ZUhlbHAgfCB1bmRlZmluZWQge1xuXHRcdGlmICghaGFzVmFsdWVIZWxwKHByb3BlcnR5KSkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHRjb25zdCB2aERlbGVnYXRlID0ge1xuXHRcdFx0bmFtZTogXCJzYXAvZmUvbWFjcm9zL3ZhbHVlaGVscC9WYWx1ZUhlbHBEZWxlZ2F0ZVwiLFxuXHRcdFx0cGF5bG9hZDoge1xuXHRcdFx0XHRwcm9wZXJ0eVBhdGg6IGdldFRhcmdldE9iamVjdFBhdGgocHJvcGVydHlPYmplY3RQYXRoKSxcblx0XHRcdFx0cXVhbGlmaWVyczoge30sXG5cdFx0XHRcdHZhbHVlSGVscFF1YWxpZmllcjogXCJcIlxuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PFZhbHVlSGVscFxuXHRcdFx0XHRpZD17Z2VuZXJhdGUoW2ZpZWxkTmFtZSwgXCJWSFwiXSl9XG5cdFx0XHRcdGRlbGVnYXRlPXt2aERlbGVnYXRlfVxuXHRcdFx0XHR2YWxpZGF0ZUlucHV0PXtyZXF1aXJlc1ZhbGlkYXRpb24ocHJvcGVydHkpfVxuXHRcdFx0XHR0eXBlYWhlYWQ9e3RoaXMuZ2V0RmllbGRWSFR5cGVBaGVhZChmaWVsZE5hbWUsIHByb3BlcnR5LCBwcm9wZXJ0eU9iamVjdFBhdGgpfVxuXHRcdFx0XHRkaWFsb2c9e3RoaXMuZ2V0RmllbGRWSERpYWxvZyhwcm9wZXJ0eSl9XG5cdFx0XHQ+PC9WYWx1ZUhlbHA+XG5cdFx0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBGb3JtIGVsZW1lbnQgKGxhYmVsICsgZmllbGQpIGZvciBhIGdpdmVuIHByb3BlcnR5IG5hbWUuXG5cdCAqIEBwYXJhbSBmaWVsZE5hbWVcblx0ICogQHBhcmFtIGxpc3RPYmplY3RQYXRoXG5cdCAqIEBwYXJhbSBsaXN0TWV0YVBhdGhcblx0ICogQHJldHVybnMgVGhlIGVsZW1lbnRcblx0ICovXG5cdHByaXZhdGUgY3JlYXRlRm9ybUVsZW1lbnQoZmllbGROYW1lOiBzdHJpbmcsIGxpc3RPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoPEVudGl0eVNldD4sIGxpc3RNZXRhUGF0aDogc3RyaW5nKTogdW5rbm93biB7XG5cdFx0Y29uc3QgcHJvcGVydHlPYmplY3RQYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGg8UHJvcGVydHk+KGxpc3RPYmplY3RQYXRoLCBmaWVsZE5hbWUpO1xuXHRcdGNvbnN0IHByb3BlcnR5ID0gcHJvcGVydHlPYmplY3RQYXRoLnRhcmdldE9iamVjdCBhcyBQcm9wZXJ0eTtcblx0XHRjb25zdCBwcm9wZXJ0eU1ldGFDb250ZXh0ID0gdGhpcy5tZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoYCR7bGlzdE1ldGFQYXRofS8ke2ZpZWxkTmFtZX1gKSE7XG5cdFx0Y29uc3QgcHJvcGVydHlQbGFjZUhvbGRlck1ldGFDb250ZXh0ID0gdGhpcy5tZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXG5cdFx0XHRgJHtsaXN0TWV0YVBhdGh9LyR7ZmllbGROYW1lfUBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5QbGFjZWhvbGRlcmBcblx0XHQpITtcblxuXHRcdGNvbnN0IGZpZWxkID0gKFxuXHRcdFx0PE1EQ0ZpZWxkXG5cdFx0XHRcdGRlbGVnYXRlPXt7IG5hbWU6IFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZEJhc2VEZWxlZ2F0ZVwiLCBwYXlsb2FkOiB7IHJldHJpZXZlVGV4dEZyb21WYWx1ZUxpc3Q6IHRydWUgfSB9fVxuXHRcdFx0XHRpZD17Z2VuZXJhdGUoW1wiQ3JlYXRlRGlhbG9nXCIsIGxpc3RPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGUubmFtZSwgZmllbGROYW1lXSl9XG5cdFx0XHRcdHZhbHVlPXtBbm5vdGF0aW9uSGVscGVyLmZvcm1hdChwcm9wZXJ0eU1ldGFDb250ZXh0LmdldE9iamVjdCgpLCB7IGNvbnRleHQ6IHByb3BlcnR5TWV0YUNvbnRleHQgfSl9XG5cdFx0XHRcdHBsYWNlaG9sZGVyPXtBbm5vdGF0aW9uSGVscGVyLnZhbHVlKHByb3BlcnR5UGxhY2VIb2xkZXJNZXRhQ29udGV4dC5nZXRPYmplY3QoKSwge1xuXHRcdFx0XHRcdGNvbnRleHQ6IHByb3BlcnR5UGxhY2VIb2xkZXJNZXRhQ29udGV4dFxuXHRcdFx0XHR9KX1cblx0XHRcdFx0d2lkdGg9XCIxMDAlXCJcblx0XHRcdFx0cmVxdWlyZWQ9e2NvbXBpbGVFeHByZXNzaW9uKG9yKGlzUmVxdWlyZWRFeHByZXNzaW9uKHByb3BlcnR5KSwgdGhpcy5yZXF1aXJlZEZpZWxkTmFtZXMuaW5jbHVkZXMoZmllbGROYW1lKSkpfVxuXHRcdFx0XHRkaXNwbGF5PXtGaWVsZEhlbHBlci5nZXRBUERpYWxvZ0Rpc3BsYXlGb3JtYXQocHJvcGVydHlNZXRhQ29udGV4dC5nZXRPYmplY3QoKSwgeyBjb250ZXh0OiBwcm9wZXJ0eU1ldGFDb250ZXh0IH0pfVxuXHRcdFx0XHR2YWx1ZUhlbHA9e2hhc1ZhbHVlSGVscChwcm9wZXJ0eSkgPyBnZW5lcmF0ZShbZmllbGROYW1lLCBcIlZIXCJdKSA6IHVuZGVmaW5lZH1cblx0XHRcdFx0ZWRpdE1vZGU9e3RoaXMuZ2V0RWRpdE1vZGUocHJvcGVydHkpfVxuXHRcdFx0XHRkZXBlbmRlbnRzPXt0aGlzLmdldEZpZWxkVmFsdWVIZWxwKGZpZWxkTmFtZSwgcHJvcGVydHksIHByb3BlcnR5T2JqZWN0UGF0aCl9XG5cdFx0XHRcdGN1c3RvbURhdGE9ezxDdXN0b21EYXRhIGtleT1cImZpZWxkTmFtZVwiIHZhbHVlPXtmaWVsZE5hbWV9IC8+fVxuXHRcdFx0XHRsaXZlQ2hhbmdlPXt0aGlzLmhhbmRsZUxpdmVDaGFuZ2UuYmluZCh0aGlzKX1cblx0XHRcdFx0Y2hhbmdlPXt0aGlzLmhhbmRsZUNoYW5nZS5iaW5kKHRoaXMpfVxuXHRcdFx0Lz5cblx0XHQpO1xuXG5cdFx0dGhpcy5hY3Rpb25QYXJhbWV0ZXJJbmZvcy5wdXNoKHtcblx0XHRcdGlzTXVsdGlWYWx1ZTogZmFsc2UsXG5cdFx0XHRmaWVsZDogZmllbGQsXG5cdFx0XHR2YWx1ZTogZmllbGQuZ2V0VmFsdWUoKSxcblx0XHRcdHZhbGlkYXRpb25Qcm9taXNlOiB1bmRlZmluZWQsXG5cdFx0XHRoYXNFcnJvcjogZmFsc2UsXG5cdFx0XHRwcm9wZXJ0eVBhdGg6IGZpZWxkTmFtZVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdDw+XG5cdFx0XHRcdDxMYWJlbCB0ZXh0PXtwcm9wZXJ0eS5hbm5vdGF0aW9ucy5Db21tb24/LkxhYmVsfSAvPlxuXHRcdFx0XHR7ZmllbGR9XG5cdFx0XHQ8Lz5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENhbGxiYWNrIHdoZW4gdGhlIGRpYWxvZyBpcyBvcGVuZWQuIFNldHMgdGhlIGZvY3VzIG9uIHRoZSBmaXJzdCBmaWVsZCB3aXRob3V0IG9wZW5pbmcgdGhlIFZIIGRpYWxvZy5cblx0ICovXG5cdHByaXZhdGUgYWZ0ZXJPcGVuKCk6IHZvaWQge1xuXHRcdGNvbnN0IGZpcnN0RmllbGQgPSB0aGlzLmFjdGlvblBhcmFtZXRlckluZm9zWzBdLmZpZWxkO1xuXHRcdGNvbnN0IGZvY3VzSW5mbyA9IGZpcnN0RmllbGQuZ2V0Rm9jdXNJbmZvKCkgYXMgeyB0YXJnZXRJbmZvOiBvYmplY3QgfTtcblx0XHRmb2N1c0luZm8udGFyZ2V0SW5mbyA9IHsgc2lsZW50OiB0cnVlIH07XG5cdFx0Zmlyc3RGaWVsZC5mb2N1cyhmb2N1c0luZm8pO1xuXHR9XG5cblx0LyoqXG5cdCAqIEludGVybmFsIG1ldGhvZCB0byBjcmVhdGUgdGhlIERpYWxvZyBjb250cm9sIGFuZCBpdHMgY29udGVudC5cblx0ICogQHJldHVybnMgVGhlIGRpYWxvZyBjb250cm9sXG5cdCAqL1xuXHRwcml2YXRlIGNyZWF0ZURpYWxvZygpOiBEaWFsb2cge1xuXHRcdGNvbnN0IHJlc291cmNlTW9kZWwgPSBnZXRSZXNvdXJjZU1vZGVsKHRoaXMucGFyZW50Q29udHJvbCA/PyB0aGlzLmFwcENvbXBvbmVudCk7XG5cdFx0Y29uc3QgbWV0YVBhdGggPSB0aGlzLm1ldGFNb2RlbC5nZXRNZXRhUGF0aCh0aGlzLmNvbnRleHRUb1VwZGF0ZS5nZXRQYXRoKCkpO1xuXHRcdGNvbnN0IG1ldGFDb250ZXh0ID0gdGhpcy5tZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQobWV0YVBhdGgpITtcblx0XHRjb25zdCBvYmplY3RQYXRoID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzPEVudGl0eVNldD4obWV0YUNvbnRleHQpO1xuXG5cdFx0dGhpcy5hY3Rpb25QYXJhbWV0ZXJJbmZvcyA9IFtdO1xuXG5cdFx0Y29uc3QgYmVnaW5CdXR0b25MYWJlbCA9IHJlc291cmNlTW9kZWwuZ2V0VGV4dChcblx0XHRcdHRoaXMubW9kZSA9PT0gXCJTdGFuZGFsb25lXCJcblx0XHRcdFx0PyBcIkNfVFJBTlNBQ1RJT05fSEVMUEVSX1NBUEZFX0FDVElPTl9DUkVBVEVfQlVUVE9OX0NSRUFURVwiXG5cdFx0XHRcdDogXCJDX1RSQU5TQUNUSU9OX0hFTFBFUl9TQVBGRV9BQ1RJT05fQ1JFQVRFX0JVVFRPTl9DT05USU5VRVwiXG5cdFx0KTtcblx0XHRjb25zdCBlbmRCdXR0b24gPSAoXG5cdFx0XHQ8QnV0dG9uIHRleHQ9e3Jlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09NTU9OX0FDVElPTl9QQVJBTUVURVJfRElBTE9HX0NBTkNFTFwiKX0gcHJlc3M9e3RoaXMub25DYW5jZWwuYmluZCh0aGlzKX0gLz5cblx0XHQpO1xuXHRcdHJldHVybiAoXG5cdFx0XHQ8RGlhbG9nXG5cdFx0XHRcdGlkPXtnZW5lcmF0ZShbXCJDcmVhdGVEaWFsb2dcIiwgbWV0YVBhdGhdKX1cblx0XHRcdFx0dGl0bGU9e3Jlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfVFJBTlNBQ1RJT05fSEVMUEVSX1NBUEZFX0FDVElPTl9DUkVBVEVcIiwgdW5kZWZpbmVkLCBvYmplY3RQYXRoLnRhcmdldEVudGl0eVNldD8ubmFtZSl9XG5cdFx0XHRcdGFmdGVyT3Blbj17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdHRoaXMuYWZ0ZXJPcGVuKCk7XG5cdFx0XHRcdH19XG5cdFx0XHRcdHJlc2l6YWJsZT17dHJ1ZX1cblx0XHRcdFx0ZHJhZ2dhYmxlPXt0cnVlfVxuXHRcdFx0XHRpbml0aWFsRm9jdXM9e2VuZEJ1dHRvbn0gLy8gVGhlIGluaXRpYWwgZm9jdXMgaXMgc2V0IHByb2dyYW1tYXRpY2FsbHkgaW4gYWZ0ZXJPcGVuLCB0byBhdm9pZCBvcGVuaW5nIHRoZSBWSCBkaWFsb2dcblx0XHRcdD5cblx0XHRcdFx0e3tcblx0XHRcdFx0XHRiZWdpbkJ1dHRvbjogPEJ1dHRvbiB0ZXh0PXtiZWdpbkJ1dHRvbkxhYmVsfSBwcmVzcz17dGhpcy5vbk9LLmJpbmQodGhpcyl9IHR5cGU9XCJFbXBoYXNpemVkXCIgLz4sXG5cdFx0XHRcdFx0ZW5kQnV0dG9uOiBlbmRCdXR0b24sXG5cdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0PFNpbXBsZUZvcm0+XG5cdFx0XHRcdFx0XHRcdHt0aGlzLmZpZWxkTmFtZXMubWFwKChuYW1lKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuY3JlYXRlRm9ybUVsZW1lbnQobmFtZSwgb2JqZWN0UGF0aCwgbWV0YVBhdGgpO1xuXHRcdFx0XHRcdFx0XHR9KX1cblx0XHRcdFx0XHRcdDwvU2ltcGxlRm9ybT5cblx0XHRcdFx0XHQpXG5cdFx0XHRcdH19XG5cdFx0XHQ8L0RpYWxvZz5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGVycm9yIHN0YXRlIGluIHRoZSBkaWFsb2cgZmllbGRzIHRoYXQgY29ycmVzcG9uZCB0byBhbiBlcnJvciBpbiB0aGUgZ2l2ZW4gbWVzc2FnZXMuXG5cdCAqIEBwYXJhbSBtZXNzYWdlc1xuXHQgKi9cblx0cHVibGljIGRpc3BsYXlFcnJvck1lc3NhZ2VzKG1lc3NhZ2VzOiBNZXNzYWdlW10pOiB2b2lkIHtcblx0XHQvLyBJdGVyYXRlIG92ZXIgYWxsIG1lc3NhZ2VzIGFuZCBzZXQgdGhlIGVycm9yIHN0YXRlIGZvciB0aGUgY29ycmVzcG9uZGluZyBmaWVsZFxuXHRcdC8vIFdlIGNhbm5vdCBjb21wYXJlIHRoZSBwYXRocyBkaXJlY3RseSwgYXMgdGhlIGNvbnRleHQgaW4gdGhlIGRpYWxvZyBpcyBhIHRlbXBvcmFyeSBvbmUsIGFuZCBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIHRoYXQgaXMgc2F2ZWRcblx0XHQvLyBUaGVyZWZvcmUgd2UgY29tcGFyZSB0aGUgbWV0YXBhdGhzXG5cdFx0Y29uc3QgY29udGV4dE1ldGFQYXRoID0gdGhpcy5tZXRhTW9kZWwuZ2V0TWV0YVBhdGgodGhpcy5jb250ZXh0VG9VcGRhdGUuZ2V0UGF0aCgpKTtcblxuXHRcdGZvciAoY29uc3QgbWVzc2FnZSBvZiBtZXNzYWdlcykge1xuXHRcdFx0Zm9yIChjb25zdCB0YXJnZXQgb2YgbWVzc2FnZS5nZXRUYXJnZXRzKCkpIHtcblx0XHRcdFx0Y29uc3QgdGFyZ2V0TWV0YVBhdGggPSB0aGlzLm1ldGFNb2RlbC5nZXRNZXRhUGF0aCh0YXJnZXQpO1xuXHRcdFx0XHRjb25zdCBwYXJhbWV0ZXJJbmZvID0gdGhpcy5hY3Rpb25QYXJhbWV0ZXJJbmZvcy5maW5kKFxuXHRcdFx0XHRcdChhY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiBgJHtjb250ZXh0TWV0YVBhdGh9LyR7YWN0aW9uUGFyYW1ldGVySW5mby5wcm9wZXJ0eVBhdGh9YCA9PT0gdGFyZ2V0TWV0YVBhdGhcblx0XHRcdFx0KTtcblx0XHRcdFx0aWYgKHBhcmFtZXRlckluZm8pIHtcblx0XHRcdFx0XHRwYXJhbWV0ZXJJbmZvLmhhc0Vycm9yID0gdHJ1ZTtcblx0XHRcdFx0XHRwYXJhbWV0ZXJJbmZvLmZpZWxkLnNldFZhbHVlU3RhdGUobWVzc2FnZS5nZXRUeXBlKCkgfHwgTWVzc2FnZVR5cGUuRXJyb3IpO1xuXHRcdFx0XHRcdHBhcmFtZXRlckluZm8uZmllbGQuc2V0VmFsdWVTdGF0ZVRleHQobWVzc2FnZS5nZXRNZXNzYWdlKCkpO1xuXG5cdFx0XHRcdFx0Y29uc3QgbWVzc2FnZUNvbnRyb2xJRHMgPSBtZXNzYWdlLmdldENvbnRyb2xJZHMoKTtcblx0XHRcdFx0XHRpZiAoIW1lc3NhZ2VDb250cm9sSURzLmluY2x1ZGVzKHBhcmFtZXRlckluZm8uZmllbGQuZ2V0SWQoKSkpIHtcblx0XHRcdFx0XHRcdG1lc3NhZ2VDb250cm9sSURzLnB1c2gocGFyYW1ldGVySW5mby5maWVsZC5nZXRJZCgpKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmVtb3ZlcyB0aGUgZXJyb3IgbWVzc2FnZXMgZm9yIGEgZ2l2ZW4gZmllbGQuXG5cdCAqIEBwYXJhbSBtZXNzYWdlQ29udHJvbElkIFRoZSBJRCBvZiB0aGUgZmllbGRcblx0ICovXG5cdHByaXZhdGUgcmVtb3ZlTWVzc2FnZXNGb3JBY3Rpb25QYXJhbWV0ZXIobWVzc2FnZUNvbnRyb2xJZDogc3RyaW5nKTogdm9pZCB7XG5cdFx0Y29uc3QgYWxsTWVzc2FnZXMgPSBNZXNzYWdpbmcuZ2V0TWVzc2FnZU1vZGVsKCkuZ2V0RGF0YSgpO1xuXHRcdC8vIGFsc28gcmVtb3ZlIG1lc3NhZ2VzIGFzc2lnbmVkIHRvIGlubmVyIGNvbnRyb2xzLCBidXQgYXZvaWQgcmVtb3ZpbmcgbWVzc2FnZXMgZm9yIGRpZmZlcmVudCBwYXJhbWV0ZXJzICh3aXRoIG5hbWUgYmVpbmcgc3Vic3RyaW5nIG9mIGFub3RoZXIgcGFyYW1ldGVyIG5hbWUpXG5cdFx0Y29uc3QgcmVsZXZhbnRNZXNzYWdlcyA9IGFsbE1lc3NhZ2VzLmZpbHRlcigobXNnOiBNZXNzYWdlKSA9PlxuXHRcdFx0bXNnLmdldENvbnRyb2xJZHMoKS5zb21lKChjb250cm9sSWQ6IHN0cmluZykgPT4gY29udHJvbElkLmluY2x1ZGVzKG1lc3NhZ2VDb250cm9sSWQpKVxuXHRcdCk7XG5cdFx0TWVzc2FnaW5nLnJlbW92ZU1lc3NhZ2VzKHJlbGV2YW50TWVzc2FnZXMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENhbGxiYWNrIHdoZW4gdGhlIHVzZXIgaXMgZG9pbmcgc29tZSBsaXZlIGNoYW5nZXMgaW4gYSBmaWVsZC5cblx0ICogQHBhcmFtIGxpdmVDaGFuZ2VFdmVudFxuXHQgKi9cblx0cHJpdmF0ZSBoYW5kbGVMaXZlQ2hhbmdlKGxpdmVDaGFuZ2VFdmVudDogRmllbGRCYXNlJExpdmVDaGFuZ2VFdmVudCk6IHZvaWQge1xuXHRcdGNvbnN0IGZpZWxkSWQgPSBsaXZlQ2hhbmdlRXZlbnQuZ2V0U291cmNlPE1EQ0ZpZWxkPigpLmdldElkKCk7XG5cdFx0dGhpcy5yZW1vdmVNZXNzYWdlc0ZvckFjdGlvblBhcmFtZXRlcihmaWVsZElkKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsYmFjayB3aGVuIHRoZSB1c2VyIGhhcyBjaGFuZ2VkIGEgZmllbGQgdmFsdWUuXG5cdCAqIEBwYXJhbSBjaGFuZ2VFdmVudFxuXHQgKi9cblx0cHJpdmF0ZSBhc3luYyBoYW5kbGVDaGFuZ2UoY2hhbmdlRXZlbnQ6IEZpZWxkJENoYW5nZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgZmllbGQgPSBjaGFuZ2VFdmVudC5nZXRTb3VyY2U8TURDRmllbGQ+KCk7XG5cblx0XHRjb25zdCBhY3Rpb25QYXJhbWV0ZXJJbmZvID0gdGhpcy5hY3Rpb25QYXJhbWV0ZXJJbmZvcy5maW5kKChhY3Rpb25QYXJhbWV0ZXJJbmZvKSA9PiBhY3Rpb25QYXJhbWV0ZXJJbmZvLmZpZWxkID09PSBmaWVsZCk7XG5cdFx0aWYgKGFjdGlvblBhcmFtZXRlckluZm8gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dGhpcy5yZW1vdmVNZXNzYWdlc0ZvckFjdGlvblBhcmFtZXRlcihmaWVsZC5nZXRJZCgpKTtcblx0XHRcdGFjdGlvblBhcmFtZXRlckluZm8udmFsaWRhdGlvblByb21pc2UgPSBjaGFuZ2VFdmVudC5nZXRQYXJhbWV0ZXIoXCJwcm9taXNlXCIpO1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0YWN0aW9uUGFyYW1ldGVySW5mby52YWx1ZSA9IGF3YWl0IGFjdGlvblBhcmFtZXRlckluZm8udmFsaWRhdGlvblByb21pc2U7XG5cdFx0XHRcdGFjdGlvblBhcmFtZXRlckluZm8uaGFzRXJyb3IgPSBmYWxzZTtcblx0XHRcdFx0YWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5zZXRWYWx1ZVN0YXRlKE1lc3NhZ2VUeXBlLk5vbmUpO1xuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdFx0ZGVsZXRlIGFjdGlvblBhcmFtZXRlckluZm8udmFsdWU7XG5cdFx0XHRcdGFjdGlvblBhcmFtZXRlckluZm8uaGFzRXJyb3IgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsYmFjayB3aGVuIHRoZSB1c2VyIGNsaWNrZWQgJ09LJy5cblx0ICovXG5cdHByaXZhdGUgYXN5bmMgb25PSygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHQvLyBWYWxpZGF0aW9uIG9mIG1hbmRhdG9yeSBhbmQgdmFsdWUgc3RhdGUgZm9yIGFjdGlvbiBwYXJhbWV0ZXJzXG5cdFx0Y29uc3QgcmVzb3VyY2VNb2RlbCA9IGdldFJlc291cmNlTW9kZWwodGhpcy5hcHBDb21wb25lbnQpO1xuXHRcdGlmIChhd2FpdCBBY3Rpb25SdW50aW1lLnZhbGlkYXRlUHJvcGVydGllcyh0aGlzLmFjdGlvblBhcmFtZXRlckluZm9zLCByZXNvdXJjZU1vZGVsKSkge1xuXHRcdFx0dGhpcy5maXJlRXhpdERpYWxvZyh0cnVlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgdXNlIGNsaWNrZWQgJ0NhbmNlbCcuXG5cdCAqL1xuXHRwcml2YXRlIG9uQ2FuY2VsKCk6IHZvaWQge1xuXHRcdHRoaXMuZmlyZUV4aXREaWFsb2coZmFsc2UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEVzY2FwZSBoYW5kbGVyIChjYWxsZWQgd2hlbiB0aGUgdXNlciB0eXBlZCAnRXNjYXBlJyB0byBsZWF2ZSB0aGUgZGlhbG9nKS5cblx0ICogQHBhcmFtIHBcblx0ICogQHBhcmFtIHAucmVzb2x2ZVxuXHQgKiBAcGFyYW0gcC5yZWplY3Rcblx0ICovXG5cdHByaXZhdGUgb25Fc2NhcGUocDogeyByZXNvbHZlOiBGdW5jdGlvbjsgcmVqZWN0OiBGdW5jdGlvbiB9KTogdm9pZCB7XG5cdFx0cC5yZWplY3QoKTsgLy8gRG8gbm90IGNsb3NlIHRoZSBkaWFsb2dcblx0XHR0aGlzLm9uQ2FuY2VsKCk7XG5cdH1cblxuXHQvKipcblx0ICogT3BlbnMgdGhlIGRpYWxvZy5cblx0ICogQHJldHVybnMgVGhlIGludGVybmFsIERpYWxvZyBjb250cm9sXG5cdCAqL1xuXHRvcGVuRGlhbG9nKCk6IERpYWxvZyB7XG5cdFx0aWYgKHRoaXMuZGlhbG9nKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3Qgb3BlbiB0aGUgQ3JlYXRlIGRpYWxvZyB0d2ljZVwiKTtcblx0XHR9XG5cblx0XHR0aGlzLmRpYWxvZyA9IHRoaXMuY3JlYXRlRGlhbG9nKCk7XG5cdFx0dGhpcy5kaWFsb2cuc2V0RXNjYXBlSGFuZGxlcih0aGlzLm9uRXNjYXBlLmJpbmQodGhpcykpO1xuXHRcdHRoaXMuZGlhbG9nLnNldEJpbmRpbmdDb250ZXh0KHRoaXMuY29udGV4dFRvVXBkYXRlKTtcblx0XHR0aGlzLnBhcmVudENvbnRyb2w/LmFkZERlcGVuZGVudCh0aGlzLmRpYWxvZyk7XG5cblx0XHR0aGlzLmRpYWxvZy5vcGVuKCk7XG5cblx0XHRyZXR1cm4gdGhpcy5kaWFsb2c7XG5cdH1cblxuXHQvKipcblx0ICogQ2xvc2VzIGFuZCBkZXN0cm95cyB0aGUgZGlhbG9nLlxuXHQgKi9cblx0Y2xvc2VEaWFsb2coKTogdm9pZCB7XG5cdFx0LyogV2hlbiB0aGUgZGlhbG9nIGlzIGNhbmNlbGxlZCwgbWVzc2FnZXMgbmVlZCB0byBiZSByZW1vdmVkIGluIGNhc2UgdGhlIHNhbWUgYWN0aW9uIHNob3VsZCBiZSBleGVjdXRlZCBhZ2FpbiAqL1xuXHRcdGZvciAoY29uc3QgYWN0aW9uUGFyYW1ldGVySW5mbyBvZiB0aGlzLmFjdGlvblBhcmFtZXRlckluZm9zKSB7XG5cdFx0XHRjb25zdCBmaWVsZElkID0gYWN0aW9uUGFyYW1ldGVySW5mby5maWVsZC5nZXRJZCgpO1xuXHRcdFx0dGhpcy5yZW1vdmVNZXNzYWdlc0ZvckFjdGlvblBhcmFtZXRlcihmaWVsZElkKTtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5kaWFsb2cgJiYgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzLmRpYWxvZykpIHtcblx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMuZGlhbG9nKTsgLy8gVG8gYXZvaWQgYW4gZXJyb3IgaW4gdGhlIGNvbnNvbGVcblx0XHR9XG5cdFx0dGhpcy5kaWFsb2c/LmNsb3NlKCk7XG5cdFx0dGhpcy5kaWFsb2c/LmRlc3Ryb3koKTtcblx0XHR0aGlzLmRpYWxvZyA9IHVuZGVmaW5lZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBEaXNwbGF5cyBvciByZW1vdmVzIGEgYnVzeSBpbmRpY2F0b3Igb24gdGhlIGRpYWxvZy5cblx0ICogQHBhcmFtIGJ1c3lcblx0ICovXG5cdHNldEJ1c3koYnVzeTogYm9vbGVhbik6IHZvaWQge1xuXHRcdGlmICghdGhpcy5kaWFsb2cpIHtcblx0XHRcdHJldHVybjsgLy8gTm90aGluZyB0byBzZXQgYnVzeVxuXHRcdH1cblxuXHRcdGlmIChidXN5KSB7XG5cdFx0XHRCdXN5TG9ja2VyLmxvY2sodGhpcy5kaWFsb2cpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRCdXN5TG9ja2VyLnVubG9jayh0aGlzLmRpYWxvZyk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIElzIERpYWxvZyBvcGVuLlxuXHQgKiBAcmV0dXJucyBCb29sZWFuXG5cdCAqL1xuXHRpc09wZW4oKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuZGlhbG9nPy5pc09wZW4oKSA/PyBmYWxzZTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Bd0NNQSxnQ0FBZ0MsSUFBQUMsSUFBQSxHQURyQ0MsY0FBYyxDQUFDLDZDQUE2QyxDQUFDLEVBQUFDLEtBQUEsR0FFNURDLEtBQUssQ0FBQyxDQUFDLEVBQUFILElBQUEsQ0FBQUksTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxjQUFBO0lBQUEsU0FBQVAsaUNBQUE7TUFBQSxJQUFBUSxLQUFBO01BQUEsU0FBQUMsSUFBQSxHQUFB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
|
|
@@ -392,8 +392,8 @@ export default class CreateDialog implements StandardDialog {
|
|
|
392
392
|
|
|
393
393
|
this.dialog = this.createDialog();
|
|
394
394
|
this.dialog.setEscapeHandler(this.onEscape.bind(this));
|
|
395
|
-
this.parentControl?.addDependent(this.dialog);
|
|
396
395
|
this.dialog.setBindingContext(this.contextToUpdate);
|
|
396
|
+
this.parentControl?.addDependent(this.dialog);
|
|
397
397
|
|
|
398
398
|
this.dialog.open();
|
|
399
399
|
|