@sapui5/sap.fe.templates 1.105.1 → 1.107.1

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.
Files changed (37) hide show
  1. package/package.json +2 -2
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +2 -2
  4. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.ts +1 -1
  5. package/src/sap/fe/templates/Feedback.js +1 -1
  6. package/src/sap/fe/templates/Feedback.ts +0 -3
  7. package/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -12
  8. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +52 -66
  9. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +46 -61
  10. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +1 -13
  11. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +0 -9
  12. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +2 -2
  13. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +1 -1
  14. package/src/sap/fe/templates/ListReport/overrides/Share.js +4 -23
  15. package/src/sap/fe/templates/ListReport/overrides/Share.ts +5 -26
  16. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +5 -5
  17. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +4 -4
  18. package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +6 -1
  19. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +133 -4
  20. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +90 -3
  21. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +4 -23
  22. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +38 -13
  23. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +38 -14
  24. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +29 -13
  25. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +27 -18
  26. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +2 -2
  27. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +2 -1
  28. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +2 -2
  29. package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +1 -1
  30. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +60 -48
  31. package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +4 -4
  32. package/src/sap/fe/templates/ObjectPage/view/fragments/FormActionButtons.fragment.xml +5 -1
  33. package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingContent.fragment.xml +30 -0
  34. package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +11 -8
  35. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +4 -4
  36. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +3 -3
  37. package/src/sap/fe/templates/library.js +1 -1
