@sapui5/sap.fe.macros 1.142.0 → 1.142.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/macros/.library +1 -1
- package/src/sap/fe/macros/Field.js +5 -5
- package/src/sap/fe/macros/Field.ts +5 -3
- package/src/sap/fe/macros/FooterContent.js +3 -2
- package/src/sap/fe/macros/FooterContent.tsx +2 -10
- package/src/sap/fe/macros/MessageButton.js +3 -3
- package/src/sap/fe/macros/MessageButton.tsx +3 -2
- package/src/sap/fe/macros/Page.js +8 -4
- package/src/sap/fe/macros/Page.tsx +13 -4
- package/src/sap/fe/macros/RichTextEditor.js +12 -14
- package/src/sap/fe/macros/RichTextEditor.tsx +10 -13
- package/src/sap/fe/macros/ai/EasyFillDialog.js +2 -1
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +1 -0
- package/src/sap/fe/macros/ai/SummarizationButton.js +6 -4
- package/src/sap/fe/macros/ai/SummarizationButton.tsx +5 -3
- package/src/sap/fe/macros/chart/Action.js +19 -7
- package/src/sap/fe/macros/chart/Action.ts +8 -0
- package/src/sap/fe/macros/chart/ChartDelegate.js +13 -2
- package/src/sap/fe/macros/chart/ChartDelegate.ts +20 -1
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +8 -6
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +13 -22
- package/src/sap/fe/macros/controls/FileWrapper.js +4 -3
- package/src/sap/fe/macros/controls/FileWrapper.ts +3 -2
- package/src/sap/fe/macros/controls/FilterBar.js +1 -1
- package/src/sap/fe/macros/controls/FilterBar.ts +8 -1
- package/src/sap/fe/macros/controls/Section.js +3 -2
- package/src/sap/fe/macros/controls/Section.ts +1 -1
- package/src/sap/fe/macros/controls/TextLink.js +15 -1
- package/src/sap/fe/macros/controls/TextLink.tsx +19 -0
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +23 -18
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +27 -25
- package/src/sap/fe/macros/field/FieldRuntimeHelper.js +4 -2
- package/src/sap/fe/macros/field/FieldRuntimeHelper.ts +7 -7
- package/src/sap/fe/macros/field/FieldTemplating.js +8 -3
- package/src/sap/fe/macros/field/FieldTemplating.ts +8 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +10 -1
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +10 -0
- package/src/sap/fe/macros/form/FormContainer.block.js +9 -8
- package/src/sap/fe/macros/form/FormContainer.block.ts +10 -7
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +3 -2
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +1 -0
- package/src/sap/fe/macros/internal/field/EditStyle.js +11 -6
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +7 -3
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js +36 -7
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.ts +35 -6
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +54 -1
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +59 -0
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +23 -3
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +24 -2
- package/src/sap/fe/macros/library.js +5 -6
- package/src/sap/fe/macros/{library.ts → library.tsx} +1 -1
- package/src/sap/fe/macros/messagebundle.properties +6 -0
- package/src/sap/fe/macros/messages/MessageButton.js +21 -12
- package/src/sap/fe/macros/messages/MessageButton.ts +21 -11
- package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.js +8 -3
- package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.ts +9 -2
- package/src/sap/fe/macros/quickView/QuickView.js +5 -4
- package/src/sap/fe/macros/quickView/QuickView.tsx +10 -3
- package/src/sap/fe/macros/table/ActionsTemplating.js +6 -5
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +4 -4
- package/src/sap/fe/macros/table/MdcTableTemplate.js +31 -13
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +35 -7
- package/src/sap/fe/macros/table/Table.block.js +3 -1
- package/src/sap/fe/macros/table/Table.block.tsx +7 -4
- package/src/sap/fe/macros/table/TableAPI.js +62 -28
- package/src/sap/fe/macros/table/TableAPI.ts +73 -32
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +15 -4
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +16 -3
- package/src/sap/fe/macros/table/TableRuntime.js +6 -4
- package/src/sap/fe/macros/table/TableRuntime.ts +16 -3
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +3 -3
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +3 -4
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +41 -15
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +41 -22
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -4
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +1 -2
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +10 -4
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +9 -3
- package/src/sap/fe/macros/table/mixin/TableHierarchy.js +6 -6
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +5 -5
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +28 -10
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +33 -14
|
@@ -529,6 +529,13 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/jsx-runtime/jsx", "sap/fe/core/Templ
|
|
|
529
529
|
}
|
|
530
530
|
// after removing the unwanted properties PropertyInfo is added to the control, and we also save the full version as custom data for FE internal use
|
|
531
531
|
const _propertyInfoControl = FilterUtils.formatPropertyInfo(this.propertyInfo);
|
|
532
|
+
const hasOverride = this.checkIfResourceKeyExists("M_FILTERBAR_ADAPT_FILTERS_NON_ZERO");
|
|
533
|
+
let adaptFiltersNonZeroText;
|
|
534
|
+
let adaptFiltersText;
|
|
535
|
+
if (hasOverride) {
|
|
536
|
+
adaptFiltersNonZeroText = this.getTranslatedText("M_FILTERBAR_ADAPT_FILTERS_NON_ZERO").replaceAll("{", "\\{");
|
|
537
|
+
adaptFiltersText = this.getTranslatedText("M_FILTERBAR_ADAPT_FILTERS");
|
|
538
|
+
}
|
|
532
539
|
return _jsx(FilterBarAPI, {
|
|
533
540
|
id: this._apiId,
|
|
534
541
|
metaPath: this.metaPath.getPath(),
|
|
@@ -540,6 +547,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/jsx-runtime/jsx", "sap/fe/core/Templ
|
|
|
540
547
|
children: {
|
|
541
548
|
content: _jsx(FEFilterBar, {
|
|
542
549
|
"core:require": "{API: 'sap/fe/macros/filterBar/FilterBarAPI'}",
|
|
550
|
+
adaptFiltersText: adaptFiltersText,
|
|
551
|
+
adaptFiltersTextNonZero: adaptFiltersNonZeroText,
|
|
543
552
|
id: this._contentId,
|
|
544
553
|
liveMode: this.liveMode,
|
|
545
554
|
delegate: filterDelegate,
|
|
@@ -768,4 +777,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/jsx-runtime/jsx", "sap/fe/core/Templ
|
|
|
768
777
|
_exports = FilterBarBlock;
|
|
769
778
|
return _exports;
|
|
770
779
|
}, false);
|
|
771
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZXRDdXN0b21GaWx0ZXJGaWVsZFByb3BlcnRpZXMiLCJjaGlsZEZpbHRlckZpZWxkIiwiYWdncmVnYXRpb25PYmplY3QiLCJzbG90TmFtZSIsImtleSIsInJlcGxhY2UiLCJwcm9wZXJ0eSIsImdldEF0dHJpYnV0ZSIsImxhYmVsIiwicmVxdWlyZWQiLCJ0ZW1wbGF0ZSIsIkZpbHRlckJhckJsb2NrIiwiX2RlYyIsImRlZmluZUJ1aWxkaW5nQmxvY2siLCJuYW1lIiwibmFtZXNwYWNlIiwicHVibGljTmFtZXNwYWNlIiwicmV0dXJuVHlwZXMiLCJfZGVjMiIsImJsb2NrQXR0cmlidXRlIiwidHlwZSIsImlzUHVibGljIiwiX2RlYzMiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJfZGVjMTgiLCJfZGVjMTkiLCJfZGVjMjAiLCJfZGVjMjEiLCJfZGVjMjIiLCJfZGVjMjMiLCJfZGVjMjQiLCJfZGVjMjUiLCJfZGVjMjYiLCJibG9ja0V2ZW50IiwiX2RlYzI3IiwiX2RlYzI4IiwiX2RlYzI5IiwiX2RlYzMwIiwiX2RlYzMxIiwiYmxvY2tBZ2dyZWdhdGlvbiIsImhhc1ZpcnR1YWxOb2RlIiwicHJvY2Vzc0FnZ3JlZ2F0aW9ucyIsIl9kZWMzMiIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja1RlbXBsYXQiLCJwcm9wcyIsImNvbmZpZ3VyYXRpb24iLCJtU2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwiX2Rlc2NyaXB0b3IxMCIsIl9kZXNjcmlwdG9yMTEiLCJfZGVzY3JpcHRvcjEyIiwiX2Rlc2NyaXB0b3IxMyIsIl9kZXNjcmlwdG9yMTQiLCJfZGVzY3JpcHRvcjE1IiwiX2Rlc2NyaXB0b3IxNiIsIl9kZXNjcmlwdG9yMTciLCJfZGVzY3JpcHRvcjE4IiwiX2Rlc2NyaXB0b3IxOSIsIl9kZXNjcmlwdG9yMjAiLCJfZGVzY3JpcHRvcjIxIiwiX2Rlc2NyaXB0b3IyMiIsIl9kZXNjcmlwdG9yMjMiLCJfZGVzY3JpcHRvcjI0IiwiX2Rlc2NyaXB0b3IyNSIsIl9kZXNjcmlwdG9yMjYiLCJfZGVzY3JpcHRvcjI3IiwiX2Rlc2NyaXB0b3IyOCIsIl9kZXNjcmlwdG9yMjkiLCJfZGVzY3JpcHRvcjMwIiwic2hvd0RyYWZ0RWRpdFN0YXRlIiwiX2Rlc2NyaXB0b3IzMSIsImNoZWNrSWZFZGl0aW5nRmlsdGVySXNEaXNhYmxlZCIsInRhcmdldEVudGl0eVNldCIsImFubm90YXRpb25zIiwiQ2FwYWJpbGl0aWVzIiwiTmF2aWdhdGlvblJlc3RyaWN0aW9ucyIsIlJlc3RyaWN0ZWRQcm9wZXJ0aWVzIiwic29tZSIsInIiLCJOYXZpZ2F0aW9uUHJvcGVydHkiLCJ2YWx1ZSIsIkZpbHRlclJlc3RyaWN0aW9ucyIsIkZpbHRlcmFibGUiLCJjaGVja0lmQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkIiwib01ldGFNb2RlbCIsIk1vZGVsSGVscGVyIiwiaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQiLCJpc0RyYWZ0Q29sbGFib3JhdGl2ZSIsImdldEVudGl0eVR5cGVQYXRoIiwibWV0YVBhdGhQYXJ0cyIsImVuZHNXaXRoIiwiZ2V0U2VhcmNoIiwiaGlkZUJhc2ljU2VhcmNoIiwiX2pzeCIsIk1EQ0ZpbHRlckZpZWxkIiwiaWQiLCJnZW5lcmF0ZSIsInBsYWNlaG9sZGVyIiwicHJvcGVydHlLZXkiLCJjb25kaXRpb25zIiwiZGF0YVR5cGUiLCJtYXhDb25kaXRpb25zIiwiZGF0YVR5cGVDb25zdHJhaW50cyIsInByb2Nlc3NTZWxlY3Rpb25GaWVsZHMiLCJkcmFmdEVkaXRTdGF0ZSIsImRyYWZ0U3RhdGVzIiwiRHJhZnRFZGl0U3RhdGUiLCJnZXRFZGl0U3RhdGVzIiwiZ2V0VHJhbnNsYXRlZFRleHQiLCJvcGVyYXRvcnMiLCJkaXNwbGF5IiwiY2hpbGRyZW4iLCJjb250ZW50RWRpdCIsIlNlbGVjdCIsIndpZHRoIiwiZm9yY2VTZWxlY3Rpb24iLCJzZWxlY3RlZEtleSIsIml0ZW1zIiwibWFwIiwic3RhdGUiLCJMaXN0SXRlbSIsInRleHQiLCJfdmFsdWVIZWxwcyIsIl9maWx0ZXJGaWVsZHMiLCJwdXNoIiwiQXJyYXkiLCJpc0FycmF5Iiwic2VsZWN0aW9uRmllbGRzIiwiZ2V0T2JqZWN0IiwiZm9yRWFjaCIsInNlbGVjdGlvbkZpZWxkIiwiYXZhaWxhYmlsaXR5Iiwic2V0RmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInB1c2hGaWx0ZXJGaWVsZHNBbmRWYWx1ZUhlbHBzIiwiYW5ub3RhdGlvblBhdGgiLCJwcm9wZXJ0eUNvbnRleHQiLCJtZXRhUGF0aCIsImdldE1vZGVsIiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJwcm9wZXJ0eU9iamVjdCIsImZpbHRlckNvbnRlbnQiLCJTbG90Q29sdW1uIiwidGVtcGxhdGVJZCIsIkN1c3RvbUZyYWdtZW50QmxvY2siLCJmcmFnbWVudE5hbWUiLCJjb250ZXh0UGF0aCIsIm1heENvbmRpdGlvblZhbHVlIiwiY29udGV4dCIsImRlbGVnYXRlIiwiY29uZGl0aW9uUGF0aCIsIkZpZWxkSGVscGVyIiwidXNlU2VtYW50aWNEYXRlUmFuZ2UiLCJzZXR0aW5ncyIsImdldFBhdGgiLCJjb25zdHJhaW50cyIsImRhdGFUeXBlRm9ybWF0T3B0aW9ucyIsImZvcm1hdE9wdGlvbnMiLCJ2YWx1ZUhlbHAiLCJjb250ZW50IiwiQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlciIsImJpbmRpbmciLCJGaWx0ZXJVdGlscyIsImNvbmRpdGlvblRvTW9kZWxQYXRoIiwiY3VzdG9tRGF0YSIsIkN1c3RvbURhdGEiLCJGaWVsZEhlbHBDdXN0b21EYXRhIiwiZG9jdW1lbnRSZWZUZXh0IiwidmYiLCJ2aXN1YWxGaWx0ZXIiLCJpbml0aWFsQ2hhcnRCaW5kaW5nRW5hYmxlZCIsInN1c3BlbmRTZWxlY3Rpb24iLCJJbnRlcm5hbEZpbHRlckZpZWxkIiwiaWRQcmVmaXgiLCJDb21tb25IZWxwZXIiLCJnZXROYXZpZ2F0aW9uUGF0aCIsInZoSWRQcmVmaXgiLCJfZ2V0Q29udGV4dFBhdGhGb3JGaWx0ZXJGaWVsZCIsIl9pbnRlcm5hbENvbnRleHRQYXRoIiwic3RyaW5naWZ5Q3VzdG9tRGF0YSIsInN0b3JlT2JqZWN0VmFsdWUiLCJlZGl0TW9kZSIsIlZhbHVlSGVscCIsImNvbmRpdGlvbk1vZGVsIiwiZmlsdGVyRmllbGRWYWx1ZUhlbHAiLCJMb2ciLCJlcnJvciIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJzTWV0YVBhdGgiLCJlbnRpdHlUeXBlUGF0aCIsInNwbGl0Iiwic0VudGl0eVNldFBhdGgiLCJnZXRFbnRpdHlTZXRQYXRoIiwicGFyZW50Q29udGV4dFBhdGgiLCJmdWxsQ29udGV4dFBhdGgiLCJzT2JqZWN0UGF0aCIsInN0YXJ0c1dpdGgiLCJfYW5ub3RhdGlvblBhdGgiLCJvRXh0cmFQYXJhbXMiLCJmaWx0ZXJGaWVsZHMiLCJvVmlzdWFsaXphdGlvbk9iamVjdFBhdGgiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJvQ29udmVydGVyQ29udGV4dCIsImdldENvbnZlcnRlckNvbnRleHQiLCJwcm9wZXJ0eUluZm8iLCJnZXRTZWxlY3Rpb25GaWVsZHMiLCJzUHJvcGVydHlJbmZvIiwiQ29tbW9uIiwiRHJhZnRSb290IiwiZGlzYWJsZURyYWZ0RWRpdFN0YXRlRmlsdGVyIiwib1NlbGVjdGlvbkZpZWxkcyIsIlRlbXBsYXRlTW9kZWwiLCJ2aWV3RGF0YSIsIm1vZGVscyIsImdldERhdGEiLCJvRW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJvU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJvRW50aXR5U2V0Q29udGV4dCIsImdldENvbnRleHQiLCJvRmlsdGVyQ29uZGl0aW9ucyIsImdldEZpbHRlckNvbmRpdGlvbnMiLCJzZWxlY3Rpb25WYXJpYW50IiwiZmlsdGVyQ29uZGl0aW9ucyIsIl9wcm9jZXNzUHJvcGVydHlJbmZvcyIsIl9hcHBseUlkVG9Db250ZW50IiwiX2FwaUlkIiwiX2NvbnRlbnRJZCIsImdldENvbnRlbnRJZCIsIm9TZWFyY2hSZXN0cmljdGlvbkFubm90YXRpb24iLCJnZXRTZWFyY2hSZXN0cmljdGlvbnMiLCJCb29sZWFuIiwiU2VhcmNoYWJsZSIsImpzeCIsInJlbmRlckFzWE1MIiwiZGVzaWdudGltZSIsImdldERlc2lnbnRpbWUiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwibW9kZWwiLCJhUGFyYW1ldGVyRmllbGRzIiwic0ZldGNoZWRQcm9wZXJ0aWVzIiwiYUZldGNoZWRQcm9wZXJ0aWVzIiwiSlNPTiIsInBhcnNlIiwiZWRpdFN0YXRlTGFiZWwiLCJwcm9wSW5mbyIsImlzUGFyYW1ldGVyIiwicGF0aCIsImluY2x1ZGVzIiwicHJvcGVydHlMb2NhdGlvblBhdGgiLCJnZXRMb2NhdGlvbkZvclByb3BlcnR5UGF0aCIsInByb3BlcnR5UGF0aCIsImRhdGFNb2RlbCIsIk1ldGFNb2RlbENvbnZlcnRlciIsImdldEZpbHRlclJlc3RyaWN0aW9uc0J5RGF0YU1vZGVsIiwiUmVxdWlyZWRQcm9wZXJ0aWVzIiwic3RyaW5naWZ5IiwiX3BhcmFtZXRlcnMiLCJnZXRQZXJzaXN0ZW5jZVByb3ZpZGVyIiwiZmlsdGVyQmFySWQiLCJpZ25vcmVQZXJzb25hbGl6YXRpb25DaGFuZ2VzIiwiUGVyc2lzdGVuY2VQcm92aWRlciIsImZvciIsIm1vZGUiLCJmaWx0ZXJCYXJDb250ZXh0UGF0aCIsImFubm9QYXRoIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJnZXRUZW1wbGF0ZSIsImludGVybmFsQ29udGV4dFBhdGgiLCJmaWx0ZXJEZWxlZ2F0ZSIsImZpbHRlckJhckRlbGVnYXRlIiwiX3Byb3BlcnR5SW5mb0NvbnRyb2wiLCJmb3JtYXRQcm9wZXJ0eUluZm8iLCJGaWx0ZXJCYXJBUEkiLCJzZWFyY2giLCJmaWx0ZXJDaGFuZ2VkIiwiYWZ0ZXJDbGVhciIsImludGVybmFsU2VhcmNoIiwiaW50ZXJuYWxGaWx0ZXJDaGFuZ2VkIiwiRkVGaWx0ZXJCYXIiLCJsaXZlTW9kZSIsInZhcmlhbnRCYWNrcmVmZXJlbmNlIiwic2hvd0FkYXB0RmlsdGVyc0J1dHRvbiIsInNob3dDbGVhckJ1dHRvbiIsInAxM25Nb2RlIiwiZmlsdGVyc0NoYW5nZWQiLCJzaG93TWVzc2FnZXMiLCJ0b2dnbGVDb250cm9sIiwidG9nZ2xlQ29udHJvbElkIiwiaW5pdGlhbExheW91dCIsInZpc2libGUiLCJkZXBlbmRlbnRzIiwiYmFzaWNTZWFyY2hGaWVsZCIsImZpbHRlckl0ZW1zIiwiQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJGaWx0ZXJCYXIuYmxvY2sudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5U2V0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IGpzeCBmcm9tIFwic2FwL2ZlL2Jhc2UvanN4LXJ1bnRpbWUvanN4XCI7XG5pbXBvcnQgVGVtcGxhdGVNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVNb2RlbFwiO1xuaW1wb3J0IHtcblx0YmxvY2tBZ2dyZWdhdGlvbixcblx0YmxvY2tBdHRyaWJ1dGUsXG5cdGJsb2NrRXZlbnQsXG5cdGRlZmluZUJ1aWxkaW5nQmxvY2tcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncyB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IHsgc3RvcmVPYmplY3RWYWx1ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2VcIjtcbmltcG9ydCAqIGFzIE1ldGFNb2RlbENvbnZlcnRlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCB7IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHR5cGUgeyBQYWdlQ29udGV4dFBhdGhUYXJnZXQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9UZW1wbGF0ZUNvbnZlcnRlclwiO1xuaW1wb3J0IHsgZ2V0U2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9EYXRhVmlzdWFsaXphdGlvblwiO1xuaW1wb3J0IEZpbHRlclJlc3RyaWN0aW9ucyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9Db21tb24vZmlsdGVyL0ZpbHRlclJlc3RyaWN0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJGaWVsZCBhcyBDb252ZXJ0ZWRGaWx0ZXJGaWVsZCwgTWFuaWZlc3RGaWx0ZXJGaWVsZCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvRmlsdGVyQmFyXCI7XG5pbXBvcnQgeyBnZXRTZWxlY3Rpb25GaWVsZHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb250cm9scy9MaXN0UmVwb3J0L0ZpbHRlckJhclwiO1xuaW1wb3J0IHsgZ2V0U2VhcmNoUmVzdHJpY3Rpb25zIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWV0YU1vZGVsRnVuY3Rpb25cIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IENvbW1vbkhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9Db21tb25IZWxwZXJcIjtcbmltcG9ydCBGaWVsZEhlbHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZEhlbHBlclwiO1xuaW1wb3J0IHsgbWF4Q29uZGl0aW9ucyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJGaWVsZEhlbHBlclwiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IERyYWZ0RWRpdFN0YXRlIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9EcmFmdEVkaXRTdGF0ZVwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyRmllbGQgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckZpZWxkXCI7XG5pbXBvcnQgeyBnZXRGaWx0ZXJDb25kaXRpb25zIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckhlbHBlclwiO1xuaW1wb3J0IEN1c3RvbUZyYWdtZW50QmxvY2sgZnJvbSBcInNhcC9mZS9tYWNyb3MvZnBtL0N1c3RvbUZyYWdtZW50LmJsb2NrXCI7XG5pbXBvcnQgSW50ZXJuYWxGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC9GaWx0ZXJGaWVsZC5ibG9ja1wiO1xuaW1wb3J0IFNlbGVjdCBmcm9tIFwic2FwL20vU2VsZWN0XCI7XG5pbXBvcnQgdHlwZSBVSTVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9DdXN0b21EYXRhXCI7XG5pbXBvcnQgTGlzdEl0ZW0gZnJvbSBcInNhcC91aS9jb3JlL0xpc3RJdGVtXCI7XG5pbXBvcnQgRmllbGRIZWxwQ3VzdG9tRGF0YSBmcm9tIFwic2FwL3VpL2NvcmUvZmllbGRoZWxwL0ZpZWxkSGVscEN1c3RvbURhdGFcIjtcbmltcG9ydCB0eXBlIHsgSUNvbnRleHQgfSBmcm9tIFwic2FwL3VpL2NvcmUvdXRpbC9YTUxQcmVwcm9jZXNzb3JcIjtcbmltcG9ydCBNRENGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJGaWVsZFwiO1xuaW1wb3J0IHR5cGUgeyBDb25kaXRpb25PYmplY3QgfSBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vQ29uZGl0aW9uXCI7XG5pbXBvcnQgdHlwZSB7XG5cdEZpbHRlckJhckJhc2UkRmlsdGVyc0NoYW5nZWRFdmVudCxcblx0RmlsdGVyQmFyQmFzZSRGaWx0ZXJzQ2hhbmdlZEV2ZW50UGFyYW1ldGVycyxcblx0RmlsdGVyQmFyQmFzZSRTZWFyY2hFdmVudFxufSBmcm9tIFwic2FwL3VpL21kYy9maWx0ZXJiYXIvRmlsdGVyQmFyQmFzZVwiO1xuaW1wb3J0IFBlcnNpc3RlbmNlUHJvdmlkZXIgZnJvbSBcInNhcC91aS9tZGMvcDEzbi9QZXJzaXN0ZW5jZVByb3ZpZGVyXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFWNENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IEV2ZW50SGFuZGxlciB9IGZyb20gXCJ0eXBlcy9leHRlbnNpb25fdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlJbmZvIH0gZnJvbSBcIi4uL0RlbGVnYXRlVXRpbFwiO1xuaW1wb3J0IFZhbHVlSGVscCBmcm9tIFwiLi4vVmFsdWVIZWxwXCI7XG5pbXBvcnQgQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlciBmcm9tIFwiLi4vY29udHJvbHMvQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlclwiO1xuaW1wb3J0IEZFRmlsdGVyQmFyIGZyb20gXCIuLi9jb250cm9scy9GaWx0ZXJCYXJcIjtcbmltcG9ydCBTbG90Q29sdW1uIGZyb20gXCIuLi90YWJsZS9TbG90Q29sdW1uXCI7XG5pbXBvcnQgRmlsdGVyQmFyQVBJIGZyb20gXCIuL0ZpbHRlckJhckFQSVwiO1xuXG5jb25zdCBzZXRDdXN0b21GaWx0ZXJGaWVsZFByb3BlcnRpZXMgPSBmdW5jdGlvbiAoY2hpbGRGaWx0ZXJGaWVsZDogRWxlbWVudCwgYWdncmVnYXRpb25PYmplY3Q6IEZpbHRlckZpZWxkKTogRmlsdGVyRmllbGQge1xuXHRhZ2dyZWdhdGlvbk9iamVjdC5zbG90TmFtZSA9IGFnZ3JlZ2F0aW9uT2JqZWN0LmtleTtcblx0YWdncmVnYXRpb25PYmplY3Qua2V5ID0gYWdncmVnYXRpb25PYmplY3Qua2V5LnJlcGxhY2UoXCJJbmxpbmVYTUxfXCIsIFwiXCIpO1xuXHRhZ2dyZWdhdGlvbk9iamVjdC5wcm9wZXJ0eSA9IGNoaWxkRmlsdGVyRmllbGQuZ2V0QXR0cmlidXRlKFwicHJvcGVydHlcIikhO1xuXHRhZ2dyZWdhdGlvbk9iamVjdC5sYWJlbCA9IGNoaWxkRmlsdGVyRmllbGQuZ2V0QXR0cmlidXRlKFwibGFiZWxcIikhO1xuXHRhZ2dyZWdhdGlvbk9iamVjdC5yZXF1aXJlZCA9IGNoaWxkRmlsdGVyRmllbGQuZ2V0QXR0cmlidXRlKFwicmVxdWlyZWRcIikgPT09IFwidHJ1ZVwiO1xuXHRhZ2dyZWdhdGlvbk9iamVjdC50ZW1wbGF0ZSA9IGNoaWxkRmlsdGVyRmllbGQuZ2V0QXR0cmlidXRlKFwidGVtcGxhdGVcIikgYXMgdW5rbm93biBhcyBDb250cm9sOyAvLyBCdXQgaXQncyBhIHN0cmluZztcblx0cmV0dXJuIGFnZ3JlZ2F0aW9uT2JqZWN0O1xufTtcblxuLyoqXG4gKiBCdWlsZGluZyBibG9jayBmb3IgY3JlYXRpbmcgYSBGaWx0ZXJCYXIgYmFzZWQgb24gdGhlIG1ldGFkYXRhIHByb3ZpZGVkIGJ5IE9EYXRhIFY0LlxuICpcbiAqXG4gKiBVc2FnZSBleGFtcGxlOlxuICogPHByZT5cbiAqICZsdDttYWNyb3M6RmlsdGVyQmFyXG4gKiBpZD1cIlNvbWVJRFwiXG4gKiBzaG93QWRhcHRGaWx0ZXJzQnV0dG9uPVwidHJ1ZVwiXG4gKiBwMTNuTW9kZT1bXCJJdGVtXCIsXCJWYWx1ZVwiXVxuICogbGlzdEJpbmRpbmdOYW1lcyA9IFwic2FwLmZlLnRhYmxlQmluZGluZ1wiXG4gKiBsaXZlTW9kZT1cInRydWVcIlxuICogc2VhcmNoPVwiLmhhbmRsZXJzLm9uU2VhcmNoXCJcbiAqIGZpbHRlckNoYW5nZWQ9XCIuaGFuZGxlcnMub25GaWx0ZXJzQ2hhbmdlZFwiXG4gKiAvJmd0O1xuICogPC9wcmU+XG4gKlxuICogQnVpbGRpbmcgYmxvY2sgZm9yIGNyZWF0aW5nIGEgRmlsdGVyQmFyIGJhc2VkIG9uIHRoZSBtZXRhZGF0YSBwcm92aWRlZCBieSBPRGF0YSBWNC5cbiAqIEBzaW5jZSAxLjk0LjBcbiAqL1xuQGRlZmluZUJ1aWxkaW5nQmxvY2soe1xuXHRuYW1lOiBcIkZpbHRlckJhclwiLFxuXHRuYW1lc3BhY2U6IFwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiLFxuXHRwdWJsaWNOYW1lc3BhY2U6IFwic2FwLmZlLm1hY3Jvc1wiLFxuXHRyZXR1cm5UeXBlczogW1wic2FwLmZlLm1hY3Jvcy5maWx0ZXJCYXIuRmlsdGVyQmFyQVBJXCJdXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsdGVyQmFyQmxvY2sgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2Uge1xuXHQvKipcblx0ICogSUQgb2YgdGhlIEZpbHRlckJhclxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdGlkPzogc3RyaW5nO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0dmlzaWJsZT86IHN0cmluZztcblxuXHQvKipcblx0ICogc2VsZWN0aW9uRmllbGRzIHRvIGJlIGRpc3BsYXllZFxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCJcblx0fSlcblx0c2VsZWN0aW9uRmllbGRzPzogQ29udmVydGVkRmlsdGVyRmllbGRbXSB8IENvbnRleHQ7XG5cblx0QGJsb2NrQXR0cmlidXRlKHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRmaWx0ZXJCYXJEZWxlZ2F0ZT86IHN0cmluZztcblxuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic2FwLnVpLm1vZGVsLkNvbnRleHRcIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRtZXRhUGF0aD86IENvbnRleHQ7XG5cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0Y29udGV4dFBhdGg/OiBDb250ZXh0O1xuXG5cdC8qKlxuXHQgKiBEaXNwbGF5cyBwb3NzaWJsZSBlcnJvcnMgZHVyaW5nIHRoZSBzZWFyY2ggaW4gYSBtZXNzYWdlIGJveFxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRzaG93TWVzc2FnZXMgPSBmYWxzZTtcblxuXHQvKipcblx0ICogSUQgb2YgdGhlIGFzc2lnbmVkIHZhcmlhbnQgbWFuYWdlbWVudFxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHZhcmlhbnRCYWNrcmVmZXJlbmNlPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBEb24ndCBzaG93IHRoZSBiYXNpYyBzZWFyY2ggZmllbGRcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0aGlkZUJhc2ljU2VhcmNoPzogYm9vbGVhbjtcblxuXHQvKipcblx0ICogRW5hYmxlcyB0aGUgZmFsbGJhY2sgdG8gc2hvdyBhbGwgZmllbGRzIG9mIHRoZSBFbnRpdHlUeXBlIGFzIGZpbHRlciBmaWVsZHMgaWYgY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuU2VsZWN0aW9uRmllbGRzIGFyZSBub3QgcHJlc2VudFxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRlbmFibGVGYWxsYmFjayA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBIYW5kbGVzIHZpc2liaWxpdHkgb2YgdGhlICdBZGFwdCBGaWx0ZXJzJyBidXR0b24gb24gdGhlIEZpbHRlckJhclxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRzaG93QWRhcHRGaWx0ZXJzQnV0dG9uID0gdHJ1ZTtcblxuXHQvKipcblx0ICogU3BlY2lmaWVzIHRoZSBwZXJzb25hbGl6YXRpb24gb3B0aW9ucyBmb3IgdGhlIGZpbHRlciBiYXIuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nW11cIlxuXHR9KVxuXHRwMTNuTW9kZSA9IFwiSXRlbSxWYWx1ZVwiO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRwcm9wZXJ0eUluZm8/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIFNwZWNpZmllcyB0aGUgU2VtYXRpYyBEYXRlIFJhbmdlIG9wdGlvbiBmb3IgdGhlIGZpbHRlciBiYXIuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdHVzZVNlbWFudGljRGF0ZVJhbmdlID0gdHJ1ZTtcblxuXHQvKipcblx0ICogU3BlY2lmaWVzIHRoZSBuYXZpZ2F0aW9uIHByb3BlcnRpZXMgb3B0aW9uIGZvciB0aGUgZmlsdGVyIGJhci5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdbXVwiXG5cdH0pXG5cdG5hdmlnYXRpb25Qcm9wZXJ0aWVzPzogc3RyaW5nW107XG5cblx0LyoqXG5cdCAqIElmIHNldCwgdGhlIHNlYXJjaCBpcyBhdXRvbWF0aWNhbGx5IHRyaWdnZXJlZCB3aGVuIGEgZmlsdGVyIHZhbHVlIGlzIGNoYW5nZWQuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdGxpdmVNb2RlID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIEZpbHRlciBjb25kaXRpb25zIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGZpbHRlciBiYXJcblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRyZXF1aXJlZDogZmFsc2Vcblx0fSlcblx0ZmlsdGVyQ29uZGl0aW9ucz86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogSWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBhbGwgc2VhcmNoIHJlcXVlc3RzIGFyZSBpZ25vcmVkLiBPbmNlIGl0IGhhcyBiZWVuIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4sXG5cdCAqIGEgc2VhcmNoIGlzIHRyaWdnZXJlZCBpbW1lZGlhdGVseSBpZiBvbmUgb3IgbW9yZSBzZWFyY2ggcmVxdWVzdHMgaGF2ZSBiZWVuIHRyaWdnZXJlZCBpbiB0aGUgbWVhbnRpbWVcblx0ICogYnV0IHdlcmUgaWdub3JlZCBiYXNlZCBvbiB0aGUgc2V0dGluZy5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0c3VzcGVuZFNlbGVjdGlvbiA9IGZhbHNlO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0aXNEcmFmdENvbGxhYm9yYXRpdmUgPSBmYWxzZTtcblxuXHQvKipcblx0ICogSWQgb2YgY29udHJvbCB0aGF0IHdpbGwgYWxsb3cgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIG5vcm1hbCBhbmQgdmlzdWFsIGZpbHRlclxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHRvZ2dsZUNvbnRyb2xJZD86IHN0cmluZztcblxuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0aW5pdGlhbExheW91dCA9IFwiY29tcGFjdFwiO1xuXG5cdC8qKlxuXHQgKiBIYW5kbGVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSAnQ2xlYXInIGJ1dHRvbiBvbiB0aGUgRmlsdGVyQmFyLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRzaG93Q2xlYXJCdXR0b24gPSBmYWxzZTtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdF9hcHBseUlkVG9Db250ZW50ID0gZmFsc2U7XG5cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRkaXNhYmxlRHJhZnRFZGl0U3RhdGVGaWx0ZXIgPSBmYWxzZTtcblxuXHQvKipcblx0ICogVGVtcG9yYXJ5IHdvcmthcm91bmQgb25seVxuXHQgKiBwYXRoIHRvIGNvbnRleHRQYXRoIHRvIGJlIHVzZWQgYnkgY2hpbGQgZmlsdGVyZmllbGRzXG5cdCAqL1xuXHRfaW50ZXJuYWxDb250ZXh0UGF0aCE6IENvbnRleHQ7XG5cblx0X3BhcmFtZXRlcnM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRfYW5ub3RhdGlvblBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciB0byByZWFjdCB0byB0aGUgc2VhcmNoIGV2ZW50IG9mIHRoZSBGaWx0ZXJCYXJcblx0ICovXG5cdEBibG9ja0V2ZW50KClcblx0c2VhcmNoPzogRXZlbnRIYW5kbGVyPFVJNUV2ZW50PHt9LCBGaWx0ZXJCYXJBUEk+PjtcblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciB0byByZWFjdCB0byB0aGUgZmlsdGVyQ2hhbmdlIGV2ZW50IG9mIHRoZSBGaWx0ZXJCYXJcblx0ICovXG5cdEBibG9ja0V2ZW50KClcblx0ZmlsdGVyQ2hhbmdlZD86IEV2ZW50SGFuZGxlcjxVSTVFdmVudDxGaWx0ZXJCYXJCYXNlJEZpbHRlcnNDaGFuZ2VkRXZlbnRQYXJhbWV0ZXJzLCBGaWx0ZXJCYXJBUEk+PjtcblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciB0byByZWFjdCB0byB0aGUgZmlsdGVyQ2hhbmdlZCBldmVudCBvZiB0aGUgRmlsdGVyQmFyLiBFeHBvc2VzIHBhcmFtZXRlcnMgZnJvbSB0aGUgTURDIGZpbHRlciBiYXJcblx0ICovXG5cdEBibG9ja0V2ZW50KClcblx0aW50ZXJuYWxGaWx0ZXJDaGFuZ2VkPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIHJlYWN0IHRvIHRoZSBzZWFyY2ggZXZlbnQgb2YgdGhlIEZpbHRlckJhci4gRXhwb3NlcyBwYXJhbWV0ZXJlcyBmcm9tIHRoZSBNREMgZmlsdGVyIGJhclxuXHQgKi9cblx0QGJsb2NrRXZlbnQoKVxuXHRpbnRlcm5hbFNlYXJjaD86IHN0cmluZztcblxuXHQvKipcblx0ICogRXZlbnQgaGFuZGxlciB0byByZWFjdCB0byB0aGUgYWZ0ZXJDbGVhciBldmVudCBvZiB0aGUgRmlsdGVyQmFyXG5cdCAqL1xuXHRAYmxvY2tFdmVudCgpXG5cdGFmdGVyQ2xlYXI/OiBFdmVudEhhbmRsZXI8VUk1RXZlbnQ8e30sIEZpbHRlckJhckFQST4+O1xuXG5cdEBibG9ja0FnZ3JlZ2F0aW9uKHtcblx0XHR0eXBlOiBcInNhcC5mZS5tYWNyb3MuZmlsdGVyQmFyLkZpbHRlckZpZWxkXCIsXG5cdFx0aXNQdWJsaWM6IHRydWUsXG5cdFx0aGFzVmlydHVhbE5vZGU6IHRydWUsXG5cdFx0cHJvY2Vzc0FnZ3JlZ2F0aW9uczogc2V0Q3VzdG9tRmlsdGVyRmllbGRQcm9wZXJ0aWVzXG5cdH0pXG5cdGZpbHRlckZpZWxkcz86IEZpbHRlckZpZWxkO1xuXG5cdF9hcGlJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdF9jb250ZW50SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRfdmFsdWVIZWxwczogQXJyYXk8c3RyaW5nPiB8IFwiXCIgfCB1bmRlZmluZWQ7XG5cblx0X2ZpbHRlckZpZWxkczogQXJyYXk8c3RyaW5nPiB8IFwiXCIgfCB1bmRlZmluZWQ7XG5cblx0c2hvd0RyYWZ0RWRpdFN0YXRlID0gZmFsc2U7XG5cblx0ZGVzaWdudGltZT86IHN0cmluZztcblxuXHQvKipcblx0ICogVGhpcyBtb2RlIG11c3QgYmUgdXNlZCB3aGVuIGl0IGlzIGNlcnRhaW4gdGhhdCBhIGNvbnRyb2wgbXVzdCBub3QgcGVyc2lzdCBpdMK0cyBwZXJzb25hbGl6YXRpb24gc3RhdGUgdXBvbiBpbml0aWFsaXphdGlvbi5cblx0ICogQHVpNS1leHBlcmltZW50YWwtc2luY2UgMS4xMzYuMFxuXHQgKiBAc2luY2UgMS4xMzYuMFxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRpZ25vcmVQZXJzb25hbGl6YXRpb25DaGFuZ2VzID0gZmFsc2U7XG5cblx0Y29uc3RydWN0b3IocHJvcHM6IFByb3BlcnRpZXNPZjxGaWx0ZXJCYXJCbG9jaz4sIGNvbmZpZ3VyYXRpb246IHVua25vd24sIG1TZXR0aW5nczogVGVtcGxhdGVQcm9jZXNzb3JTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BzLCBjb25maWd1cmF0aW9uLCBtU2V0dGluZ3MpO1xuXHRcdGlmICghdGhpcy5tZXRhUGF0aCkge1xuXHRcdFx0TG9nLmVycm9yKFwiQ29udGV4dCBQYXRoIG5vdCBhdmFpbGFibGUgZm9yIEZpbHRlckJhciBNYWNyby5cIik7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IHNNZXRhUGF0aCA9IHRoaXMubWV0YVBhdGguZ2V0UGF0aCgpO1xuXHRcdGxldCBlbnRpdHlUeXBlUGF0aCA9IFwiXCI7XG5cdFx0Y29uc3QgbWV0YVBhdGhQYXJ0cyA9IHNNZXRhUGF0aD8uc3BsaXQoXCIvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvbkZpZWxkc1wiKSB8fCBbXTsgLy8gWzBdOiBlbnRpdHlUeXBlUGF0aCwgWzFdOiBTRiBRdWFsaWZpZXIuXG5cdFx0aWYgKG1ldGFQYXRoUGFydHMubGVuZ3RoID4gMCkge1xuXHRcdFx0ZW50aXR5VHlwZVBhdGggPSB0aGlzLmdldEVudGl0eVR5cGVQYXRoKG1ldGFQYXRoUGFydHMpO1xuXHRcdH1cblx0XHRjb25zdCBzRW50aXR5U2V0UGF0aCA9IE1vZGVsSGVscGVyLmdldEVudGl0eVNldFBhdGgoZW50aXR5VHlwZVBhdGgpO1xuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSB0aGlzLmNvbnRleHRQYXRoPy5nZXRNb2RlbCgpO1xuXHRcdHRoaXMuX2ludGVybmFsQ29udGV4dFBhdGggPSBvTWV0YU1vZGVsPy5jcmVhdGVCaW5kaW5nQ29udGV4dChlbnRpdHlUeXBlUGF0aCkgYXMgQ29udGV4dDtcblx0XHRjb25zdCBhbm5vdGF0aW9uUGF0aDogc3RyaW5nID0gXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuU2VsZWN0aW9uRmllbGRzXCIgKyAoKG1ldGFQYXRoUGFydHMubGVuZ3RoICYmIG1ldGFQYXRoUGFydHNbMV0pIHx8IFwiXCIpO1xuXHRcdGNvbnN0IHBhcmVudENvbnRleHRQYXRoID0gbVNldHRpbmdzPy5mdWxsQ29udGV4dFBhdGggYXMgc3RyaW5nO1xuXHRcdGxldCBzT2JqZWN0UGF0aCA9IGFubm90YXRpb25QYXRoO1xuXHRcdGlmIChwYXJlbnRDb250ZXh0UGF0aCAhPT0gXCJcIiAmJiB0aGlzLl9pbnRlcm5hbENvbnRleHRQYXRoLmdldFBhdGgoKT8uc3RhcnRzV2l0aChwYXJlbnRDb250ZXh0UGF0aCkpIHtcblx0XHRcdHNPYmplY3RQYXRoID0gc01ldGFQYXRoLnJlcGxhY2UocGFyZW50Q29udGV4dFBhdGgsIFwiXCIpO1xuXHRcdH1cblx0XHR0aGlzLl9hbm5vdGF0aW9uUGF0aCA9IGFubm90YXRpb25QYXRoO1xuXHRcdGNvbnN0IG9FeHRyYVBhcmFtczogUmVjb3JkPHN0cmluZywgeyBmaWx0ZXJGaWVsZHM/OiBGaWx0ZXJGaWVsZCB9PiA9IHt9O1xuXHRcdGlmICh0aGlzLmZpbHRlckZpZWxkcykge1xuXHRcdFx0b0V4dHJhUGFyYW1zW3NPYmplY3RQYXRoXSA9IHtcblx0XHRcdFx0ZmlsdGVyRmllbGRzOiB0aGlzLmZpbHRlckZpZWxkc1xuXHRcdFx0fTtcblx0XHR9XG5cblx0XHRjb25zdCBvVmlzdWFsaXphdGlvbk9iamVjdFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHModGhpcy5faW50ZXJuYWxDb250ZXh0UGF0aCk7XG5cdFx0Y29uc3Qgb0NvbnZlcnRlckNvbnRleHQgPSB0aGlzLmdldENvbnZlcnRlckNvbnRleHQob1Zpc3VhbGl6YXRpb25PYmplY3RQYXRoLCB1bmRlZmluZWQsIG1TZXR0aW5ncywgb0V4dHJhUGFyYW1zKTtcblx0XHRpZiAoIXRoaXMucHJvcGVydHlJbmZvKSB7XG5cdFx0XHR0aGlzLnByb3BlcnR5SW5mbyA9IGdldFNlbGVjdGlvbkZpZWxkcyhvQ29udmVydGVyQ29udGV4dCwgW10sIGFubm90YXRpb25QYXRoKS5zUHJvcGVydHlJbmZvO1xuXHRcdH1cblxuXHRcdGNvbnN0IHRhcmdldEVudGl0eVNldCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyh0aGlzLm1ldGFQYXRoLCB0aGlzLmNvbnRleHRQYXRoKS50YXJnZXRFbnRpdHlTZXQgYXMgRW50aXR5U2V0O1xuXHRcdGlmICh0YXJnZXRFbnRpdHlTZXQ/LmFubm90YXRpb25zPy5Db21tb24/LkRyYWZ0Um9vdCAmJiAhdGhpcy5kaXNhYmxlRHJhZnRFZGl0U3RhdGVGaWx0ZXIpIHtcblx0XHRcdHRoaXMuc2hvd0RyYWZ0RWRpdFN0YXRlID0gdHJ1ZTtcblx0XHRcdHRoaXMuY2hlY2tJZkVkaXRpbmdGaWx0ZXJJc0Rpc2FibGVkKHRhcmdldEVudGl0eVNldCk7XG5cdFx0XHR0aGlzLmNoZWNrSWZDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQob01ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbCk7XG5cdFx0fVxuXG5cdFx0Ly9GaWx0ZXIgRmllbGRzIGFuZCB2YWx1ZXMgdG8gdGhlIGZpZWxkIGFyZSBmaWxsZWQgYmFzZWQgb24gdGhlIHNlbGVjdGlvbkZpZWxkcyBhbmQgdGhpcyB3b3VsZCBiZSBlbXB0eSBpbiBjYXNlIG9mIG1hY3JvIG91dHNpZGUgdGhlIEZFIHRlbXBsYXRlXG5cdFx0aWYgKCF0aGlzLnNlbGVjdGlvbkZpZWxkcykge1xuXHRcdFx0Y29uc3Qgb1NlbGVjdGlvbkZpZWxkcyA9IGdldFNlbGVjdGlvbkZpZWxkcyhvQ29udmVydGVyQ29udGV4dCwgW10sIGFubm90YXRpb25QYXRoKS5zZWxlY3Rpb25GaWVsZHM7XG5cdFx0XHR0aGlzLnNlbGVjdGlvbkZpZWxkcyA9IG5ldyBUZW1wbGF0ZU1vZGVsKG9TZWxlY3Rpb25GaWVsZHMsIG9NZXRhTW9kZWwgYXMgT0RhdGFNZXRhTW9kZWwpLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKTtcblx0XHRcdGNvbnN0IHZpZXdEYXRhID0gbVNldHRpbmdzPy5tb2RlbHM/LnZpZXdEYXRhPy5nZXREYXRhKCk7XG5cdFx0XHRjb25zdCBvRW50aXR5VHlwZSA9IG9Db252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSxcblx0XHRcdFx0b1NlbGVjdGlvblZhcmlhbnQgPSBnZXRTZWxlY3Rpb25WYXJpYW50KG9FbnRpdHlUeXBlLCBvQ29udmVydGVyQ29udGV4dCksXG5cdFx0XHRcdG9FbnRpdHlTZXRDb250ZXh0ID0gKG9NZXRhTW9kZWwgYXMgT0RhdGFNZXRhTW9kZWwpLmdldENvbnRleHQoc0VudGl0eVNldFBhdGgpIGFzIE9EYXRhVjRDb250ZXh0LFxuXHRcdFx0XHRvRmlsdGVyQ29uZGl0aW9ucyA9IGdldEZpbHRlckNvbmRpdGlvbnMoXG5cdFx0XHRcdFx0b0VudGl0eVNldENvbnRleHQgYXMgdW5rbm93biBhcyBJQ29udGV4dCwgLy8gV3JvbmcgYnV0IHNvbWVob3cgd29ya3MgPyxcblx0XHRcdFx0XHR7IHNlbGVjdGlvblZhcmlhbnQ6IG9TZWxlY3Rpb25WYXJpYW50IH0sXG5cdFx0XHRcdFx0b0VudGl0eVNldENvbnRleHQuZ2V0T2JqZWN0KCksXG5cdFx0XHRcdFx0dmlld0RhdGEsXG5cdFx0XHRcdFx0dGhpcy5zaG93RHJhZnRFZGl0U3RhdGVcblx0XHRcdFx0KTtcblx0XHRcdHRoaXMuZmlsdGVyQ29uZGl0aW9ucyA9IG9GaWx0ZXJDb25kaXRpb25zO1xuXHRcdH1cblx0XHR0aGlzLl9wcm9jZXNzUHJvcGVydHlJbmZvcyh0aGlzLnByb3BlcnR5SW5mbywgb01ldGFNb2RlbCk7XG5cblx0XHRpZiAodGhpcy5fYXBwbHlJZFRvQ29udGVudCkge1xuXHRcdFx0dGhpcy5fYXBpSWQgPSB0aGlzLmlkICsgXCI6OkZpbHRlckJhclwiO1xuXHRcdFx0dGhpcy5fY29udGVudElkID0gdGhpcy5pZDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fYXBpSWQgPSB0aGlzLmlkO1xuXHRcdFx0dGhpcy5fY29udGVudElkID0gdGhpcy5nZXRDb250ZW50SWQodGhpcy5pZCArIFwiXCIpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLmhpZGVCYXNpY1NlYXJjaCAhPT0gdHJ1ZSkge1xuXHRcdFx0Y29uc3Qgb1NlYXJjaFJlc3RyaWN0aW9uQW5ub3RhdGlvbiA9IGdldFNlYXJjaFJlc3RyaWN0aW9ucyhzRW50aXR5U2V0UGF0aCwgb01ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbCk7XG5cdFx0XHR0aGlzLmhpZGVCYXNpY1NlYXJjaCA9IEJvb2xlYW4ob1NlYXJjaFJlc3RyaWN0aW9uQW5ub3RhdGlvbiAmJiAhb1NlYXJjaFJlc3RyaWN0aW9uQW5ub3RhdGlvbi5TZWFyY2hhYmxlKTtcblx0XHR9XG5cdFx0anN4LnJlbmRlckFzWE1MKCgpID0+IHRoaXMucHJvY2Vzc1NlbGVjdGlvbkZpZWxkcygpKTtcblxuXHRcdHRoaXMuZGVzaWdudGltZSA9IHRoaXMuZ2V0RGVzaWdudGltZSgpO1xuXHR9XG5cblx0X3Byb2Nlc3NQcm9wZXJ0eUluZm9zKHByb3BlcnR5SW5mbzogc3RyaW5nLCBtb2RlbDogT0RhdGFNZXRhTW9kZWwpOiB2b2lkIHtcblx0XHRjb25zdCBhUGFyYW1ldGVyRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdGlmIChwcm9wZXJ0eUluZm8pIHtcblx0XHRcdGNvbnN0IHNGZXRjaGVkUHJvcGVydGllcyA9IHByb3BlcnR5SW5mby5yZXBsYWNlKC9cXFxcey9nLCBcIntcIikucmVwbGFjZSgvXFxcXH0vZywgXCJ9XCIpO1xuXHRcdFx0Y29uc3QgYUZldGNoZWRQcm9wZXJ0aWVzID0gSlNPTi5wYXJzZShzRmV0Y2hlZFByb3BlcnRpZXMpO1xuXHRcdFx0Y29uc3QgZWRpdFN0YXRlTGFiZWwgPSB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiRklMVEVSQkFSX0VESVRJTkdfU1RBVFVTXCIpO1xuXHRcdFx0YUZldGNoZWRQcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24gKHByb3BJbmZvOiBQcm9wZXJ0eUluZm8pIHtcblx0XHRcdFx0cHJvcEluZm8ua2V5ID0gcHJvcEluZm8ubmFtZTtcblx0XHRcdFx0aWYgKHByb3BJbmZvLmlzUGFyYW1ldGVyKSB7XG5cdFx0XHRcdFx0YVBhcmFtZXRlckZpZWxkcy5wdXNoKHByb3BJbmZvLm5hbWUpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChwcm9wSW5mby5wYXRoID09PSBcIiRlZGl0U3RhdGVcIikge1xuXHRcdFx0XHRcdHByb3BJbmZvLmxhYmVsID0gZWRpdFN0YXRlTGFiZWw7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHByb3BJbmZvLmtleT8uaW5jbHVkZXMoXCIvXCIpKSB7XG5cdFx0XHRcdFx0Ly9UTyBETzogTmVlZCB0byBwbGFjZSB0aGlzIGxvZ2ljIGluIGNvbW1vbiBwbGFjZSB3aGVuIHdlIGNvdmVyIGZpbHRlclJldHJpY3Rpb25zIHdpdGggdGhpcyBCTEkgRklPUklURUNIUDEtMjUwODBcblx0XHRcdFx0XHRjb25zdCBhbm5vdGF0aW9uUGF0aCA9IChwcm9wSW5mbyBhcyBDb252ZXJ0ZWRGaWx0ZXJGaWVsZCkuYW5ub3RhdGlvblBhdGg7XG5cdFx0XHRcdFx0Y29uc3QgcHJvcGVydHlMb2NhdGlvblBhdGggPSBDb21tb25IZWxwZXIuZ2V0TG9jYXRpb25Gb3JQcm9wZXJ0eVBhdGgobW9kZWwsIGFubm90YXRpb25QYXRoKTtcblx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0eVBhdGggPSBhbm5vdGF0aW9uUGF0aC5yZXBsYWNlKGAke3Byb3BlcnR5TG9jYXRpb25QYXRofS9gLCBcIlwiKTtcblx0XHRcdFx0XHRjb25zdCBkYXRhTW9kZWwgPSBNZXRhTW9kZWxDb252ZXJ0ZXIuZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKG1vZGVsLmdldENvbnRleHQocHJvcGVydHlMb2NhdGlvblBhdGgpKTtcblxuXHRcdFx0XHRcdHByb3BJbmZvLnJlcXVpcmVkID0gRmlsdGVyUmVzdHJpY3Rpb25zLmdldEZpbHRlclJlc3RyaWN0aW9uc0J5RGF0YU1vZGVsKFxuXHRcdFx0XHRcdFx0ZGF0YU1vZGVsIGFzIERhdGFNb2RlbE9iamVjdFBhdGg8UGFnZUNvbnRleHRQYXRoVGFyZ2V0PlxuXHRcdFx0XHRcdCk/LlJlcXVpcmVkUHJvcGVydGllcz8uaW5jbHVkZXMocHJvcGVydHlQYXRoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMucHJvcGVydHlJbmZvID0gSlNPTi5zdHJpbmdpZnkoYUZldGNoZWRQcm9wZXJ0aWVzKS5yZXBsYWNlKC9cXHsvZywgXCJcXFxce1wiKS5yZXBsYWNlKC9cXH0vZywgXCJcXFxcfVwiKTtcblx0XHR9XG5cdFx0dGhpcy5fcGFyYW1ldGVycyA9IEpTT04uc3RyaW5naWZ5KGFQYXJhbWV0ZXJGaWVsZHMpO1xuXHR9XG5cblx0Y2hlY2tJZkVkaXRpbmdGaWx0ZXJJc0Rpc2FibGVkID0gKHRhcmdldEVudGl0eVNldDogRW50aXR5U2V0KTogdm9pZCA9PiB7XG5cdFx0aWYgKFxuXHRcdFx0dGFyZ2V0RW50aXR5U2V0LmFubm90YXRpb25zPy5DYXBhYmlsaXRpZXM/Lk5hdmlnYXRpb25SZXN0cmljdGlvbnM/LlJlc3RyaWN0ZWRQcm9wZXJ0aWVzPy5zb21lKFxuXHRcdFx0XHQocikgPT4gci5OYXZpZ2F0aW9uUHJvcGVydHk/LnZhbHVlID09PSBcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhXCIgJiYgci5GaWx0ZXJSZXN0cmljdGlvbnM/LkZpbHRlcmFibGUgPT09IGZhbHNlXG5cdFx0XHQpID09PSB0cnVlXG5cdFx0KSB7XG5cdFx0XHR0aGlzLnNob3dEcmFmdEVkaXRTdGF0ZSA9IGZhbHNlO1xuXHRcdH1cblx0fTtcblxuXHRjaGVja0lmQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkID0gKG9NZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsIHwgdW5kZWZpbmVkKTogdm9pZCA9PiB7XG5cdFx0aWYgKE1vZGVsSGVscGVyLmlzQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkKG9NZXRhTW9kZWwpKSB7XG5cdFx0XHR0aGlzLmlzRHJhZnRDb2xsYWJvcmF0aXZlID0gdHJ1ZTtcblx0XHR9XG5cdH07XG5cblx0Z2V0RW50aXR5VHlwZVBhdGggPSAobWV0YVBhdGhQYXJ0czogc3RyaW5nW10pOiBzdHJpbmcgPT4ge1xuXHRcdHJldHVybiBtZXRhUGF0aFBhcnRzWzBdLmVuZHNXaXRoKFwiL1wiKSA/IG1ldGFQYXRoUGFydHNbMF0gOiBtZXRhUGF0aFBhcnRzWzBdICsgXCIvXCI7XG5cdH07XG5cblx0Z2V0U2VhcmNoID0gKCk6IHN0cmluZyA9PiB7XG5cdFx0aWYgKCF0aGlzLmhpZGVCYXNpY1NlYXJjaCkge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0PE1EQ0ZpbHRlckZpZWxkXG5cdFx0XHRcdFx0aWQ9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkJhc2ljU2VhcmNoRmllbGRcIl0pfVxuXHRcdFx0XHRcdGxhYmVsPXtcIlwifVxuXHRcdFx0XHRcdHBsYWNlaG9sZGVyPVwie3NhcC5mZS5pMThuPk1fRklMVEVSQkFSX1NFQVJDSH1cIlxuXHRcdFx0XHRcdHByb3BlcnR5S2V5PVwiJHNlYXJjaFwiXG5cdFx0XHRcdFx0Y29uZGl0aW9ucz1cInskZmlsdGVycz4vY29uZGl0aW9ucy8kc2VhcmNofVwiXG5cdFx0XHRcdFx0ZGF0YVR5cGU9XCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmdcIlxuXHRcdFx0XHRcdG1heENvbmRpdGlvbnM9XCIxXCJcblx0XHRcdFx0XHRkYXRhVHlwZUNvbnN0cmFpbnRzPVwieydtYXhMZW5ndGgnOjEwMDB9XCJcblx0XHRcdFx0Lz5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiBcIlwiO1xuXHR9O1xuXG5cdHByb2Nlc3NTZWxlY3Rpb25GaWVsZHMgPSAoKTogdm9pZCA9PiB7XG5cdFx0bGV0IGRyYWZ0RWRpdFN0YXRlID0gXCJcIjtcblx0XHRpZiAodGhpcy5zaG93RHJhZnRFZGl0U3RhdGUpIHtcblx0XHRcdGNvbnN0IGRyYWZ0U3RhdGVzID0gRHJhZnRFZGl0U3RhdGUuZ2V0RWRpdFN0YXRlcyh0aGlzLmlzRHJhZnRDb2xsYWJvcmF0aXZlKTtcblx0XHRcdGNvbnN0IGxhYmVsID0gdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkZJTFRFUkJBUl9FRElUSU5HX1NUQVRVU1wiKTtcblx0XHRcdGRyYWZ0RWRpdFN0YXRlID0gKFxuXHRcdFx0XHQ8TURDRmlsdGVyRmllbGRcblx0XHRcdFx0XHRsYWJlbD17bGFiZWx9XG5cdFx0XHRcdFx0Y29uZGl0aW9ucz1cInskZmlsdGVycz4vY29uZGl0aW9ucy8kZWRpdFN0YXRlfVwiXG5cdFx0XHRcdFx0bWF4Q29uZGl0aW9ucz1cIjFcIlxuXHRcdFx0XHRcdGlkPXtnZW5lcmF0ZShbdGhpcy5pZCwgXCJGaWx0ZXJGaWVsZFwiLCBcIkRyYWZ0RWRpdGluZ1N0YXR1c1wiXSl9XG5cdFx0XHRcdFx0b3BlcmF0b3JzPVwiRVFcIlxuXHRcdFx0XHRcdGRhdGFUeXBlPVwic2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU3RyaW5nXCJcblx0XHRcdFx0XHRwcm9wZXJ0eUtleT1cIiRlZGl0U3RhdGVcIlxuXHRcdFx0XHRcdGRpc3BsYXk9XCJEZXNjcmlwdGlvblwiXG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0Y29udGVudEVkaXQ6IChcblx0XHRcdFx0XHRcdFx0PFNlbGVjdFxuXHRcdFx0XHRcdFx0XHRcdGlkPXtnZW5lcmF0ZShbdGhpcy5pZCwgXCJGaWx0ZXJGaWVsZFwiLCBcIkRyYWZ0RWRpdGluZ1N0YXR1c1NlbGVjdFwiXSl9XG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg9XCIxMDAlXCJcblx0XHRcdFx0XHRcdFx0XHRmb3JjZVNlbGVjdGlvbj1cInRydWVcIlxuXHRcdFx0XHRcdFx0XHRcdHNlbGVjdGVkS2V5PVwie3BhdGg6ICckZmllbGQ+L2NvbmRpdGlvbnMnLCB0eXBlOiAnc2FwLnVpLm1kYy5maWVsZC5Db25kaXRpb25zVHlwZSd9XCJcblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdHt7IGl0ZW1zOiBkcmFmdFN0YXRlcy5tYXAoKHN0YXRlKSA9PiA8TGlzdEl0ZW0ga2V5PXtzdGF0ZS5pZH0gdGV4dD17c3RhdGUuZGlzcGxheX0gLz4pIH19XG5cdFx0XHRcdFx0XHRcdDwvU2VsZWN0PlxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdDwvTURDRmlsdGVyRmllbGQ+XG5cdFx0XHQpO1xuXHRcdH1cblx0XHR0aGlzLl92YWx1ZUhlbHBzID0gW107XG5cdFx0dGhpcy5fZmlsdGVyRmllbGRzID0gW107XG5cdFx0dGhpcy5fZmlsdGVyRmllbGRzPy5wdXNoKGRyYWZ0RWRpdFN0YXRlKTtcblx0XHRpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3Rpb25GaWVsZHMpKSB7XG5cdFx0XHR0aGlzLnNlbGVjdGlvbkZpZWxkcyA9IHRoaXMuc2VsZWN0aW9uRmllbGRzIS5nZXRPYmplY3QoKSBhcyBDb252ZXJ0ZWRGaWx0ZXJGaWVsZFtdO1xuXHRcdH1cblx0XHR0aGlzLnNlbGVjdGlvbkZpZWxkcz8uZm9yRWFjaCgoc2VsZWN0aW9uRmllbGQ6IENvbnZlcnRlZEZpbHRlckZpZWxkKSA9PiB7XG5cdFx0XHRpZiAoc2VsZWN0aW9uRmllbGQuYXZhaWxhYmlsaXR5ID09PSBcIkRlZmF1bHRcIikge1xuXHRcdFx0XHR0aGlzLnNldEZpbHRlckZpZWxkc0FuZFZhbHVlSGVscHMoc2VsZWN0aW9uRmllbGQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHRoaXMuX2ZpbHRlckZpZWxkcyA9IHRoaXMuX2ZpbHRlckZpZWxkcz8ubGVuZ3RoID4gMCA/IHRoaXMuX2ZpbHRlckZpZWxkcyA6IFwiXCI7XG5cdFx0dGhpcy5fdmFsdWVIZWxwcyA9IHRoaXMuX3ZhbHVlSGVscHM/Lmxlbmd0aCA+IDAgPyB0aGlzLl92YWx1ZUhlbHBzIDogXCJcIjtcblx0fTtcblxuXHRnZXRQZXJzaXN0ZW5jZVByb3ZpZGVyKGZpbHRlckJhcklkOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdGlmICh0aGlzLmlnbm9yZVBlcnNvbmFsaXphdGlvbkNoYW5nZXMpIHtcblx0XHRcdHJldHVybiA8UGVyc2lzdGVuY2VQcm92aWRlciBpZD17Z2VuZXJhdGUoW2ZpbHRlckJhcklkLCBcIlBlcnNpc3RlbmNlUHJvdmlkZXJcIl0pfSBmb3I9e2ZpbHRlckJhcklkfSBtb2RlPXtcIlRyYW5zaWVudFwifSAvPjtcblx0XHR9XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdHNldEZpbHRlckZpZWxkc0FuZFZhbHVlSGVscHMgPSAoc2VsZWN0aW9uRmllbGQ6IENvbnZlcnRlZEZpbHRlckZpZWxkKTogdm9pZCA9PiB7XG5cdFx0aWYgKHNlbGVjdGlvbkZpZWxkLnRlbXBsYXRlID09PSB1bmRlZmluZWQgJiYgc2VsZWN0aW9uRmllbGQudHlwZSAhPT0gXCJTbG90XCIpIHtcblx0XHRcdHRoaXMucHVzaEZpbHRlckZpZWxkc0FuZFZhbHVlSGVscHMoc2VsZWN0aW9uRmllbGQpO1xuXHRcdH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9maWx0ZXJGaWVsZHMpKSB7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eSA9IHNlbGVjdGlvbkZpZWxkLmFubm90YXRpb25QYXRoO1xuXHRcdFx0Y29uc3QgcHJvcGVydHlDb250ZXh0ID0gdGhpcy5tZXRhUGF0aCEuZ2V0TW9kZWwoKS5jcmVhdGVCaW5kaW5nQ29udGV4dChwcm9wZXJ0eSk7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eU9iamVjdCA9IHByb3BlcnR5Q29udGV4dD8uZ2V0T2JqZWN0KCk7XG5cdFx0XHRsZXQgZmlsdGVyQ29udGVudDtcblx0XHRcdGlmIChzZWxlY3Rpb25GaWVsZC50eXBlID09PSBcIlNsb3RcIikge1xuXHRcdFx0XHRmaWx0ZXJDb250ZW50ID0gKFxuXHRcdFx0XHRcdDxTbG90Q29sdW1uIHRlbXBsYXRlSWQ9e3NlbGVjdGlvbkZpZWxkLnRlbXBsYXRlfT5cblx0XHRcdFx0XHRcdDxzbG90IG5hbWU9eyhzZWxlY3Rpb25GaWVsZCBhcyBNYW5pZmVzdEZpbHRlckZpZWxkKS5zbG90TmFtZSF9IC8+XG5cdFx0XHRcdFx0PC9TbG90Q29sdW1uPlxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIGlmIChzZWxlY3Rpb25GaWVsZC50ZW1wbGF0ZSkge1xuXHRcdFx0XHRmaWx0ZXJDb250ZW50ID0gKFxuXHRcdFx0XHRcdDxDdXN0b21GcmFnbWVudEJsb2NrXG5cdFx0XHRcdFx0XHRmcmFnbWVudE5hbWU9e3NlbGVjdGlvbkZpZWxkLnRlbXBsYXRlfVxuXHRcdFx0XHRcdFx0aWQ9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkN1c3RvbUZpbHRlckZpZWxkXCIsIHNlbGVjdGlvbkZpZWxkLmtleV0pfVxuXHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9e1wie2NvbnRleHRQYXRoPn1cIiBhcyB1bmtub3duIGFzIENvbnRleHR9XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdGxldCBtYXhDb25kaXRpb25WYWx1ZSA9IC0xO1xuXHRcdFx0aWYgKHByb3BlcnR5Q29udGV4dCkge1xuXHRcdFx0XHRtYXhDb25kaXRpb25WYWx1ZSA9IG1heENvbmRpdGlvbnMoc2VsZWN0aW9uRmllbGQuYW5ub3RhdGlvblBhdGgsIHsgY29udGV4dDogcHJvcGVydHlDb250ZXh0IH0pID8/IC0xO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5fZmlsdGVyRmllbGRzPy5wdXNoKFxuXHRcdFx0XHQ8TURDRmlsdGVyRmllbGRcblx0XHRcdFx0XHRpZD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiQ3VzdG9tRmlsdGVyRmllbGRcIiwgc2VsZWN0aW9uRmllbGQua2V5XSl9XG5cdFx0XHRcdFx0ZGVsZWdhdGU9e3sgbmFtZTogXCJzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkQmFzZURlbGVnYXRlXCIgfX1cblx0XHRcdFx0XHRwcm9wZXJ0eUtleT17c2VsZWN0aW9uRmllbGQuY29uZGl0aW9uUGF0aH1cblx0XHRcdFx0XHRsYWJlbD17c2VsZWN0aW9uRmllbGQubGFiZWx9XG5cdFx0XHRcdFx0ZGF0YVR5cGU9e3NlbGVjdGlvbkZpZWxkLmRhdGFUeXBlfVxuXHRcdFx0XHRcdG1heENvbmRpdGlvbnM9e21heENvbmRpdGlvblZhbHVlfVxuXHRcdFx0XHRcdGNvbmRpdGlvbnM9e2B7JGZpbHRlcnM+L2NvbmRpdGlvbnMvJHtzZWxlY3Rpb25GaWVsZC5jb25kaXRpb25QYXRofX1gfVxuXHRcdFx0XHRcdG9wZXJhdG9ycz17RmllbGRIZWxwZXIub3BlcmF0b3JzKFxuXHRcdFx0XHRcdFx0cHJvcGVydHlDb250ZXh0LFxuXHRcdFx0XHRcdFx0cHJvcGVydHlPYmplY3QsXG5cdFx0XHRcdFx0XHR0aGlzLnVzZVNlbWFudGljRGF0ZVJhbmdlLFxuXHRcdFx0XHRcdFx0c2VsZWN0aW9uRmllbGQuc2V0dGluZ3MgYXMgdW5rbm93biBhcyBzdHJpbmcsXG5cdFx0XHRcdFx0XHR0aGlzLmNvbnRleHRQYXRoIS5nZXRQYXRoKClcblx0XHRcdFx0XHQpfVxuXHRcdFx0XHRcdGRhdGFUeXBlQ29uc3RyYWludHM9eyhzZWxlY3Rpb25GaWVsZCBhcyB1bmtub3duIGFzIHsgY29uc3RyYWludHM6IHVua25vd24gfSkuY29uc3RyYWludHN9XG5cdFx0XHRcdFx0ZGF0YVR5cGVGb3JtYXRPcHRpb25zPXsoc2VsZWN0aW9uRmllbGQgYXMgdW5rbm93biBhcyB7IGZvcm1hdE9wdGlvbnM6IHVua25vd24gfSkuZm9ybWF0T3B0aW9uc31cblx0XHRcdFx0XHR2YWx1ZUhlbHA9e1widW5kZWZpbmVkXCJ9XG5cdFx0XHRcdFx0cmVxdWlyZWQ9e3NlbGVjdGlvbkZpZWxkLnJlcXVpcmVkfVxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IChcblx0XHRcdFx0XHRcdFx0PEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXJcblx0XHRcdFx0XHRcdFx0XHRjb3JlOnJlcXVpcmU9XCJ7aGFuZGxlcjogJ3NhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzJ31cIlxuXHRcdFx0XHRcdFx0XHRcdGlkPXtnZW5lcmF0ZShbdGhpcy5pZCwgXCJGaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyXCIsIHNlbGVjdGlvbkZpZWxkLmtleV0pfVxuXHRcdFx0XHRcdFx0XHRcdGJpbmRpbmc9e2B7ZmlsdGVyVmFsdWVzPi8ke0ZpbHRlclV0aWxzLmNvbmRpdGlvblRvTW9kZWxQYXRoKHNlbGVjdGlvbkZpZWxkLmNvbmRpdGlvblBhdGgpfX1gfVxuXHRcdFx0XHRcdFx0XHRcdGNvbmRpdGlvbnM9e1wie3BhdGg6ICckZmllbGQ+L2NvbmRpdGlvbnMnfVwiIGFzIHVua25vd24gYXMgQ29uZGl0aW9uT2JqZWN0W119XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHR7eyBjb250ZW50OiBmaWx0ZXJDb250ZW50IH19XG5cdFx0XHRcdFx0XHRcdDwvQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlcj5cblx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRjdXN0b21EYXRhOiBbXG5cdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJpc1Nsb3RcIn0gdmFsdWU9e3NlbGVjdGlvbkZpZWxkLnR5cGUgPT09IFwiU2xvdFwifSAvPixcblx0XHRcdFx0XHRcdFx0PEZpZWxkSGVscEN1c3RvbURhdGFcblx0XHRcdFx0XHRcdFx0XHRrZXk9e1wic2FwLXVpLURvY3VtZW50YXRpb25SZWZcIn1cblx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17YHtwYXJ0czogW3t2YWx1ZTogJ2FzQXJyYXknfSwge3ZhbHVlOiAnJHtzZWxlY3Rpb25GaWVsZC5kb2N1bWVudFJlZlRleHR9J31dLCBmb3JtYXR0ZXI6ICcuX2Zvcm1hdHRlcnMuU3RhbmRhcmRGb3JtYXR0ZXInfWB9XG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0PC9NRENGaWx0ZXJGaWVsZD5cblx0XHRcdCk7XG5cdFx0fVxuXHR9O1xuXG5cdF9nZXRDb250ZXh0UGF0aEZvckZpbHRlckZpZWxkKHNlbGVjdGlvbkZpZWxkOiBDb252ZXJ0ZWRGaWx0ZXJGaWVsZCwgZmlsdGVyQmFyQ29udGV4dFBhdGg6IENvbnRleHQpOiBzdHJpbmcge1xuXHRcdGxldCBjb250ZXh0UGF0aDogc3RyaW5nID0gZmlsdGVyQmFyQ29udGV4dFBhdGg/LmdldFBhdGgoKTtcblx0XHRpZiAoc2VsZWN0aW9uRmllbGQuaXNQYXJhbWV0ZXIpIHtcblx0XHRcdC8vIEV4YW1wbGU6XG5cdFx0XHQvLyBGaWx0ZXJCYXJDb250ZXh0UGF0aDogL0N1c3RvbWVyL1NldFxuXHRcdFx0Ly8gUGFyYW1ldGVyUHJvcGVydHlQYXRoOiAvQ3VzdG9tZXIvUF9DQ1xuXHRcdFx0Ly8gQ29udGV4dFBhdGhGb3JGaWx0ZXJGaWVsZDogL0N1c3RvbWVyXG5cdFx0XHRjb25zdCBhbm5vUGF0aCA9IHNlbGVjdGlvbkZpZWxkLmFubm90YXRpb25QYXRoO1xuXHRcdFx0Y29udGV4dFBhdGggPSBhbm5vUGF0aC5zdWJzdHJpbmcoMCwgYW5ub1BhdGgubGFzdEluZGV4T2YoXCIvXCIpICsgMSk7XG5cdFx0fVxuXHRcdHJldHVybiBjb250ZXh0UGF0aDtcblx0fVxuXG5cdHB1c2hGaWx0ZXJGaWVsZHNBbmRWYWx1ZUhlbHBzID0gKHNlbGVjdGlvbkZpZWxkOiBDb252ZXJ0ZWRGaWx0ZXJGaWVsZCk6IHZvaWQgPT4ge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KHRoaXMuX2ZpbHRlckZpZWxkcykpIHtcblx0XHRcdGNvbnN0IHZmID0geyAuLi5zZWxlY3Rpb25GaWVsZC52aXN1YWxGaWx0ZXIsIC4uLnsgaW5pdGlhbENoYXJ0QmluZGluZ0VuYWJsZWQ6ICF0aGlzLnN1c3BlbmRTZWxlY3Rpb24gfSB9O1xuXHRcdFx0dGhpcy5fZmlsdGVyRmllbGRzPy5wdXNoKFxuXHRcdFx0XHQ8SW50ZXJuYWxGaWx0ZXJGaWVsZFxuXHRcdFx0XHRcdGlkUHJlZml4PXtnZW5lcmF0ZShbdGhpcy5pZCwgXCJGaWx0ZXJGaWVsZFwiLCBDb21tb25IZWxwZXIuZ2V0TmF2aWdhdGlvblBhdGgoc2VsZWN0aW9uRmllbGQuYW5ub3RhdGlvblBhdGgpXSl9XG5cdFx0XHRcdFx0dmhJZFByZWZpeD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiRmlsdGVyRmllbGRWYWx1ZUhlbHBcIl0pfVxuXHRcdFx0XHRcdHByb3BlcnR5PXtzZWxlY3Rpb25GaWVsZC5hbm5vdGF0aW9uUGF0aCBhcyB1bmtub3duIGFzIENvbnRleHR9XG5cdFx0XHRcdFx0Y29udGV4dFBhdGg9e3RoaXMuX2dldENvbnRleHRQYXRoRm9yRmlsdGVyRmllbGQoc2VsZWN0aW9uRmllbGQsIHRoaXMuX2ludGVybmFsQ29udGV4dFBhdGgpIGFzIHVua25vd24gYXMgQ29udGV4dH1cblx0XHRcdFx0XHR1c2VTZW1hbnRpY0RhdGVSYW5nZT17dGhpcy51c2VTZW1hbnRpY0RhdGVSYW5nZX1cblx0XHRcdFx0XHRsYWJlbD17c2VsZWN0aW9uRmllbGQubGFiZWx9XG5cdFx0XHRcdFx0c2V0dGluZ3M9e0NvbW1vbkhlbHBlci5zdHJpbmdpZnlDdXN0b21EYXRhKHNlbGVjdGlvbkZpZWxkLnNldHRpbmdzKX1cblx0XHRcdFx0XHR2aXN1YWxGaWx0ZXI9e3NlbGVjdGlvbkZpZWxkLnZpc3VhbEZpbHRlciAhPT0gdW5kZWZpbmVkID8gKHN0b3JlT2JqZWN0VmFsdWUodmYpIGFzIHVua25vd24gYXMgQ29udGV4dCkgOiB1bmRlZmluZWR9XG5cdFx0XHRcdFx0ZWRpdE1vZGU9e2B7aW50ZXJuYWw+LyR7dGhpcy5pZH0vZmlsdGVyRmllbGRzLyR7c2VsZWN0aW9uRmllbGQuY29uZGl0aW9uUGF0aH0vZWRpdE1vZGV9YH1cblx0XHRcdFx0Lz5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdGlmIChBcnJheS5pc0FycmF5KHRoaXMuX3ZhbHVlSGVscHMpKSB7XG5cdFx0XHR0aGlzLl92YWx1ZUhlbHBzPy5wdXNoKFxuXHRcdFx0XHQ8VmFsdWVIZWxwXG5cdFx0XHRcdFx0aWRQcmVmaXg9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkVmFsdWVIZWxwXCJdKX1cblx0XHRcdFx0XHRjb25kaXRpb25Nb2RlbD1cIiRmaWx0ZXJzXCJcblx0XHRcdFx0XHRtZXRhUGF0aD17c2VsZWN0aW9uRmllbGQuYW5ub3RhdGlvblBhdGh9XG5cdFx0XHRcdFx0Y29udGV4dFBhdGg9e3RoaXMuX2dldENvbnRleHRQYXRoRm9yRmlsdGVyRmllbGQoc2VsZWN0aW9uRmllbGQsIHRoaXMuX2ludGVybmFsQ29udGV4dFBhdGgpfVxuXHRcdFx0XHRcdGZpbHRlckZpZWxkVmFsdWVIZWxwPXt0cnVlfVxuXHRcdFx0XHRcdHVzZVNlbWFudGljRGF0ZVJhbmdlPXt0aGlzLnVzZVNlbWFudGljRGF0ZVJhbmdlfVxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHR9XG5cdH07XG5cblx0LyoqXG5cdCAqIERldGVybWluZXMgdGhlIGRlc2lnbiB0aW1lIGZvciB0aGUgTURDIEZpbHRlckJhci5cblx0ICogQHJldHVybnMgVGhlIHZhbHVlIHRvIGJlIGFzc2lnbmVkIHRvIGR0OmRlc2lnbnRpbWVcblx0ICovXG5cdGdldERlc2lnbnRpbWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9kZXNpZ250aW1lL0ZpbHRlckJhci5kZXNpZ250aW1lXCI7XG5cdH1cblxuXHRnZXRUZW1wbGF0ZSgpOiBzdHJpbmcge1xuXHRcdGNvbnN0IGludGVybmFsQ29udGV4dFBhdGggPSB0aGlzLl9pbnRlcm5hbENvbnRleHRQYXRoPy5nZXRQYXRoKCk7XG5cdFx0bGV0IGZpbHRlckRlbGVnYXRlID0gXCJcIjtcblx0XHRpZiAodGhpcy5maWx0ZXJCYXJEZWxlZ2F0ZSkge1xuXHRcdFx0ZmlsdGVyRGVsZWdhdGUgPSB0aGlzLmZpbHRlckJhckRlbGVnYXRlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRmaWx0ZXJEZWxlZ2F0ZSA9IFwie25hbWU6J3NhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0ZpbHRlckJhckRlbGVnYXRlJywgcGF5bG9hZDoge2VudGl0eVR5cGVQYXRoOiAnXCIgKyBpbnRlcm5hbENvbnRleHRQYXRoICsgXCInfX1cIjtcblx0XHR9XG5cdFx0Ly8gYWZ0ZXIgcmVtb3ZpbmcgdGhlIHVud2FudGVkIHByb3BlcnRpZXMgUHJvcGVydHlJbmZvIGlzIGFkZGVkIHRvIHRoZSBjb250cm9sLCBhbmQgd2UgYWxzbyBzYXZlIHRoZSBmdWxsIHZlcnNpb24gYXMgY3VzdG9tIGRhdGEgZm9yIEZFIGludGVybmFsIHVzZVxuXHRcdGNvbnN0IF9wcm9wZXJ0eUluZm9Db250cm9sID0gRmlsdGVyVXRpbHMuZm9ybWF0UHJvcGVydHlJbmZvKHRoaXMucHJvcGVydHlJbmZvIGFzIHN0cmluZyk7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxGaWx0ZXJCYXJBUElcblx0XHRcdFx0aWQ9e3RoaXMuX2FwaUlkfVxuXHRcdFx0XHRtZXRhUGF0aD17dGhpcy5tZXRhUGF0aCEuZ2V0UGF0aCgpfVxuXHRcdFx0XHRzZWFyY2g9e3RoaXMuc2VhcmNofVxuXHRcdFx0XHRmaWx0ZXJDaGFuZ2VkPXt0aGlzLmZpbHRlckNoYW5nZWR9XG5cdFx0XHRcdGFmdGVyQ2xlYXI9e3RoaXMuYWZ0ZXJDbGVhcn1cblx0XHRcdFx0aW50ZXJuYWxTZWFyY2g9e3RoaXMuaW50ZXJuYWxTZWFyY2h9XG5cdFx0XHRcdGludGVybmFsRmlsdGVyQ2hhbmdlZD17dGhpcy5pbnRlcm5hbEZpbHRlckNoYW5nZWR9XG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0PEZFRmlsdGVyQmFyXG5cdFx0XHRcdFx0XHRcdGNvcmU6cmVxdWlyZT1cIntBUEk6ICdzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9GaWx0ZXJCYXJBUEknfVwiXG5cdFx0XHRcdFx0XHRcdGlkPXt0aGlzLl9jb250ZW50SWR9XG5cdFx0XHRcdFx0XHRcdGxpdmVNb2RlPXt0aGlzLmxpdmVNb2RlfVxuXHRcdFx0XHRcdFx0XHRkZWxlZ2F0ZT17ZmlsdGVyRGVsZWdhdGV9XG5cdFx0XHRcdFx0XHRcdHZhcmlhbnRCYWNrcmVmZXJlbmNlPXt0aGlzLmxpdmVNb2RlID8gdW5kZWZpbmVkIDogdGhpcy52YXJpYW50QmFja3JlZmVyZW5jZX1cblx0XHRcdFx0XHRcdFx0c2hvd0FkYXB0RmlsdGVyc0J1dHRvbj17dGhpcy5zaG93QWRhcHRGaWx0ZXJzQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHRzaG93Q2xlYXJCdXR0b249e3RoaXMuc2hvd0NsZWFyQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHRwMTNuTW9kZT17dGhpcy5wMTNuTW9kZX1cblx0XHRcdFx0XHRcdFx0c2VhcmNoPXtcIkFQSS5oYW5kbGVTZWFyY2goJGV2ZW50KVwiIGFzIHVua25vd24gYXMgKGU6IEZpbHRlckJhckJhc2UkU2VhcmNoRXZlbnQpID0+IHZvaWR9XG5cdFx0XHRcdFx0XHRcdGZpbHRlcnNDaGFuZ2VkPXtcIkFQSS5oYW5kbGVGaWx0ZXJDaGFuZ2VkKCRldmVudClcIiBhcyB1bmtub3duIGFzIChlOiBGaWx0ZXJCYXJCYXNlJEZpbHRlcnNDaGFuZ2VkRXZlbnQpID0+IHZvaWR9XG5cdFx0XHRcdFx0XHRcdGZpbHRlckNvbmRpdGlvbnM9e3RoaXMuZmlsdGVyQ29uZGl0aW9uc31cblx0XHRcdFx0XHRcdFx0c3VzcGVuZFNlbGVjdGlvbj17dGhpcy5zdXNwZW5kU2VsZWN0aW9ufVxuXHRcdFx0XHRcdFx0XHRzaG93TWVzc2FnZXM9e3RoaXMuc2hvd01lc3NhZ2VzfVxuXHRcdFx0XHRcdFx0XHR0b2dnbGVDb250cm9sPXt0aGlzLnRvZ2dsZUNvbnRyb2xJZH1cblx0XHRcdFx0XHRcdFx0aW5pdGlhbExheW91dD17dGhpcy5pbml0aWFsTGF5b3V0fVxuXHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0aGlzLnZpc2libGV9XG5cdFx0XHRcdFx0XHRcdGRpc2FibGVEcmFmdEVkaXRTdGF0ZUZpbHRlcj17dGhpcy5kaXNhYmxlRHJhZnRFZGl0U3RhdGVGaWx0ZXJ9XG5cdFx0XHRcdFx0XHRcdGR0OmRlc2lnbnRpbWU9e3RoaXMuZGVzaWdudGltZX1cblx0XHRcdFx0XHRcdFx0Y3VzdG9tRGF0YTplbnRpdHlUeXBlPXtpbnRlcm5hbENvbnRleHRQYXRofVxuXHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0XHRcdGN1c3RvbURhdGE6IFtcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJsb2NhbElkXCJ9IHZhbHVlPXt0aGlzLmlkfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJoaWRlQmFzaWNTZWFyY2hcIn0gdmFsdWU9e3RoaXMuaGlkZUJhc2ljU2VhcmNofSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJzaG93RHJhZnRFZGl0U3RhdGVcIn0gdmFsdWU9e3RoaXMuc2hvd0RyYWZ0RWRpdFN0YXRlfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJ1c2VTZW1hbnRpY0RhdGVSYW5nZVwifSB2YWx1ZT17dGhpcy51c2VTZW1hbnRpY0RhdGVSYW5nZX0gLz4sXG5cdFx0XHRcdFx0XHRcdFx0XHQ8Q3VzdG9tRGF0YSBrZXk9e1wicGFyYW1ldGVyc1wifSB2YWx1ZT17dGhpcy5fcGFyYW1ldGVyc30gLz4sXG5cdFx0XHRcdFx0XHRcdFx0XHQ8Q3VzdG9tRGF0YSBrZXk9e1wiZmVGaWx0ZXJJbmZvXCJ9IHZhbHVlPXt0aGlzLnByb3BlcnR5SW5mb30gLz4sXG5cdFx0XHRcdFx0XHRcdFx0XHQ8Q3VzdG9tRGF0YSBrZXk9e1wiYW5ub3RhdGlvblBhdGhcIn0gdmFsdWU9e3RoaXMuX2Fubm90YXRpb25QYXRofSAvPlxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0ZGVwZW5kZW50czogW3RoaXMuX3ZhbHVlSGVscHMsIHRoaXMuZ2V0UGVyc2lzdGVuY2VQcm92aWRlcih0aGlzLl9jb250ZW50SWQgYXMgc3RyaW5nKV0sXG5cdFx0XHRcdFx0XHRcdFx0YmFzaWNTZWFyY2hGaWVsZDogdGhpcy5nZXRTZWFyY2goKSxcblx0XHRcdFx0XHRcdFx0XHRmaWx0ZXJJdGVtczogdGhpcy5fZmlsdGVyRmllbGRzXG5cdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHQ8L0ZFRmlsdGVyQmFyPlxuXHRcdFx0XHRcdClcblx0XHRcdFx0fX1cblx0XHRcdDwvRmlsdGVyQmFyQVBJPlxuXHRcdCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNERBLE1BQU1BLDhCQUE4QixHQUFHLFNBQUFBLENBQVVDLGdCQUF5QixFQUFFQyxpQkFBOEIsRUFBZTtJQUN4SEEsaUJBQWlCLENBQUNDLFFBQVEsR0FBR0QsaUJBQWlCLENBQUNFLEdBQUc7SUFDbERGLGlCQUFpQixDQUFDRSxHQUFHLEdBQUdGLGlCQUFpQixDQUFDRSxHQUFH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
|
|
780
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZXRDdXN0b21GaWx0ZXJGaWVsZFByb3BlcnRpZXMiLCJjaGlsZEZpbHRlckZpZWxkIiwiYWdncmVnYXRpb25PYmplY3QiLCJzbG90TmFtZSIsImtleSIsInJlcGxhY2UiLCJwcm9wZXJ0eSIsImdldEF0dHJpYnV0ZSIsImxhYmVsIiwicmVxdWlyZWQiLCJ0ZW1wbGF0ZSIsIkZpbHRlckJhckJsb2NrIiwiX2RlYyIsImRlZmluZUJ1aWxkaW5nQmxvY2siLCJuYW1lIiwibmFtZXNwYWNlIiwicHVibGljTmFtZXNwYWNlIiwicmV0dXJuVHlwZXMiLCJfZGVjMiIsImJsb2NrQXR0cmlidXRlIiwidHlwZSIsImlzUHVibGljIiwiX2RlYzMiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJfZGVjMTgiLCJfZGVjMTkiLCJfZGVjMjAiLCJfZGVjMjEiLCJfZGVjMjIiLCJfZGVjMjMiLCJfZGVjMjQiLCJfZGVjMjUiLCJfZGVjMjYiLCJibG9ja0V2ZW50IiwiX2RlYzI3IiwiX2RlYzI4IiwiX2RlYzI5IiwiX2RlYzMwIiwiX2RlYzMxIiwiYmxvY2tBZ2dyZWdhdGlvbiIsImhhc1ZpcnR1YWxOb2RlIiwicHJvY2Vzc0FnZ3JlZ2F0aW9ucyIsIl9kZWMzMiIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQnVpbGRpbmdCbG9ja1RlbXBsYXQiLCJwcm9wcyIsImNvbmZpZ3VyYXRpb24iLCJtU2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiX2Rlc2NyaXB0b3I5IiwiX2Rlc2NyaXB0b3IxMCIsIl9kZXNjcmlwdG9yMTEiLCJfZGVzY3JpcHRvcjEyIiwiX2Rlc2NyaXB0b3IxMyIsIl9kZXNjcmlwdG9yMTQiLCJfZGVzY3JpcHRvcjE1IiwiX2Rlc2NyaXB0b3IxNiIsIl9kZXNjcmlwdG9yMTciLCJfZGVzY3JpcHRvcjE4IiwiX2Rlc2NyaXB0b3IxOSIsIl9kZXNjcmlwdG9yMjAiLCJfZGVzY3JpcHRvcjIxIiwiX2Rlc2NyaXB0b3IyMiIsIl9kZXNjcmlwdG9yMjMiLCJfZGVzY3JpcHRvcjI0IiwiX2Rlc2NyaXB0b3IyNSIsIl9kZXNjcmlwdG9yMjYiLCJfZGVzY3JpcHRvcjI3IiwiX2Rlc2NyaXB0b3IyOCIsIl9kZXNjcmlwdG9yMjkiLCJfZGVzY3JpcHRvcjMwIiwic2hvd0RyYWZ0RWRpdFN0YXRlIiwiX2Rlc2NyaXB0b3IzMSIsImNoZWNrSWZFZGl0aW5nRmlsdGVySXNEaXNhYmxlZCIsInRhcmdldEVudGl0eVNldCIsImFubm90YXRpb25zIiwiQ2FwYWJpbGl0aWVzIiwiTmF2aWdhdGlvblJlc3RyaWN0aW9ucyIsIlJlc3RyaWN0ZWRQcm9wZXJ0aWVzIiwic29tZSIsInIiLCJOYXZpZ2F0aW9uUHJvcGVydHkiLCJ2YWx1ZSIsIkZpbHRlclJlc3RyaWN0aW9ucyIsIkZpbHRlcmFibGUiLCJjaGVja0lmQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkIiwib01ldGFNb2RlbCIsIk1vZGVsSGVscGVyIiwiaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQiLCJpc0RyYWZ0Q29sbGFib3JhdGl2ZSIsImdldEVudGl0eVR5cGVQYXRoIiwibWV0YVBhdGhQYXJ0cyIsImVuZHNXaXRoIiwiZ2V0U2VhcmNoIiwiaGlkZUJhc2ljU2VhcmNoIiwiX2pzeCIsIk1EQ0ZpbHRlckZpZWxkIiwiaWQiLCJnZW5lcmF0ZSIsInBsYWNlaG9sZGVyIiwicHJvcGVydHlLZXkiLCJjb25kaXRpb25zIiwiZGF0YVR5cGUiLCJtYXhDb25kaXRpb25zIiwiZGF0YVR5cGVDb25zdHJhaW50cyIsInByb2Nlc3NTZWxlY3Rpb25GaWVsZHMiLCJkcmFmdEVkaXRTdGF0ZSIsImRyYWZ0U3RhdGVzIiwiRHJhZnRFZGl0U3RhdGUiLCJnZXRFZGl0U3RhdGVzIiwiZ2V0VHJhbnNsYXRlZFRleHQiLCJvcGVyYXRvcnMiLCJkaXNwbGF5IiwiY2hpbGRyZW4iLCJjb250ZW50RWRpdCIsIlNlbGVjdCIsIndpZHRoIiwiZm9yY2VTZWxlY3Rpb24iLCJzZWxlY3RlZEtleSIsIml0ZW1zIiwibWFwIiwic3RhdGUiLCJMaXN0SXRlbSIsInRleHQiLCJfdmFsdWVIZWxwcyIsIl9maWx0ZXJGaWVsZHMiLCJwdXNoIiwiQXJyYXkiLCJpc0FycmF5Iiwic2VsZWN0aW9uRmllbGRzIiwiZ2V0T2JqZWN0IiwiZm9yRWFjaCIsInNlbGVjdGlvbkZpZWxkIiwiYXZhaWxhYmlsaXR5Iiwic2V0RmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInB1c2hGaWx0ZXJGaWVsZHNBbmRWYWx1ZUhlbHBzIiwiYW5ub3RhdGlvblBhdGgiLCJwcm9wZXJ0eUNvbnRleHQiLCJtZXRhUGF0aCIsImdldE1vZGVsIiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJwcm9wZXJ0eU9iamVjdCIsImZpbHRlckNvbnRlbnQiLCJTbG90Q29sdW1uIiwidGVtcGxhdGVJZCIsIkN1c3RvbUZyYWdtZW50QmxvY2siLCJmcmFnbWVudE5hbWUiLCJjb250ZXh0UGF0aCIsIm1heENvbmRpdGlvblZhbHVlIiwiY29udGV4dCIsImRlbGVnYXRlIiwiY29uZGl0aW9uUGF0aCIsIkZpZWxkSGVscGVyIiwidXNlU2VtYW50aWNEYXRlUmFuZ2UiLCJzZXR0aW5ncyIsImdldFBhdGgiLCJjb25zdHJhaW50cyIsImRhdGFUeXBlRm9ybWF0T3B0aW9ucyIsImZvcm1hdE9wdGlvbnMiLCJ2YWx1ZUhlbHAiLCJjb250ZW50IiwiQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlciIsImJpbmRpbmciLCJGaWx0ZXJVdGlscyIsImNvbmRpdGlvblRvTW9kZWxQYXRoIiwiY3VzdG9tRGF0YSIsIkN1c3RvbURhdGEiLCJGaWVsZEhlbHBDdXN0b21EYXRhIiwiZG9jdW1lbnRSZWZUZXh0IiwidmYiLCJ2aXN1YWxGaWx0ZXIiLCJpbml0aWFsQ2hhcnRCaW5kaW5nRW5hYmxlZCIsInN1c3BlbmRTZWxlY3Rpb24iLCJJbnRlcm5hbEZpbHRlckZpZWxkIiwiaWRQcmVmaXgiLCJDb21tb25IZWxwZXIiLCJnZXROYXZpZ2F0aW9uUGF0aCIsInZoSWRQcmVmaXgiLCJfZ2V0Q29udGV4dFBhdGhGb3JGaWx0ZXJGaWVsZCIsIl9pbnRlcm5hbENvbnRleHRQYXRoIiwic3RyaW5naWZ5Q3VzdG9tRGF0YSIsInN0b3JlT2JqZWN0VmFsdWUiLCJlZGl0TW9kZSIsIlZhbHVlSGVscCIsImNvbmRpdGlvbk1vZGVsIiwiZmlsdGVyRmllbGRWYWx1ZUhlbHAiLCJMb2ciLCJlcnJvciIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJzTWV0YVBhdGgiLCJlbnRpdHlUeXBlUGF0aCIsInNwbGl0Iiwic0VudGl0eVNldFBhdGgiLCJnZXRFbnRpdHlTZXRQYXRoIiwicGFyZW50Q29udGV4dFBhdGgiLCJmdWxsQ29udGV4dFBhdGgiLCJzT2JqZWN0UGF0aCIsInN0YXJ0c1dpdGgiLCJfYW5ub3RhdGlvblBhdGgiLCJvRXh0cmFQYXJhbXMiLCJmaWx0ZXJGaWVsZHMiLCJvVmlzdWFsaXphdGlvbk9iamVjdFBhdGgiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJvQ29udmVydGVyQ29udGV4dCIsImdldENvbnZlcnRlckNvbnRleHQiLCJwcm9wZXJ0eUluZm8iLCJnZXRTZWxlY3Rpb25GaWVsZHMiLCJzUHJvcGVydHlJbmZvIiwiQ29tbW9uIiwiRHJhZnRSb290IiwiZGlzYWJsZURyYWZ0RWRpdFN0YXRlRmlsdGVyIiwib1NlbGVjdGlvbkZpZWxkcyIsIlRlbXBsYXRlTW9kZWwiLCJ2aWV3RGF0YSIsIm1vZGVscyIsImdldERhdGEiLCJvRW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJvU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJvRW50aXR5U2V0Q29udGV4dCIsImdldENvbnRleHQiLCJvRmlsdGVyQ29uZGl0aW9ucyIsImdldEZpbHRlckNvbmRpdGlvbnMiLCJzZWxlY3Rpb25WYXJpYW50IiwiZmlsdGVyQ29uZGl0aW9ucyIsIl9wcm9jZXNzUHJvcGVydHlJbmZvcyIsIl9hcHBseUlkVG9Db250ZW50IiwiX2FwaUlkIiwiX2NvbnRlbnRJZCIsImdldENvbnRlbnRJZCIsIm9TZWFyY2hSZXN0cmljdGlvbkFubm90YXRpb24iLCJnZXRTZWFyY2hSZXN0cmljdGlvbnMiLCJCb29sZWFuIiwiU2VhcmNoYWJsZSIsImpzeCIsInJlbmRlckFzWE1MIiwiZGVzaWdudGltZSIsImdldERlc2lnbnRpbWUiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwibW9kZWwiLCJhUGFyYW1ldGVyRmllbGRzIiwic0ZldGNoZWRQcm9wZXJ0aWVzIiwiYUZldGNoZWRQcm9wZXJ0aWVzIiwiSlNPTiIsInBhcnNlIiwiZWRpdFN0YXRlTGFiZWwiLCJwcm9wSW5mbyIsImlzUGFyYW1ldGVyIiwicGF0aCIsImluY2x1ZGVzIiwicHJvcGVydHlMb2NhdGlvblBhdGgiLCJnZXRMb2NhdGlvbkZvclByb3BlcnR5UGF0aCIsInByb3BlcnR5UGF0aCIsImRhdGFNb2RlbCIsIk1ldGFNb2RlbENvbnZlcnRlciIsImdldEZpbHRlclJlc3RyaWN0aW9uc0J5RGF0YU1vZGVsIiwiUmVxdWlyZWRQcm9wZXJ0aWVzIiwic3RyaW5naWZ5IiwiX3BhcmFtZXRlcnMiLCJnZXRQZXJzaXN0ZW5jZVByb3ZpZGVyIiwiZmlsdGVyQmFySWQiLCJpZ25vcmVQZXJzb25hbGl6YXRpb25DaGFuZ2VzIiwiUGVyc2lzdGVuY2VQcm92aWRlciIsImZvciIsIm1vZGUiLCJmaWx0ZXJCYXJDb250ZXh0UGF0aCIsImFubm9QYXRoIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJnZXRUZW1wbGF0ZSIsImludGVybmFsQ29udGV4dFBhdGgiLCJmaWx0ZXJEZWxlZ2F0ZSIsImZpbHRlckJhckRlbGVnYXRlIiwiX3Byb3BlcnR5SW5mb0NvbnRyb2wiLCJmb3JtYXRQcm9wZXJ0eUluZm8iLCJoYXNPdmVycmlkZSIsImNoZWNrSWZSZXNvdXJjZUtleUV4aXN0cyIsImFkYXB0RmlsdGVyc05vblplcm9UZXh0IiwiYWRhcHRGaWx0ZXJzVGV4dCIsInJlcGxhY2VBbGwiLCJGaWx0ZXJCYXJBUEkiLCJzZWFyY2giLCJmaWx0ZXJDaGFuZ2VkIiwiYWZ0ZXJDbGVhciIsImludGVybmFsU2VhcmNoIiwiaW50ZXJuYWxGaWx0ZXJDaGFuZ2VkIiwiRkVGaWx0ZXJCYXIiLCJhZGFwdEZpbHRlcnNUZXh0Tm9uWmVybyIsImxpdmVNb2RlIiwidmFyaWFudEJhY2tyZWZlcmVuY2UiLCJzaG93QWRhcHRGaWx0ZXJzQnV0dG9uIiwic2hvd0NsZWFyQnV0dG9uIiwicDEzbk1vZGUiLCJmaWx0ZXJzQ2hhbmdlZCIsInNob3dNZXNzYWdlcyIsInRvZ2dsZUNvbnRyb2wiLCJ0b2dnbGVDb250cm9sSWQiLCJpbml0aWFsTGF5b3V0IiwidmlzaWJsZSIsImRlcGVuZGVudHMiLCJiYXNpY1NlYXJjaEZpZWxkIiwiZmlsdGVySXRlbXMiLCJCdWlsZGluZ0Jsb2NrVGVtcGxhdGluZ0Jhc2UiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkZpbHRlckJhci5ibG9jay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHlTZXQgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQganN4IGZyb20gXCJzYXAvZmUvYmFzZS9qc3gtcnVudGltZS9qc3hcIjtcbmltcG9ydCBUZW1wbGF0ZU1vZGVsIGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZU1vZGVsXCI7XG5pbXBvcnQge1xuXHRibG9ja0FnZ3JlZ2F0aW9uLFxuXHRibG9ja0F0dHJpYnV0ZSxcblx0YmxvY2tFdmVudCxcblx0ZGVmaW5lQnVpbGRpbmdCbG9ja1xufSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgeyBzdG9yZU9iamVjdFZhbHVlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9ja1RlbXBsYXRpbmdCYXNlIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy90ZW1wbGF0aW5nL0J1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZVwiO1xuaW1wb3J0ICogYXMgTWV0YU1vZGVsQ29udmVydGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSB7IFBhZ2VDb250ZXh0UGF0aFRhcmdldCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL1RlbXBsYXRlQ29udmVydGVyXCI7XG5pbXBvcnQgeyBnZXRTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0RhdGFWaXN1YWxpemF0aW9uXCI7XG5pbXBvcnQgRmlsdGVyUmVzdHJpY3Rpb25zIGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9maWx0ZXIvRmlsdGVyUmVzdHJpY3Rpb25zXCI7XG5pbXBvcnQgdHlwZSB7IEZpbHRlckZpZWxkIGFzIENvbnZlcnRlZEZpbHRlckZpZWxkLCBNYW5pZmVzdEZpbHRlckZpZWxkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvTGlzdFJlcG9ydC9GaWx0ZXJCYXJcIjtcbmltcG9ydCB7IGdldFNlbGVjdGlvbkZpZWxkcyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvRmlsdGVyQmFyXCI7XG5pbXBvcnQgeyBnZXRTZWFyY2hSZXN0cmljdGlvbnMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9NZXRhTW9kZWxGdW5jdGlvblwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1N0YWJsZUlkSGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgQ29tbW9uSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbW1vbkhlbHBlclwiO1xuaW1wb3J0IEZpZWxkSGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkSGVscGVyXCI7XG5pbXBvcnQgeyBtYXhDb25kaXRpb25zIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlckZpZWxkSGVscGVyXCI7XG5pbXBvcnQgRmlsdGVyVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzXCI7XG5pbXBvcnQgRHJhZnRFZGl0U3RhdGUgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL0RyYWZ0RWRpdFN0YXRlXCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJGaWVsZCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVyRmllbGRcIjtcbmltcG9ydCB7IGdldEZpbHRlckNvbmRpdGlvbnMgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVySGVscGVyXCI7XG5pbXBvcnQgQ3VzdG9tRnJhZ21lbnRCbG9jayBmcm9tIFwic2FwL2ZlL21hY3Jvcy9mcG0vQ3VzdG9tRnJhZ21lbnQuYmxvY2tcIjtcbmltcG9ydCBJbnRlcm5hbEZpbHRlckZpZWxkIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL0ZpbHRlckZpZWxkLmJsb2NrXCI7XG5pbXBvcnQgU2VsZWN0IGZyb20gXCJzYXAvbS9TZWxlY3RcIjtcbmltcG9ydCB0eXBlIFVJNUV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEN1c3RvbURhdGEgZnJvbSBcInNhcC91aS9jb3JlL0N1c3RvbURhdGFcIjtcbmltcG9ydCBMaXN0SXRlbSBmcm9tIFwic2FwL3VpL2NvcmUvTGlzdEl0ZW1cIjtcbmltcG9ydCBGaWVsZEhlbHBDdXN0b21EYXRhIGZyb20gXCJzYXAvdWkvY29yZS9maWVsZGhlbHAvRmllbGRIZWxwQ3VzdG9tRGF0YVwiO1xuaW1wb3J0IHR5cGUgeyBJQ29udGV4dCB9IGZyb20gXCJzYXAvdWkvY29yZS91dGlsL1hNTFByZXByb2Nlc3NvclwiO1xuaW1wb3J0IE1EQ0ZpbHRlckZpZWxkIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckZpZWxkXCI7XG5pbXBvcnQgdHlwZSB7IENvbmRpdGlvbk9iamVjdCB9IGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9Db25kaXRpb25cIjtcbmltcG9ydCB0eXBlIHtcblx0RmlsdGVyQmFyQmFzZSRGaWx0ZXJzQ2hhbmdlZEV2ZW50LFxuXHRGaWx0ZXJCYXJCYXNlJEZpbHRlcnNDaGFuZ2VkRXZlbnRQYXJhbWV0ZXJzLFxuXHRGaWx0ZXJCYXJCYXNlJFNlYXJjaEV2ZW50XG59IGZyb20gXCJzYXAvdWkvbWRjL2ZpbHRlcmJhci9GaWx0ZXJCYXJCYXNlXCI7XG5pbXBvcnQgUGVyc2lzdGVuY2VQcm92aWRlciBmcm9tIFwic2FwL3VpL21kYy9wMTNuL1BlcnNpc3RlbmNlUHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YVY0Q29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCB0eXBlIHsgRXZlbnRIYW5kbGVyIH0gZnJvbSBcInR5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUluZm8gfSBmcm9tIFwiLi4vRGVsZWdhdGVVdGlsXCI7XG5pbXBvcnQgVmFsdWVIZWxwIGZyb20gXCIuLi9WYWx1ZUhlbHBcIjtcbmltcG9ydCBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyIGZyb20gXCIuLi9jb250cm9scy9DdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyXCI7XG5pbXBvcnQgRkVGaWx0ZXJCYXIgZnJvbSBcIi4uL2NvbnRyb2xzL0ZpbHRlckJhclwiO1xuaW1wb3J0IFNsb3RDb2x1bW4gZnJvbSBcIi4uL3RhYmxlL1Nsb3RDb2x1bW5cIjtcbmltcG9ydCBGaWx0ZXJCYXJBUEkgZnJvbSBcIi4vRmlsdGVyQmFyQVBJXCI7XG5cbmNvbnN0IHNldEN1c3RvbUZpbHRlckZpZWxkUHJvcGVydGllcyA9IGZ1bmN0aW9uIChjaGlsZEZpbHRlckZpZWxkOiBFbGVtZW50LCBhZ2dyZWdhdGlvbk9iamVjdDogRmlsdGVyRmllbGQpOiBGaWx0ZXJGaWVsZCB7XG5cdGFnZ3JlZ2F0aW9uT2JqZWN0LnNsb3ROYW1lID0gYWdncmVnYXRpb25PYmplY3Qua2V5O1xuXHRhZ2dyZWdhdGlvbk9iamVjdC5rZXkgPSBhZ2dyZWdhdGlvbk9iamVjdC5rZXkucmVwbGFjZShcIklubGluZVhNTF9cIiwgXCJcIik7XG5cdGFnZ3JlZ2F0aW9uT2JqZWN0LnByb3BlcnR5ID0gY2hpbGRGaWx0ZXJGaWVsZC5nZXRBdHRyaWJ1dGUoXCJwcm9wZXJ0eVwiKSE7XG5cdGFnZ3JlZ2F0aW9uT2JqZWN0LmxhYmVsID0gY2hpbGRGaWx0ZXJGaWVsZC5nZXRBdHRyaWJ1dGUoXCJsYWJlbFwiKSE7XG5cdGFnZ3JlZ2F0aW9uT2JqZWN0LnJlcXVpcmVkID0gY2hpbGRGaWx0ZXJGaWVsZC5nZXRBdHRyaWJ1dGUoXCJyZXF1aXJlZFwiKSA9PT0gXCJ0cnVlXCI7XG5cdGFnZ3JlZ2F0aW9uT2JqZWN0LnRlbXBsYXRlID0gY2hpbGRGaWx0ZXJGaWVsZC5nZXRBdHRyaWJ1dGUoXCJ0ZW1wbGF0ZVwiKSBhcyB1bmtub3duIGFzIENvbnRyb2w7IC8vIEJ1dCBpdCdzIGEgc3RyaW5nO1xuXHRyZXR1cm4gYWdncmVnYXRpb25PYmplY3Q7XG59O1xuXG4vKipcbiAqIEJ1aWxkaW5nIGJsb2NrIGZvciBjcmVhdGluZyBhIEZpbHRlckJhciBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgcHJvdmlkZWQgYnkgT0RhdGEgVjQuXG4gKlxuICpcbiAqIFVzYWdlIGV4YW1wbGU6XG4gKiA8cHJlPlxuICogJmx0O21hY3JvczpGaWx0ZXJCYXJcbiAqIGlkPVwiU29tZUlEXCJcbiAqIHNob3dBZGFwdEZpbHRlcnNCdXR0b249XCJ0cnVlXCJcbiAqIHAxM25Nb2RlPVtcIkl0ZW1cIixcIlZhbHVlXCJdXG4gKiBsaXN0QmluZGluZ05hbWVzID0gXCJzYXAuZmUudGFibGVCaW5kaW5nXCJcbiAqIGxpdmVNb2RlPVwidHJ1ZVwiXG4gKiBzZWFyY2g9XCIuaGFuZGxlcnMub25TZWFyY2hcIlxuICogZmlsdGVyQ2hhbmdlZD1cIi5oYW5kbGVycy5vbkZpbHRlcnNDaGFuZ2VkXCJcbiAqIC8mZ3Q7XG4gKiA8L3ByZT5cbiAqXG4gKiBCdWlsZGluZyBibG9jayBmb3IgY3JlYXRpbmcgYSBGaWx0ZXJCYXIgYmFzZWQgb24gdGhlIG1ldGFkYXRhIHByb3ZpZGVkIGJ5IE9EYXRhIFY0LlxuICogQHNpbmNlIDEuOTQuMFxuICovXG5AZGVmaW5lQnVpbGRpbmdCbG9jayh7XG5cdG5hbWU6IFwiRmlsdGVyQmFyXCIsXG5cdG5hbWVzcGFjZTogXCJzYXAuZmUubWFjcm9zLmludGVybmFsXCIsXG5cdHB1YmxpY05hbWVzcGFjZTogXCJzYXAuZmUubWFjcm9zXCIsXG5cdHJldHVyblR5cGVzOiBbXCJzYXAuZmUubWFjcm9zLmZpbHRlckJhci5GaWx0ZXJCYXJBUElcIl1cbn0pXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWx0ZXJCYXJCbG9jayBleHRlbmRzIEJ1aWxkaW5nQmxvY2tUZW1wbGF0aW5nQmFzZSB7XG5cdC8qKlxuXHQgKiBJRCBvZiB0aGUgRmlsdGVyQmFyXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0aWQ/OiBzdHJpbmc7XG5cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHR2aXNpYmxlPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBzZWxlY3Rpb25GaWVsZHMgdG8gYmUgZGlzcGxheWVkXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic2FwLnVpLm1vZGVsLkNvbnRleHRcIlxuXHR9KVxuXHRzZWxlY3Rpb25GaWVsZHM/OiBDb252ZXJ0ZWRGaWx0ZXJGaWVsZFtdIHwgQ29udGV4dDtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGZpbHRlckJhckRlbGVnYXRlPzogc3RyaW5nO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdG1ldGFQYXRoPzogQ29udGV4dDtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic2FwLnVpLm1vZGVsLkNvbnRleHRcIixcblx0XHRpc1B1YmxpYzogdHJ1ZVxuXHR9KVxuXHRjb250ZXh0UGF0aD86IENvbnRleHQ7XG5cblx0LyoqXG5cdCAqIERpc3BsYXlzIHBvc3NpYmxlIGVycm9ycyBkdXJpbmcgdGhlIHNlYXJjaCBpbiBhIG1lc3NhZ2UgYm94XG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdHNob3dNZXNzYWdlcyA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBJRCBvZiB0aGUgYXNzaWduZWQgdmFyaWFudCBtYW5hZ2VtZW50XG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0dmFyaWFudEJhY2tyZWZlcmVuY2U/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIERvbid0IHNob3cgdGhlIGJhc2ljIHNlYXJjaCBmaWVsZFxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRoaWRlQmFzaWNTZWFyY2g/OiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBFbmFibGVzIHRoZSBmYWxsYmFjayB0byBzaG93IGFsbCBmaWVsZHMgb2YgdGhlIEVudGl0eVR5cGUgYXMgZmlsdGVyIGZpZWxkcyBpZiBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5TZWxlY3Rpb25GaWVsZHMgYXJlIG5vdCBwcmVzZW50XG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdGVuYWJsZUZhbGxiYWNrID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgdmlzaWJpbGl0eSBvZiB0aGUgJ0FkYXB0IEZpbHRlcnMnIGJ1dHRvbiBvbiB0aGUgRmlsdGVyQmFyXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdHNob3dBZGFwdEZpbHRlcnNCdXR0b24gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIHBlcnNvbmFsaXphdGlvbiBvcHRpb25zIGZvciB0aGUgZmlsdGVyIGJhci5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdbXVwiXG5cdH0pXG5cdHAxM25Nb2RlID0gXCJJdGVtLFZhbHVlXCI7XG5cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHByb3BlcnR5SW5mbz86IHN0cmluZztcblxuXHQvKipcblx0ICogU3BlY2lmaWVzIHRoZSBTZW1hdGljIERhdGUgUmFuZ2Ugb3B0aW9uIGZvciB0aGUgZmlsdGVyIGJhci5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0dXNlU2VtYW50aWNEYXRlUmFuZ2UgPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIG5hdmlnYXRpb24gcHJvcGVydGllcyBvcHRpb24gZm9yIHRoZSBmaWx0ZXIgYmFyLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1tdXCJcblx0fSlcblx0bmF2aWdhdGlvblByb3BlcnRpZXM/OiBzdHJpbmdbXTtcblxuXHQvKipcblx0ICogSWYgc2V0LCB0aGUgc2VhcmNoIGlzIGF1dG9tYXRpY2FsbHkgdHJpZ2dlcmVkIHdoZW4gYSBmaWx0ZXIgdmFsdWUgaXMgY2hhbmdlZC5cblx0ICovXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0aXNQdWJsaWM6IHRydWVcblx0fSlcblx0bGl2ZU1vZGUgPSBmYWxzZTtcblxuXHQvKipcblx0ICogRmlsdGVyIGNvbmRpdGlvbnMgdG8gYmUgYXBwbGllZCB0byB0aGUgZmlsdGVyIGJhclxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdHJlcXVpcmVkOiBmYWxzZVxuXHR9KVxuXHRmaWx0ZXJDb25kaXRpb25zPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBJZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIGFsbCBzZWFyY2ggcmVxdWVzdHMgYXJlIGlnbm9yZWQuIE9uY2UgaXQgaGFzIGJlZW4gc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPixcblx0ICogYSBzZWFyY2ggaXMgdHJpZ2dlcmVkIGltbWVkaWF0ZWx5IGlmIG9uZSBvciBtb3JlIHNlYXJjaCByZXF1ZXN0cyBoYXZlIGJlZW4gdHJpZ2dlcmVkIGluIHRoZSBtZWFudGltZVxuXHQgKiBidXQgd2VyZSBpZ25vcmVkIGJhc2VkIG9uIHRoZSBzZXR0aW5nLlxuXHQgKi9cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRzdXNwZW5kU2VsZWN0aW9uID0gZmFsc2U7XG5cblx0QGJsb2NrQXR0cmlidXRlKHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIlxuXHR9KVxuXHRpc0RyYWZ0Q29sbGFib3JhdGl2ZSA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBJZCBvZiBjb250cm9sIHRoYXQgd2lsbCBhbGxvdyBmb3Igc3dpdGNoaW5nIGJldHdlZW4gbm9ybWFsIGFuZCB2aXN1YWwgZmlsdGVyXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwic3RyaW5nXCJcblx0fSlcblx0dG9nZ2xlQ29udHJvbElkPzogc3RyaW5nO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIlxuXHR9KVxuXHRpbml0aWFsTGF5b3V0ID0gXCJjb21wYWN0XCI7XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgdGhlIHZpc2liaWxpdHkgb2YgdGhlICdDbGVhcicgYnV0dG9uIG9uIHRoZSBGaWx0ZXJCYXIuXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdHNob3dDbGVhckJ1dHRvbiA9IGZhbHNlO1xuXG5cdEBibG9ja0F0dHJpYnV0ZSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCJcblx0fSlcblx0X2FwcGx5SWRUb0NvbnRlbnQgPSBmYWxzZTtcblxuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiXG5cdH0pXG5cdGRpc2FibGVEcmFmdEVkaXRTdGF0ZUZpbHRlciA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBUZW1wb3Jhcnkgd29ya2Fyb3VuZCBvbmx5XG5cdCAqIHBhdGggdG8gY29udGV4dFBhdGggdG8gYmUgdXNlZCBieSBjaGlsZCBmaWx0ZXJmaWVsZHNcblx0ICovXG5cdF9pbnRlcm5hbENvbnRleHRQYXRoITogQ29udGV4dDtcblxuXHRfcGFyYW1ldGVyczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdF9hbm5vdGF0aW9uUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIHJlYWN0IHRvIHRoZSBzZWFyY2ggZXZlbnQgb2YgdGhlIEZpbHRlckJhclxuXHQgKi9cblx0QGJsb2NrRXZlbnQoKVxuXHRzZWFyY2g/OiBFdmVudEhhbmRsZXI8VUk1RXZlbnQ8e30sIEZpbHRlckJhckFQST4+O1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIHJlYWN0IHRvIHRoZSBmaWx0ZXJDaGFuZ2UgZXZlbnQgb2YgdGhlIEZpbHRlckJhclxuXHQgKi9cblx0QGJsb2NrRXZlbnQoKVxuXHRmaWx0ZXJDaGFuZ2VkPzogRXZlbnRIYW5kbGVyPFVJNUV2ZW50PEZpbHRlckJhckJhc2UkRmlsdGVyc0NoYW5nZWRFdmVudFBhcmFtZXRlcnMsIEZpbHRlckJhckFQST4+O1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIHJlYWN0IHRvIHRoZSBmaWx0ZXJDaGFuZ2VkIGV2ZW50IG9mIHRoZSBGaWx0ZXJCYXIuIEV4cG9zZXMgcGFyYW1ldGVycyBmcm9tIHRoZSBNREMgZmlsdGVyIGJhclxuXHQgKi9cblx0QGJsb2NrRXZlbnQoKVxuXHRpbnRlcm5hbEZpbHRlckNoYW5nZWQ/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEV2ZW50IGhhbmRsZXIgdG8gcmVhY3QgdG8gdGhlIHNlYXJjaCBldmVudCBvZiB0aGUgRmlsdGVyQmFyLiBFeHBvc2VzIHBhcmFtZXRlcmVzIGZyb20gdGhlIE1EQyBmaWx0ZXIgYmFyXG5cdCAqL1xuXHRAYmxvY2tFdmVudCgpXG5cdGludGVybmFsU2VhcmNoPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIHJlYWN0IHRvIHRoZSBhZnRlckNsZWFyIGV2ZW50IG9mIHRoZSBGaWx0ZXJCYXJcblx0ICovXG5cdEBibG9ja0V2ZW50KClcblx0YWZ0ZXJDbGVhcj86IEV2ZW50SGFuZGxlcjxVSTVFdmVudDx7fSwgRmlsdGVyQmFyQVBJPj47XG5cblx0QGJsb2NrQWdncmVnYXRpb24oe1xuXHRcdHR5cGU6IFwic2FwLmZlLm1hY3Jvcy5maWx0ZXJCYXIuRmlsdGVyRmllbGRcIixcblx0XHRpc1B1YmxpYzogdHJ1ZSxcblx0XHRoYXNWaXJ0dWFsTm9kZTogdHJ1ZSxcblx0XHRwcm9jZXNzQWdncmVnYXRpb25zOiBzZXRDdXN0b21GaWx0ZXJGaWVsZFByb3BlcnRpZXNcblx0fSlcblx0ZmlsdGVyRmllbGRzPzogRmlsdGVyRmllbGQ7XG5cblx0X2FwaUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0X2NvbnRlbnRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdF92YWx1ZUhlbHBzOiBBcnJheTxzdHJpbmc+IHwgXCJcIiB8IHVuZGVmaW5lZDtcblxuXHRfZmlsdGVyRmllbGRzOiBBcnJheTxzdHJpbmc+IHwgXCJcIiB8IHVuZGVmaW5lZDtcblxuXHRzaG93RHJhZnRFZGl0U3RhdGUgPSBmYWxzZTtcblxuXHRkZXNpZ250aW1lPzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBUaGlzIG1vZGUgbXVzdCBiZSB1c2VkIHdoZW4gaXQgaXMgY2VydGFpbiB0aGF0IGEgY29udHJvbCBtdXN0IG5vdCBwZXJzaXN0IGl0wrRzIHBlcnNvbmFsaXphdGlvbiBzdGF0ZSB1cG9uIGluaXRpYWxpemF0aW9uLlxuXHQgKiBAdWk1LWV4cGVyaW1lbnRhbC1zaW5jZSAxLjEzNi4wXG5cdCAqIEBzaW5jZSAxLjEzNi4wXG5cdCAqL1xuXHRAYmxvY2tBdHRyaWJ1dGUoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGlzUHVibGljOiB0cnVlXG5cdH0pXG5cdGlnbm9yZVBlcnNvbmFsaXphdGlvbkNoYW5nZXMgPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wczogUHJvcGVydGllc09mPEZpbHRlckJhckJsb2NrPiwgY29uZmlndXJhdGlvbjogdW5rbm93biwgbVNldHRpbmdzOiBUZW1wbGF0ZVByb2Nlc3NvclNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcHMsIGNvbmZpZ3VyYXRpb24sIG1TZXR0aW5ncyk7XG5cdFx0aWYgKCF0aGlzLm1ldGFQYXRoKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJDb250ZXh0IFBhdGggbm90IGF2YWlsYWJsZSBmb3IgRmlsdGVyQmFyIE1hY3JvLlwiKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3Qgc01ldGFQYXRoID0gdGhpcy5tZXRhUGF0aC5nZXRQYXRoKCk7XG5cdFx0bGV0IGVudGl0eVR5cGVQYXRoID0gXCJcIjtcblx0XHRjb25zdCBtZXRhUGF0aFBhcnRzID0gc01ldGFQYXRoPy5zcGxpdChcIi9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuU2VsZWN0aW9uRmllbGRzXCIpIHx8IFtdOyAvLyBbMF06IGVudGl0eVR5cGVQYXRoLCBbMV06IFNGIFF1YWxpZmllci5cblx0XHRpZiAobWV0YVBhdGhQYXJ0cy5sZW5ndGggPiAwKSB7XG5cdFx0XHRlbnRpdHlUeXBlUGF0aCA9IHRoaXMuZ2V0RW50aXR5VHlwZVBhdGgobWV0YVBhdGhQYXJ0cyk7XG5cdFx0fVxuXHRcdGNvbnN0IHNFbnRpdHlTZXRQYXRoID0gTW9kZWxIZWxwZXIuZ2V0RW50aXR5U2V0UGF0aChlbnRpdHlUeXBlUGF0aCk7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IHRoaXMuY29udGV4dFBhdGg/LmdldE1vZGVsKCk7XG5cdFx0dGhpcy5faW50ZXJuYWxDb250ZXh0UGF0aCA9IG9NZXRhTW9kZWw/LmNyZWF0ZUJpbmRpbmdDb250ZXh0KGVudGl0eVR5cGVQYXRoKSBhcyBDb250ZXh0O1xuXHRcdGNvbnN0IGFubm90YXRpb25QYXRoOiBzdHJpbmcgPSBcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5TZWxlY3Rpb25GaWVsZHNcIiArICgobWV0YVBhdGhQYXJ0cy5sZW5ndGggJiYgbWV0YVBhdGhQYXJ0c1sxXSkgfHwgXCJcIik7XG5cdFx0Y29uc3QgcGFyZW50Q29udGV4dFBhdGggPSBtU2V0dGluZ3M/LmZ1bGxDb250ZXh0UGF0aCBhcyBzdHJpbmc7XG5cdFx0bGV0IHNPYmplY3RQYXRoID0gYW5ub3RhdGlvblBhdGg7XG5cdFx0aWYgKHBhcmVudENvbnRleHRQYXRoICE9PSBcIlwiICYmIHRoaXMuX2ludGVybmFsQ29udGV4dFBhdGguZ2V0UGF0aCgpPy5zdGFydHNXaXRoKHBhcmVudENvbnRleHRQYXRoKSkge1xuXHRcdFx0c09iamVjdFBhdGggPSBzTWV0YVBhdGgucmVwbGFjZShwYXJlbnRDb250ZXh0UGF0aCwgXCJcIik7XG5cdFx0fVxuXHRcdHRoaXMuX2Fubm90YXRpb25QYXRoID0gYW5ub3RhdGlvblBhdGg7XG5cdFx0Y29uc3Qgb0V4dHJhUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCB7IGZpbHRlckZpZWxkcz86IEZpbHRlckZpZWxkIH0+ID0ge307XG5cdFx0aWYgKHRoaXMuZmlsdGVyRmllbGRzKSB7XG5cdFx0XHRvRXh0cmFQYXJhbXNbc09iamVjdFBhdGhdID0ge1xuXHRcdFx0XHRmaWx0ZXJGaWVsZHM6IHRoaXMuZmlsdGVyRmllbGRzXG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdGNvbnN0IG9WaXN1YWxpemF0aW9uT2JqZWN0UGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyh0aGlzLl9pbnRlcm5hbENvbnRleHRQYXRoKTtcblx0XHRjb25zdCBvQ29udmVydGVyQ29udGV4dCA9IHRoaXMuZ2V0Q29udmVydGVyQ29udGV4dChvVmlzdWFsaXphdGlvbk9iamVjdFBhdGgsIHVuZGVmaW5lZCwgbVNldHRpbmdzLCBvRXh0cmFQYXJhbXMpO1xuXHRcdGlmICghdGhpcy5wcm9wZXJ0eUluZm8pIHtcblx0XHRcdHRoaXMucHJvcGVydHlJbmZvID0gZ2V0U2VsZWN0aW9uRmllbGRzKG9Db252ZXJ0ZXJDb250ZXh0LCBbXSwgYW5ub3RhdGlvblBhdGgpLnNQcm9wZXJ0eUluZm87XG5cdFx0fVxuXG5cdFx0Y29uc3QgdGFyZ2V0RW50aXR5U2V0ID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKHRoaXMubWV0YVBhdGgsIHRoaXMuY29udGV4dFBhdGgpLnRhcmdldEVudGl0eVNldCBhcyBFbnRpdHlTZXQ7XG5cdFx0aWYgKHRhcmdldEVudGl0eVNldD8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uRHJhZnRSb290ICYmICF0aGlzLmRpc2FibGVEcmFmdEVkaXRTdGF0ZUZpbHRlcikge1xuXHRcdFx0dGhpcy5zaG93RHJhZnRFZGl0U3RhdGUgPSB0cnVlO1xuXHRcdFx0dGhpcy5jaGVja0lmRWRpdGluZ0ZpbHRlcklzRGlzYWJsZWQodGFyZ2V0RW50aXR5U2V0KTtcblx0XHRcdHRoaXMuY2hlY2tJZkNvbGxhYm9yYXRpb25EcmFmdFN1cHBvcnRlZChvTWV0YU1vZGVsIGFzIE9EYXRhTWV0YU1vZGVsKTtcblx0XHR9XG5cblx0XHQvL0ZpbHRlciBGaWVsZHMgYW5kIHZhbHVlcyB0byB0aGUgZmllbGQgYXJlIGZpbGxlZCBiYXNlZCBvbiB0aGUgc2VsZWN0aW9uRmllbGRzIGFuZCB0aGlzIHdvdWxkIGJlIGVtcHR5IGluIGNhc2Ugb2YgbWFjcm8gb3V0c2lkZSB0aGUgRkUgdGVtcGxhdGVcblx0XHRpZiAoIXRoaXMuc2VsZWN0aW9uRmllbGRzKSB7XG5cdFx0XHRjb25zdCBvU2VsZWN0aW9uRmllbGRzID0gZ2V0U2VsZWN0aW9uRmllbGRzKG9Db252ZXJ0ZXJDb250ZXh0LCBbXSwgYW5ub3RhdGlvblBhdGgpLnNlbGVjdGlvbkZpZWxkcztcblx0XHRcdHRoaXMuc2VsZWN0aW9uRmllbGRzID0gbmV3IFRlbXBsYXRlTW9kZWwob1NlbGVjdGlvbkZpZWxkcywgb01ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbCkuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpO1xuXHRcdFx0Y29uc3Qgdmlld0RhdGEgPSBtU2V0dGluZ3M/Lm1vZGVscz8udmlld0RhdGE/LmdldERhdGEoKTtcblx0XHRcdGNvbnN0IG9FbnRpdHlUeXBlID0gb0NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLFxuXHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IGdldFNlbGVjdGlvblZhcmlhbnQob0VudGl0eVR5cGUsIG9Db252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdFx0b0VudGl0eVNldENvbnRleHQgPSAob01ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbCkuZ2V0Q29udGV4dChzRW50aXR5U2V0UGF0aCkgYXMgT0RhdGFWNENvbnRleHQsXG5cdFx0XHRcdG9GaWx0ZXJDb25kaXRpb25zID0gZ2V0RmlsdGVyQ29uZGl0aW9ucyhcblx0XHRcdFx0XHRvRW50aXR5U2V0Q29udGV4dCBhcyB1bmtub3duIGFzIElDb250ZXh0LCAvLyBXcm9uZyBidXQgc29tZWhvdyB3b3JrcyA/LFxuXHRcdFx0XHRcdHsgc2VsZWN0aW9uVmFyaWFudDogb1NlbGVjdGlvblZhcmlhbnQgfSxcblx0XHRcdFx0XHRvRW50aXR5U2V0Q29udGV4dC5nZXRPYmplY3QoKSxcblx0XHRcdFx0XHR2aWV3RGF0YSxcblx0XHRcdFx0XHR0aGlzLnNob3dEcmFmdEVkaXRTdGF0ZVxuXHRcdFx0XHQpO1xuXHRcdFx0dGhpcy5maWx0ZXJDb25kaXRpb25zID0gb0ZpbHRlckNvbmRpdGlvbnM7XG5cdFx0fVxuXHRcdHRoaXMuX3Byb2Nlc3NQcm9wZXJ0eUluZm9zKHRoaXMucHJvcGVydHlJbmZvLCBvTWV0YU1vZGVsKTtcblxuXHRcdGlmICh0aGlzLl9hcHBseUlkVG9Db250ZW50KSB7XG5cdFx0XHR0aGlzLl9hcGlJZCA9IHRoaXMuaWQgKyBcIjo6RmlsdGVyQmFyXCI7XG5cdFx0XHR0aGlzLl9jb250ZW50SWQgPSB0aGlzLmlkO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9hcGlJZCA9IHRoaXMuaWQ7XG5cdFx0XHR0aGlzLl9jb250ZW50SWQgPSB0aGlzLmdldENvbnRlbnRJZCh0aGlzLmlkICsgXCJcIik7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuaGlkZUJhc2ljU2VhcmNoICE9PSB0cnVlKSB7XG5cdFx0XHRjb25zdCBvU2VhcmNoUmVzdHJpY3Rpb25Bbm5vdGF0aW9uID0gZ2V0U2VhcmNoUmVzdHJpY3Rpb25zKHNFbnRpdHlTZXRQYXRoLCBvTWV0YU1vZGVsIGFzIE9EYXRhTWV0YU1vZGVsKTtcblx0XHRcdHRoaXMuaGlkZUJhc2ljU2VhcmNoID0gQm9vbGVhbihvU2VhcmNoUmVzdHJpY3Rpb25Bbm5vdGF0aW9uICYmICFvU2VhcmNoUmVzdHJpY3Rpb25Bbm5vdGF0aW9uLlNlYXJjaGFibGUpO1xuXHRcdH1cblx0XHRqc3gucmVuZGVyQXNYTUwoKCkgPT4gdGhpcy5wcm9jZXNzU2VsZWN0aW9uRmllbGRzKCkpO1xuXG5cdFx0dGhpcy5kZXNpZ250aW1lID0gdGhpcy5nZXREZXNpZ250aW1lKCk7XG5cdH1cblxuXHRfcHJvY2Vzc1Byb3BlcnR5SW5mb3MocHJvcGVydHlJbmZvOiBzdHJpbmcsIG1vZGVsOiBPRGF0YU1ldGFNb2RlbCk6IHZvaWQge1xuXHRcdGNvbnN0IGFQYXJhbWV0ZXJGaWVsZHM6IHN0cmluZ1tdID0gW107XG5cdFx0aWYgKHByb3BlcnR5SW5mbykge1xuXHRcdFx0Y29uc3Qgc0ZldGNoZWRQcm9wZXJ0aWVzID0gcHJvcGVydHlJbmZvLnJlcGxhY2UoL1xcXFx7L2csIFwie1wiKS5yZXBsYWNlKC9cXFxcfS9nLCBcIn1cIik7XG5cdFx0XHRjb25zdCBhRmV0Y2hlZFByb3BlcnRpZXMgPSBKU09OLnBhcnNlKHNGZXRjaGVkUHJvcGVydGllcyk7XG5cdFx0XHRjb25zdCBlZGl0U3RhdGVMYWJlbCA9IHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJGSUxURVJCQVJfRURJVElOR19TVEFUVVNcIik7XG5cdFx0XHRhRmV0Y2hlZFByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAocHJvcEluZm86IFByb3BlcnR5SW5mbykge1xuXHRcdFx0XHRwcm9wSW5mby5rZXkgPSBwcm9wSW5mby5uYW1lO1xuXHRcdFx0XHRpZiAocHJvcEluZm8uaXNQYXJhbWV0ZXIpIHtcblx0XHRcdFx0XHRhUGFyYW1ldGVyRmllbGRzLnB1c2gocHJvcEluZm8ubmFtZSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHByb3BJbmZvLnBhdGggPT09IFwiJGVkaXRTdGF0ZVwiKSB7XG5cdFx0XHRcdFx0cHJvcEluZm8ubGFiZWwgPSBlZGl0U3RhdGVMYWJlbDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAocHJvcEluZm8ua2V5Py5pbmNsdWRlcyhcIi9cIikpIHtcblx0XHRcdFx0XHQvL1RPIERPOiBOZWVkIHRvIHBsYWNlIHRoaXMgbG9naWMgaW4gY29tbW9uIHBsYWNlIHdoZW4gd2UgY292ZXIgZmlsdGVyUmV0cmljdGlvbnMgd2l0aCB0aGlzIEJMSSBGSU9SSVRFQ0hQMS0yNTA4MFxuXHRcdFx0XHRcdGNvbnN0IGFubm90YXRpb25QYXRoID0gKHByb3BJbmZvIGFzIENvbnZlcnRlZEZpbHRlckZpZWxkKS5hbm5vdGF0aW9uUGF0aDtcblx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0eUxvY2F0aW9uUGF0aCA9IENvbW1vbkhlbHBlci5nZXRMb2NhdGlvbkZvclByb3BlcnR5UGF0aChtb2RlbCwgYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0XHRcdGNvbnN0IHByb3BlcnR5UGF0aCA9IGFubm90YXRpb25QYXRoLnJlcGxhY2UoYCR7cHJvcGVydHlMb2NhdGlvblBhdGh9L2AsIFwiXCIpO1xuXHRcdFx0XHRcdGNvbnN0IGRhdGFNb2RlbCA9IE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMobW9kZWwuZ2V0Q29udGV4dChwcm9wZXJ0eUxvY2F0aW9uUGF0aCkpO1xuXG5cdFx0XHRcdFx0cHJvcEluZm8ucmVxdWlyZWQgPSBGaWx0ZXJSZXN0cmljdGlvbnMuZ2V0RmlsdGVyUmVzdHJpY3Rpb25zQnlEYXRhTW9kZWwoXG5cdFx0XHRcdFx0XHRkYXRhTW9kZWwgYXMgRGF0YU1vZGVsT2JqZWN0UGF0aDxQYWdlQ29udGV4dFBhdGhUYXJnZXQ+XG5cdFx0XHRcdFx0KT8uUmVxdWlyZWRQcm9wZXJ0aWVzPy5pbmNsdWRlcyhwcm9wZXJ0eVBhdGgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5wcm9wZXJ0eUluZm8gPSBKU09OLnN0cmluZ2lmeShhRmV0Y2hlZFByb3BlcnRpZXMpLnJlcGxhY2UoL1xcey9nLCBcIlxcXFx7XCIpLnJlcGxhY2UoL1xcfS9nLCBcIlxcXFx9XCIpO1xuXHRcdH1cblx0XHR0aGlzLl9wYXJhbWV0ZXJzID0gSlNPTi5zdHJpbmdpZnkoYVBhcmFtZXRlckZpZWxkcyk7XG5cdH1cblxuXHRjaGVja0lmRWRpdGluZ0ZpbHRlcklzRGlzYWJsZWQgPSAodGFyZ2V0RW50aXR5U2V0OiBFbnRpdHlTZXQpOiB2b2lkID0+IHtcblx0XHRpZiAoXG5cdFx0XHR0YXJnZXRFbnRpdHlTZXQuYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcz8uTmF2aWdhdGlvblJlc3RyaWN0aW9ucz8uUmVzdHJpY3RlZFByb3BlcnRpZXM/LnNvbWUoXG5cdFx0XHRcdChyKSA9PiByLk5hdmlnYXRpb25Qcm9wZXJ0eT8udmFsdWUgPT09IFwiRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGFcIiAmJiByLkZpbHRlclJlc3RyaWN0aW9ucz8uRmlsdGVyYWJsZSA9PT0gZmFsc2Vcblx0XHRcdCkgPT09IHRydWVcblx0XHQpIHtcblx0XHRcdHRoaXMuc2hvd0RyYWZ0RWRpdFN0YXRlID0gZmFsc2U7XG5cdFx0fVxuXHR9O1xuXG5cdGNoZWNrSWZDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQgPSAob01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwgfCB1bmRlZmluZWQpOiB2b2lkID0+IHtcblx0XHRpZiAoTW9kZWxIZWxwZXIuaXNDb2xsYWJvcmF0aW9uRHJhZnRTdXBwb3J0ZWQob01ldGFNb2RlbCkpIHtcblx0XHRcdHRoaXMuaXNEcmFmdENvbGxhYm9yYXRpdmUgPSB0cnVlO1xuXHRcdH1cblx0fTtcblxuXHRnZXRFbnRpdHlUeXBlUGF0aCA9IChtZXRhUGF0aFBhcnRzOiBzdHJpbmdbXSk6IHN0cmluZyA9PiB7XG5cdFx0cmV0dXJuIG1ldGFQYXRoUGFydHNbMF0uZW5kc1dpdGgoXCIvXCIpID8gbWV0YVBhdGhQYXJ0c1swXSA6IG1ldGFQYXRoUGFydHNbMF0gKyBcIi9cIjtcblx0fTtcblxuXHRnZXRTZWFyY2ggPSAoKTogc3RyaW5nID0+IHtcblx0XHRpZiAoIXRoaXMuaGlkZUJhc2ljU2VhcmNoKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8TURDRmlsdGVyRmllbGRcblx0XHRcdFx0XHRpZD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiQmFzaWNTZWFyY2hGaWVsZFwiXSl9XG5cdFx0XHRcdFx0bGFiZWw9e1wiXCJ9XG5cdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJ7c2FwLmZlLmkxOG4+TV9GSUxURVJCQVJfU0VBUkNIfVwiXG5cdFx0XHRcdFx0cHJvcGVydHlLZXk9XCIkc2VhcmNoXCJcblx0XHRcdFx0XHRjb25kaXRpb25zPVwieyRmaWx0ZXJzPi9jb25kaXRpb25zLyRzZWFyY2h9XCJcblx0XHRcdFx0XHRkYXRhVHlwZT1cInNhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZ1wiXG5cdFx0XHRcdFx0bWF4Q29uZGl0aW9ucz1cIjFcIlxuXHRcdFx0XHRcdGRhdGFUeXBlQ29uc3RyYWludHM9XCJ7J21heExlbmd0aCc6MTAwMH1cIlxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH07XG5cblx0cHJvY2Vzc1NlbGVjdGlvbkZpZWxkcyA9ICgpOiB2b2lkID0+IHtcblx0XHRsZXQgZHJhZnRFZGl0U3RhdGUgPSBcIlwiO1xuXHRcdGlmICh0aGlzLnNob3dEcmFmdEVkaXRTdGF0ZSkge1xuXHRcdFx0Y29uc3QgZHJhZnRTdGF0ZXMgPSBEcmFmdEVkaXRTdGF0ZS5nZXRFZGl0U3RhdGVzKHRoaXMuaXNEcmFmdENvbGxhYm9yYXRpdmUpO1xuXHRcdFx0Y29uc3QgbGFiZWwgPSB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiRklMVEVSQkFSX0VESVRJTkdfU1RBVFVTXCIpO1xuXHRcdFx0ZHJhZnRFZGl0U3RhdGUgPSAoXG5cdFx0XHRcdDxNRENGaWx0ZXJGaWVsZFxuXHRcdFx0XHRcdGxhYmVsPXtsYWJlbH1cblx0XHRcdFx0XHRjb25kaXRpb25zPVwieyRmaWx0ZXJzPi9jb25kaXRpb25zLyRlZGl0U3RhdGV9XCJcblx0XHRcdFx0XHRtYXhDb25kaXRpb25zPVwiMVwiXG5cdFx0XHRcdFx0aWQ9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkXCIsIFwiRHJhZnRFZGl0aW5nU3RhdHVzXCJdKX1cblx0XHRcdFx0XHRvcGVyYXRvcnM9XCJFUVwiXG5cdFx0XHRcdFx0ZGF0YVR5cGU9XCJzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmdcIlxuXHRcdFx0XHRcdHByb3BlcnR5S2V5PVwiJGVkaXRTdGF0ZVwiXG5cdFx0XHRcdFx0ZGlzcGxheT1cIkRlc2NyaXB0aW9uXCJcblx0XHRcdFx0PlxuXHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRjb250ZW50RWRpdDogKFxuXHRcdFx0XHRcdFx0XHQ8U2VsZWN0XG5cdFx0XHRcdFx0XHRcdFx0aWQ9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkXCIsIFwiRHJhZnRFZGl0aW5nU3RhdHVzU2VsZWN0XCJdKX1cblx0XHRcdFx0XHRcdFx0XHR3aWR0aD1cIjEwMCVcIlxuXHRcdFx0XHRcdFx0XHRcdGZvcmNlU2VsZWN0aW9uPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRLZXk9XCJ7cGF0aDogJyRmaWVsZD4vY29uZGl0aW9ucycsIHR5cGU6ICdzYXAudWkubWRjLmZpZWxkLkNvbmRpdGlvbnNUeXBlJ31cIlxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0e3sgaXRlbXM6IGRyYWZ0U3RhdGVzLm1hcCgoc3RhdGUpID0+IDxMaXN0SXRlbSBrZXk9e3N0YXRlLmlkfSB0ZXh0PXtzdGF0ZS5kaXNwbGF5fSAvPikgfX1cblx0XHRcdFx0XHRcdFx0PC9TZWxlY3Q+XG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0PC9NRENGaWx0ZXJGaWVsZD5cblx0XHRcdCk7XG5cdFx0fVxuXHRcdHRoaXMuX3ZhbHVlSGVscHMgPSBbXTtcblx0XHR0aGlzLl9maWx0ZXJGaWVsZHMgPSBbXTtcblx0XHR0aGlzLl9maWx0ZXJGaWVsZHM/LnB1c2goZHJhZnRFZGl0U3RhdGUpO1xuXHRcdGlmICghQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGlvbkZpZWxkcykpIHtcblx0XHRcdHRoaXMuc2VsZWN0aW9uRmllbGRzID0gdGhpcy5zZWxlY3Rpb25GaWVsZHMhLmdldE9iamVjdCgpIGFzIENvbnZlcnRlZEZpbHRlckZpZWxkW107XG5cdFx0fVxuXHRcdHRoaXMuc2VsZWN0aW9uRmllbGRzPy5mb3JFYWNoKChzZWxlY3Rpb25GaWVsZDogQ29udmVydGVkRmlsdGVyRmllbGQpID0+IHtcblx0XHRcdGlmIChzZWxlY3Rpb25GaWVsZC5hdmFpbGFiaWxpdHkgPT09IFwiRGVmYXVsdFwiKSB7XG5cdFx0XHRcdHRoaXMuc2V0RmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyhzZWxlY3Rpb25GaWVsZCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0dGhpcy5fZmlsdGVyRmllbGRzID0gdGhpcy5fZmlsdGVyRmllbGRzPy5sZW5ndGggPiAwID8gdGhpcy5fZmlsdGVyRmllbGRzIDogXCJcIjtcblx0XHR0aGlzLl92YWx1ZUhlbHBzID0gdGhpcy5fdmFsdWVIZWxwcz8ubGVuZ3RoID4gMCA/IHRoaXMuX3ZhbHVlSGVscHMgOiBcIlwiO1xuXHR9O1xuXG5cdGdldFBlcnNpc3RlbmNlUHJvdmlkZXIoZmlsdGVyQmFySWQ6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuaWdub3JlUGVyc29uYWxpemF0aW9uQ2hhbmdlcykge1xuXHRcdFx0cmV0dXJuIDxQZXJzaXN0ZW5jZVByb3ZpZGVyIGlkPXtnZW5lcmF0ZShbZmlsdGVyQmFySWQsIFwiUGVyc2lzdGVuY2VQcm92aWRlclwiXSl9IGZvcj17ZmlsdGVyQmFySWR9IG1vZGU9e1wiVHJhbnNpZW50XCJ9IC8+O1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0c2V0RmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyA9IChzZWxlY3Rpb25GaWVsZDogQ29udmVydGVkRmlsdGVyRmllbGQpOiB2b2lkID0+IHtcblx0XHRpZiAoc2VsZWN0aW9uRmllbGQudGVtcGxhdGUgPT09IHVuZGVmaW5lZCAmJiBzZWxlY3Rpb25GaWVsZC50eXBlICE9PSBcIlNsb3RcIikge1xuXHRcdFx0dGhpcy5wdXNoRmlsdGVyRmllbGRzQW5kVmFsdWVIZWxwcyhzZWxlY3Rpb25GaWVsZCk7XG5cdFx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX2ZpbHRlckZpZWxkcykpIHtcblx0XHRcdGNvbnN0IHByb3BlcnR5ID0gc2VsZWN0aW9uRmllbGQuYW5ub3RhdGlvblBhdGg7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eUNvbnRleHQgPSB0aGlzLm1ldGFQYXRoIS5nZXRNb2RlbCgpLmNyZWF0ZUJpbmRpbmdDb250ZXh0KHByb3BlcnR5KTtcblx0XHRcdGNvbnN0IHByb3BlcnR5T2JqZWN0ID0gcHJvcGVydHlDb250ZXh0Py5nZXRPYmplY3QoKTtcblx0XHRcdGxldCBmaWx0ZXJDb250ZW50O1xuXHRcdFx0aWYgKHNlbGVjdGlvbkZpZWxkLnR5cGUgPT09IFwiU2xvdFwiKSB7XG5cdFx0XHRcdGZpbHRlckNvbnRlbnQgPSAoXG5cdFx0XHRcdFx0PFNsb3RDb2x1bW4gdGVtcGxhdGVJZD17c2VsZWN0aW9uRmllbGQudGVtcGxhdGV9PlxuXHRcdFx0XHRcdFx0PHNsb3QgbmFtZT17KHNlbGVjdGlvbkZpZWxkIGFzIE1hbmlmZXN0RmlsdGVyRmllbGQpLnNsb3ROYW1lIX0gLz5cblx0XHRcdFx0XHQ8L1Nsb3RDb2x1bW4+XG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2UgaWYgKHNlbGVjdGlvbkZpZWxkLnRlbXBsYXRlKSB7XG5cdFx0XHRcdGZpbHRlckNvbnRlbnQgPSAoXG5cdFx0XHRcdFx0PEN1c3RvbUZyYWdtZW50QmxvY2tcblx0XHRcdFx0XHRcdGZyYWdtZW50TmFtZT17c2VsZWN0aW9uRmllbGQudGVtcGxhdGV9XG5cdFx0XHRcdFx0XHRpZD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiQ3VzdG9tRmlsdGVyRmllbGRcIiwgc2VsZWN0aW9uRmllbGQua2V5XSl9XG5cdFx0XHRcdFx0XHRjb250ZXh0UGF0aD17XCJ7Y29udGV4dFBhdGg+fVwiIGFzIHVua25vd24gYXMgQ29udGV4dH1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0bGV0IG1heENvbmRpdGlvblZhbHVlID0gLTE7XG5cdFx0XHRpZiAocHJvcGVydHlDb250ZXh0KSB7XG5cdFx0XHRcdG1heENvbmRpdGlvblZhbHVlID0gbWF4Q29uZGl0aW9ucyhzZWxlY3Rpb25GaWVsZC5hbm5vdGF0aW9uUGF0aCwgeyBjb250ZXh0OiBwcm9wZXJ0eUNvbnRleHQgfSkgPz8gLTE7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9maWx0ZXJGaWVsZHM/LnB1c2goXG5cdFx0XHRcdDxNRENGaWx0ZXJGaWVsZFxuXHRcdFx0XHRcdGlkPXtnZW5lcmF0ZShbdGhpcy5pZCwgXCJDdXN0b21GaWx0ZXJGaWVsZFwiLCBzZWxlY3Rpb25GaWVsZC5rZXldKX1cblx0XHRcdFx0XHRkZWxlZ2F0ZT17eyBuYW1lOiBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRCYXNlRGVsZWdhdGVcIiB9fVxuXHRcdFx0XHRcdHByb3BlcnR5S2V5PXtzZWxlY3Rpb25GaWVsZC5jb25kaXRpb25QYXRofVxuXHRcdFx0XHRcdGxhYmVsPXtzZWxlY3Rpb25GaWVsZC5sYWJlbH1cblx0XHRcdFx0XHRkYXRhVHlwZT17c2VsZWN0aW9uRmllbGQuZGF0YVR5cGV9XG5cdFx0XHRcdFx0bWF4Q29uZGl0aW9ucz17bWF4Q29uZGl0aW9uVmFsdWV9XG5cdFx0XHRcdFx0Y29uZGl0aW9ucz17YHskZmlsdGVycz4vY29uZGl0aW9ucy8ke3NlbGVjdGlvbkZpZWxkLmNvbmRpdGlvblBhdGh9fWB9XG5cdFx0XHRcdFx0b3BlcmF0b3JzPXtGaWVsZEhlbHBlci5vcGVyYXRvcnMoXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eUNvbnRleHQsXG5cdFx0XHRcdFx0XHRwcm9wZXJ0eU9iamVjdCxcblx0XHRcdFx0XHRcdHRoaXMudXNlU2VtYW50aWNEYXRlUmFuZ2UsXG5cdFx0XHRcdFx0XHRzZWxlY3Rpb25GaWVsZC5zZXR0aW5ncyBhcyB1bmtub3duIGFzIHN0cmluZyxcblx0XHRcdFx0XHRcdHRoaXMuY29udGV4dFBhdGghLmdldFBhdGgoKVxuXHRcdFx0XHRcdCl9XG5cdFx0XHRcdFx0ZGF0YVR5cGVDb25zdHJhaW50cz17KHNlbGVjdGlvbkZpZWxkIGFzIHVua25vd24gYXMgeyBjb25zdHJhaW50czogdW5rbm93biB9KS5jb25zdHJhaW50c31cblx0XHRcdFx0XHRkYXRhVHlwZUZvcm1hdE9wdGlvbnM9eyhzZWxlY3Rpb25GaWVsZCBhcyB1bmtub3duIGFzIHsgZm9ybWF0T3B0aW9uczogdW5rbm93biB9KS5mb3JtYXRPcHRpb25zfVxuXHRcdFx0XHRcdHZhbHVlSGVscD17XCJ1bmRlZmluZWRcIn1cblx0XHRcdFx0XHRyZXF1aXJlZD17c2VsZWN0aW9uRmllbGQucmVxdWlyZWR9XG5cdFx0XHRcdD5cblx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0XHQ8Q3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlclxuXHRcdFx0XHRcdFx0XHRcdGNvcmU6cmVxdWlyZT1cIntoYW5kbGVyOiAnc2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHMnfVwiXG5cdFx0XHRcdFx0XHRcdFx0aWQ9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkQ29udGVudFdyYXBwZXJcIiwgc2VsZWN0aW9uRmllbGQua2V5XSl9XG5cdFx0XHRcdFx0XHRcdFx0YmluZGluZz17YHtmaWx0ZXJWYWx1ZXM+LyR7RmlsdGVyVXRpbHMuY29uZGl0aW9uVG9Nb2RlbFBhdGgoc2VsZWN0aW9uRmllbGQuY29uZGl0aW9uUGF0aCl9fWB9XG5cdFx0XHRcdFx0XHRcdFx0Y29uZGl0aW9ucz17XCJ7cGF0aDogJyRmaWVsZD4vY29uZGl0aW9ucyd9XCIgYXMgdW5rbm93biBhcyBDb25kaXRpb25PYmplY3RbXX1cblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdHt7IGNvbnRlbnQ6IGZpbHRlckNvbnRlbnQgfX1cblx0XHRcdFx0XHRcdFx0PC9DdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyPlxuXHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdGN1c3RvbURhdGE6IFtcblx0XHRcdFx0XHRcdFx0PEN1c3RvbURhdGEga2V5PXtcImlzU2xvdFwifSB2YWx1ZT17c2VsZWN0aW9uRmllbGQudHlwZSA9PT0gXCJTbG90XCJ9IC8+LFxuXHRcdFx0XHRcdFx0XHQ8RmllbGRIZWxwQ3VzdG9tRGF0YVxuXHRcdFx0XHRcdFx0XHRcdGtleT17XCJzYXAtdWktRG9jdW1lbnRhdGlvblJlZlwifVxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlPXtge3BhcnRzOiBbe3ZhbHVlOiAnYXNBcnJheSd9LCB7dmFsdWU6ICcke3NlbGVjdGlvbkZpZWxkLmRvY3VtZW50UmVmVGV4dH0nfV0sIGZvcm1hdHRlcjogJy5fZm9ybWF0dGVycy5TdGFuZGFyZEZvcm1hdHRlcid9YH1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ8L01EQ0ZpbHRlckZpZWxkPlxuXHRcdFx0KTtcblx0XHR9XG5cdH07XG5cblx0X2dldENvbnRleHRQYXRoRm9yRmlsdGVyRmllbGQoc2VsZWN0aW9uRmllbGQ6IENvbnZlcnRlZEZpbHRlckZpZWxkLCBmaWx0ZXJCYXJDb250ZXh0UGF0aDogQ29udGV4dCk6IHN0cmluZyB7XG5cdFx0bGV0IGNvbnRleHRQYXRoOiBzdHJpbmcgPSBmaWx0ZXJCYXJDb250ZXh0UGF0aD8uZ2V0UGF0aCgpO1xuXHRcdGlmIChzZWxlY3Rpb25GaWVsZC5pc1BhcmFtZXRlcikge1xuXHRcdFx0Ly8gRXhhbXBsZTpcblx0XHRcdC8vIEZpbHRlckJhckNvbnRleHRQYXRoOiAvQ3VzdG9tZXIvU2V0XG5cdFx0XHQvLyBQYXJhbWV0ZXJQcm9wZXJ0eVBhdGg6IC9DdXN0b21lci9QX0NDXG5cdFx0XHQvLyBDb250ZXh0UGF0aEZvckZpbHRlckZpZWxkOiAvQ3VzdG9tZXJcblx0XHRcdGNvbnN0IGFubm9QYXRoID0gc2VsZWN0aW9uRmllbGQuYW5ub3RhdGlvblBhdGg7XG5cdFx0XHRjb250ZXh0UGF0aCA9IGFubm9QYXRoLnN1YnN0cmluZygwLCBhbm5vUGF0aC5sYXN0SW5kZXhPZihcIi9cIikgKyAxKTtcblx0XHR9XG5cdFx0cmV0dXJuIGNvbnRleHRQYXRoO1xuXHR9XG5cblx0cHVzaEZpbHRlckZpZWxkc0FuZFZhbHVlSGVscHMgPSAoc2VsZWN0aW9uRmllbGQ6IENvbnZlcnRlZEZpbHRlckZpZWxkKTogdm9pZCA9PiB7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodGhpcy5fZmlsdGVyRmllbGRzKSkge1xuXHRcdFx0Y29uc3QgdmYgPSB7IC4uLnNlbGVjdGlvbkZpZWxkLnZpc3VhbEZpbHRlciwgLi4ueyBpbml0aWFsQ2hhcnRCaW5kaW5nRW5hYmxlZDogIXRoaXMuc3VzcGVuZFNlbGVjdGlvbiB9IH07XG5cdFx0XHR0aGlzLl9maWx0ZXJGaWVsZHM/LnB1c2goXG5cdFx0XHRcdDxJbnRlcm5hbEZpbHRlckZpZWxkXG5cdFx0XHRcdFx0aWRQcmVmaXg9e2dlbmVyYXRlKFt0aGlzLmlkLCBcIkZpbHRlckZpZWxkXCIsIENvbW1vbkhlbHBlci5nZXROYXZpZ2F0aW9uUGF0aChzZWxlY3Rpb25GaWVsZC5hbm5vdGF0aW9uUGF0aCldKX1cblx0XHRcdFx0XHR2aElkUHJlZml4PXtnZW5lcmF0ZShbdGhpcy5pZCwgXCJGaWx0ZXJGaWVsZFZhbHVlSGVscFwiXSl9XG5cdFx0XHRcdFx0cHJvcGVydHk9e3NlbGVjdGlvbkZpZWxkLmFubm90YXRpb25QYXRoIGFzIHVua25vd24gYXMgQ29udGV4dH1cblx0XHRcdFx0XHRjb250ZXh0UGF0aD17dGhpcy5fZ2V0Q29udGV4dFBhdGhGb3JGaWx0ZXJGaWVsZChzZWxlY3Rpb25GaWVsZCwgdGhpcy5faW50ZXJuYWxDb250ZXh0UGF0aCkgYXMgdW5rbm93biBhcyBDb250ZXh0fVxuXHRcdFx0XHRcdHVzZVNlbWFudGljRGF0ZVJhbmdlPXt0aGlzLnVzZVNlbWFudGljRGF0ZVJhbmdlfVxuXHRcdFx0XHRcdGxhYmVsPXtzZWxlY3Rpb25GaWVsZC5sYWJlbH1cblx0XHRcdFx0XHRzZXR0aW5ncz17Q29tbW9uSGVscGVyLnN0cmluZ2lmeUN1c3RvbURhdGEoc2VsZWN0aW9uRmllbGQuc2V0dGluZ3MpfVxuXHRcdFx0XHRcdHZpc3VhbEZpbHRlcj17c2VsZWN0aW9uRmllbGQudmlzdWFsRmlsdGVyICE9PSB1bmRlZmluZWQgPyAoc3RvcmVPYmplY3RWYWx1ZSh2ZikgYXMgdW5rbm93biBhcyBDb250ZXh0KSA6IHVuZGVmaW5lZH1cblx0XHRcdFx0XHRlZGl0TW9kZT17YHtpbnRlcm5hbD4vJHt0aGlzLmlkfS9maWx0ZXJGaWVsZHMvJHtzZWxlY3Rpb25GaWVsZC5jb25kaXRpb25QYXRofS9lZGl0TW9kZX1gfVxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodGhpcy5fdmFsdWVIZWxwcykpIHtcblx0XHRcdHRoaXMuX3ZhbHVlSGVscHM/LnB1c2goXG5cdFx0XHRcdDxWYWx1ZUhlbHBcblx0XHRcdFx0XHRpZFByZWZpeD17Z2VuZXJhdGUoW3RoaXMuaWQsIFwiRmlsdGVyRmllbGRWYWx1ZUhlbHBcIl0pfVxuXHRcdFx0XHRcdGNvbmRpdGlvbk1vZGVsPVwiJGZpbHRlcnNcIlxuXHRcdFx0XHRcdG1ldGFQYXRoPXtzZWxlY3Rpb25GaWVsZC5hbm5vdGF0aW9uUGF0aH1cblx0XHRcdFx0XHRjb250ZXh0UGF0aD17dGhpcy5fZ2V0Q29udGV4dFBhdGhGb3JGaWx0ZXJGaWVsZChzZWxlY3Rpb25GaWVsZCwgdGhpcy5faW50ZXJuYWxDb250ZXh0UGF0aCl9XG5cdFx0XHRcdFx0ZmlsdGVyRmllbGRWYWx1ZUhlbHA9e3RydWV9XG5cdFx0XHRcdFx0dXNlU2VtYW50aWNEYXRlUmFuZ2U9e3RoaXMudXNlU2VtYW50aWNEYXRlUmFuZ2V9XG5cdFx0XHRcdC8+XG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcblxuXHQvKipcblx0ICogRGV0ZXJtaW5lcyB0aGUgZGVzaWduIHRpbWUgZm9yIHRoZSBNREMgRmlsdGVyQmFyLlxuXHQgKiBAcmV0dXJucyBUaGUgdmFsdWUgdG8gYmUgYXNzaWduZWQgdG8gZHQ6ZGVzaWdudGltZVxuXHQgKi9cblx0Z2V0RGVzaWdudGltZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiBcInNhcC9mZS9tYWNyb3MvZmlsdGVyQmFyL2Rlc2lnbnRpbWUvRmlsdGVyQmFyLmRlc2lnbnRpbWVcIjtcblx0fVxuXG5cdGdldFRlbXBsYXRlKCk6IHN0cmluZyB7XG5cdFx0Y29uc3QgaW50ZXJuYWxDb250ZXh0UGF0aCA9IHRoaXMuX2ludGVybmFsQ29udGV4dFBhdGg/LmdldFBhdGgoKTtcblx0XHRsZXQgZmlsdGVyRGVsZWdhdGUgPSBcIlwiO1xuXHRcdGlmICh0aGlzLmZpbHRlckJhckRlbGVnYXRlKSB7XG5cdFx0XHRmaWx0ZXJEZWxlZ2F0ZSA9IHRoaXMuZmlsdGVyQmFyRGVsZWdhdGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZpbHRlckRlbGVnYXRlID0gXCJ7bmFtZTonc2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVyQmFyRGVsZWdhdGUnLCBwYXlsb2FkOiB7ZW50aXR5VHlwZVBhdGg6ICdcIiArIGludGVybmFsQ29udGV4dFBhdGggKyBcIid9fVwiO1xuXHRcdH1cblx0XHQvLyBhZnRlciByZW1vdmluZyB0aGUgdW53YW50ZWQgcHJvcGVydGllcyBQcm9wZXJ0eUluZm8gaXMgYWRkZWQgdG8gdGhlIGNvbnRyb2wsIGFuZCB3ZSBhbHNvIHNhdmUgdGhlIGZ1bGwgdmVyc2lvbiBhcyBjdXN0b20gZGF0YSBmb3IgRkUgaW50ZXJuYWwgdXNlXG5cdFx0Y29uc3QgX3Byb3BlcnR5SW5mb0NvbnRyb2wgPSBGaWx0ZXJVdGlscy5mb3JtYXRQcm9wZXJ0eUluZm8odGhpcy5wcm9wZXJ0eUluZm8gYXMgc3RyaW5nKTtcblxuXHRcdGNvbnN0IGhhc092ZXJyaWRlID0gdGhpcy5jaGVja0lmUmVzb3VyY2VLZXlFeGlzdHMoXCJNX0ZJTFRFUkJBUl9BREFQVF9GSUxURVJTX05PTl9aRVJPXCIpO1xuXHRcdGxldCBhZGFwdEZpbHRlcnNOb25aZXJvVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGxldCBhZGFwdEZpbHRlcnNUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKGhhc092ZXJyaWRlKSB7XG5cdFx0XHRhZGFwdEZpbHRlcnNOb25aZXJvVGV4dCA9IHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJNX0ZJTFRFUkJBUl9BREFQVF9GSUxURVJTX05PTl9aRVJPXCIpLnJlcGxhY2VBbGwoXCJ7XCIsIFwiXFxcXHtcIik7XG5cdFx0XHRhZGFwdEZpbHRlcnNUZXh0ID0gdGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIk1fRklMVEVSQkFSX0FEQVBUX0ZJTFRFUlNcIik7XG5cdFx0fVxuXHRcdHJldHVybiAoXG5cdFx0XHQ8RmlsdGVyQmFyQVBJXG5cdFx0XHRcdGlkPXt0aGlzLl9hcGlJZH1cblx0XHRcdFx0bWV0YVBhdGg9e3RoaXMubWV0YVBhdGghLmdldFBhdGgoKX1cblx0XHRcdFx0c2VhcmNoPXt0aGlzLnNlYXJjaH1cblx0XHRcdFx0ZmlsdGVyQ2hhbmdlZD17dGhpcy5maWx0ZXJDaGFuZ2VkfVxuXHRcdFx0XHRhZnRlckNsZWFyPXt0aGlzLmFmdGVyQ2xlYXJ9XG5cdFx0XHRcdGludGVybmFsU2VhcmNoPXt0aGlzLmludGVybmFsU2VhcmNofVxuXHRcdFx0XHRpbnRlcm5hbEZpbHRlckNoYW5nZWQ9e3RoaXMuaW50ZXJuYWxGaWx0ZXJDaGFuZ2VkfVxuXHRcdFx0PlxuXHRcdFx0XHR7e1xuXHRcdFx0XHRcdGNvbnRlbnQ6IChcblx0XHRcdFx0XHRcdDxGRUZpbHRlckJhclxuXHRcdFx0XHRcdFx0XHRjb3JlOnJlcXVpcmU9XCJ7QVBJOiAnc2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVyQmFyQVBJJ31cIlxuXHRcdFx0XHRcdFx0XHRhZGFwdEZpbHRlcnNUZXh0PXthZGFwdEZpbHRlcnNUZXh0fVxuXHRcdFx0XHRcdFx0XHRhZGFwdEZpbHRlcnNUZXh0Tm9uWmVybz17YWRhcHRGaWx0ZXJzTm9uWmVyb1RleHR9XG5cdFx0XHRcdFx0XHRcdGlkPXt0aGlzLl9jb250ZW50SWR9XG5cdFx0XHRcdFx0XHRcdGxpdmVNb2RlPXt0aGlzLmxpdmVNb2RlfVxuXHRcdFx0XHRcdFx0XHRkZWxlZ2F0ZT17ZmlsdGVyRGVsZWdhdGV9XG5cdFx0XHRcdFx0XHRcdHZhcmlhbnRCYWNrcmVmZXJlbmNlPXt0aGlzLmxpdmVNb2RlID8gdW5kZWZpbmVkIDogdGhpcy52YXJpYW50QmFja3JlZmVyZW5jZX1cblx0XHRcdFx0XHRcdFx0c2hvd0FkYXB0RmlsdGVyc0J1dHRvbj17dGhpcy5zaG93QWRhcHRGaWx0ZXJzQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHRzaG93Q2xlYXJCdXR0b249e3RoaXMuc2hvd0NsZWFyQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHRwMTNuTW9kZT17dGhpcy5wMTNuTW9kZX1cblx0XHRcdFx0XHRcdFx0c2VhcmNoPXtcIkFQSS5oYW5kbGVTZWFyY2goJGV2ZW50KVwiIGFzIHVua25vd24gYXMgKGU6IEZpbHRlckJhckJhc2UkU2VhcmNoRXZlbnQpID0+IHZvaWR9XG5cdFx0XHRcdFx0XHRcdGZpbHRlcnNDaGFuZ2VkPXtcIkFQSS5oYW5kbGVGaWx0ZXJDaGFuZ2VkKCRldmVudClcIiBhcyB1bmtub3duIGFzIChlOiBGaWx0ZXJCYXJCYXNlJEZpbHRlcnNDaGFuZ2VkRXZlbnQpID0+IHZvaWR9XG5cdFx0XHRcdFx0XHRcdGZpbHRlckNvbmRpdGlvbnM9e3RoaXMuZmlsdGVyQ29uZGl0aW9uc31cblx0XHRcdFx0XHRcdFx0c3VzcGVuZFNlbGVjdGlvbj17dGhpcy5zdXNwZW5kU2VsZWN0aW9ufVxuXHRcdFx0XHRcdFx0XHRzaG93TWVzc2FnZXM9e3RoaXMuc2hvd01lc3NhZ2VzfVxuXHRcdFx0XHRcdFx0XHR0b2dnbGVDb250cm9sPXt0aGlzLnRvZ2dsZUNvbnRyb2xJZH1cblx0XHRcdFx0XHRcdFx0aW5pdGlhbExheW91dD17dGhpcy5pbml0aWFsTGF5b3V0fVxuXHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0aGlzLnZpc2libGV9XG5cdFx0XHRcdFx0XHRcdGRpc2FibGVEcmFmdEVkaXRTdGF0ZUZpbHRlcj17dGhpcy5kaXNhYmxlRHJhZnRFZGl0U3RhdGVGaWx0ZXJ9XG5cdFx0XHRcdFx0XHRcdGR0OmRlc2lnbnRpbWU9e3RoaXMuZGVzaWdudGltZX1cblx0XHRcdFx0XHRcdFx0Y3VzdG9tRGF0YTplbnRpdHlUeXBlPXtpbnRlcm5hbENvbnRleHRQYXRofVxuXHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0XHRcdGN1c3RvbURhdGE6IFtcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJsb2NhbElkXCJ9IHZhbHVlPXt0aGlzLmlkfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJoaWRlQmFzaWNTZWFyY2hcIn0gdmFsdWU9e3RoaXMuaGlkZUJhc2ljU2VhcmNofSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJzaG93RHJhZnRFZGl0U3RhdGVcIn0gdmFsdWU9e3RoaXMuc2hvd0RyYWZ0RWRpdFN0YXRlfSAvPixcblx0XHRcdFx0XHRcdFx0XHRcdDxDdXN0b21EYXRhIGtleT17XCJ1c2VTZW1hbnRpY0RhdGVSYW5nZVwifSB2YWx1ZT17dGhpcy51c2VTZW1hbnRpY0RhdGVSYW5nZX0gLz4sXG5cdFx0XHRcdFx0XHRcdFx0XHQ8Q3VzdG9tRGF0YSBrZXk9e1wicGFyYW1ldGVyc1wifSB2YWx1ZT17dGhpcy5fcGFyYW1ldGVyc30gLz4sXG5cdFx0XHRcdFx0XHRcdFx0XHQ8Q3VzdG9tRGF0YSBrZXk9e1wiZmVGaWx0ZXJJbmZvXCJ9IHZhbHVlPXt0aGlzLnByb3BlcnR5SW5mb30gLz4sXG5cdFx0XHRcdFx0XHRcdFx0XHQ8Q3VzdG9tRGF0YSBrZXk9e1wiYW5ub3RhdGlvblBhdGhcIn0gdmFsdWU9e3RoaXMuX2Fubm90YXRpb25QYXRofSAvPlxuXHRcdFx0XHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XHRcdFx0ZGVwZW5kZW50czogW3RoaXMuX3ZhbHVlSGVscHMsIHRoaXMuZ2V0UGVyc2lzdGVuY2VQcm92aWRlcih0aGlzLl9jb250ZW50SWQgYXMgc3RyaW5nKV0sXG5cdFx0XHRcdFx0XHRcdFx0YmFzaWNTZWFyY2hGaWVsZDogdGhpcy5nZXRTZWFyY2goKSxcblx0XHRcdFx0XHRcdFx0XHRmaWx0ZXJJdGVtczogdGhpcy5fZmlsdGVyRmllbGRzXG5cdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHQ8L0ZFRmlsdGVyQmFyPlxuXHRcdFx0XHRcdClcblx0XHRcdFx0fX1cblx0XHRcdDwvRmlsdGVyQmFyQVBJPlxuXHRcdCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNERBLE1BQU1BLDhCQUE4QixHQUFHLFNBQUFBLENBQVVDLGdCQUF5QixFQUFFQyxpQkFBOEIsRUFBZTtJQUN4SEEsaUJBQWlCLENBQUNDLFFBQVEsR0FBR0QsaUJBQWlCLENBQUNFLEdBQUc7SUFDbERGLGlCQUFpQixDQUFDRSxHQUFHLEdBQUdGLGlCQUFpQixDQUFDRSxHQUFHLENBQUNDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO0lBQ3ZFSCxpQkFBaUIsQ0FBQ0ksUUFBUSxHQUFHTCxnQkFBZ0IsQ0FBQ00sWUFBWSxDQUFDLFVBQVUsQ0FBRTtJQUN2RUwsaUJBQWlCLENBQUNNLEtBQUssR0FBR1AsZ0JBQWdCLENBQUNNLFlBQVksQ0FBQyxPQUFPLENBQUU7SUFDakVMLGlCQUFpQixDQUFDTyxRQUFRLEdBQUdSLGdCQUFnQixDQUFDTSxZQUFZLENBQUMsVUFB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
|
|
@@ -674,6 +674,14 @@ export default class FilterBarBlock extends BuildingBlockTemplatingBase {
|
|
|
674
674
|
}
|
|
675
675
|
// after removing the unwanted properties PropertyInfo is added to the control, and we also save the full version as custom data for FE internal use
|
|
676
676
|
const _propertyInfoControl = FilterUtils.formatPropertyInfo(this.propertyInfo as string);
|
|
677
|
+
|
|
678
|
+
const hasOverride = this.checkIfResourceKeyExists("M_FILTERBAR_ADAPT_FILTERS_NON_ZERO");
|
|
679
|
+
let adaptFiltersNonZeroText: string | undefined;
|
|
680
|
+
let adaptFiltersText: string | undefined;
|
|
681
|
+
if (hasOverride) {
|
|
682
|
+
adaptFiltersNonZeroText = this.getTranslatedText("M_FILTERBAR_ADAPT_FILTERS_NON_ZERO").replaceAll("{", "\\{");
|
|
683
|
+
adaptFiltersText = this.getTranslatedText("M_FILTERBAR_ADAPT_FILTERS");
|
|
684
|
+
}
|
|
677
685
|
return (
|
|
678
686
|
<FilterBarAPI
|
|
679
687
|
id={this._apiId}
|
|
@@ -688,6 +696,8 @@ export default class FilterBarBlock extends BuildingBlockTemplatingBase {
|
|
|
688
696
|
content: (
|
|
689
697
|
<FEFilterBar
|
|
690
698
|
core:require="{API: 'sap/fe/macros/filterBar/FilterBarAPI'}"
|
|
699
|
+
adaptFiltersText={adaptFiltersText}
|
|
700
|
+
adaptFiltersTextNonZero={adaptFiltersNonZeroText}
|
|
691
701
|
id={this._contentId}
|
|
692
702
|
liveMode={this.liveMode}
|
|
693
703
|
delegate={filterDelegate}
|