@@ -26,6 +26,7 @@ import {
26
26
  import EditState from "sap/fe/core/helpers/EditState";
27
27
  import MessageStrip from "sap/fe/core/helpers/MessageStrip";
28
28
  import { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
29
+ import * as StableIdHelper from "sap/fe/core/helpers/StableIdHelper";
29
30
  import CoreLibrary from "sap/fe/core/library";
30
31
  import PageController from "sap/fe/core/PageController";
31
32
  import ChartRuntime from "sap/fe/macros/chart/ChartRuntime";
@@ -33,11 +34,13 @@ import ChartUtils from "sap/fe/macros/chart/ChartUtils";
33
34
  import CommonHelper from "sap/fe/macros/CommonHelper";
34
35
  import DelegateUtil from "sap/fe/macros/DelegateUtil";
35
36
  import FilterUtils from "sap/fe/macros/filter/FilterUtils";
37
+ import TableHelper from "sap/fe/macros/table/TableHelper";
36
38
  import MultipleModeControl from "sap/fe/templates/ListReport/controls/MultipleModeControl";
37
39
  import ExtensionAPI from "sap/fe/templates/ListReport/ExtensionAPI";
38
40
  import EditFlowOverrides from "sap/fe/templates/RootContainer/overrides/EditFlow";
39
41
  import TableScroller from "sap/fe/templates/TableScroller";
40
42
  import type SegmentedButton from "sap/m/SegmentedButton";
43
+ import Component from "sap/ui/core/Component";
41
44
  import type Control from "sap/ui/core/Control";
42
45
  import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
43
46
  import { system } from "sap/ui/Device";
@@ -47,6 +50,7 @@ import type JSONModel from "sap/ui/model/json/JSONModel";
47
50
  import type ResourceModel from "sap/ui/model/resource/ResourceModel";
48
51
  import hasher from "sap/ui/thirdparty/hasher";
49
52
  import type { V4Context } from "types/extension_types";
53
+ import * as ListReportTemplating from "./ListReportTemplating";
50
54
  import IntentBasedNavigationOverride from "./overrides/IntentBasedNavigation";
51
55
  import ShareOverrides from "./overrides/Share";
52
56
  import ViewStateOverrides from "./overrides/ViewState";
@@ -93,7 +97,7 @@ class ListReportController extends PageController {
93
97
  placeholder!: Placeholder;
94
98
  @usingExtension(MassEdit)
95
99
  massEdit!: MassEdit;
96
- private extensionAPI?: ExtensionAPI;
100
+ protected extensionAPI?: ExtensionAPI;
97
101
  private filterBarConditions?: any;
98
102
  private sUpdateTimer?: any;
99
103
  private oResourceBundle?: ResourceBundle;
@@ -153,7 +157,7 @@ class ListReportController extends PageController {
153
157
  const aTables = this._getControls("table");
154
158
  if (EditState.isEditStateDirty()) {
155
159
  this._getMultiModeControl()?.invalidateContent();
156
- const oTableBinding = this._getTableBinding();
160
+ const oTableBinding = this._getTable()?.getRowBinding();
157
161
  if (oTableBinding) {
158
162
  if (CommonUtils.getAppComponent(this.getView())._isFclEnabled()) {
159
163
  // there is an issue if we use a timeout with a kept alive context used on another page
@@ -276,9 +280,7 @@ class ListReportController extends PageController {
276
280
  }
277
281
 
278
282
  getCurrentEntitySet() {
279
- return this._isMultiMode()
280
- ? this._getMultiModeControl()?.getDisplayedEntitySet()
281
- : this._getTable()?.data("targetCollectionPath").slice(1);
283
+ return this._getTable()?.data("targetCollectionPath").slice(1);
282
284
  }
283
285
 
284
286
  /**
@@ -299,6 +301,9 @@ class ListReportController extends PageController {
299
301
  ),
300
302
  aSelectedContexts = oTable.getSelectedContexts();
301
303
 
304
+ oInternalModelContext.setProperty("selectedContexts", aSelectedContexts);
305
+ oInternalModelContext.setProperty("numberOfSelectedContexts", aSelectedContexts.length);
306
+ TableHelper.handleTableDeleteEnablementForSideEffects(oTable, oInternalModelContext);
302
307
  ActionRuntime.setActionEnablement(oInternalModelContext, oActionOperationAvailableMap, aSelectedContexts, "table");
303
308
  });
304
309
  CommonUtils.updateDataFieldForIBNButtonsVisibility(aIBNActions, this.getView());
@@ -318,16 +323,13 @@ class ListReportController extends PageController {
318
323
  }
319
324
 
320
325
  _getPageTitleInformation() {
321
- const oTitleInfo = { title: "", subtitle: "", intent: "", icon: "" };
322
- oTitleInfo.title = this.getView().getContent()[0].data().ListReportTitle;
323
- oTitleInfo.subtitle = this.getView().getContent()[0].data().ListReportSubtitle;
324
- return oTitleInfo;
325
- }
326
-
327
- _getPageOrFilterBarVariantManagement() {
328
- return (
329
- this.getView().byId("fe::PageVariantManagement") || this.getView().byId(`${this._getFilterBarControlId()}::VariantManagement`)
330
- );
326
+ const oManifestEntry = this.getAppComponent().getManifestEntry("sap.app");
327
+ return {
328
+ title: oManifestEntry.title,
329
+ subtitle: oManifestEntry.appSubTitle || "",
330
+ intent: "",
331
+ icon: ""
332
+ };
331
333
  }
332
334
 
333
335
  _getFilterBarControl() {
@@ -342,62 +344,48 @@ class ListReportController extends PageController {
342
344
  }
343
345
 
344
346
  _getSegmentedButton(sControl: any) {
345
- return this.getView().byId(this._getSegmentedButtonId(sControl));
347
+ const sSegmentedButtonId = (sControl === "Chart" ? this.getChartControl() : this._getTable())?.data("segmentedButtonId");
348
+ return this.getView().byId(sSegmentedButtonId);
346
349
  }
347
350
 
348
- _getSegmentedButtonId(sControl: any) {
349
- if (sControl === "Chart") {
350
- return this._getChart().data("segmentedButtonId");
351
- } else {
352
- return this._getTable()?.data("segmentedButtonId");
353
- }
351
+ _getControlFromPageModelProperty(sPath: string) {
352
+ const controlId = this._getPageModel()?.getProperty(sPath);
353
+ return controlId && this.getView().byId(controlId);
354
354
  }
355
355
 
356
- _getFilterBarControlId() {
357
- return this.getView().getContent()[0].data("filterBarId");
356
+ _getPageModel(): JSONModel | undefined {
357
+ const pageComponent = Component.getOwnerComponentFor(this.getView()) as any;
358
+ return pageComponent.getModel("_pageModel");
358
359
  }
359
360
 
360
- _getChartControlId() {
361
- return this.getView().getContent()[0].data("singleChartId");
361
+ _getFilterBarControlId(): string {
362
+ return this._getPageModel()?.getProperty("/filterBarId") || "";
362
363
  }
363
364
 
364
365
  getChartControl() {
365
- return this.getView().byId(this._getChartControlId());
366
+ return this._getControlFromPageModelProperty("/singleChartId");
366
367
  }
367
368
 
368
369
  _getVisualFilterBarControl() {
369
- return this.getView().byId(this._getVisualFilterBarControlId());
370
+ const sVisualFilterBarId = StableIdHelper.generate(["visualFilter", this._getFilterBarControlId()]);
371
+ return sVisualFilterBarId && this.getView().byId(sVisualFilterBarId);
370
372
  }
371
-
372
- _getVisualFilterBarControlId() {
373
- return this.getView().getContent()[0].data("visualFilterBarId");
373
+ _getFilterBarVariantControl() {
374
+ return this._getControlFromPageModelProperty("/variantManagement/id");
374
375
  }
375
376
 
376
377
  _getMultiModeControl() {
377
378
  return this.getView().byId("fe::TabMultipleMode::Control") as MultipleModeControl;
378
379
  }
379
380
 
380
- _getTableControlId() {
381
- return this.getView().getContent()[0].data("singleTableId");
382
- }
383
-
384
381
  _getTable(): Table | undefined {
385
382
  if (this._isMultiMode()) {
386
383
  const oControl = this._getMultiModeControl()?.getSelectedInnerControl()?.content;
387
384
  return oControl?.isA("sap.ui.mdc.Table") ? (oControl as Table) : undefined;
385
+ } else {
386
+ return this._getControlFromPageModelProperty("/singleTableId") as Table;
388
387
  }
389
- return this.getView().byId(this._getTableControlId()) as Table;
390
- }
391
-
392
- _getChart() {
393
- return this.getView().byId(this._getChartControlId());
394
388
  }
395
-
396
- _getTableBinding(sTableId?: any) {
397
- const oTableControl = sTableId ? this.getView().byId(sTableId) : this._getTable();
398
- return oTableControl && (oTableControl as any)._getRowBinding();
399
- }
400
-
401
389
  _getControls(sKey?: any) {
402
390
  if (this._isMultiMode()) {
403
391
  const aControls: any[] = [];
@@ -414,7 +402,7 @@ class ListReportController extends PageController {
414
402
  });
415
403
  return aControls;
416
404
  } else if (sKey === "Chart") {
417
- const oChart = this._getChart();
405
+ const oChart = this.getChartControl();
418
406
  return oChart ? [oChart] : [];
419
407
  } else {
420
408
  const oTable = this._getTable();
@@ -423,7 +411,7 @@ class ListReportController extends PageController {
423
411
  }
424
412
 
425
413
  _getDefaultPath() {
426
- const defaultPath = this.getView().getContent()[0].data("defaultPath");
414
+ const defaultPath = ListReportTemplating.getDefaultPath(this._getPageModel()?.getProperty("/views") || []);
427
415
  switch (defaultPath) {
428
416
  case "primary":
429
417
  return TemplateContentView.Chart;
@@ -443,7 +431,7 @@ class ListReportController extends PageController {
443
431
  * @returns Is Multiple Table mode set?
444
432
  */
445
433
  _isMultiMode(): boolean {
446
- return !!this.getView().getModel("_pageModel")?.getProperty("/multiViewsControl");
434
+ return !!this._getPageModel()?.getProperty("/multiViewsControl");
447
435
  }
448
436
 
449
437
  /**
@@ -453,13 +441,13 @@ class ListReportController extends PageController {
453
441
  * @name _isInitLoadDisabled
454
442
  * @returns Is InitLoad enabled?
455
443
  */
456
- _isInitLoadEnabled() {
444
+ _isInitLoadEnabled(): boolean {
457
445
  const initLoadMode = (this.getView().getViewData() as any).initialLoad;
458
446
  return initLoadMode === InitialLoadMode.Enabled;
459
447
  }
460
448
 
461
- _hasMultiVisualizations() {
462
- return this.getView().getContent()[0].data("hasMultiVisualizations") === "true";
449
+ _hasMultiVisualizations(): boolean {
450
+ return this._getPageModel()?.getProperty("/hasMultiVisualizations");
463
451
  }
464
452
 
465
453
  /**
@@ -499,7 +487,8 @@ class ListReportController extends PageController {
499
487
  }
500
488
  // set hook for flex for when standard variant is set (at start or by user at runtime)
501
489
  // required to override the user setting 'apply automatically' behaviour if there are no filters
502
- const variantManagement: any = this._getPageOrFilterBarVariantManagement();
490
+ const variantManagementId: any = ListReportTemplating.getVariantBackReference(this.getView().getViewData(), this._getPageModel());
491
+ const variantManagement = variantManagementId && this.getView().byId(variantManagementId);
503
492
  if (variantManagement) {
504
493
  variantManagement.registerApplyAutomaticallyOnStandardVariant(this._applyAutomaticallyOnStandardVariant.bind(this));
505
494
  }
@@ -737,7 +726,7 @@ class ListReportController extends PageController {
737
726
  const sSelectedKey = oEvent.mParameters.key ? oEvent.mParameters.key : null;
738
727
  const oInternalModelContext = this.getView().getBindingContext("internal") as InternalModelContext;
739
728
  oInternalModelContext.setProperty("alpContentView", sSelectedKey);
740
- const oChart = this._getChart();
729
+ const oChart = this.getChartControl();
741
730
  const oTable = this._getTable();
742
731
  const oSegmentedButtonDelegate = {
743
732
  onAfterRendering() {
@@ -773,13 +762,9 @@ class ListReportController extends PageController {
773
762
  this.getExtensionAPI().updateAppState();
774
763
  },
775
764
  onFiltersSegmentedButtonPressed(this: ListReportController, oEvent: any) {
776
- if (oEvent.getParameter("key") === "Compact") {
777
- this._getFilterBarControl().setVisible(true);
778
- (this.getView().byId(this.getView().getContent()[0].data("visualFilterBarId")) as Control).setVisible(false);
779
- } else {
780
- this._getFilterBarControl().setVisible(false);
781
- (this.getView().byId(this.getView().getContent()[0].data("visualFilterBarId")) as Control).setVisible(true);
782
- }
765
+ const isCompact = oEvent.getParameter("key") === "Compact";
766
+ this._getFilterBarControl().setVisible(isCompact);
767
+ (this._getVisualFilterBarControl() as Control).setVisible(!isCompact);
783
768
  },
784
769
  onStateChange(this: ListReportController) {
785
770
  this.getExtensionAPI().updateAppState();
@@ -114,18 +114,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
114
114
  MultipleModeControl.render = function render(oRm, oControl) {
115
115
  oRm.renderControl(oControl.content);
116
116
  }
117
- /**
118
- * Gets the entity set of the displayed visualization.
119
- *
120
- * @returns {string} The entity set
121
- */
122
- ;
123
-
124
- _proto.getDisplayedEntitySet = function getDisplayedEntitySet() {
125
- var _this$getSelectedInne3, _this$getSelectedInne4;
126
-
127
- return (_this$getSelectedInne3 = this.getSelectedInnerControl()) === null || _this$getSelectedInne3 === void 0 ? void 0 : (_this$getSelectedInne4 = _this$getSelectedInne3.content) === null || _this$getSelectedInne4 === void 0 ? void 0 : _this$getSelectedInne4.data("targetCollectionPath").slice(1);
128
- }
129
117
  /**
130
118
  * Gets the model containing information related to the IconTabFilters.
131
119
  *
@@ -468,4 +456,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
468
456
  })), _class2)) || _class);
469
457
  return MultipleModeControl;
470
458
  }, false);
471
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsImFzc29jaWF0aW9uIiwiZXZlbnQiLCJvbkJlZm9yZVJlbmRlcmluZyIsImdldFRhYnNNb2RlbCIsIm9GaWx0ZXJCYXJBUEkiLCJfZ2V0RmlsdGVyQ29udHJvbCIsImdldFBhcmVudCIsIl9nZXRBbGxJbm5lckNvbnRyb2xzIiwiZm9yRWFjaCIsIm9NYWNyb0FQSSIsInNob3dDb3VudHMiLCJhdHRhY2hFdmVudCIsIl9yZWZyZXNoVGFic0NvdW50IiwiYmluZCIsInN1c3BlbmRCaW5kaW5nIiwiX29uU2VhcmNoIiwiX29uRmlsdGVyQ2hhbmdlZCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwicmVuZGVyQ29udHJvbCIsImNvbnRlbnQiLCJnZXREaXNwbGF5ZWRFbnRpdHlTZXQiLCJkYXRhIiwic2xpY2UiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9nZXRUYWJGcm9tSW5uZXJDb250cm9sIiwiaGFuZGxlVGFiQ2hhbmdlIiwib0V2ZW50Iiwib0ljb25UYWJCYXIiLCJnZXRTb3VyY2UiLCJvTXVsdGlDb250cm9sIiwibVBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwiX3NldElubmVyQmluZGluZyIsInNQcmV2aW91c1NlbGVjdGVkS2V5IiwicHJldmlvdXNLZXkiLCJzU2VsZWN0ZWRLZXkiLCJzZWxlY3RlZEtleSIsIm9GaWx0ZXJCYXIiLCJfcmVmcmVzaEN1c3RvbVZpZXciLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIiwiYWRkIiwiY2hhbmdlcyIsImNoYW5nZVNwZWNpZmljRGF0YSIsImNoYW5nZVR5cGUiLCJwcmV2aW91c1NlbGVjdGVkS2V5Iiwic2VsZWN0b3JFbGVtZW50IiwiX2dldFZpZXdDb250cm9sbGVyIiwiZ2V0RXh0ZW5zaW9uQVBJIiwidXBkYXRlQXBwU3RhdGUiLCJmaXJlRXZlbnQiLCJpY29uVGFiQmFyIiwiaW52YWxpZGF0ZUNvbnRlbnQiLCJzZXRDb3VudHNPdXREYXRlZCIsImJWYWx1ZSIsInNldFByb3BlcnR5Iiwic2V0RnJlZXplQ29udGVudCIsIl91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHMiLCJvUmVzb3VyY2VCdW5kbGUiLCJ0YWJzTW9kZWwiLCJvRmlsdGVyQ29udHJvbCIsInJlc3VsdHMiLCJvVGFiIiwic1RhYklkIiwibUlnbm9yZWRGaWVsZHMiLCJyZWZyZXNoTm90QXBwbGljYWJsZUZpZWxkcyIsIm5vdEFwcGxpY2FibGUiLCJmaWVsZHMiLCJ0aXRsZSIsIl9zZXRUYWJNZXNzYWdlU3RyaXAiLCJlbnRpdHlUeXBlUGF0aCIsImlnbm9yZWRGaWVsZHMiLCJyZXNvdXJjZUJ1bmRsZSIsImdldFRleHQiLCJzZXREYXRhIiwiYk9ubHlGb3JWaXNpYmxlVGFiIiwiaW5uZXJDb250cm9scyIsInJlZHVjZSIsImFJbm5lckNvbnRyb2xzIiwic0lubmVyQ29udHJvbCIsIkNvcmUiLCJieUlkIiwicHVzaCIsImZpbHRlciIsIm9Jbm5lckNvbnRyb2wiLCJnZXRWaXNpYmxlIiwiZmlsdGVyQ29udHJvbCIsInNTdXBwb3J0ZWRDbGFzcyIsIkljb25UYWJGaWx0ZXIiLCJnZXRNZXRhZGF0YSIsImdldE5hbWUiLCJpc0EiLCJvVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJvRmlsdGVyQ29uZGl0aW9ucyIsInNSZWZyZXNoQ2F1c2UiLCJvblZpZXdOZWVkc1JlZnJlc2giLCJmaWx0ZXJDb25kaXRpb25zIiwiY3VycmVudFRhYklkIiwicmVmcmVzaENhdXNlIiwib0ljb25UYWJGaWx0ZXIiLCJnZXRDb3VudHMiLCJjb3VudHNPdXREYXRlZCIsInNldENvdW50IiwidGhlbiIsImlDb3VudCIsImNhdGNoIiwib0Vycm9yIiwiTG9nIiwiZXJyb3IiLCJiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQiLCJiSXNTZWxlY3RlZEtleSIsInNBY3Rpb24iLCJSZXN1bWUiLCJTdXNwZW5kIiwicHJvcGVydGllcyIsInNUZXh0IiwiYUlnbm9yZWRGaWVsZHMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJhSWdub3JlZExhYmVscyIsIk1lc3NhZ2VTdHJpcCIsImdldExhYmVscyIsIkRlbGVnYXRlVXRpbCIsImdldExvY2FsaXplZFRleHQiLCJnZXRQYXJhbWV0ZXIiLCJDb250cm9sIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNdWx0aXBsZU1vZGVDb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlQnVuZGxlIGZyb20gXCJzYXAvYmFzZS9pMThuL1Jlc291cmNlQnVuZGxlXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbHMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBldmVudCwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWVzc2FnZVN0cmlwXCI7XG5pbXBvcnQgRGVsZWdhdGVVdGlsIGZyb20gXCJzYXAvZmUvbWFjcm9zL0RlbGVnYXRlVXRpbFwiO1xuaW1wb3J0IE1hY3JvQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL01hY3JvQVBJXCI7XG5pbXBvcnQgSWNvblRhYkJhciBmcm9tIFwic2FwL20vSWNvblRhYkJhclwiO1xuaW1wb3J0IEljb25UYWJGaWx0ZXIgZnJvbSBcInNhcC9tL0ljb25UYWJGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIENvcmVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCBDb250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUEkgZnJvbSBcInNhcC91aS9mbC93cml0ZS9hcGkvQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIElubmVyQ29udHJvbFR5cGUgPSBNYWNyb0FQSSAmXG5cdFBhcnRpYWw8e1xuXHRcdHJlc3VtZUJpbmRpbmc6IEZ1bmN0aW9uO1xuXHRcdHN1c3BlbmRCaW5kaW5nOiBGdW5jdGlvbjtcblx0XHRnZXRDb3VudHM6IEZ1bmN0aW9uO1xuXHRcdHJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzOiBGdW5jdGlvbjtcblx0XHRpbnZhbGlkYXRlQ29udGVudDogRnVuY3Rpb247XG5cdH0+O1xuXG50eXBlIE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMgPSB7XG5cdGVudGl0eVR5cGVQYXRoOiBzdHJpbmc7XG5cdGlnbm9yZWRGaWVsZHM6IGFueVtdO1xuXHRyZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGU7XG5cdHRpdGxlOiBzdHJpbmc7XG59O1xuXG5lbnVtIEJpbmRpbmdBY3Rpb24ge1xuXHRTdXNwZW5kID0gXCJzdXNwZW5kQmluZGluZ1wiLFxuXHRSZXN1bWUgPSBcInJlc3VtZUJpbmRpbmdcIlxufVxuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnQuY29udHJvbHMuTXVsdGlwbGVNb2RlQ29udHJvbFwiKVxuY2xhc3MgTXVsdGlwbGVNb2RlQ29udHJvbCBleHRlbmRzIENvbnRyb2wge1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRzaG93Q291bnRzITogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRmcmVlemVDb250ZW50ITogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRjb3VudHNPdXREYXRlZCE6IGJvb2xlYW47XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAubS5JY29uVGFiQmFyXCIsIG11bHRpcGxlOiBmYWxzZSwgaXNEZWZhdWx0OiB0cnVlIH0pXG5cdGNvbnRlbnQhOiBJY29uVGFiQmFyO1xuXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSB9KVxuXHRpbm5lckNvbnRyb2xzITogc3RyaW5nW107XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAuZmUuY29yZS5jb250cm9scy5GaWx0ZXJCYXJcIiwgbXVsdGlwbGU6IGZhbHNlIH0pXG5cdGZpbHRlckNvbnRyb2whOiBzdHJpbmc7XG5cblx0QGV2ZW50KClcblx0c2VsZWN0ITogRnVuY3Rpb247XG5cblx0b25CZWZvcmVSZW5kZXJpbmcoKSB7XG5cdFx0dGhpcy5nZXRUYWJzTW9kZWwoKTsgLy8gR2VuZXJhdGUgdGhlIG1vZGVsIHdoaWNoIGlzIG1hbmRhdG9yeSBmb3Igc29tZSBiaW5kaW5nc1xuXG5cdFx0Y29uc3Qgb0ZpbHRlckJhckFQSSA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKT8uZ2V0UGFyZW50KCk7XG5cdFx0dGhpcy5fZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuc2hvd0NvdW50cykge1xuXHRcdFx0XHRvTWFjcm9BUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbERhdGFSZXF1ZXN0ZWRcIiwgdGhpcy5fcmVmcmVzaFRhYnNDb3VudC5iaW5kKHRoaXMpKTtcblx0XHRcdH1cblx0XHRcdG9NYWNyb0FQSS5zdXNwZW5kQmluZGluZz8uKCk7XG5cdFx0fSk7XG5cdFx0aWYgKG9GaWx0ZXJCYXJBUEkpIHtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbFNlYXJjaFwiLCB0aGlzLl9vblNlYXJjaC5iaW5kKHRoaXMpKTtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbEZpbHRlckNoYW5nZWRcIiwgdGhpcy5fb25GaWx0ZXJDaGFuZ2VkLmJpbmQodGhpcykpO1xuXHRcdH1cblx0fVxuXG5cdG9uQWZ0ZXJSZW5kZXJpbmcoKSB7XG5cdFx0dGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpPy5yZXN1bWVCaW5kaW5nPy4oIXRoaXMuZ2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIpKTtcblx0fVxuXG5cdHN0YXRpYyByZW5kZXIob1JtOiBSZW5kZXJNYW5hZ2VyLCBvQ29udHJvbDogTXVsdGlwbGVNb2RlQ29udHJvbCkge1xuXHRcdG9SbS5yZW5kZXJDb250cm9sKG9Db250cm9sLmNvbnRlbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGVudGl0eSBzZXQgb2YgdGhlIGRpc3BsYXllZCB2aXN1YWxpemF0aW9uLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZW50aXR5IHNldFxuXHQgKi9cblx0Z2V0RGlzcGxheWVkRW50aXR5U2V0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKT8uY29udGVudD8uZGF0YShcInRhcmdldENvbGxlY3Rpb25QYXRoXCIpLnNsaWNlKDEpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIG1vZGVsIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgSWNvblRhYkZpbHRlcnMuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtzYXAudWkubW9kZWwuTW9kZWwgfCB1bmRlZmluZWR9IFRoZSBtb2RlbFxuXHQgKi9cblx0Z2V0VGFic01vZGVsKCk6IE1vZGVsIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzVGFic01vZGVsID0gXCJ0YWJzSW50ZXJuYWxcIjtcblx0XHRjb25zdCBvQ29udGVudCA9IHRoaXMuY29udGVudDtcblx0XHRpZiAoIW9Db250ZW50KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRsZXQgb01vZGVsID0gb0NvbnRlbnQuZ2V0TW9kZWwoc1RhYnNNb2RlbCk7XG5cdFx0aWYgKCFvTW9kZWwpIHtcblx0XHRcdG9Nb2RlbCA9IG5ldyBKU09OTW9kZWwoe30pO1xuXHRcdFx0b0NvbnRlbnQuc2V0TW9kZWwob01vZGVsLCBzVGFic01vZGVsKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9Nb2RlbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBpbm5lciBjb250cm9sIG9mIHRoZSBkaXNwbGF5ZWQgdGFiLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7SW5uZXJDb250cm9sVHlwZSB8IHVuZGVmaW5lZH0gVGhlIGNvbnRyb2xcblx0ICovXG5cdGdldFNlbGVjdGVkSW5uZXJDb250cm9sKCk6IElubmVyQ29udHJvbFR5cGUgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG9TZWxlY3RlZFRhYiA9IHRoaXMuY29udGVudC5nZXRJdGVtcygpLmZpbmQoKG9JdGVtKSA9PiAob0l0ZW0gYXMgSWNvblRhYkZpbHRlcikuZ2V0S2V5KCkgPT09IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpKTtcblx0XHRyZXR1cm4gb1NlbGVjdGVkVGFiXG5cdFx0XHQ/IHRoaXMuX2dldEFsbElubmVyQ29udHJvbHMoKS5maW5kKChvTWFjcm9BUEkpID0+IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKSA9PT0gb1NlbGVjdGVkVGFiKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogTWFuYWdlcyB0aGUgYmluZGluZyBvZiBhbGwgaW5uZXIgY29udHJvbHMgd2hlbiB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBpcyBjaGFuZ2VkLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3NhcC51aS5iYXNlLkV2ZW50fSBvRXZlbnQgRXZlbnQgZmlyZWQgYnkgdGhlIEljb25UYWJCYXJcblx0ICovXG5cdHN0YXRpYyBoYW5kbGVUYWJDaGFuZ2Uob0V2ZW50OiBhbnkpOiB2b2lkIHtcblx0XHRjb25zdCBvSWNvblRhYkJhciA9IG9FdmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBvTXVsdGlDb250cm9sID0gb0ljb25UYWJCYXIuZ2V0UGFyZW50KCk7XG5cblx0XHRjb25zdCBtUGFyYW1ldGVycyA9IG9FdmVudC5nZXRQYXJhbWV0ZXJzKCk7XG5cdFx0b011bHRpQ29udHJvbC5fc2V0SW5uZXJCaW5kaW5nKHRydWUpO1xuXHRcdGNvbnN0IHNQcmV2aW91c1NlbGVjdGVkS2V5ID0gbVBhcmFtZXRlcnM/LnByZXZpb3VzS2V5O1xuXHRcdGNvbnN0IHNTZWxlY3RlZEtleSA9IG1QYXJhbWV0ZXJzPy5zZWxlY3RlZEtleTtcblxuXHRcdGlmIChzU2VsZWN0ZWRLZXkgJiYgc1ByZXZpb3VzU2VsZWN0ZWRLZXkgIT09IHNTZWxlY3RlZEtleSkge1xuXHRcdFx0Y29uc3Qgb0ZpbHRlckJhciA9IG9NdWx0aUNvbnRyb2wuX2dldEZpbHRlckNvbnRyb2woKTtcblx0XHRcdGlmIChvRmlsdGVyQmFyICYmICFvTXVsdGlDb250cm9sLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSkge1xuXHRcdFx0XHRpZiAoIW9NdWx0aUNvbnRyb2wuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0XHRcdC8vY3VzdG9tIHRhYlxuXHRcdFx0XHRcdG9NdWx0aUNvbnRyb2wuX3JlZnJlc2hDdXN0b21WaWV3KG9GaWx0ZXJCYXIuZ2V0RmlsdGVyQ29uZGl0aW9ucygpLCBcInRhYkNoYW5nZWRcIik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdENvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSS5hZGQoe1xuXHRcdFx0XHRjaGFuZ2VzOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Y2hhbmdlU3BlY2lmaWNEYXRhOiB7XG5cdFx0XHRcdFx0XHRcdGNoYW5nZVR5cGU6IFwic2VsZWN0SWNvblRhYkJhckZpbHRlclwiLFxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiB7XG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRLZXk6IHNTZWxlY3RlZEtleSxcblx0XHRcdFx0XHRcdFx0XHRwcmV2aW91c1NlbGVjdGVkS2V5OiBzUHJldmlvdXNTZWxlY3RlZEtleVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0c2VsZWN0b3JFbGVtZW50OiBvSWNvblRhYkJhclxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0b011bHRpQ29udHJvbC5fZ2V0Vmlld0NvbnRyb2xsZXIoKT8uZ2V0RXh0ZW5zaW9uQVBJKCk/LnVwZGF0ZUFwcFN0YXRlKCk7XG5cblx0XHRvTXVsdGlDb250cm9sLmZpcmVFdmVudChcInNlbGVjdFwiLCB7XG5cdFx0XHRpY29uVGFiQmFyOiBvSWNvblRhYkJhcixcblx0XHRcdHNlbGVjdGVkS2V5OiBzU2VsZWN0ZWRLZXksXG5cdFx0XHRwcmV2aW91c0tleTogc1ByZXZpb3VzU2VsZWN0ZWRLZXlcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbnZhbGlkYXRlcyB0aGUgY29udGVudCBvZiBhbGwgaW5uZXIgY29udHJvbHMuXG5cdCAqL1xuXHRpbnZhbGlkYXRlQ29udGVudCgpIHtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdHRoaXMuX2dldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdG9NYWNyb0FQSS5pbnZhbGlkYXRlQ29udGVudD8uKCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgY291bnRzIHRvIG91dCBvZiBkYXRlIG9yIHVwIHRvIGRhdGVcblx0ICogSWYgdGhlIGNvdW50cyBhcmUgc2V0IHRvIFwib3V0IG9mIGRhdGVcIiBhbmQgdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgZG9lc24ndCBjb250YWluIGFuIGlubmVyIGNvbnRyb2wgYWxsIGlubmVyIGNvbnRyb2xzIGFyZSByZXF1ZXN0ZWQgdG8gZ2V0IHRoZSBuZXcgY291bnRzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJWYWx1ZSBGcmVlemUgb3Igbm90IHRoZSBjb250cm9sXG5cdCAqL1xuXHRzZXRDb3VudHNPdXREYXRlZChiVmFsdWUgPSB0cnVlKSB7XG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcImNvdW50c091dERhdGVkXCIsIGJWYWx1ZSk7XG5cdFx0Ly8gaWYgdGhlIGN1cnJlbnQgdGFiIGlzIG5vdCBjb25maWd1cmVkIHdpdGggbm8gaW5uZXIgQ29udHJvbFxuXHRcdC8vIHRoZSB0YWIgY291bnRzIG11c3QgYmUgbWFudWFsbHkgcmVmcmVzaGVkIHNpbmNlIG5vIE1hY3JvIEFQSSB3aWxsIHNlbnQgZXZlbnQgaW50ZXJuYWxEYXRhUmVxdWVzdGVkXG5cdFx0aWYgKGJWYWx1ZSAmJiAhdGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpKSB7XG5cdFx0XHR0aGlzLl9yZWZyZXNoVGFic0NvdW50KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEZyZWV6ZXMgdGhlIGNvbnRlbnQgOlxuXHQgKiAgLSBjb250ZW50IGlzIGZyb3plbjogdGhlIGJpbmRpbmcgb2YgdGhlIGlubmVyIGNvbnRyb2xzIGFyZSBzdXNwZW5kZWQuXG5cdCAqICAtIGNvbnRlbnQgaXMgdW5mcm96ZW46IHRoZSBiaW5kaW5nIG9mIGlubmVyIGNvbnRyb2wgcmVsYXRlZCB0byB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBpcyByZXN1bWVkLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJWYWx1ZSBGcmVlemUgb3Igbm90IHRoZSBjb250cm9sXG5cdCAqL1xuXHRzZXRGcmVlemVDb250ZW50KGJWYWx1ZTogYm9vbGVhbikge1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIsIGJWYWx1ZSk7XG5cdFx0dGhpcy5fc2V0SW5uZXJCaW5kaW5nKCk7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgaW50ZXJuYWwgbW9kZWwgd2l0aCB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBub3QgYXBwbGljYWJsZSBvbiBlYWNoIEljb25UYWJGaWx0ZXIgKGNvbnRhaW5pbmcgaW5uZXIgY29udHJvbCkgYWNjb3JkaW5nIHRvIHRoZSBlbnRpdHlUeXBlIG9mIHRoZSBmaWx0ZXIgY29udHJvbC5cblx0ICpcblx0ICogQHBhcmFtIG9SZXNvdXJjZUJ1bmRsZVxuXHQgKi9cblx0X3VwZGF0ZU11bHRpVGFiTm90QXBwbGljYWJsZUZpZWxkcyhvUmVzb3VyY2VCdW5kbGU6IFJlc291cmNlQnVuZGxlKSB7XG5cdFx0Y29uc3QgdGFic01vZGVsID0gdGhpcy5nZXRUYWJzTW9kZWwoKTtcblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKSBhcyBDb250cm9sO1xuXHRcdGlmICh0YWJzTW9kZWwgJiYgb0ZpbHRlckNvbnRyb2wpIHtcblx0XHRcdGNvbnN0IHJlc3VsdHM6IGFueSA9IHt9O1xuXHRcdFx0dGhpcy5fZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0XHRjb25zdCBvVGFiID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0XHRpZiAob1RhYikge1xuXHRcdFx0XHRcdGNvbnN0IHNUYWJJZCA9IG9UYWIuZ2V0S2V5KCk7XG5cdFx0XHRcdFx0Y29uc3QgbUlnbm9yZWRGaWVsZHMgPSBvTWFjcm9BUEkucmVmcmVzaE5vdEFwcGxpY2FibGVGaWVsZHM/LihvRmlsdGVyQ29udHJvbCkgfHwgW107XG5cdFx0XHRcdFx0cmVzdWx0c1tzVGFiSWRdID0ge1xuXHRcdFx0XHRcdFx0bm90QXBwbGljYWJsZToge1xuXHRcdFx0XHRcdFx0XHRmaWVsZHM6IG1JZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRcdFx0XHR0aXRsZTogdGhpcy5fc2V0VGFiTWVzc2FnZVN0cmlwKHtcblx0XHRcdFx0XHRcdFx0XHRlbnRpdHlUeXBlUGF0aDogb0ZpbHRlckNvbnRyb2wuZGF0YShcImVudGl0eVR5cGVcIiksXG5cdFx0XHRcdFx0XHRcdFx0aWdub3JlZEZpZWxkczogbUlnbm9yZWRGaWVsZHMsXG5cdFx0XHRcdFx0XHRcdFx0cmVzb3VyY2VCdW5kbGU6IG9SZXNvdXJjZUJ1bmRsZSxcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogb1RhYi5nZXRUZXh0KClcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdCh0YWJzTW9kZWwgYXMgYW55KS5zZXREYXRhKHJlc3VsdHMpO1xuXHRcdH1cblx0fVxuXG5cdF9nZXRBbGxJbm5lckNvbnRyb2xzKGJPbmx5Rm9yVmlzaWJsZVRhYiA9IGZhbHNlKTogSW5uZXJDb250cm9sVHlwZVtdIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0dGhpcy5pbm5lckNvbnRyb2xzLnJlZHVjZSgoYUlubmVyQ29udHJvbHM6IElubmVyQ29udHJvbFR5cGVbXSwgc0lubmVyQ29udHJvbDogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9Db250cm9sID0gQ29yZS5ieUlkKHNJbm5lckNvbnRyb2wpIGFzIElubmVyQ29udHJvbFR5cGU7XG5cdFx0XHRcdGlmIChvQ29udHJvbCkge1xuXHRcdFx0XHRcdGFJbm5lckNvbnRyb2xzLnB1c2gob0NvbnRyb2wpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhSW5uZXJDb250cm9scy5maWx0ZXIoXG5cdFx0XHRcdFx0KG9Jbm5lckNvbnRyb2wpID0+ICFiT25seUZvclZpc2libGVUYWIgfHwgdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvSW5uZXJDb250cm9sKT8uZ2V0VmlzaWJsZSgpXG5cdFx0XHRcdCk7XG5cdFx0XHR9LCBbXSkgfHwgW11cblx0XHQpO1xuXHR9XG5cblx0X2dldEZpbHRlckNvbnRyb2woKTogRmlsdGVyQmFyIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gQ29yZS5ieUlkKHRoaXMuZmlsdGVyQ29udHJvbCkgYXMgRmlsdGVyQmFyIHwgdW5kZWZpbmVkO1xuXHR9XG5cblx0X2dldFRhYkZyb21Jbm5lckNvbnRyb2wob0NvbnRyb2w6IENvbnRyb2wpOiBJY29uVGFiRmlsdGVyIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzU3VwcG9ydGVkQ2xhc3MgPSBJY29uVGFiRmlsdGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpO1xuXHRcdGxldCBvVGFiOiBhbnkgPSBvQ29udHJvbDtcblx0XHRpZiAob1RhYiAmJiAhb1RhYi5pc0Eoc1N1cHBvcnRlZENsYXNzKSAmJiBvVGFiLmdldFBhcmVudCkge1xuXHRcdFx0b1RhYiA9IG9Db250cm9sLmdldFBhcmVudCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gb1RhYiAmJiBvVGFiLmlzQShzU3VwcG9ydGVkQ2xhc3MpID8gKG9UYWIgYXMgSWNvblRhYkZpbHRlcikgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHRfZ2V0Vmlld0NvbnRyb2xsZXIoKSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdHJldHVybiBvVmlldyAmJiBvVmlldy5nZXRDb250cm9sbGVyKCk7XG5cdH1cblxuXHRfcmVmcmVzaEN1c3RvbVZpZXcob0ZpbHRlckNvbmRpdGlvbnM6IGFueSwgc1JlZnJlc2hDYXVzZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fZ2V0Vmlld0NvbnRyb2xsZXIoKT8ub25WaWV3TmVlZHNSZWZyZXNoPy4oe1xuXHRcdFx0ZmlsdGVyQ29uZGl0aW9uczogb0ZpbHRlckNvbmRpdGlvbnMsXG5cdFx0XHRjdXJyZW50VGFiSWQ6IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpLFxuXHRcdFx0cmVmcmVzaENhdXNlOiBzUmVmcmVzaENhdXNlXG5cdFx0fSk7XG5cdH1cblxuXHRfcmVmcmVzaFRhYnNDb3VudCgpOiB2b2lkIHtcblx0XHRjb25zdCBzU2VsZWN0ZWRLZXkgPSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKTtcblx0XHR0aGlzLl9nZXRBbGxJbm5lckNvbnRyb2xzKHRydWUpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0Y29uc3Qgb0ljb25UYWJGaWx0ZXIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRpZiAob01hY3JvQVBJPy5nZXRDb3VudHMgJiYgKHRoaXMuY291bnRzT3V0RGF0ZWQgfHwgc1NlbGVjdGVkS2V5ID09PSBvSWNvblRhYkZpbHRlcj8uZ2V0S2V5KCkpKSB7XG5cdFx0XHRcdGlmIChvSWNvblRhYkZpbHRlciAmJiBvSWNvblRhYkZpbHRlci5zZXRDb3VudCkge1xuXHRcdFx0XHRcdG9JY29uVGFiRmlsdGVyLnNldENvdW50KFwiLi4uXCIpO1xuXHRcdFx0XHRcdG9NYWNyb0FQSVxuXHRcdFx0XHRcdFx0LmdldENvdW50cygpXG5cdFx0XHRcdFx0XHQudGhlbigoaUNvdW50OiBzdHJpbmcpID0+IG9JY29uVGFiRmlsdGVyLnNldENvdW50KGlDb3VudCB8fCBcIjBcIikpXG5cdFx0XHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIHJlcXVlc3RpbmcgQ291bnRzIGZvciBDb250cm9sXCIsIG9FcnJvcik7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQoZmFsc2UpO1xuXHR9XG5cblx0X3NldElubmVyQmluZGluZyhiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQgPSBmYWxzZSkge1xuXHRcdGlmICh0aGlzLmNvbnRlbnQpIHtcblx0XHRcdHRoaXMuX2dldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0ljb25UYWJGaWx0ZXIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRcdGNvbnN0IGJJc1NlbGVjdGVkS2V5ID0gb0ljb25UYWJGaWx0ZXI/LmdldEtleSgpID09PSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKTtcblx0XHRcdFx0Y29uc3Qgc0FjdGlvbiA9IGJJc1NlbGVjdGVkS2V5ICYmICF0aGlzLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSA/IEJpbmRpbmdBY3Rpb24uUmVzdW1lIDogQmluZGluZ0FjdGlvbi5TdXNwZW5kO1xuXHRcdFx0XHRvTWFjcm9BUElbc0FjdGlvbl0/LihzQWN0aW9uID09PSBCaW5kaW5nQWN0aW9uLlJlc3VtZSA/IGJSZXF1ZXN0SWZOb3RJbml0aWFsaXplZCAmJiBiSXNTZWxlY3RlZEtleSA6IHVuZGVmaW5lZCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRfc2V0VGFiTWVzc2FnZVN0cmlwKHByb3BlcnRpZXM6IE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMpIHtcblx0XHRsZXQgc1RleHQgPSBcIlwiO1xuXHRcdGNvbnN0IGFJZ25vcmVkRmllbGRzID0gcHJvcGVydGllcy5pZ25vcmVkRmllbGRzO1xuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpIGFzIENvbnRyb2w7XG5cdFx0aWYgKG9GaWx0ZXJDb250cm9sICYmIEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHMpICYmIGFJZ25vcmVkRmllbGRzLmxlbmd0aCA+IDAgJiYgcHJvcGVydGllcy50aXRsZSkge1xuXHRcdFx0Y29uc3QgYUlnbm9yZWRMYWJlbHMgPSBNZXNzYWdlU3RyaXAuZ2V0TGFiZWxzKFxuXHRcdFx0XHRhSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0cHJvcGVydGllcy5lbnRpdHlUeXBlUGF0aCxcblx0XHRcdFx0b0ZpbHRlckNvbnRyb2wsXG5cdFx0XHRcdHByb3BlcnRpZXMucmVzb3VyY2VCdW5kbGVcblx0XHRcdCk7XG5cdFx0XHRzVGV4dCA9IE1lc3NhZ2VTdHJpcC5nZXRUZXh0KGFJZ25vcmVkTGFiZWxzLCBvRmlsdGVyQ29udHJvbCwgcHJvcGVydGllcy50aXRsZSwgRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQpO1xuXHRcdFx0cmV0dXJuIHNUZXh0O1xuXHRcdH1cblx0fVxuXG5cdF9vblNlYXJjaChvRXZlbnQ6IENvcmVFdmVudCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQodHJ1ZSk7XG5cdFx0dGhpcy5zZXRGcmVlemVDb250ZW50KGZhbHNlKTtcblx0XHRpZiAodGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpKSB7XG5cdFx0XHR0aGlzLl91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHModGhpcy5fZ2V0Vmlld0NvbnRyb2xsZXIoKT8ub1Jlc291cmNlQnVuZGxlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gY3VzdG9tIHRhYlxuXHRcdFx0dGhpcy5fcmVmcmVzaEN1c3RvbVZpZXcob0V2ZW50LmdldFBhcmFtZXRlcihcImNvbmRpdGlvbnNcIiksIFwic2VhcmNoXCIpO1xuXHRcdH1cblx0fVxuXG5cdF9vbkZpbHRlckNoYW5nZWQob0V2ZW50OiBDb3JlRXZlbnQpOiB2b2lkIHtcblx0XHRpZiAob0V2ZW50LmdldFBhcmFtZXRlcihcImNvbmRpdGlvbnNCYXNlZFwiKSkge1xuXHRcdFx0dGhpcy5zZXRGcmVlemVDb250ZW50KHRydWUpO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBNdWx0aXBsZU1vZGVDb250cm9sO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFrQ0tBLGE7O2FBQUFBLGE7SUFBQUEsYTtJQUFBQSxhO0tBQUFBLGEsS0FBQUEsYTs7TUFNQ0MsbUIsV0FETEMsY0FBYyxDQUFDLDBEQUFELEMsVUFFYkMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFSLENBQUQsQyxVQUdSRCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVI7SUFBbUJDLFlBQVksRUFBRTtFQUFqQyxDQUFELEMsVUFHUkYsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFSO0lBQW1CQyxZQUFZLEVBQUU7RUFBakMsQ0FBRCxDLFVBR1JDLFdBQVcsQ0FBQztJQUFFRixJQUFJLEVBQUUsa0JBQVI7SUFBNEJHLFFBQVEsRUFBRSxLQUF0QztJQUE2Q0MsU0FBUyxFQUFFO0VBQXhELENBQUQsQyxVQUdYQyxXQUFXLENBQUM7SUFBRUwsSUFBSSxFQUFFLHFCQUFSO0lBQStCRyxRQUFRLEVBQUU7RUFBekMsQ0FBRCxDLFVBR1hFLFdBQVcsQ0FBQztJ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
459
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsImFzc29jaWF0aW9uIiwiZXZlbnQiLCJvbkJlZm9yZVJlbmRlcmluZyIsImdldFRhYnNNb2RlbCIsIm9GaWx0ZXJCYXJBUEkiLCJfZ2V0RmlsdGVyQ29udHJvbCIsImdldFBhcmVudCIsIl9nZXRBbGxJbm5lckNvbnRyb2xzIiwiZm9yRWFjaCIsIm9NYWNyb0FQSSIsInNob3dDb3VudHMiLCJhdHRhY2hFdmVudCIsIl9yZWZyZXNoVGFic0NvdW50IiwiYmluZCIsInN1c3BlbmRCaW5kaW5nIiwiX29uU2VhcmNoIiwiX29uRmlsdGVyQ2hhbmdlZCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwicmVuZGVyQ29udHJvbCIsImNvbnRlbnQiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9nZXRUYWJGcm9tSW5uZXJDb250cm9sIiwiaGFuZGxlVGFiQ2hhbmdlIiwib0V2ZW50Iiwib0ljb25UYWJCYXIiLCJnZXRTb3VyY2UiLCJvTXVsdGlDb250cm9sIiwibVBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwiX3NldElubmVyQmluZGluZyIsInNQcmV2aW91c1NlbGVjdGVkS2V5IiwicHJldmlvdXNLZXkiLCJzU2VsZWN0ZWRLZXkiLCJzZWxlY3RlZEtleSIsIm9GaWx0ZXJCYXIiLCJfcmVmcmVzaEN1c3RvbVZpZXciLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIiwiYWRkIiwiY2hhbmdlcyIsImNoYW5nZVNwZWNpZmljRGF0YSIsImNoYW5nZVR5cGUiLCJwcmV2aW91c1NlbGVjdGVkS2V5Iiwic2VsZWN0b3JFbGVtZW50IiwiX2dldFZpZXdDb250cm9sbGVyIiwiZ2V0RXh0ZW5zaW9uQVBJIiwidXBkYXRlQXBwU3RhdGUiLCJmaXJlRXZlbnQiLCJpY29uVGFiQmFyIiwiaW52YWxpZGF0ZUNvbnRlbnQiLCJzZXRDb3VudHNPdXREYXRlZCIsImJWYWx1ZSIsInNldFByb3BlcnR5Iiwic2V0RnJlZXplQ29udGVudCIsIl91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHMiLCJvUmVzb3VyY2VCdW5kbGUiLCJ0YWJzTW9kZWwiLCJvRmlsdGVyQ29udHJvbCIsInJlc3VsdHMiLCJvVGFiIiwic1RhYklkIiwibUlnbm9yZWRGaWVsZHMiLCJyZWZyZXNoTm90QXBwbGljYWJsZUZpZWxkcyIsIm5vdEFwcGxpY2FibGUiLCJmaWVsZHMiLCJ0aXRsZSIsIl9zZXRUYWJNZXNzYWdlU3RyaXAiLCJlbnRpdHlUeXBlUGF0aCIsImRhdGEiLCJpZ25vcmVkRmllbGRzIiwicmVzb3VyY2VCdW5kbGUiLCJnZXRUZXh0Iiwic2V0RGF0YSIsImJPbmx5Rm9yVmlzaWJsZVRhYiIsImlubmVyQ29udHJvbHMiLCJyZWR1Y2UiLCJhSW5uZXJDb250cm9scyIsInNJbm5lckNvbnRyb2wiLCJDb3JlIiwiYnlJZCIsInB1c2giLCJmaWx0ZXIiLCJvSW5uZXJDb250cm9sIiwiZ2V0VmlzaWJsZSIsImZpbHRlckNvbnRyb2wiLCJzU3VwcG9ydGVkQ2xhc3MiLCJJY29uVGFiRmlsdGVyIiwiZ2V0TWV0YWRhdGEiLCJnZXROYW1lIiwiaXNBIiwib1ZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckNvbmRpdGlvbnMiLCJzUmVmcmVzaENhdXNlIiwib25WaWV3TmVlZHNSZWZyZXNoIiwiZmlsdGVyQ29uZGl0aW9ucyIsImN1cnJlbnRUYWJJZCIsInJlZnJlc2hDYXVzZSIsIm9JY29uVGFiRmlsdGVyIiwiZ2V0Q291bnRzIiwiY291bnRzT3V0RGF0ZWQiLCJzZXRDb3VudCIsInRoZW4iLCJpQ291bnQiLCJjYXRjaCIsIm9FcnJvciIsIkxvZyIsImVycm9yIiwiYlJlcXVlc3RJZk5vdEluaXRpYWxpemVkIiwiYklzU2VsZWN0ZWRLZXkiLCJzQWN0aW9uIiwiUmVzdW1lIiwiU3VzcGVuZCIsInByb3BlcnRpZXMiLCJzVGV4dCIsImFJZ25vcmVkRmllbGRzIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiYUlnbm9yZWRMYWJlbHMiLCJNZXNzYWdlU3RyaXAiLCJnZXRMYWJlbHMiLCJEZWxlZ2F0ZVV0aWwiLCJnZXRMb2NhbGl6ZWRUZXh0IiwiZ2V0UGFyYW1ldGVyIiwiQ29udHJvbCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTXVsdGlwbGVNb2RlQ29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBSZXNvdXJjZUJ1bmRsZSBmcm9tIFwic2FwL2Jhc2UvaTE4bi9SZXNvdXJjZUJ1bmRsZVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xzL0ZpbHRlckJhclwiO1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGFzc29jaWF0aW9uLCBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTWVzc2FnZVN0cmlwIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01lc3NhZ2VTdHJpcFwiO1xuaW1wb3J0IERlbGVnYXRlVXRpbCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9EZWxlZ2F0ZVV0aWxcIjtcbmltcG9ydCBNYWNyb0FQSSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9NYWNyb0FQSVwiO1xuaW1wb3J0IEljb25UYWJCYXIgZnJvbSBcInNhcC9tL0ljb25UYWJCYXJcIjtcbmltcG9ydCBJY29uVGFiRmlsdGVyIGZyb20gXCJzYXAvbS9JY29uVGFiRmlsdGVyXCI7XG5pbXBvcnQgdHlwZSBDb3JlRXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQgQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIGZyb20gXCJzYXAvdWkvZmwvd3JpdGUvYXBpL0NvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSVwiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9Nb2RlbFwiO1xuXG5leHBvcnQgdHlwZSBJbm5lckNvbnRyb2xUeXBlID0gTWFjcm9BUEkgJlxuXHRQYXJ0aWFsPHtcblx0XHRyZXN1bWVCaW5kaW5nOiBGdW5jdGlvbjtcblx0XHRzdXNwZW5kQmluZGluZzogRnVuY3Rpb247XG5cdFx0Z2V0Q291bnRzOiBGdW5jdGlvbjtcblx0XHRyZWZyZXNoTm90QXBwbGljYWJsZUZpZWxkczogRnVuY3Rpb247XG5cdFx0aW52YWxpZGF0ZUNvbnRlbnQ6IEZ1bmN0aW9uO1xuXHR9PjtcblxudHlwZSBNZXNzYWdlU3RyaXBQcm9wZXJ0aWVzID0ge1xuXHRlbnRpdHlUeXBlUGF0aDogc3RyaW5nO1xuXHRpZ25vcmVkRmllbGRzOiBhbnlbXTtcblx0cmVzb3VyY2VCdW5kbGU6IFJlc291cmNlQnVuZGxlO1xuXHR0aXRsZTogc3RyaW5nO1xufTtcblxuZW51bSBCaW5kaW5nQWN0aW9uIHtcblx0U3VzcGVuZCA9IFwic3VzcGVuZEJpbmRpbmdcIixcblx0UmVzdW1lID0gXCJyZXN1bWVCaW5kaW5nXCJcbn1cblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LmNvbnRyb2xzLk11bHRpcGxlTW9kZUNvbnRyb2xcIilcbmNsYXNzIE11bHRpcGxlTW9kZUNvbnRyb2wgZXh0ZW5kcyBDb250cm9sIHtcblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0c2hvd0NvdW50cyE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0ZnJlZXplQ29udGVudCE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0Y291bnRzT3V0RGF0ZWQhOiBib29sZWFuO1xuXG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLm0uSWNvblRhYkJhclwiLCBtdWx0aXBsZTogZmFsc2UsIGlzRGVmYXVsdDogdHJ1ZSB9KVxuXHRjb250ZW50ITogSWNvblRhYkJhcjtcblxuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IHRydWUgfSlcblx0aW5uZXJDb250cm9scyE6IHN0cmluZ1tdO1xuXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmlsdGVyQmFyXCIsIG11bHRpcGxlOiBmYWxzZSB9KVxuXHRmaWx0ZXJDb250cm9sITogc3RyaW5nO1xuXG5cdEBldmVudCgpXG5cdHNlbGVjdCE6IEZ1bmN0aW9uO1xuXG5cdG9uQmVmb3JlUmVuZGVyaW5nKCkge1xuXHRcdHRoaXMuZ2V0VGFic01vZGVsKCk7IC8vIEdlbmVyYXRlIHRoZSBtb2RlbCB3aGljaCBpcyBtYW5kYXRvcnkgZm9yIHNvbWUgYmluZGluZ3NcblxuXHRcdGNvbnN0IG9GaWx0ZXJCYXJBUEkgPSB0aGlzLl9nZXRGaWx0ZXJDb250cm9sKCk/LmdldFBhcmVudCgpO1xuXHRcdHRoaXMuX2dldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdGlmICh0aGlzLnNob3dDb3VudHMpIHtcblx0XHRcdFx0b01hY3JvQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxEYXRhUmVxdWVzdGVkXCIsIHRoaXMuX3JlZnJlc2hUYWJzQ291bnQuYmluZCh0aGlzKSk7XG5cdFx0XHR9XG5cdFx0XHRvTWFjcm9BUEkuc3VzcGVuZEJpbmRpbmc/LigpO1xuXHRcdH0pO1xuXHRcdGlmIChvRmlsdGVyQmFyQVBJKSB7XG5cdFx0XHRvRmlsdGVyQmFyQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxTZWFyY2hcIiwgdGhpcy5fb25TZWFyY2guYmluZCh0aGlzKSk7XG5cdFx0XHRvRmlsdGVyQmFyQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxGaWx0ZXJDaGFuZ2VkXCIsIHRoaXMuX29uRmlsdGVyQ2hhbmdlZC5iaW5kKHRoaXMpKTtcblx0XHR9XG5cdH1cblxuXHRvbkFmdGVyUmVuZGVyaW5nKCkge1xuXHRcdHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKT8ucmVzdW1lQmluZGluZz8uKCF0aGlzLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSk7XG5cdH1cblxuXHRzdGF0aWMgcmVuZGVyKG9SbTogUmVuZGVyTWFuYWdlciwgb0NvbnRyb2w6IE11bHRpcGxlTW9kZUNvbnRyb2wpIHtcblx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udHJvbC5jb250ZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBtb2RlbCBjb250YWluaW5nIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIEljb25UYWJGaWx0ZXJzLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7c2FwLnVpLm1vZGVsLk1vZGVsIHwgdW5kZWZpbmVkfSBUaGUgbW9kZWxcblx0ICovXG5cdGdldFRhYnNNb2RlbCgpOiBNb2RlbCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgc1RhYnNNb2RlbCA9IFwidGFic0ludGVybmFsXCI7XG5cdFx0Y29uc3Qgb0NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0aWYgKCFvQ29udGVudCkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0bGV0IG9Nb2RlbCA9IG9Db250ZW50LmdldE1vZGVsKHNUYWJzTW9kZWwpO1xuXHRcdGlmICghb01vZGVsKSB7XG5cdFx0XHRvTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHt9KTtcblx0XHRcdG9Db250ZW50LnNldE1vZGVsKG9Nb2RlbCwgc1RhYnNNb2RlbCk7XG5cdFx0fVxuXHRcdHJldHVybiBvTW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgaW5uZXIgY29udHJvbCBvZiB0aGUgZGlzcGxheWVkIHRhYi5cblx0ICpcblx0ICogQHJldHVybnMge0lubmVyQ29udHJvbFR5cGUgfCB1bmRlZmluZWR9IFRoZSBjb250cm9sXG5cdCAqL1xuXHRnZXRTZWxlY3RlZElubmVyQ29udHJvbCgpOiBJbm5lckNvbnRyb2xUeXBlIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBvU2VsZWN0ZWRUYWIgPSB0aGlzLmNvbnRlbnQuZ2V0SXRlbXMoKS5maW5kKChvSXRlbSkgPT4gKG9JdGVtIGFzIEljb25UYWJGaWx0ZXIpLmdldEtleSgpID09PSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKSk7XG5cdFx0cmV0dXJuIG9TZWxlY3RlZFRhYlxuXHRcdFx0PyB0aGlzLl9nZXRBbGxJbm5lckNvbnRyb2xzKCkuZmluZCgob01hY3JvQVBJKSA9PiB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSkgPT09IG9TZWxlY3RlZFRhYilcblx0XHRcdDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1hbmFnZXMgdGhlIGJpbmRpbmcgb2YgYWxsIGlubmVyIGNvbnRyb2xzIHdoZW4gdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgaXMgY2hhbmdlZC5cblx0ICpcblx0ICogQHBhcmFtIHtzYXAudWkuYmFzZS5FdmVudH0gb0V2ZW50IEV2ZW50IGZpcmVkIGJ5IHRoZSBJY29uVGFiQmFyXG5cdCAqL1xuXHRzdGF0aWMgaGFuZGxlVGFiQ2hhbmdlKG9FdmVudDogYW55KTogdm9pZCB7XG5cdFx0Y29uc3Qgb0ljb25UYWJCYXIgPSBvRXZlbnQuZ2V0U291cmNlKCk7XG5cdFx0Y29uc3Qgb011bHRpQ29udHJvbCA9IG9JY29uVGFiQmFyLmdldFBhcmVudCgpO1xuXG5cdFx0Y29uc3QgbVBhcmFtZXRlcnMgPSBvRXZlbnQuZ2V0UGFyYW1ldGVycygpO1xuXHRcdG9NdWx0aUNvbnRyb2wuX3NldElubmVyQmluZGluZyh0cnVlKTtcblx0XHRjb25zdCBzUHJldmlvdXNTZWxlY3RlZEtleSA9IG1QYXJhbWV0ZXJzPy5wcmV2aW91c0tleTtcblx0XHRjb25zdCBzU2VsZWN0ZWRLZXkgPSBtUGFyYW1ldGVycz8uc2VsZWN0ZWRLZXk7XG5cblx0XHRpZiAoc1NlbGVjdGVkS2V5ICYmIHNQcmV2aW91c1NlbGVjdGVkS2V5ICE9PSBzU2VsZWN0ZWRLZXkpIHtcblx0XHRcdGNvbnN0IG9GaWx0ZXJCYXIgPSBvTXVsdGlDb250cm9sLl9nZXRGaWx0ZXJDb250cm9sKCk7XG5cdFx0XHRpZiAob0ZpbHRlckJhciAmJiAhb011bHRpQ29udHJvbC5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikpIHtcblx0XHRcdFx0aWYgKCFvTXVsdGlDb250cm9sLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCkpIHtcblx0XHRcdFx0XHQvL2N1c3RvbSB0YWJcblx0XHRcdFx0XHRvTXVsdGlDb250cm9sLl9yZWZyZXNoQ3VzdG9tVmlldyhvRmlsdGVyQmFyLmdldEZpbHRlckNvbmRpdGlvbnMoKSwgXCJ0YWJDaGFuZ2VkXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRDb250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUEkuYWRkKHtcblx0XHRcdFx0Y2hhbmdlczogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGNoYW5nZVNwZWNpZmljRGF0YToge1xuXHRcdFx0XHRcdFx0XHRjaGFuZ2VUeXBlOiBcInNlbGVjdEljb25UYWJCYXJGaWx0ZXJcIixcblx0XHRcdFx0XHRcdFx0Y29udGVudDoge1xuXHRcdFx0XHRcdFx0XHRcdHNlbGVjdGVkS2V5OiBzU2VsZWN0ZWRLZXksXG5cdFx0XHRcdFx0XHRcdFx0cHJldmlvdXNTZWxlY3RlZEtleTogc1ByZXZpb3VzU2VsZWN0ZWRLZXlcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHNlbGVjdG9yRWxlbWVudDogb0ljb25UYWJCYXJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdG9NdWx0aUNvbnRyb2wuX2dldFZpZXdDb250cm9sbGVyKCk/LmdldEV4dGVuc2lvbkFQSSgpPy51cGRhdGVBcHBTdGF0ZSgpO1xuXG5cdFx0b011bHRpQ29udHJvbC5maXJlRXZlbnQoXCJzZWxlY3RcIiwge1xuXHRcdFx0aWNvblRhYkJhcjogb0ljb25UYWJCYXIsXG5cdFx0XHRzZWxlY3RlZEtleTogc1NlbGVjdGVkS2V5LFxuXHRcdFx0cHJldmlvdXNLZXk6IHNQcmV2aW91c1NlbGVjdGVkS2V5XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogSW52YWxpZGF0ZXMgdGhlIGNvbnRlbnQgb2YgYWxsIGlubmVyIGNvbnRyb2xzLlxuXHQgKi9cblx0aW52YWxpZGF0ZUNvbnRlbnQoKSB7XG5cdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR0aGlzLl9nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRvTWFjcm9BUEkuaW52YWxpZGF0ZUNvbnRlbnQ/LigpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGNvdW50cyB0byBvdXQgb2YgZGF0ZSBvciB1cCB0byBkYXRlXG5cdCAqIElmIHRoZSBjb3VudHMgYXJlIHNldCB0byBcIm91dCBvZiBkYXRlXCIgYW5kIHRoZSBzZWxlY3RlZCBJY29uVGFiRmlsdGVyIGRvZXNuJ3QgY29udGFpbiBhbiBpbm5lciBjb250cm9sIGFsbCBpbm5lciBjb250cm9scyBhcmUgcmVxdWVzdGVkIHRvIGdldCB0aGUgbmV3IGNvdW50cy5cblx0ICpcblx0ICogQHBhcmFtIHtib29sZWFufSBiVmFsdWUgRnJlZXplIG9yIG5vdCB0aGUgY29udHJvbFxuXHQgKi9cblx0c2V0Q291bnRzT3V0RGF0ZWQoYlZhbHVlID0gdHJ1ZSkge1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJjb3VudHNPdXREYXRlZFwiLCBiVmFsdWUpO1xuXHRcdC8vIGlmIHRoZSBjdXJyZW50IHRhYiBpcyBub3QgY29uZmlndXJlZCB3aXRoIG5vIGlubmVyIENvbnRyb2xcblx0XHQvLyB0aGUgdGFiIGNvdW50cyBtdXN0IGJlIG1hbnVhbGx5IHJlZnJlc2hlZCBzaW5jZSBubyBNYWNybyBBUEkgd2lsbCBzZW50IGV2ZW50IGludGVybmFsRGF0YVJlcXVlc3RlZFxuXHRcdGlmIChiVmFsdWUgJiYgIXRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0dGhpcy5fcmVmcmVzaFRhYnNDb3VudCgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBGcmVlemVzIHRoZSBjb250ZW50IDpcblx0ICogIC0gY29udGVudCBpcyBmcm96ZW46IHRoZSBiaW5kaW5nIG9mIHRoZSBpbm5lciBjb250cm9scyBhcmUgc3VzcGVuZGVkLlxuXHQgKiAgLSBjb250ZW50IGlzIHVuZnJvemVuOiB0aGUgYmluZGluZyBvZiBpbm5lciBjb250cm9sIHJlbGF0ZWQgdG8gdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgaXMgcmVzdW1lZC5cblx0ICpcblx0ICogQHBhcmFtIHtib29sZWFufSBiVmFsdWUgRnJlZXplIG9yIG5vdCB0aGUgY29udHJvbFxuXHQgKi9cblx0c2V0RnJlZXplQ29udGVudChiVmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiLCBiVmFsdWUpO1xuXHRcdHRoaXMuX3NldElubmVyQmluZGluZygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgdGhlIGludGVybmFsIG1vZGVsIHdpdGggdGhlIHByb3BlcnRpZXMgdGhhdCBhcmUgbm90IGFwcGxpY2FibGUgb24gZWFjaCBJY29uVGFiRmlsdGVyIChjb250YWluaW5nIGlubmVyIGNvbnRyb2wpIGFjY29yZGluZyB0byB0aGUgZW50aXR5VHlwZSBvZiB0aGUgZmlsdGVyIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEBwYXJhbSBvUmVzb3VyY2VCdW5kbGVcblx0ICovXG5cdF91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHMob1Jlc291cmNlQnVuZGxlOiBSZXNvdXJjZUJ1bmRsZSkge1xuXHRcdGNvbnN0IHRhYnNNb2RlbCA9IHRoaXMuZ2V0VGFic01vZGVsKCk7XG5cdFx0Y29uc3Qgb0ZpbHRlckNvbnRyb2wgPSB0aGlzLl9nZXRGaWx0ZXJDb250cm9sKCkgYXMgQ29udHJvbDtcblx0XHRpZiAodGFic01vZGVsICYmIG9GaWx0ZXJDb250cm9sKSB7XG5cdFx0XHRjb25zdCByZXN1bHRzOiBhbnkgPSB7fTtcblx0XHRcdHRoaXMuX2dldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0Y29uc3Qgb1RhYiA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKTtcblx0XHRcdFx0aWYgKG9UYWIpIHtcblx0XHRcdFx0XHRjb25zdCBzVGFiSWQgPSBvVGFiLmdldEtleSgpO1xuXHRcdFx0XHRcdGNvbnN0IG1JZ25vcmVkRmllbGRzID0gb01hY3JvQVBJLnJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzPy4ob0ZpbHRlckNvbnRyb2wpIHx8IFtdO1xuXHRcdFx0XHRcdHJlc3VsdHNbc1RhYklkXSA9IHtcblx0XHRcdFx0XHRcdG5vdEFwcGxpY2FibGU6IHtcblx0XHRcdFx0XHRcdFx0ZmllbGRzOiBtSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuX3NldFRhYk1lc3NhZ2VTdHJpcCh7XG5cdFx0XHRcdFx0XHRcdFx0ZW50aXR5VHlwZVBhdGg6IG9GaWx0ZXJDb250cm9sLmRhdGEoXCJlbnRpdHlUeXBlXCIpLFxuXHRcdFx0XHRcdFx0XHRcdGlnbm9yZWRGaWVsZHM6IG1JZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRcdFx0XHRcdHJlc291cmNlQnVuZGxlOiBvUmVzb3VyY2VCdW5kbGUsXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6IG9UYWIuZ2V0VGV4dCgpXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHQodGFic01vZGVsIGFzIGFueSkuc2V0RGF0YShyZXN1bHRzKTtcblx0XHR9XG5cdH1cblxuXHRfZ2V0QWxsSW5uZXJDb250cm9scyhiT25seUZvclZpc2libGVUYWIgPSBmYWxzZSk6IElubmVyQ29udHJvbFR5cGVbXSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdHRoaXMuaW5uZXJDb250cm9scy5yZWR1Y2UoKGFJbm5lckNvbnRyb2xzOiBJbm5lckNvbnRyb2xUeXBlW10sIHNJbm5lckNvbnRyb2w6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRjb25zdCBvQ29udHJvbCA9IENvcmUuYnlJZChzSW5uZXJDb250cm9sKSBhcyBJbm5lckNvbnRyb2xUeXBlO1xuXHRcdFx0XHRpZiAob0NvbnRyb2wpIHtcblx0XHRcdFx0XHRhSW5uZXJDb250cm9scy5wdXNoKG9Db250cm9sKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gYUlubmVyQ29udHJvbHMuZmlsdGVyKFxuXHRcdFx0XHRcdChvSW5uZXJDb250cm9sKSA9PiAhYk9ubHlGb3JWaXNpYmxlVGFiIHx8IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob0lubmVyQ29udHJvbCk/LmdldFZpc2libGUoKVxuXHRcdFx0XHQpO1xuXHRcdFx0fSwgW10pIHx8IFtdXG5cdFx0KTtcblx0fVxuXG5cdF9nZXRGaWx0ZXJDb250cm9sKCk6IEZpbHRlckJhciB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIENvcmUuYnlJZCh0aGlzLmZpbHRlckNvbnRyb2wpIGFzIEZpbHRlckJhciB8IHVuZGVmaW5lZDtcblx0fVxuXG5cdF9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9Db250cm9sOiBDb250cm9sKTogSWNvblRhYkZpbHRlciB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgc1N1cHBvcnRlZENsYXNzID0gSWNvblRhYkZpbHRlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKTtcblx0XHRsZXQgb1RhYjogYW55ID0gb0NvbnRyb2w7XG5cdFx0aWYgKG9UYWIgJiYgIW9UYWIuaXNBKHNTdXBwb3J0ZWRDbGFzcykgJiYgb1RhYi5nZXRQYXJlbnQpIHtcblx0XHRcdG9UYWIgPSBvQ29udHJvbC5nZXRQYXJlbnQoKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9UYWIgJiYgb1RhYi5pc0Eoc1N1cHBvcnRlZENsYXNzKSA/IChvVGFiIGFzIEljb25UYWJGaWx0ZXIpIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0X2dldFZpZXdDb250cm9sbGVyKCkge1xuXHRcdGNvbnN0IG9WaWV3ID0gQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0Vmlldyh0aGlzKTtcblx0XHRyZXR1cm4gb1ZpZXcgJiYgb1ZpZXcuZ2V0Q29udHJvbGxlcigpO1xuXHR9XG5cblx0X3JlZnJlc2hDdXN0b21WaWV3KG9GaWx0ZXJDb25kaXRpb25zOiBhbnksIHNSZWZyZXNoQ2F1c2U6IHN0cmluZykge1xuXHRcdHRoaXMuX2dldFZpZXdDb250cm9sbGVyKCk/Lm9uVmlld05lZWRzUmVmcmVzaD8uKHtcblx0XHRcdGZpbHRlckNvbmRpdGlvbnM6IG9GaWx0ZXJDb25kaXRpb25zLFxuXHRcdFx0Y3VycmVudFRhYklkOiB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKSxcblx0XHRcdHJlZnJlc2hDYXVzZTogc1JlZnJlc2hDYXVzZVxuXHRcdH0pO1xuXHR9XG5cblx0X3JlZnJlc2hUYWJzQ291bnQoKTogdm9pZCB7XG5cdFx0Y29uc3Qgc1NlbGVjdGVkS2V5ID0gdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0dGhpcy5fZ2V0QWxsSW5uZXJDb250cm9scyh0cnVlKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdGNvbnN0IG9JY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0aWYgKG9NYWNyb0FQST8uZ2V0Q291bnRzICYmICh0aGlzLmNvdW50c091dERhdGVkIHx8IHNTZWxlY3RlZEtleSA9PT0gb0ljb25UYWJGaWx0ZXI/LmdldEtleSgpKSkge1xuXHRcdFx0XHRpZiAob0ljb25UYWJGaWx0ZXIgJiYgb0ljb25UYWJGaWx0ZXIuc2V0Q291bnQpIHtcblx0XHRcdFx0XHRvSWNvblRhYkZpbHRlci5zZXRDb3VudChcIi4uLlwiKTtcblx0XHRcdFx0XHRvTWFjcm9BUElcblx0XHRcdFx0XHRcdC5nZXRDb3VudHMoKVxuXHRcdFx0XHRcdFx0LnRoZW4oKGlDb3VudDogc3RyaW5nKSA9PiBvSWNvblRhYkZpbHRlci5zZXRDb3VudChpQ291bnQgfHwgXCIwXCIpKVxuXHRcdFx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSByZXF1ZXN0aW5nIENvdW50cyBmb3IgQ29udHJvbFwiLCBvRXJyb3IpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKGZhbHNlKTtcblx0fVxuXG5cdF9zZXRJbm5lckJpbmRpbmcoYlJlcXVlc3RJZk5vdEluaXRpYWxpemVkID0gZmFsc2UpIHtcblx0XHRpZiAodGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLl9nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9JY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0XHRjb25zdCBiSXNTZWxlY3RlZEtleSA9IG9JY29uVGFiRmlsdGVyPy5nZXRLZXkoKSA9PT0gdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0XHRcdGNvbnN0IHNBY3Rpb24gPSBiSXNTZWxlY3RlZEtleSAmJiAhdGhpcy5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikgPyBCaW5kaW5nQWN0aW9uLlJlc3VtZSA6IEJpbmRpbmdBY3Rpb24uU3VzcGVuZDtcblx0XHRcdFx0b01hY3JvQVBJW3NBY3Rpb25dPy4oc0FjdGlvbiA9PT0gQmluZGluZ0FjdGlvbi5SZXN1bWUgPyBiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQgJiYgYklzU2VsZWN0ZWRLZXkgOiB1bmRlZmluZWQpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0X3NldFRhYk1lc3NhZ2VTdHJpcChwcm9wZXJ0aWVzOiBNZXNzYWdlU3RyaXBQcm9wZXJ0aWVzKSB7XG5cdFx0bGV0IHNUZXh0ID0gXCJcIjtcblx0XHRjb25zdCBhSWdub3JlZEZpZWxkcyA9IHByb3BlcnRpZXMuaWdub3JlZEZpZWxkcztcblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKSBhcyBDb250cm9sO1xuXHRcdGlmIChvRmlsdGVyQ29udHJvbCAmJiBBcnJheS5pc0FycmF5KGFJZ25vcmVkRmllbGRzKSAmJiBhSWdub3JlZEZpZWxkcy5sZW5ndGggPiAwICYmIHByb3BlcnRpZXMudGl0bGUpIHtcblx0XHRcdGNvbnN0IGFJZ25vcmVkTGFiZWxzID0gTWVzc2FnZVN0cmlwLmdldExhYmVscyhcblx0XHRcdFx0YUlnbm9yZWRGaWVsZHMsXG5cdFx0XHRcdHByb3BlcnRpZXMuZW50aXR5VHlwZVBhdGgsXG5cdFx0XHRcdG9GaWx0ZXJDb250cm9sLFxuXHRcdFx0XHRwcm9wZXJ0aWVzLnJlc291cmNlQnVuZGxlXG5cdFx0XHQpO1xuXHRcdFx0c1RleHQgPSBNZXNzYWdlU3RyaXAuZ2V0VGV4dChhSWdub3JlZExhYmVscywgb0ZpbHRlckNvbnRyb2wsIHByb3BlcnRpZXMudGl0bGUsIERlbGVnYXRlVXRpbC5nZXRMb2NhbGl6ZWRUZXh0KTtcblx0XHRcdHJldHVybiBzVGV4dDtcblx0XHR9XG5cdH1cblxuXHRfb25TZWFyY2gob0V2ZW50OiBDb3JlRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdHRoaXMuc2V0RnJlZXplQ29udGVudChmYWxzZSk7XG5cdFx0aWYgKHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0dGhpcy5fdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzKHRoaXMuX2dldFZpZXdDb250cm9sbGVyKCk/Lm9SZXNvdXJjZUJ1bmRsZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGN1c3RvbSB0YWJcblx0XHRcdHRoaXMuX3JlZnJlc2hDdXN0b21WaWV3KG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zXCIpLCBcInNlYXJjaFwiKTtcblx0XHR9XG5cdH1cblxuXHRfb25GaWx0ZXJDaGFuZ2VkKG9FdmVudDogQ29yZUV2ZW50KTogdm9pZCB7XG5cdFx0aWYgKG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zQmFzZWRcIikpIHtcblx0XHRcdHRoaXMuc2V0RnJlZXplQ29udGVudCh0cnVlKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTXVsdGlwbGVNb2RlQ29udHJvbDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Ba0NLQSxhOzthQUFBQSxhO0lBQUFBLGE7SUFBQUEsYTtLQUFBQSxhLEtBQUFBLGE7O01BTUNDLG1CLFdBRExDLGNBQWMsQ0FBQywwREFBRCxDLFVBRWJDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUixDQUFELEMsVUFHUkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFSO0lBQW1CQyxZQUFZLEVBQUU7RUFBakMsQ0FBRCxDLFVBR1JGLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsU0FBUjtJQUFtQkMsWUFBWSxFQUFFO0VBQWpDLENBQUQsQyxVQUdSQyxXQUFXLENBQUM7SUFBRUYsSUFBSSxFQUFFLGtCQUFSO0lBQTRCRyxRQUFRLEVBQUUsS0FBdEM7SUFBNkNDLFNBQVMsRUFBRTtFQUF4RCxDQUFELEMsVUFHWEMsV0FBVyxDQUFDO0lBQUVMLElBQUksRUFBRSxxQkFBUjtJQUErQkcsUUFBUSxFQUFFO0VBQXpDLENBQUQsQyxVQUdYRSxXQUFXLENBQUM7SUFBRUwsSUFBSSxFQUFFLGdDQUFSO0lBQTBDRyxRQUFRLEVBQUU7RUFBcEQsQ0FBRCxDLFVBR1hHLEtBQUssRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQUdOQyxpQixHQUFBLDZCQUFvQjtNQUFBO01BQUE7O01BQ25CLEtBQUtDLFlBQUwsR0FEbUIsQ0FDRTs7TUFFckIsSUFBTUMsYUFBYSw0QkFBRyxLQUFLQyxpQkFBTCxFQUFILDBEQUFHLHNCQUEwQkMsU0FBMUIsRUFBdEI7O01BQ0EsS0FBS0Msb0JBQUwsR0FBNEJDLE9BQTVCLENBQW9DLFVBQUNDLFNBQUQsRUFBZTtRQUFBOztRQUNsRCxJQUFJLE1BQUksQ0FB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
@@ -84,15 +84,6 @@ class MultipleModeControl extends Control {
84
84
  oRm.renderControl(oControl.content);
85
85
  }
86
86
 
87
- /**
88
- * Gets the entity set of the displayed visualization.
89
- *
90
- * @returns {string} The entity set
91
- */
92
- getDisplayedEntitySet(): string | undefined {
93
- return this.getSelectedInnerControl()?.content?.data("targetCollectionPath").slice(1);
94
- }
95
-
96
87
  /**
97
88
  * Gets the model containing information related to the IconTabFilters.
98
89
  *
@@ -15,7 +15,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/filter/FilterUtils"], f
15
15
 
16
16
  if (oFilterBar && !oSelectionVariant.isEmpty()) {
17
17
  var oViewData = oView.getViewData(),
18
- sRootPath = oViewData.fullContextPath + oViewData.entitySet;
18
+ sRootPath = oViewData.fullContextPath;
19
19
  var oFilterBarConditions = Object.assign({}, this.base.getView().getController().filterBarConditions);
20
20
  var aParameters = [];
21
21
 
@@ -61,4 +61,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/filter/FilterUtils"], f
61
61
  };
62
62
  return IntentBasedNavigationOverride;
63
63
  }, false);
64
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbnRlbnRCYXNlZE5hdmlnYXRpb25PdmVycmlkZSIsImFkYXB0TmF2aWdhdGlvbkNvbnRleHQiLCJvU2VsZWN0aW9uVmFyaWFudCIsIm9UYXJnZXRJbmZvIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiaXNFbXB0eSIsIm9WaWV3RGF0YSIsImdldFZpZXdEYXRhIiwic1Jvb3RQYXRoIiwiZnVsbENvbnRleHRQYXRoIiwiZW50aXR5U2V0Iiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJiYXNlIiwiZmlsdGVyQmFyQ29uZGl0aW9ucyIsImFQYXJhbWV0ZXJzIiwiY29udGV4dFBhdGgiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJvUGFyYW1ldGVySW5mbyIsIkNvbW1vblV0aWxzIiwiZ2V0UGFyYW1ldGVySW5mbyIsIm9QYXJhbVByb3BlcnRpZXMiLCJwYXJhbWV0ZXJQcm9wZXJ0aWVzIiwia2V5cyIsIl9pbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwcmVwYXJlRmlsdGVyc0ZvckV4dGVybmFsTmF2aWdhdGlvbiIsIm9GaWx0ZXJJbmZvIiwiRmlsdGVyVXRpbHMiLCJnZXRGaWx0ZXJJbmZvIiwidGFyZ2V0Q29udHJvbCIsIl9nZXRUYWJsZSIsImZpbHRlcnMiLCJvTXVsdGlwbGVNb2RlQ29udHJvbCIsIl9nZXRNdWx0aU1vZGVDb250cm9sIiwib1RhYnNNb2RlbCIsImdldFRhYnNNb2RlbCIsImFJZ25vcmVkRmllbGRzRm9yVGFiIiwiZ2V0UHJvcGVydHkiLCJjb250ZW50IiwiZ2V0U2VsZWN0ZWRLZXkiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJmb3JFYWNoIiwic1Byb3BlcnR5IiwiZmlsdGVyQ29uZGl0aW9ucyIsImFkZEV4dGVybmFsU3RhdGVGaWx0ZXJzVG9TZWxlY3Rpb25WYXJpYW50IiwicHJvcGVydGllc1dpdGhvdXRDb25mbGljdCIsImdldEVudGl0eVNldCIsImdldEN1cnJlbnRFbnRpdHlTZXQiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkludGVudEJhc2VkTmF2aWdhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBJbnRlbnRCYXNlZE5hdmlnYXRpb24gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVudEJhc2VkTmF2aWdhdGlvblwiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHR5cGUgTGlzdFJlcG9ydENvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5cbmNvbnN0IEludGVudEJhc2VkTmF2aWdhdGlvbk92ZXJyaWRlID0ge1xuXHRhZGFwdE5hdmlnYXRpb25Db250ZXh0OiBmdW5jdGlvbiAodGhpczogSW50ZW50QmFzZWROYXZpZ2F0aW9uLCBvU2VsZWN0aW9uVmFyaWFudDogYW55LCBvVGFyZ2V0SW5mbzogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0b0ZpbHRlckJhciA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0Ly8gQWRkaW5nIGZpbHRlciBiYXIgdmFsdWVzIHRvIHRoZSBuYXZpZ2F0aW9uIGRvZXMgbm90IG1ha2Ugc2Vuc2UgaWYgbm8gY29udGV4dCBoYXMgYmVlbiBzZWxlY3RlZC5cblx0XHQvLyBIZW5jZSBvbmx5IGNvbnNpZGVyIGZpbHRlciBiYXIgdmFsdWVzIHdoZW4gU2VsZWN0aW9uVmFyaWFudCBpcyBub3QgZW1wdHlcblx0XHRpZiAob0ZpbHRlckJhciAmJiAhb1NlbGVjdGlvblZhcmlhbnQuaXNFbXB0eSgpKSB7XG5cdFx0XHRjb25zdCBvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpIGFzIGFueSxcblx0XHRcdFx0c1Jvb3RQYXRoID0gb1ZpZXdEYXRhLmZ1bGxDb250ZXh0UGF0aCArIG9WaWV3RGF0YS5lbnRpdHlTZXQ7XG5cdFx0XHRsZXQgb0ZpbHRlckJhckNvbmRpdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCAodGhpcy5iYXNlLmdldFZpZXcoKS5nZXRDb250cm9sbGVyKCkgYXMgYW55KS5maWx0ZXJCYXJDb25kaXRpb25zKTtcblx0XHRcdGxldCBhUGFyYW1ldGVycyA9IFtdO1xuXG5cdFx0XHRpZiAob1ZpZXdEYXRhLmNvbnRleHRQYXRoKSB7XG5cdFx0XHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvVmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0XHRcdG9QYXJhbWV0ZXJJbmZvID0gQ29tbW9uVXRpbHMuZ2V0UGFyYW1ldGVySW5mbyhvTWV0YU1vZGVsLCBvVmlld0RhdGEuY29udGV4dFBhdGgpLFxuXHRcdFx0XHRcdG9QYXJhbVByb3BlcnRpZXMgPSBvUGFyYW1ldGVySW5mby5wYXJhbWV0ZXJQcm9wZXJ0aWVzO1xuXHRcdFx0XHRhUGFyYW1ldGVycyA9IChvUGFyYW1Qcm9wZXJ0aWVzICYmIE9iamVjdC5rZXlzKG9QYXJhbVByb3BlcnRpZXMpKSB8fCBbXTtcblx0XHRcdH1cblxuXHRcdFx0b0ZpbHRlckJhckNvbmRpdGlvbnMgPSBvQ29udHJvbGxlci5faW50ZW50QmFzZWROYXZpZ2F0aW9uLnByZXBhcmVGaWx0ZXJzRm9yRXh0ZXJuYWxOYXZpZ2F0aW9uKFxuXHRcdFx0XHRvRmlsdGVyQmFyQ29uZGl0aW9ucyxcblx0XHRcdFx0c1Jvb3RQYXRoLFxuXHRcdFx0XHRhUGFyYW1ldGVyc1xuXHRcdFx0KTtcblx0XHRcdGNvbnN0IG9GaWx0ZXJJbmZvID0gRmlsdGVyVXRpbHMuZ2V0RmlsdGVySW5mbyhvRmlsdGVyQmFyLCB7XG5cdFx0XHRcdHRhcmdldENvbnRyb2w6IG9Db250cm9sbGVyLl9nZXRUYWJsZSgpXG5cdFx0XHR9KS5maWx0ZXJzO1xuXG5cdFx0XHRjb25zdCBvTXVsdGlwbGVNb2RlQ29udHJvbCA9IG9Db250cm9sbGVyLl9nZXRNdWx0aU1vZGVDb250cm9sKCk7XG5cdFx0XHRpZiAob011bHRpcGxlTW9kZUNvbnRyb2wpIHtcblx0XHRcdFx0Ly8gRG8gd2UgbmVlZCB0byBleGNsdWRlIEZpZWxkcyAobXVsdGkgdGFibGVzIG1vZGUgd2l0aCBtdWx0aSBlbnRpdHkgc2V0cyk/XG5cdFx0XHRcdGNvbnN0IG9UYWJzTW9kZWwgPSBvTXVsdGlwbGVNb2RlQ29udHJvbC5nZXRUYWJzTW9kZWwoKTtcblx0XHRcdFx0aWYgKG9UYWJzTW9kZWwpIHtcblx0XHRcdFx0XHRjb25zdCBhSWdub3JlZEZpZWxkc0ZvclRhYiA9IG9UYWJzTW9kZWwuZ2V0UHJvcGVydHkoXG5cdFx0XHRcdFx0XHRgLyR7b011bHRpcGxlTW9kZUNvbnRyb2wuY29udGVudD8uZ2V0U2VsZWN0ZWRLZXkoKX0vbm90QXBwbGljYWJsZS9maWVsZHNgXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShhSWdub3JlZEZpZWxkc0ZvclRhYikgJiYgYUlnbm9yZWRGaWVsZHNGb3JUYWIubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0YUlnbm9yZWRGaWVsZHNGb3JUYWIuZm9yRWFjaChmdW5jdGlvbiAoc1Byb3BlcnR5OiBhbnkpIHtcblx0XHRcdFx0XHRcdFx0ZGVsZXRlIG9GaWx0ZXJCYXJDb25kaXRpb25zLmZpbHRlckNvbmRpdGlvbnNbc1Byb3BlcnR5XTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBUT0RPOiBtb3ZlIHRoaXMgYWxzbyBpbnRvIHRoZSBpbnRlbnQgYmFzZWQgbmF2aWdhdGlvbiBjb250cm9sbGVyIGV4dGVuc2lvblxuXHRcdFx0Q29tbW9uVXRpbHMuYWRkRXh0ZXJuYWxTdGF0ZUZpbHRlcnNUb1NlbGVjdGlvblZhcmlhbnQob1NlbGVjdGlvblZhcmlhbnQsIG9GaWx0ZXJCYXJDb25kaXRpb25zLCBvVGFyZ2V0SW5mbywgb0ZpbHRlckluZm8pO1xuXHRcdFx0ZGVsZXRlIG9UYXJnZXRJbmZvLnByb3BlcnRpZXNXaXRob3V0Q29uZmxpY3Q7XG5cdFx0fVxuXHR9LFxuXHRnZXRFbnRpdHlTZXQ6IGZ1bmN0aW9uICh0aGlzOiBJbnRlbnRCYXNlZE5hdmlnYXRpb24pIHtcblx0XHRyZXR1cm4gKHRoaXMuYmFzZSBhcyBhbnkpLmdldEN1cnJlbnRFbnRpdHlTZXQoKTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgSW50ZW50QmFzZWROYXZpZ2F0aW9uT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFLQSxJQUFNQSw2QkFBNkIsR0FBRztJQUNyQ0Msc0JBQXNCLEVBQUUsVUFBdUNDLGlCQUF2QyxFQUErREMsV0FBL0QsRUFBaUY7TUFDeEcsSUFBTUMsS0FBSyxHQUFHLEtBQUtDLE9BQUwsRUFBZDtNQUFBLElBQ0NDLFdBQVcsR0FBR0YsS0FBSyxDQUFDRyxhQUFOLEVBRGY7TUFBQSxJQUVDQyxVQUFVLEdBQUdGLFdBQVcsQ0FBQ0csb0JBQVosRUFGZCxDQUR3RyxDQUl4RztNQUNBOzs7TUFDQSxJQUFJRCxVQUFVLElBQUksQ0FBQ04saUJBQWlCLENBQUNRLE9BQWxCLEVBQW5CLEVBQWdEO1FBQy9DLElBQU1DLFNBQVMsR0FBR1AsS0FBSyxDQUFDUSxXQUFOLEVBQWxCO1FBQUEsSUFDQ0MsU0FBUyxHQUFHRixTQUFTLENBQUNHLGVBQVYsR0FBNEJILFNBQVMsQ0FBQ0ksU0FEbkQ7UUFFQSxJQUFJQyxvQkFBb0IsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFtQixLQUFLQyxJQUFMLENBQVVkLE9BQVYsR0FBb0JFLGFBQXBCLEVBQUQsQ0FBNkNhLG1CQUEvRCxDQUEzQjtRQUNBLElBQUlDLFdBQVcsR0FBRyxFQUFsQjs7UUFFQSxJQUFJVixTQUFTLENBQUNXLFdBQWQsRUFBMkI7VUFDMUIsSUFBTUMsVUFBVSxHQUFHbkIsS0FBSyxDQUFDb0IsUUFBTixHQUFpQkMsWUFBakIsRUFBbkI7VUFBQSxJQUNDQyxjQUFjLEdBQUdDLFdBQVcsQ0FBQ0MsZ0JBQVosQ0FBNkJMLFVBQTdCLEVBQXlDWixTQUFTLENBQUNXLFdBQW5ELENBRGxCO1VBQUEsSUFFQ08sZ0JBQWdCLEdBQUdILGNBQWMsQ0FBQ0ksbUJBRm5DO1VBR0FULFdBQVcsR0FBSVEsZ0JBQWdCLElBQUlaLE1BQU0sQ0FBQ2MsSUFBUCxDQUFZRixnQkFBWixDQUFyQixJQUF1RCxFQUFyRTtRQUNBOztRQUVEYixvQkFBb0IsR0FBR1YsV0FBVyxDQUFDMEIsc0JBQVosQ0FBbUNDLG1DQUFuQyxDQUN0QmpCLG9CQURzQixFQUV0QkgsU0FGc0IsRUFHdEJRLFdBSHNCLENBQXZCO1FBS0EsSUFBTWEsV0FBVyxHQUFHQyxXQUFXLENBQUNDLGFBQVosQ0FBMEI1QixVQUExQixFQUFzQztVQUN6RDZCLGFBQWEsRUFBRS9CLFdBQVcsQ0FBQ2dDLFNBQVo7UUFEMEMsQ0FBdEMsRUFFakJDLE9BRkg7O1FBSUEsSUFBTUMsb0JBQW9CLEdBQUdsQyxXQUFXLENBQUNtQyxvQkFBWixFQUE3Qjs7UUFDQSxJQUFJRCxvQkFBSixFQUEwQjtVQUN6QjtVQUNBLElBQU1FLFVBQVUsR0FBR0Ysb0JBQW9CLENBQUNHLFlBQXJCLEVBQW5COztVQUNBLElBQUlELFVBQUosRUFBZ0I7WUFBQTs7WUFDZixJQUFNRSxvQkFBb0IsR0FBR0YsVUFBVSxDQUFDRyxXQUFYLHFDQUN4Qkwsb0JBQW9CLENBQUNNLE9BREcsMERBQ3hCLHNCQUE4QkMsY0FBOUIsRUFEd0IsMkJBQTdCOztZQUdBLElBQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjTCxvQkFBZCxLQUF1Q0Esb0JBQW9CLENBQUNNLE1BQXJCLEdBQThCLENBQXpFLEVBQTRFO2NBQzNFTixvQkFBb0IsQ0FBQ08sT0FBckIsQ0FBNkIsVUFBVUMsU0FBVixFQUEwQjtnQkFDdEQsT0FBT3BDLG9CQUFvQixDQUFDcUMsZ0JBQXJCLENBQXNDRCxTQUF0QyxDQUFQO2NBQ0EsQ0FGRDtZQUdBO1VBQ0Q7UUFDRCxDQXBDOEMsQ0FzQy9DOzs7UUFDQXpCLFdBQVcsQ0FBQzJCLHlDQUFaLENBQXNEcEQsaUJBQXRELEVBQXlFYyxvQkFBekUsRUFBK0ZiLFdBQS9GLEVBQTRHK0IsV0FBNUc7UUFDQSxPQUFPL0IsV0FBVyxDQUFDb0QseUJBQW5CO01BQ0E7SUFDRCxDQWpEb0M7SUFrRHJDQyxZQUFZLEVBQUUsWUFBdUM7TUFDcEQsT0FBUSxLQUFLckMsSUFBTixDQUFtQnNDLG1CQUFuQixFQUFQO0lBQ0E7RUFwRG9DLENBQXRDO1NBdURlekQsNkIifQ==
64
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbnRlbnRCYXNlZE5hdmlnYXRpb25PdmVycmlkZSIsImFkYXB0TmF2aWdhdGlvbkNvbnRleHQiLCJvU2VsZWN0aW9uVmFyaWFudCIsIm9UYXJnZXRJbmZvIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiaXNFbXB0eSIsIm9WaWV3RGF0YSIsImdldFZpZXdEYXRhIiwic1Jvb3RQYXRoIiwiZnVsbENvbnRleHRQYXRoIiwib0ZpbHRlckJhckNvbmRpdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJiYXNlIiwiZmlsdGVyQmFyQ29uZGl0aW9ucyIsImFQYXJhbWV0ZXJzIiwiY29udGV4dFBhdGgiLCJvTWV0YU1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJvUGFyYW1ldGVySW5mbyIsIkNvbW1vblV0aWxzIiwiZ2V0UGFyYW1ldGVySW5mbyIsIm9QYXJhbVByb3BlcnRpZXMiLCJwYXJhbWV0ZXJQcm9wZXJ0aWVzIiwia2V5cyIsIl9pbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwcmVwYXJlRmlsdGVyc0ZvckV4dGVybmFsTmF2aWdhdGlvbiIsIm9GaWx0ZXJJbmZvIiwiRmlsdGVyVXRpbHMiLCJnZXRGaWx0ZXJJbmZvIiwidGFyZ2V0Q29udHJvbCIsIl9nZXRUYWJsZSIsImZpbHRlcnMiLCJvTXVsdGlwbGVNb2RlQ29udHJvbCIsIl9nZXRNdWx0aU1vZGVDb250cm9sIiwib1RhYnNNb2RlbCIsImdldFRhYnNNb2RlbCIsImFJZ25vcmVkRmllbGRzRm9yVGFiIiwiZ2V0UHJvcGVydHkiLCJjb250ZW50IiwiZ2V0U2VsZWN0ZWRLZXkiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJmb3JFYWNoIiwic1Byb3BlcnR5IiwiZmlsdGVyQ29uZGl0aW9ucyIsImFkZEV4dGVybmFsU3RhdGVGaWx0ZXJzVG9TZWxlY3Rpb25WYXJpYW50IiwicHJvcGVydGllc1dpdGhvdXRDb25mbGljdCIsImdldEVudGl0eVNldCIsImdldEN1cnJlbnRFbnRpdHlTZXQiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkludGVudEJhc2VkTmF2aWdhdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBJbnRlbnRCYXNlZE5hdmlnYXRpb24gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVudEJhc2VkTmF2aWdhdGlvblwiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHR5cGUgTGlzdFJlcG9ydENvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5cbmNvbnN0IEludGVudEJhc2VkTmF2aWdhdGlvbk92ZXJyaWRlID0ge1xuXHRhZGFwdE5hdmlnYXRpb25Db250ZXh0OiBmdW5jdGlvbiAodGhpczogSW50ZW50QmFzZWROYXZpZ2F0aW9uLCBvU2VsZWN0aW9uVmFyaWFudDogYW55LCBvVGFyZ2V0SW5mbzogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0b0ZpbHRlckJhciA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0Ly8gQWRkaW5nIGZpbHRlciBiYXIgdmFsdWVzIHRvIHRoZSBuYXZpZ2F0aW9uIGRvZXMgbm90IG1ha2Ugc2Vuc2UgaWYgbm8gY29udGV4dCBoYXMgYmVlbiBzZWxlY3RlZC5cblx0XHQvLyBIZW5jZSBvbmx5IGNvbnNpZGVyIGZpbHRlciBiYXIgdmFsdWVzIHdoZW4gU2VsZWN0aW9uVmFyaWFudCBpcyBub3QgZW1wdHlcblx0XHRpZiAob0ZpbHRlckJhciAmJiAhb1NlbGVjdGlvblZhcmlhbnQuaXNFbXB0eSgpKSB7XG5cdFx0XHRjb25zdCBvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpIGFzIGFueSxcblx0XHRcdFx0c1Jvb3RQYXRoID0gb1ZpZXdEYXRhLmZ1bGxDb250ZXh0UGF0aDtcblx0XHRcdGxldCBvRmlsdGVyQmFyQ29uZGl0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sICh0aGlzLmJhc2UuZ2V0VmlldygpLmdldENvbnRyb2xsZXIoKSBhcyBhbnkpLmZpbHRlckJhckNvbmRpdGlvbnMpO1xuXHRcdFx0bGV0IGFQYXJhbWV0ZXJzID0gW107XG5cblx0XHRcdGlmIChvVmlld0RhdGEuY29udGV4dFBhdGgpIHtcblx0XHRcdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9WaWV3LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0XHRcdFx0b1BhcmFtZXRlckluZm8gPSBDb21tb25VdGlscy5nZXRQYXJhbWV0ZXJJbmZvKG9NZXRhTW9kZWwsIG9WaWV3RGF0YS5jb250ZXh0UGF0aCksXG5cdFx0XHRcdFx0b1BhcmFtUHJvcGVydGllcyA9IG9QYXJhbWV0ZXJJbmZvLnBhcmFtZXRlclByb3BlcnRpZXM7XG5cdFx0XHRcdGFQYXJhbWV0ZXJzID0gKG9QYXJhbVByb3BlcnRpZXMgJiYgT2JqZWN0LmtleXMob1BhcmFtUHJvcGVydGllcykpIHx8IFtdO1xuXHRcdFx0fVxuXG5cdFx0XHRvRmlsdGVyQmFyQ29uZGl0aW9ucyA9IG9Db250cm9sbGVyLl9pbnRlbnRCYXNlZE5hdmlnYXRpb24ucHJlcGFyZUZpbHRlcnNGb3JFeHRlcm5hbE5hdmlnYXRpb24oXG5cdFx0XHRcdG9GaWx0ZXJCYXJDb25kaXRpb25zLFxuXHRcdFx0XHRzUm9vdFBhdGgsXG5cdFx0XHRcdGFQYXJhbWV0ZXJzXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3Qgb0ZpbHRlckluZm8gPSBGaWx0ZXJVdGlscy5nZXRGaWx0ZXJJbmZvKG9GaWx0ZXJCYXIsIHtcblx0XHRcdFx0dGFyZ2V0Q29udHJvbDogb0NvbnRyb2xsZXIuX2dldFRhYmxlKClcblx0XHRcdH0pLmZpbHRlcnM7XG5cblx0XHRcdGNvbnN0IG9NdWx0aXBsZU1vZGVDb250cm9sID0gb0NvbnRyb2xsZXIuX2dldE11bHRpTW9kZUNvbnRyb2woKTtcblx0XHRcdGlmIChvTXVsdGlwbGVNb2RlQ29udHJvbCkge1xuXHRcdFx0XHQvLyBEbyB3ZSBuZWVkIHRvIGV4Y2x1ZGUgRmllbGRzIChtdWx0aSB0YWJsZXMgbW9kZSB3aXRoIG11bHRpIGVudGl0eSBzZXRzKT9cblx0XHRcdFx0Y29uc3Qgb1RhYnNNb2RlbCA9IG9NdWx0aXBsZU1vZGVDb250cm9sLmdldFRhYnNNb2RlbCgpO1xuXHRcdFx0XHRpZiAob1RhYnNNb2RlbCkge1xuXHRcdFx0XHRcdGNvbnN0IGFJZ25vcmVkRmllbGRzRm9yVGFiID0gb1RhYnNNb2RlbC5nZXRQcm9wZXJ0eShcblx0XHRcdFx0XHRcdGAvJHtvTXVsdGlwbGVNb2RlQ29udHJvbC5jb250ZW50Py5nZXRTZWxlY3RlZEtleSgpfS9ub3RBcHBsaWNhYmxlL2ZpZWxkc2Bcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KGFJZ25vcmVkRmllbGRzRm9yVGFiKSAmJiBhSWdub3JlZEZpZWxkc0ZvclRhYi5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRhSWdub3JlZEZpZWxkc0ZvclRhYi5mb3JFYWNoKGZ1bmN0aW9uIChzUHJvcGVydHk6IGFueSkge1xuXHRcdFx0XHRcdFx0XHRkZWxldGUgb0ZpbHRlckJhckNvbmRpdGlvbnMuZmlsdGVyQ29uZGl0aW9uc1tzUHJvcGVydHldO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFRPRE86IG1vdmUgdGhpcyBhbHNvIGludG8gdGhlIGludGVudCBiYXNlZCBuYXZpZ2F0aW9uIGNvbnRyb2xsZXIgZXh0ZW5zaW9uXG5cdFx0XHRDb21tb25VdGlscy5hZGRFeHRlcm5hbFN0YXRlRmlsdGVyc1RvU2VsZWN0aW9uVmFyaWFudChvU2VsZWN0aW9uVmFyaWFudCwgb0ZpbHRlckJhckNvbmRpdGlvbnMsIG9UYXJnZXRJbmZvLCBvRmlsdGVySW5mbyk7XG5cdFx0XHRkZWxldGUgb1RhcmdldEluZm8ucHJvcGVydGllc1dpdGhvdXRDb25mbGljdDtcblx0XHR9XG5cdH0sXG5cdGdldEVudGl0eVNldDogZnVuY3Rpb24gKHRoaXM6IEludGVudEJhc2VkTmF2aWdhdGlvbikge1xuXHRcdHJldHVybiAodGhpcy5iYXNlIGFzIGFueSkuZ2V0Q3VycmVudEVudGl0eVNldCgpO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBJbnRlbnRCYXNlZE5hdmlnYXRpb25PdmVycmlkZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQUtBLElBQU1BLDZCQUE2QixHQUFHO0lBQ3JDQyxzQkFBc0IsRUFBRSxVQUF1Q0MsaUJBQXZDLEVBQStEQyxXQUEvRCxFQUFpRjtNQUN4RyxJQUFNQyxLQUFLLEdBQUcsS0FBS0MsT0FBTCxFQUFkO01BQUEsSUFDQ0MsV0FBVyxHQUFHRixLQUFLLENBQUNHLGFBQU4sRUFEZjtNQUFBLElBRUNDLFVBQVUsR0FBR0YsV0FBVyxDQUFDRyxvQkFBWixFQUZkLENBRHdHLENBSXhHO01BQ0E7OztNQUNBLElBQUlELFVBQVUsSUFBSSxDQUFDTixpQkFBaUIsQ0FBQ1EsT0FBbEIsRUFBbkIsRUFBZ0Q7UUFDL0MsSUFBTUMsU0FBUyxHQUFHUCxLQUFLLENBQUNRLFdBQU4sRUFBbEI7UUFBQSxJQUNDQyxTQUFTLEdBQUdGLFNBQVMsQ0FBQ0csZUFEdkI7UUFFQSxJQUFJQyxvQkFBb0IsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFtQixLQUFLQyxJQUFMLENBQVViLE9BQVYsR0FBb0JFLGFBQXBCLEVBQUQsQ0FBNkNZLG1CQUEvRCxDQUEzQjtRQUNBLElBQUlDLFdBQVcsR0FBRyxFQUFsQjs7UUFFQSxJQUFJVCxTQUFTLENBQUNVLFdBQWQsRUFBMkI7VUFDMUIsSUFBTUMsVUFBVSxHQUFHbEIsS0FBSyxDQUFDbUIsUUFBTixHQUFpQkMsWUFBakIsRUFBbkI7VUFBQSxJQUNDQyxjQUFjLEdBQUdDLFdBQVcsQ0FBQ0MsZ0JBQVosQ0FBNkJMLFVBQTdCLEVBQXlDWCxTQUFTLENBQUNVLFdBQW5ELENBRGxCO1VBQUEsSUFFQ08sZ0JBQWdCLEdBQUdILGNBQWMsQ0FBQ0ksbUJBRm5DO1VBR0FULFdBQVcsR0FBSVEsZ0JBQWdCLElBQUlaLE1BQU0sQ0FBQ2MsSUFBUCxDQUFZRixnQkFBWixDQUFyQixJQUF1RCxFQUFyRTtRQUNBOztRQUVEYixvQkFBb0IsR0FBR1QsV0FBVyxDQUFDeUIsc0JBQVosQ0FBbUNDLG1DQUFuQyxDQUN0QmpCLG9CQURzQixFQUV0QkYsU0FGc0IsRUFHdEJPLFdBSHNCLENBQXZCO1FBS0EsSUFBTWEsV0FBVyxHQUFHQyxXQUFXLENBQUNDLGFBQVosQ0FBMEIzQixVQUExQixFQUFzQztVQUN6RDRCLGFBQWEsRUFBRTlCLFdBQVcsQ0FBQytCLFNBQVo7UUFEMEMsQ0FBdEMsRUFFakJDLE9BRkg7O1FBSUEsSUFBTUMsb0JBQW9CLEdBQUdqQyxXQUFXLENBQUNrQyxvQkFBWixFQUE3Qjs7UUFDQSxJQUFJRCxvQkFBSixFQUEwQjtVQUN6QjtVQUNBLElBQU1FLFVBQVUsR0FBR0Ysb0JBQW9CLENBQUNHLFlBQXJCLEVBQW5COztVQUNBLElBQUlELFVBQUosRUFBZ0I7WUFBQTs7WUFDZixJQUFNRSxvQkFBb0IsR0FBR0YsVUFBVSxDQUFDRyxXQUFYLHFDQUN4Qkwsb0JBQW9CLENBQUNNLE9BREcsMERBQ3hCLHNCQUE4QkMsY0FBOUIsRUFEd0IsMkJBQTdCOztZQUdBLElBQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjTCxvQkFBZCxLQUF1Q0Esb0JBQW9CLENBQUNNLE1BQXJCLEdBQThCLENBQXpFLEVBQTRFO2NBQzNFTixvQkFBb0IsQ0FBQ08sT0FBckIsQ0FBNkIsVUFBVUMsU0FBVixFQUEwQjtnQkFDdEQsT0FBT3BDLG9CQUFvQixDQUFDcUMsZ0JBQXJCLENBQXNDRCxTQUF0QyxDQUFQO2NBQ0EsQ0FGRDtZQUdBO1VBQ0Q7UUFDRCxDQXBDOEMsQ0FzQy9DOzs7UUFDQXpCLFdBQVcsQ0FBQzJCLHlDQUFaLENBQXNEbkQsaUJBQXRELEVBQXlFYSxvQkFBekUsRUFBK0ZaLFdBQS9GLEVBQTRHOEIsV0FBNUc7UUFDQSxPQUFPOUIsV0FBVyxDQUFDbUQseUJBQW5CO01BQ0E7SUFDRCxDQWpEb0M7SUFrRHJDQyxZQUFZLEVBQUUsWUFBdUM7TUFDcEQsT0FBUSxLQUFLckMsSUFBTixDQUFtQnNDLG1CQUFuQixFQUFQO0lBQ0E7RUFwRG9DLENBQXRDO1NBdURleEQsNkIifQ==
@@ -12,7 +12,7 @@ const IntentBasedNavigationOverride = {
12
12
  // Hence only consider filter bar values when SelectionVariant is not empty
13
13
  if (oFilterBar && !oSelectionVariant.isEmpty()) {
14
14
  const oViewData = oView.getViewData() as any,
15
- sRootPath = oViewData.fullContextPath + oViewData.entitySet;
15
+ sRootPath = oViewData.fullContextPath;
16
16
  let oFilterBarConditions = Object.assign({}, (this.base.getView().getController() as any).filterBarConditions);
17
17
  let aParameters = [];
18
18
 
@@ -6,17 +6,9 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
6
6
  "use strict";
7
7
 
8
8
  function getCountUrl(oController) {
9
- var _oController$getView$;
9
+ var _oController$_getTabl;
10
10
 
11
- // get selected table ID from multiple tabs
12
- var sTableId = (_oController$getView$ = oController.getView().byId("fe::TabMultipleMode")) === null || _oController$getView$ === void 0 ? void 0 : _oController$getView$.getSelectedKey();
13
-
14
- if (!sTableId) {
15
- // if not multiple tabs, get single table ID
16
- sTableId = oController.getView().getContent()[0].data().singleTableId;
17
- }
18
-
19
- var oTable = oController.getView().byId(sTableId);
11
+ var oTable = (_oController$_getTabl = oController._getTable) === null || _oController$_getTabl === void 0 ? void 0 : _oController$_getTabl.call(oController);
20
12
 
21
13
  if (!oTable) {
22
14
  return "";
@@ -48,12 +40,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
48
40
  return baseUrl + aSupportedParams.join("&");
49
41
  }
50
42
 
51
- function getShareUrl() {
52
- var sHash = HashChanger.getInstance().getHash();
53
- var sBasePath = HashChanger.getInstance().hrefForAppSpecificHash ? HashChanger.getInstance().hrefForAppSpecificHash("") : "";
54
- return sHash ? sBasePath + sHash : window.location.hash;
55
- }
56
-
57
43
  function getShareEmailUrl() {
58
44
  var oUShellContainer = sap.ushell && sap.ushell.Container;
59
45
 
@@ -69,7 +55,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
69
55
  }
70
56
 
71
57
  function getSaveAsTileServiceUrl(oController) {
72
- var oFilterBar = oController.getView().byId(oController.getView().getContent()[0].data("filterBarId"));
58
+ var oFilterBar = oController._getFilterBarControl();
73
59
 
74
60
  if (oFilterBar) {
75
61
  var oConditions = oFilterBar.getFilterConditions();
@@ -123,11 +109,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
123
109
  }).catch(function (error) {
124
110
  Log.error(error);
125
111
  });
126
- Promise.resolve(getShareUrl()).then(function (sUrl) {
127
- oShareMetadata.url = sUrl;
128
- }).catch(function (error) {
129
- Log.error(error);
130
- });
131
112
  return Promise.resolve(getShareEmailUrl()).then(function (sFLPUrl) {
132
113
  oShareMetadata.email.url = sFLPUrl;
133
114
  return oShareMetadata;
@@ -136,4 +117,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
136
117
  };
137
118
  return ShareOverride;
138
119
  }, false);
139
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRDb3VudFVybCIsIm9Db250cm9sbGVyIiwic1RhYmxlSWQiLCJnZXRWaWV3IiwiYnlJZCIsImdldFNlbGVjdGVkS2V5IiwiZ2V0Q29udGVudCIsImRhdGEiLCJzaW5nbGVUYWJsZUlkIiwib1RhYmxlIiwib0JpbmRpbmciLCJnZXRSb3dCaW5kaW5nIiwiZ2V0QmluZGluZyIsInNEb3dubG9hZFVybCIsImdldERvd25sb2FkVXJsIiwiYVNwbGl0VXJsIiwic3BsaXQiLCJiYXNlVXJsIiwiYVN1cHBvcnRlZFBhcmFtcyIsImxlbmd0aCIsInVybFBhcmFtcyIsImZvckVhY2giLCJ1cmxQYXJhbSIsImFVcmxQYXJhbVBhcnRzIiwicHVzaCIsImpvaW4iLCJnZXRTaGFyZVVybCIsInNIYXNoIiwiSGFzaENoYW5nZXIiLCJnZXRJbnN0YW5jZSIsImdldEhhc2giLCJzQmFzZVBhdGgiLCJocmVmRm9yQXBwU3BlY2lmaWNIYXNoIiwid2luZG93IiwibG9jYXRpb24iLCJoYXNoIiwiZ2V0U2hhcmVFbWFpbFVybCIsIm9VU2hlbGxDb250YWluZXIiLCJzYXAiLCJ1c2hlbGwiLCJDb250YWluZXIiLCJnZXRGTFBVcmxBc3luYyIsInRoZW4iLCJzRkxQVXJsIiwiY2F0Y2giLCJzRXJyb3IiLCJMb2ciLCJlcnJvciIsIlByb21pc2UiLCJyZXNvbHZlIiwiZG9jdW1lbnQiLCJVUkwiLCJnZXRTYXZlQXNUaWxlU2VydmljZVVybCIsIm9GaWx0ZXJCYXIiLCJvQ29uZGl0aW9ucyIsImdldEZpbHRlckNvbmRpdGlvbnMiLCJiU2F2ZUFzVGlsZVNlcnZpY2VVcmxBbGxvd2VkIiwiU2VtYW50aWNEYXRlT3BlcmF0b3JzIiwiaGFzU2VtYW50aWNEYXRlT3BlcmF0aW9ucyIsImdldEphbVVybCIsInNKYW1VcmwiLCJydW5uaW5nSW5JZnJhbWUiLCJnZXRGTFBVcmwiLCJzVXJsIiwic3Vic3RyIiwiaW5kZXhPZiIsIm9yaWdpbiIsInBhdGhuYW1lIiwiU2hhcmVPdmVycmlkZSIsImFkYXB0U2hhcmVNZXRhZGF0YSIsIm9TaGFyZU1ldGFkYXRhIiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiYmFzZSIsIm9NZXRhZGF0YSIsImdldE1ldGFkYXRhIiwib1VJTWFuaWZlc3QiLCJnZXRNYW5pZmVzdEVudHJ5Iiwic0ljb24iLCJpY29ucyIsImljb24iLCJvQXBwTWFuaWZlc3QiLCJzVGl0bGUiLCJ0aXRsZSIsInRpbGUiLCJxdWVyeVVybCIsImphbSIsInVybCIsImVtYWlsIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTaGFyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIEJhc2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgU2hhcmUgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1NoYXJlXCI7XG5pbXBvcnQgU2VtYW50aWNEYXRlT3BlcmF0b3JzIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1NlbWFudGljRGF0ZU9wZXJhdG9yc1wiO1xuaW1wb3J0IHR5cGUgSWNvblRhYkJhciBmcm9tIFwic2FwL20vSWNvblRhYkJhclwiO1xuaW1wb3J0IEhhc2hDaGFuZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9yb3V0aW5nL0hhc2hDaGFuZ2VyXCI7XG5pbXBvcnQgdHlwZSBUYWJsZSBmcm9tIFwic2FwL3VpL21kYy9UYWJsZVwiO1xuZnVuY3Rpb24gZ2V0Q291bnRVcmwob0NvbnRyb2xsZXI6IEJhc2VDb250cm9sbGVyKSB7XG5cdC8vIGdldCBzZWxlY3RlZCB0YWJsZSBJRCBmcm9tIG11bHRpcGxlIHRhYnNcblx0bGV0IHNUYWJsZUlkID0gKG9Db250cm9sbGVyLmdldFZpZXcoKS5ieUlkKFwiZmU6OlRhYk11bHRpcGxlTW9kZVwiKSBhcyBJY29uVGFiQmFyKT8uZ2V0U2VsZWN0ZWRLZXkoKTtcblx0aWYgKCFzVGFibGVJZCkge1xuXHRcdC8vIGlmIG5vdCBtdWx0aXBsZSB0YWJzLCBnZXQgc2luZ2xlIHRhYmxlIElEXG5cdFx0c1RhYmxlSWQgPSBvQ29udHJvbGxlci5nZXRWaWV3KCkuZ2V0Q29udGVudCgpWzBdLmRhdGEoKS5zaW5nbGVUYWJsZUlkO1xuXHR9XG5cdGNvbnN0IG9UYWJsZSA9IG9Db250cm9sbGVyLmdldFZpZXcoKS5ieUlkKHNUYWJsZUlkKSBhcyBUYWJsZTtcblx0aWYgKCFvVGFibGUpIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRjb25zdCBvQmluZGluZyA9IG9UYWJsZS5nZXRSb3dCaW5kaW5nKCkgfHwgb1RhYmxlLmdldEJpbmRpbmcoXCJpdGVtc1wiKTtcblx0Y29uc3Qgc0Rvd25sb2FkVXJsID0gKG9CaW5kaW5nICYmIChvQmluZGluZyBhcyBhbnkpLmdldERvd25sb2FkVXJsKCkpIHx8IFwiXCI7XG5cdGNvbnN0IGFTcGxpdFVybCA9IHNEb3dubG9hZFVybC5zcGxpdChcIj9cIik7XG5cdGNvbnN0IGJhc2VVcmwgPSBgJHthU3BsaXRVcmxbMF19LyRjb3VudD9gO1xuXHQvLyBnZXREb3dubG9hZFVybCgpIHJldHVybnMgdXJsIHdpdGggJHNlbGVjdCwgJGV4cGFuZCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gLyRjb3VudCBpcyB1c2VkIHRvIGdldCB0aGUgcmVjb3JkIGNvdW50LiBvbmx5ICRhcHBseSwgJHNlYXJjaCwgJGZpbHRlciBpcyBzdXBwb3J0ZWRcblx0Ly8gPyRjb3VudD10cnVlIHJldHVybnMgY291bnQgaW4gYSBmb3JtYXQgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSBGTFAgeWV0LlxuXHQvLyBjdXJyZW50bHkgc3VwcG9ydGVkIGZvcm1hdCBmb3IgdjQgaXMgLi4vY291bnQuLiBvbmx5ICh3aGVyZSB0aWxlIHByZXZpZXcgd2lsbCBzdGlsbCBub3Qgd29yaylcblx0Y29uc3QgYVN1cHBvcnRlZFBhcmFtczogYW55W10gPSBbXTtcblx0aWYgKGFTcGxpdFVybC5sZW5ndGggPiAxKSB7XG5cdFx0Y29uc3QgdXJsUGFyYW1zID0gYVNwbGl0VXJsWzFdO1xuXHRcdHVybFBhcmFtcy5zcGxpdChcIiZcIikuZm9yRWFjaChmdW5jdGlvbiAodXJsUGFyYW06IGFueSkge1xuXHRcdFx0Y29uc3QgYVVybFBhcmFtUGFydHMgPSB1cmxQYXJhbS5zcGxpdChcIj1cIik7XG5cdFx0XHRzd2l0Y2ggKGFVcmxQYXJhbVBhcnRzWzBdKSB7XG5cdFx0XHRcdGNhc2UgXCIkYXBwbHlcIjpcblx0XHRcdFx0Y2FzZSBcIiRzZWFyY2hcIjpcblx0XHRcdFx0Y2FzZSBcIiRmaWx0ZXJcIjpcblx0XHRcdFx0XHRhU3VwcG9ydGVkUGFyYW1zLnB1c2godXJsUGFyYW0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBiYXNlVXJsICsgYVN1cHBvcnRlZFBhcmFtcy5qb2luKFwiJlwiKTtcbn1cbmZ1bmN0aW9uIGdldFNoYXJlVXJsKCkge1xuXHRjb25zdCBzSGFzaCA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpO1xuXHRjb25zdCBzQmFzZVBhdGggPSAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2hcblx0XHQ/IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaChcIlwiKVxuXHRcdDogXCJcIjtcblx0cmV0dXJuIHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaDtcbn1cbmZ1bmN0aW9uIGdldFNoYXJlRW1haWxVcmwoKSB7XG5cdGNvbnN0IG9VU2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIHNhcC51c2hlbGwuQ29udGFpbmVyO1xuXHRpZiAob1VTaGVsbENvbnRhaW5lcikge1xuXHRcdHJldHVybiBvVVNoZWxsQ29udGFpbmVyXG5cdFx0XHQuZ2V0RkxQVXJsQXN5bmModHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNGTFBVcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChzRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDb3VsZCBub3QgcmV0cmlldmUgY0ZMUCBVUkwgZm9yIHRoZSBzaGFyaW5nIGRpYWxvZyAoZGlhbG9nIHdpbGwgbm90IGJlIG9wZW5lZClcIiwgc0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZG9jdW1lbnQuVVJMKTtcblx0fVxufVxuZnVuY3Rpb24gZ2V0U2F2ZUFzVGlsZVNlcnZpY2VVcmwob0NvbnRyb2xsZXI6IGFueSkge1xuXHRjb25zdCBvRmlsdGVyQmFyID0gb0NvbnRyb2xsZXIuZ2V0VmlldygpLmJ5SWQob0NvbnRyb2xsZXIuZ2V0VmlldygpLmdldENvbnRlbnQoKVswXS5kYXRhKFwiZmlsdGVyQmFySWRcIikpO1xuXHRpZiAob0ZpbHRlckJhcikge1xuXHRcdGNvbnN0IG9Db25kaXRpb25zID0gb0ZpbHRlckJhci5nZXRGaWx0ZXJDb25kaXRpb25zKCk7XG5cdFx0Y29uc3QgYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCA9IFNlbWFudGljRGF0ZU9wZXJhdG9ycy5oYXNTZW1hbnRpY0RhdGVPcGVyYXRpb25zKG9Db25kaXRpb25zKTtcblx0XHRpZiAoYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCkge1xuXHRcdFx0cmV0dXJuIGdldENvdW50VXJsKG9Db250cm9sbGVyKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIFwiXCI7XG59XG5mdW5jdGlvbiBnZXRKYW1VcmwoKSB7XG5cdGNvbnN0IHNIYXNoID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKS5nZXRIYXNoKCk7XG5cdGNvbnN0IHNCYXNlUGF0aCA9IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaFxuXHRcdD8gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoKFwiXCIpXG5cdFx0OiBcIlwiO1xuXHRjb25zdCBzSmFtVXJsID0gc0hhc2ggPyBzQmFzZVBhdGggKyBzSGFzaCA6IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXHQvLyBpbiBjYXNlIHdlIGFyZSBpbiBjRkxQIHNjZW5hcmlvLCB0aGUgYXBwbGljYXRpb24gaXMgcnVubmluZ1xuXHQvLyBpbnNpZGUgYW4gaWZyYW1lLCBhbmQgdGhlcmUgZm9yIHdlIG5lZWQgdG8gZ2V0IHRoZSBjRkxQIFVSTFxuXHQvLyBhbmQgbm90ICdkb2N1bWVudC5VUkwnIHRoYXQgcmVwcmVzZW50cyB0aGUgaWZyYW1lIFVSTFxuXHRpZiAoc2FwLnVzaGVsbCAmJiBzYXAudXNoZWxsLkNvbnRhaW5lciAmJiBzYXAudXNoZWxsLkNvbnRhaW5lci5ydW5uaW5nSW5JZnJhbWUgJiYgc2FwLnVzaGVsbC5Db250YWluZXIucnVubmluZ0luSWZyYW1lKCkpIHtcblx0XHRzYXAudXNoZWxsLkNvbnRhaW5lci5nZXRGTFBVcmwodHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNVcmwuc3Vic3RyKDAsIHNVcmwuaW5kZXhPZihcIiNcIikpICsgc0phbVVybDtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKHNFcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkNvdWxkIG5vdCByZXRyaWV2ZSBjRkxQIFVSTCBmb3IgdGhlIHNoYXJpbmcgZGlhbG9nIChkaWFsb2cgd2lsbCBub3QgYmUgb3BlbmVkKVwiLCBzRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBzSmFtVXJsO1xuXHR9XG59XG5cbmNvbnN0IFNoYXJlT3ZlcnJpZGUgPSB7XG5cdGFkYXB0U2hhcmVNZXRhZGF0YTogZnVuY3Rpb24gKHRoaXM6IFNoYXJlLCBvU2hhcmVNZXRhZGF0YTogYW55KSB7XG5cdFx0UHJvbWlzZS5yZXNvbHZlKGdldEphbVVybCgpKVxuXHRcdFx0LnRoZW4oKHNKYW1Vcmw6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuYmFzZS5nZXRWaWV3KCkpO1xuXHRcdFx0XHRjb25zdCBvTWV0YWRhdGEgPSBvQXBwQ29tcG9uZW50LmdldE1ldGFkYXRhKCk7XG5cdFx0XHRcdGNvbnN0IG9VSU1hbmlmZXN0ID0gb01ldGFkYXRhLmdldE1hbmlmZXN0RW50cnkoXCJzYXAudWlcIik7XG5cdFx0XHRcdGNvbnN0IHNJY29uID0gKG9VSU1hbmlmZXN0ICYmIG9VSU1hbmlmZXN0Lmljb25zICYmIG9VSU1hbmlmZXN0Lmljb25zLmljb24pIHx8IFwiXCI7XG5cdFx0XHRcdGNvbnN0IG9BcHBNYW5pZmVzdCA9IG9NZXRhZGF0YS5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLmFwcFwiKTtcblx0XHRcdFx0Y29uc3Qgc1RpdGxlID0gKG9BcHBNYW5pZmVzdCAmJiBvQXBwTWFuaWZlc3QudGl0bGUpIHx8IFwiXCI7XG5cdFx0XHRcdC8vIFRPRE86IGNoZWNrIGlmIHRoZXJlIGlzIGFueSBzZW1hbnRpYyBkYXRlIHVzZWQgYmVmb3JlIGFkZGluZyBzZXJ2aWNlVVJMIGFzIEJMSTpGSU9SSVRFQ0hQMS0xODAyM1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS50aWxlID0ge1xuXHRcdFx0XHRcdGljb246IHNJY29uLFxuXHRcdFx0XHRcdHRpdGxlOiBzVGl0bGUsXG5cdFx0XHRcdFx0cXVlcnlVcmw6IGdldFNhdmVBc1RpbGVTZXJ2aWNlVXJsKHRoaXMuYmFzZSlcblx0XHRcdFx0fTtcblx0XHRcdFx0b1NoYXJlTWV0YWRhdGEudGl0bGUgPSBkb2N1bWVudC50aXRsZTtcblx0XHRcdFx0b1NoYXJlTWV0YWRhdGEuamFtLnVybCA9IHNKYW1Vcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihlcnJvcik7XG5cdFx0XHR9KTtcblxuXHRcdFByb21pc2UucmVzb2x2ZShnZXRTaGFyZVVybCgpKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKHNVcmw6IGFueSkge1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS51cmwgPSBzVXJsO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoZXJyb3IpO1xuXHRcdFx0fSk7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShnZXRTaGFyZUVtYWlsVXJsKCkpLnRoZW4oZnVuY3Rpb24gKHNGTFBVcmw6IGFueSkge1xuXHRcdFx0b1NoYXJlTWV0YWRhdGEuZW1haWwudXJsID0gc0ZMUFVybDtcblx0XHRcdHJldHVybiBvU2hhcmVNZXRhZGF0YTtcblx0XHR9KTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgU2hhcmVPdmVycmlkZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQVFBLFNBQVNBLFdBQVQsQ0FBcUJDLFdBQXJCLEVBQWtEO0lBQUE7O0lBQ2pEO0lBQ0EsSUFBSUMsUUFBUSw0QkFBSUQsV0FBVyxDQUFDRSxPQUFaLEdBQXNCQyxJQUF0QixDQUEyQixxQkFBM0IsQ0FBSiwwREFBRyxzQkFBbUVDLGNBQW5FLEVBQWY7O0lBQ0EsSUFBSSxDQUFDSCxRQUFMLEVBQWU7TUFDZDtNQUNBQSxRQUFRLEdBQUdELFdBQVcsQ0FBQ0UsT0FBWixHQUFzQkcsVUFBdEIsR0FBbUMsQ0FBbkMsRUFBc0NDLElBQXRD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
120
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRDb3VudFVybCIsIm9Db250cm9sbGVyIiwib1RhYmxlIiwiX2dldFRhYmxlIiwib0JpbmRpbmciLCJnZXRSb3dCaW5kaW5nIiwiZ2V0QmluZGluZyIsInNEb3dubG9hZFVybCIsImdldERvd25sb2FkVXJsIiwiYVNwbGl0VXJsIiwic3BsaXQiLCJiYXNlVXJsIiwiYVN1cHBvcnRlZFBhcmFtcyIsImxlbmd0aCIsInVybFBhcmFtcyIsImZvckVhY2giLCJ1cmxQYXJhbSIsImFVcmxQYXJhbVBhcnRzIiwicHVzaCIsImpvaW4iLCJnZXRTaGFyZUVtYWlsVXJsIiwib1VTaGVsbENvbnRhaW5lciIsInNhcCIsInVzaGVsbCIsIkNvbnRhaW5lciIsImdldEZMUFVybEFzeW5jIiwidGhlbiIsInNGTFBVcmwiLCJjYXRjaCIsInNFcnJvciIsIkxvZyIsImVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJkb2N1bWVudCIsIlVSTCIsImdldFNhdmVBc1RpbGVTZXJ2aWNlVXJsIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwib0NvbmRpdGlvbnMiLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCIsIlNlbWFudGljRGF0ZU9wZXJhdG9ycyIsImhhc1NlbWFudGljRGF0ZU9wZXJhdGlvbnMiLCJnZXRKYW1VcmwiLCJzSGFzaCIsIkhhc2hDaGFuZ2VyIiwiZ2V0SW5zdGFuY2UiLCJnZXRIYXNoIiwic0Jhc2VQYXRoIiwiaHJlZkZvckFwcFNwZWNpZmljSGFzaCIsInNKYW1VcmwiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhhc2giLCJydW5uaW5nSW5JZnJhbWUiLCJnZXRGTFBVcmwiLCJzVXJsIiwic3Vic3RyIiwiaW5kZXhPZiIsIm9yaWdpbiIsInBhdGhuYW1lIiwiU2hhcmVPdmVycmlkZSIsImFkYXB0U2hhcmVNZXRhZGF0YSIsIm9TaGFyZU1ldGFkYXRhIiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiYmFzZSIsImdldFZpZXciLCJvTWV0YWRhdGEiLCJnZXRNZXRhZGF0YSIsIm9VSU1hbmlmZXN0IiwiZ2V0TWFuaWZlc3RFbnRyeSIsInNJY29uIiwiaWNvbnMiLCJpY29uIiwib0FwcE1hbmlmZXN0Iiwic1RpdGxlIiwidGl0bGUiLCJ0aWxlIiwicXVlcnlVcmwiLCJqYW0iLCJ1cmwiLCJlbWFpbCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hhcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBTaGFyZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvU2hhcmVcIjtcbmltcG9ydCBTZW1hbnRpY0RhdGVPcGVyYXRvcnMgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU2VtYW50aWNEYXRlT3BlcmF0b3JzXCI7XG5pbXBvcnQgSGFzaENoYW5nZXIgZnJvbSBcInNhcC91aS9jb3JlL3JvdXRpbmcvSGFzaENoYW5nZXJcIjtcbmltcG9ydCBMaXN0UmVwb3J0Q29udHJvbGxlciBmcm9tIFwiLi4vTGlzdFJlcG9ydENvbnRyb2xsZXIuY29udHJvbGxlclwiO1xuZnVuY3Rpb24gZ2V0Q291bnRVcmwob0NvbnRyb2xsZXI6IExpc3RSZXBvcnRDb250cm9sbGVyKSB7XG5cdGNvbnN0IG9UYWJsZSA9IG9Db250cm9sbGVyLl9nZXRUYWJsZT8uKCk7XG5cdGlmICghb1RhYmxlKSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblx0Y29uc3Qgb0JpbmRpbmcgPSBvVGFibGUuZ2V0Um93QmluZGluZygpIHx8IG9UYWJsZS5nZXRCaW5kaW5nKFwiaXRlbXNcIik7XG5cdGNvbnN0IHNEb3dubG9hZFVybCA9IChvQmluZGluZyAmJiAob0JpbmRpbmcgYXMgYW55KS5nZXREb3dubG9hZFVybCgpKSB8fCBcIlwiO1xuXHRjb25zdCBhU3BsaXRVcmwgPSBzRG93bmxvYWRVcmwuc3BsaXQoXCI/XCIpO1xuXHRjb25zdCBiYXNlVXJsID0gYCR7YVNwbGl0VXJsWzBdfS8kY291bnQ/YDtcblx0Ly8gZ2V0RG93bmxvYWRVcmwoKSByZXR1cm5zIHVybCB3aXRoICRzZWxlY3QsICRleHBhbmQgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCB3aGVuIC8kY291bnQgaXMgdXNlZCB0byBnZXQgdGhlIHJlY29yZCBjb3VudC4gb25seSAkYXBwbHksICRzZWFyY2gsICRmaWx0ZXIgaXMgc3VwcG9ydGVkXG5cdC8vID8kY291bnQ9dHJ1ZSByZXR1cm5zIGNvdW50IGluIGEgZm9ybWF0IHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgYnkgRkxQIHlldC5cblx0Ly8gY3VycmVudGx5IHN1cHBvcnRlZCBmb3JtYXQgZm9yIHY0IGlzIC4uL2NvdW50Li4gb25seSAod2hlcmUgdGlsZSBwcmV2aWV3IHdpbGwgc3RpbGwgbm90IHdvcmspXG5cdGNvbnN0IGFTdXBwb3J0ZWRQYXJhbXM6IGFueVtdID0gW107XG5cdGlmIChhU3BsaXRVcmwubGVuZ3RoID4gMSkge1xuXHRcdGNvbnN0IHVybFBhcmFtcyA9IGFTcGxpdFVybFsxXTtcblx0XHR1cmxQYXJhbXMuc3BsaXQoXCImXCIpLmZvckVhY2goZnVuY3Rpb24gKHVybFBhcmFtOiBhbnkpIHtcblx0XHRcdGNvbnN0IGFVcmxQYXJhbVBhcnRzID0gdXJsUGFyYW0uc3BsaXQoXCI9XCIpO1xuXHRcdFx0c3dpdGNoIChhVXJsUGFyYW1QYXJ0c1swXSkge1xuXHRcdFx0XHRjYXNlIFwiJGFwcGx5XCI6XG5cdFx0XHRcdGNhc2UgXCIkc2VhcmNoXCI6XG5cdFx0XHRcdGNhc2UgXCIkZmlsdGVyXCI6XG5cdFx0XHRcdFx0YVN1cHBvcnRlZFBhcmFtcy5wdXNoKHVybFBhcmFtKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gYmFzZVVybCArIGFTdXBwb3J0ZWRQYXJhbXMuam9pbihcIiZcIik7XG59XG5cbmZ1bmN0aW9uIGdldFNoYXJlRW1haWxVcmwoKSB7XG5cdGNvbnN0IG9VU2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIHNhcC51c2hlbGwuQ29udGFpbmVyO1xuXHRpZiAob1VTaGVsbENvbnRhaW5lcikge1xuXHRcdHJldHVybiBvVVNoZWxsQ29udGFpbmVyXG5cdFx0XHQuZ2V0RkxQVXJsQXN5bmModHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNGTFBVcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChzRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDb3VsZCBub3QgcmV0cmlldmUgY0ZMUCBVUkwgZm9yIHRoZSBzaGFyaW5nIGRpYWxvZyAoZGlhbG9nIHdpbGwgbm90IGJlIG9wZW5lZClcIiwgc0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZG9jdW1lbnQuVVJMKTtcblx0fVxufVxuZnVuY3Rpb24gZ2V0U2F2ZUFzVGlsZVNlcnZpY2VVcmwob0NvbnRyb2xsZXI6IGFueSkge1xuXHRjb25zdCBvRmlsdGVyQmFyID0gb0NvbnRyb2xsZXIuX2dldEZpbHRlckJhckNvbnRyb2woKTtcblx0aWYgKG9GaWx0ZXJCYXIpIHtcblx0XHRjb25zdCBvQ29uZGl0aW9ucyA9IG9GaWx0ZXJCYXIuZ2V0RmlsdGVyQ29uZGl0aW9ucygpO1xuXHRcdGNvbnN0IGJTYXZlQXNUaWxlU2VydmljZVVybEFsbG93ZWQgPSBTZW1hbnRpY0RhdGVPcGVyYXRvcnMuaGFzU2VtYW50aWNEYXRlT3BlcmF0aW9ucyhvQ29uZGl0aW9ucyk7XG5cdFx0aWYgKGJTYXZlQXNUaWxlU2VydmljZVVybEFsbG93ZWQpIHtcblx0XHRcdHJldHVybiBnZXRDb3VudFVybChvQ29udHJvbGxlcik7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBcIlwiO1xufVxuZnVuY3Rpb24gZ2V0SmFtVXJsKCkge1xuXHRjb25zdCBzSGFzaCA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpO1xuXHRjb25zdCBzQmFzZVBhdGggPSAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2hcblx0XHQ/IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaChcIlwiKVxuXHRcdDogXCJcIjtcblx0Y29uc3Qgc0phbVVybCA9IHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaDtcblx0Ly8gaW4gY2FzZSB3ZSBhcmUgaW4gY0ZMUCBzY2VuYXJpbywgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmdcblx0Ly8gaW5zaWRlIGFuIGlmcmFtZSwgYW5kIHRoZXJlIGZvciB3ZSBuZWVkIHRvIGdldCB0aGUgY0ZMUCBVUkxcblx0Ly8gYW5kIG5vdCAnZG9jdW1lbnQuVVJMJyB0aGF0IHJlcHJlc2VudHMgdGhlIGlmcmFtZSBVUkxcblx0aWYgKHNhcC51c2hlbGwgJiYgc2FwLnVzaGVsbC5Db250YWluZXIgJiYgc2FwLnVzaGVsbC5Db250YWluZXIucnVubmluZ0luSWZyYW1lICYmIHNhcC51c2hlbGwuQ29udGFpbmVyLnJ1bm5pbmdJbklmcmFtZSgpKSB7XG5cdFx0c2FwLnVzaGVsbC5Db250YWluZXIuZ2V0RkxQVXJsKHRydWUpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoc1VybDogYW55KSB7XG5cdFx0XHRcdHJldHVybiBzVXJsLnN1YnN0cigwLCBzVXJsLmluZGV4T2YoXCIjXCIpKSArIHNKYW1Vcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChzRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDb3VsZCBub3QgcmV0cmlldmUgY0ZMUCBVUkwgZm9yIHRoZSBzaGFyaW5nIGRpYWxvZyAoZGlhbG9nIHdpbGwgbm90IGJlIG9wZW5lZClcIiwgc0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgc0phbVVybDtcblx0fVxufVxuXG5jb25zdCBTaGFyZU92ZXJyaWRlID0ge1xuXHRhZGFwdFNoYXJlTWV0YWRhdGE6IGZ1bmN0aW9uICh0aGlzOiBTaGFyZSwgb1NoYXJlTWV0YWRhdGE6IGFueSkge1xuXHRcdFByb21pc2UucmVzb2x2ZShnZXRKYW1VcmwoKSlcblx0XHRcdC50aGVuKChzSmFtVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLmJhc2UuZ2V0VmlldygpKTtcblx0XHRcdFx0Y29uc3Qgb01ldGFkYXRhID0gb0FwcENvbXBvbmVudC5nZXRNZXRhZGF0YSgpO1xuXHRcdFx0XHRjb25zdCBvVUlNYW5pZmVzdCA9IG9NZXRhZGF0YS5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLnVpXCIpO1xuXHRcdFx0XHRjb25zdCBzSWNvbiA9IChvVUlNYW5pZmVzdCAmJiBvVUlNYW5pZmVzdC5pY29ucyAmJiBvVUlNYW5pZmVzdC5pY29ucy5pY29uKSB8fCBcIlwiO1xuXHRcdFx0XHRjb25zdCBvQXBwTWFuaWZlc3QgPSBvTWV0YWRhdGEuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5hcHBcIik7XG5cdFx0XHRcdGNvbnN0IHNUaXRsZSA9IChvQXBwTWFuaWZlc3QgJiYgb0FwcE1hbmlmZXN0LnRpdGxlKSB8fCBcIlwiO1xuXHRcdFx0XHQvLyBUT0RPOiBjaGVjayBpZiB0aGVyZSBpcyBhbnkgc2VtYW50aWMgZGF0ZSB1c2VkIGJlZm9yZSBhZGRpbmcgc2VydmljZVVSTCBhcyBCTEk6RklPUklURUNIUDEtMTgwMjNcblx0XHRcdFx0b1NoYXJlTWV0YWRhdGEudGlsZSA9IHtcblx0XHRcdFx0XHRpY29uOiBzSWNvbixcblx0XHRcdFx0XHR0aXRsZTogc1RpdGxlLFxuXHRcdFx0XHRcdHF1ZXJ5VXJsOiBnZXRTYXZlQXNUaWxlU2VydmljZVVybCh0aGlzLmJhc2UpXG5cdFx0XHRcdH07XG5cdFx0XHRcdG9TaGFyZU1ldGFkYXRhLnRpdGxlID0gZG9jdW1lbnQudGl0bGU7XG5cdFx0XHRcdG9TaGFyZU1ldGFkYXRhLmphbS51cmwgPSBzSmFtVXJsO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoZXJyb3IpO1xuXHRcdFx0fSk7XG5cblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGdldFNoYXJlRW1haWxVcmwoKSkudGhlbihmdW5jdGlvbiAoc0ZMUFVybDogYW55KSB7XG5cdFx0XHRvU2hhcmVNZXRhZGF0YS5lbWFpbC51cmwgPSBzRkxQVXJsO1xuXHRcdFx0cmV0dXJuIG9TaGFyZU1ldGFkYXRhO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTaGFyZU92ZXJyaWRlO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7O0VBTUEsU0FBU0EsV0FBVCxDQUFxQkMsV0FBckIsRUFBd0Q7SUFBQTs7SUFDdkQsSUFBTUMsTUFBTSw0QkFBR0QsV0FBVyxDQUFDRSxTQUFmLDBEQUFHLDJCQUFBRixXQUFXLENBQTFCOztJQUNBLElBQUksQ0FBQ0MsTUFBTCxFQUFhO01BQ1osT0FBTyxFQUFQO0lBQ0E7O0lBQ0QsSUFBTUUsUUFBUSxHQUFHRixNQUFNLENBQUNHLGFBQVAsTUFBMEJILE1BQU0sQ0FBQ0ksVUFBUCxDQUFrQixPQUFsQixDQUEzQztJQUNBLElBQU1DLFlBQVksR0FBSUgsUUFBUSxJQUFLQSxRQUFELENBQWtCSSxjQUFsQixFQUFiLElBQW9ELEVBQXpFO0lBQ0EsSUFBTUMsU0FBUyxHQUFHRixZQUFZLENBQUNHLEtBQWIsQ0FBbUIsR0FBbkIs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