@sapui5/sap.fe.templates 1.136.12 → 1.136.15

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 (28) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
  4. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +22 -19
  5. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +23 -20
  6. package/src/sap/fe/templates/ListReport/manifest.json +1 -1
  7. package/src/sap/fe/templates/ObjectPage/Component.js +2 -2
  8. package/src/sap/fe/templates/ObjectPage/Component.ts +1 -1
  9. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +4 -1
  10. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +4 -0
  11. package/src/sap/fe/templates/ObjectPage/card/actions/HeaderActions.js +6 -7
  12. package/src/sap/fe/templates/ObjectPage/card/actions/HeaderActions.ts +5 -6
  13. package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
  14. package/src/sap/fe/templates/ObjectPage/overrides/CollaborationManager.js +2 -1
  15. package/src/sap/fe/templates/ObjectPage/overrides/CollaborationManager.ts +1 -0
  16. package/src/sap/fe/templates/ObjectPage/view/fragments/Table.fragment.xml +1 -0
  17. package/src/sap/fe/templates/library.js +1 -1
  18. package/src/sap/fe/templates/messagebundle_ar.properties +1 -1
  19. package/src/sap/fe/templates/messagebundle_cnr.properties +1 -1
  20. package/src/sap/fe/templates/messagebundle_es.properties +2 -2
  21. package/src/sap/fe/templates/messagebundle_it.properties +1 -1
  22. package/src/sap/fe/templates/messagebundle_iw.properties +1 -1
  23. package/src/sap/fe/templates/messagebundle_ja.properties +1 -1
  24. package/src/sap/fe/templates/messagebundle_lt.properties +2 -2
  25. package/src/sap/fe/templates/messagebundle_sh.properties +1 -1
  26. package/src/sap/fe/templates/messagebundle_sl.properties +3 -3
  27. package/src/sap/fe/templates/messagebundle_sr.properties +1 -1
  28. package/src/sap/fe/templates/messagebundle_vi.properties +2 -2
@@ -1776,6 +1776,10 @@ class ObjectPageController extends PageController {
1776
1776
  this.messageButton.fireModelContextChange();
1777
1777
  },
1778
1778
 
1779
+ onTableBindingUpdated(this: ObjectPageController): void {
1780
+ this.messageButton.fireModelContextChange();
1781
+ },
1782
+
1779
1783
  async onCallAction(
1780
1784
  oView: FEView,
1781
1785
  sActionName: string,
@@ -9,7 +9,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/helpers/ConfigurableObjec
9
9
  var isVisible = UIFormatters.isVisible;
10
10
  var getActionEnabledExpression = UIFormatters.getActionEnabledExpression;
11
11
  var isMultiLineText = PropertyHelper.isMultiLineText;
12
- var isActionParameterRequiredExpression = FieldControlHelper.isActionParameterRequiredExpression;
12
+ var isRequiredExpression = FieldControlHelper.isRequiredExpression;
13
13
  var getIsActionCriticalExpression = ActionHelper.getIsActionCriticalExpression;
14
14
  var getStableIdPartFromDataField = StableIdHelper.getStableIdPartFromDataField;
15
15
  var insertCustomElements = ConfigurableObject.insertCustomElements;
@@ -115,7 +115,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/helpers/ConfigurableObjec
115
115
  type: ACInput.Date,
116
116
  id: parameter.name,
117
117
  label: labelTerm?.toString() ?? parameter.name,
118
- isRequired: this.getRequired(parameter, actionTarget) ?? undefined
118
+ isRequired: this.getRequired(parameter) ?? undefined
119
119
  };
120
120
  elements.push(inputElement);
121
121
  } else {
@@ -123,7 +123,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/helpers/ConfigurableObjec
123
123
  type: ACInput.Text,
124
124
  id: parameter.name,
125
125
  label: labelTerm?.toString() ?? parameter.name,
126
- isRequired: this.getRequired(parameter, actionTarget) ?? undefined,
126
+ isRequired: this.getRequired(parameter) ?? undefined,
127
127
  isMultiline: isMultiLineText(parameter) ?? undefined
128
128
  };
129
129
  elements.push(inputElement);
@@ -469,11 +469,10 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/helpers/ConfigurableObjec
469
469
  /**
470
470
  * Check if parameter input is required for action execution.
471
471
  * @param parameter Action parameter.
472
- * @param actionTarget
473
472
  * @returns Boolean
474
473
  */;
475
- _proto.getRequired = function getRequired(parameter, actionTarget) {
476
- const fieldControlExpression = isActionParameterRequiredExpression(parameter, actionTarget, this.convertedTypes);
474
+ _proto.getRequired = function getRequired(parameter) {
475
+ const fieldControlExpression = isRequiredExpression(parameter);
477
476
  return this.updatePathsAndGetCompiledExpression(fieldControlExpression);
478
477
  };
479
478
  return HeaderActions;
@@ -481,4 +480,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/converters/helpers/ConfigurableObjec
481
480
  _exports = HeaderActions;
482
481
  return _exports;
483
482
  }, false);
484
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBQ1N0eWxlIiwiX2V4cG9ydHMiLCJBQ0FjdGlvbiIsIkFDSW5wdXQiLCJBQ1RJT05fT0siLCJIZWFkZXJBY3Rpb25zIiwiX0Jhc2VDYXJkQ29udGVudFByb3ZpIiwiY29udmVydGVkVHlwZXMiLCJjb25maWciLCJfdGhpcyIsImNhbGwiLCJhY3Rpb25zIiwiY29udGV4dEluZm8iLCJnZXRDYXJkQ29uZmlndXJhdGlvbkJ5S2V5IiwiY29udGV4dFBhdGgiLCJlbnRpdHlUeXBlIiwiZ2V0RW50aXR5VHlwZSIsIkxvZyIsImVycm9yIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsImdldEFubm90YXRlZEhlYWRlckFjdGlvbnMiLCJsZW5ndGgiLCJjb25maWd1cmVkQWN0aW9ucyIsImdldENvbmZpZ3VyZWRBY3Rpb25zIiwicmVkdWNlIiwiZ2V0QWN0aW9uSW5BZGFwdGl2ZUNhcmRGb3JtYXQiLCJiaW5kIiwiZXJyIiwibWVzc2FnZSIsIkVycm9yIiwiU3RyaW5nIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRDYXJkQWN0aW9ucyIsImdldEFkYXB0aXZlQ2FyZEFjdGlvblR5cGUiLCJlZG1BY3Rpb24iLCJpc0JvdW5kIiwiaXNGdW5jdGlvbiIsInBhcmFtZXRlcnMiLCJuZWVkVXNlcklucHV0UGFyYW1ldGVycyIsIlNob3dDYXJkIiwiRXhlY3V0ZSIsImdldEFjdGlvbkNhcmRCb2R5V2l0aFBhcmFtZXRlckZpZWxkcyIsImFjdGlvblRhcmdldCIsImVsZW1lbnRzIiwicGFyYW1ldGVyIiwiaW5kZXgiLCJpbnB1dEVsZW1lbnQiLCJsYWJlbFRlcm0iLCJhbm5vdGF0aW9ucyIsIkNvbW1vbiIsIkxhYmVsIiwidHlwZSIsIkRhdGUiLCJpZCIsIm5hbWUiLCJsYWJlbCIsInRvU3RyaW5nIiwiaXNSZXF1aXJlZCIsImdldFJlcXVpcmVkIiwidW5kZWZpbmVkIiwicHVzaCIsIlRleHQiLCJpc011bHRpbGluZSIsImlzTXVsdGlMaW5lVGV4dCIsImdldEFjdGlvbldpdGhQYXJhbWV0ZXJzIiwiYWN0aW9uRGV0YWlscyIsImJvZHkiLCJ2ZXJiIiwidGl0bGUiLCJzdHlsZSIsImRhdGEiLCJhY3Rpb25XaXRoUGFyYW1ldGVycyIsIlBvc2l0aXZlIiwiY2FyZCIsImdldEFjdGlvbiIsImRhdGFGaWVsZEZvckFjdGlvbiIsIkFjdGlvblRhcmdldCIsImdldEFjdGlvbkRldGFpbHMiLCJhY3Rpb25UeXBlIiwicmV0QWN0aW9uIiwiZ2V0QWN0aW9uRGF0YSIsImJpbmRpbmdDb250ZXh0UGF0aCIsImJpbmRpbmdDb250ZXh0UGF0aFJlbGF0aXZlVG9TZXJ2aWNlIiwic3RhcnRzV2l0aCIsInN1YnN0cmluZyIsInNlcnZpY2VVUkkiLCJjb250ZXh0VVJMIiwiaXNDb25maXJtYXRpb25SZXF1aXJlZCIsImdldElzQ3JpdGljYWxGb3JBZGFwdGl2ZUNhcmRBY3Rpb24iLCJhY3Rpb25Ub1RyaWdnZXIiLCJBY3Rpb24iLCJyZXBsYWNlIiwiZ2V0QWN0aW9uU3R5bGUiLCJhZGFwdGl2ZUNhcmRBY3Rpb25zIiwiYWN0aW9uRWxlbWVudCIsImFjdGlvbiIsInRpdGxlT3ZlcnJpZGUiLCJpc0FjdGlvblZpc2libGUiLCJpc1Zpc2libGUiLCJnZXRWaXNpYmxlRm9yQWRhcHRpdmVDYXJkQWN0aW9uIiwiaXNFbmFibGVkIiwiZ2V0RW5hYmxlZEZvckFkYXB0aXZlQ2FyZEFjdGlvbiIsIndoZW5WYWx1ZSIsInRlc3QiLCJpc1N0YXRpY0FjdGlvbiIsImlzQ29weUFjdGlvbiIsInZpc3VhbFVwZGF0ZXMiLCIkd2hlbiIsImlkZW50aWZpY2F0aW9uQW5ub3RhdGlvbiIsIlVJIiwiSWRlbnRpZmljYXRpb24iLCJmaWx0ZXIiLCJkYXRhRmllbGQiLCIkVHlwZSIsIkRldGVybWluaW5nIiwiYW5ub3RhdGVkQWN0aW9ucyIsImFjdGlvbkNvbmZpZ3MiLCJhbm5vdGF0ZWRBY3Rpb25FbGVtZW50cyIsIm1hcCIsImtleSIsImdldFN0YWJsZUlkUGFydEZyb21EYXRhRmllbGQiLCJPYmplY3QiLCJrZXlzIiwiY3VzdG9tQ29uZmlnQWN0aW9uTmFtZXMiLCJjdXN0b21BY3Rpb25Db25maWdFbGVtZW50cyIsImN1c3RvbUFjdGlvbkVsZW1lbnRzIiwiY3VzdG9tQ29uZmlnQWN0aW9uS2V5IiwicmVsZXZhbnRBY3Rpb25FbGVtZW50IiwiZmluZCIsInBvc2l0aW9uIiwicGxhY2VtZW50IiwiUGxhY2VtZW50IiwiQWZ0ZXIiLCJhY3Rpb25PdmVyd3JpdGVDb25maWciLCJPdmVycmlkZVR5cGUiLCJvdmVyd3JpdGUiLCJpbnNlcnRDdXN0b21FbGVtZW50cyIsInZpc2liaWxpdHlFeHAiLCJ1cGRhdGVQYXRoc0FuZEdldENvbXBpbGVkRXhwcmVzc2lvbiIsIkRlZmF1bHQiLCJjcml0aWNhbGl0eSIsIkNyaXRpY2FsaXR5IiwiRGVzdHJ1Y3RpdmUiLCJpc0FjdGlvbkNyaXRpY2FsIiwiZ2V0SXNBY3Rpb25Dcml0aWNhbEV4cHJlc3Npb24iLCJlbmFibGVkRXhwcmVzc2lvbiIsImdldEFjdGlvbkVuYWJsZWRFeHByZXNzaW9uIiwiaXNDb2xsZWN0aW9uIiwiSXNDb3B5QWN0aW9uIiwidmFsdWVPZiIsImZpZWxkQ29udHJvbEV4cHJlc3Npb24iLCJpc0FjdGlvblBhcmFtZXRlclJlcXVpcmVkRXhwcmVzc2lvbiIsIkJhc2VDYXJkQ29udGVudFByb3ZpZGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJIZWFkZXJBY3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uLCBBY3Rpb25QYXJhbWV0ZXIsIENvbnZlcnRlZE1ldGFkYXRhLCBFbnRpdHlUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcywgdHlwZSBEYXRhRmllbGRGb3JBY3Rpb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7XG5cdE92ZXJyaWRlVHlwZSxcblx0UGxhY2VtZW50LFxuXHRpbnNlcnRDdXN0b21FbGVtZW50cyxcblx0dHlwZSBDb25maWd1cmFibGVPYmplY3RLZXksXG5cdHR5cGUgQ3VzdG9tRWxlbWVudCxcblx0dHlwZSBQb3NpdGlvbmFibGVcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB0eXBlIHsgQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQWRhcHRpdmVDYXJkRXhwcmVzc2lvbkNvbXBpbGVyXCI7XG5pbXBvcnQgeyBnZXRTdGFibGVJZFBhcnRGcm9tRGF0YUZpZWxkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7IGdldElzQWN0aW9uQ3JpdGljYWxFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvQWN0aW9uSGVscGVyXCI7XG5pbXBvcnQgeyBpc0FjdGlvblBhcmFtZXRlclJlcXVpcmVkRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0ZpZWxkQ29udHJvbEhlbHBlclwiO1xuaW1wb3J0IHsgaXNNdWx0aUxpbmVUZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCB7IGdldEFjdGlvbkVuYWJsZWRFeHByZXNzaW9uLCBpc1Zpc2libGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9VSUZvcm1hdHRlcnNcIjtcbmltcG9ydCBCYXNlQ2FyZENvbnRlbnRQcm92aWRlciwgeyB0eXBlIENhcmRDb25maWcgfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NhcmQvQmFzZUNhcmRDb250ZW50UHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIHsgQWN0aW9uRGF0YSwgQ2FyZEVsZW1lbnQsIElBQ0FjdGlvbiwgSUlucHV0RGF0ZSwgSUlucHV0VGV4dCB9IGZyb20gXCJ0eXBlcy9hZGFwdGl2ZUNhcmRfdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgQWN0aW9uQ29uZmlnID0gUG9zaXRpb25hYmxlICYge1xuXHR0aXRsZT86IHN0cmluZztcblx0aXNWaXNpYmxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUFjdGlvbkNvbmZpZ3MgPSBSZWNvcmQ8Q29uZmlndXJhYmxlT2JqZWN0S2V5LCBBY3Rpb25Db25maWc+O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25Db25maWd1cmFibGUgPSB7XG5cdGFjdGlvbnM/OiBDdXN0b21BY3Rpb25Db25maWdzO1xufTtcblxuZXhwb3J0IHR5cGUgSGVhZGVyQWN0aW9uc0NvbmZpZyA9IEFjdGlvbkNvbmZpZ3VyYWJsZSAmIENhcmRDb25maWc7XG5cbnR5cGUgQWN0aW9uQ29uZmlnRWxlbWVudCA9IFBvc2l0aW9uYWJsZSAmXG5cdEFjdGlvbkNvbmZpZyAmIHtcblx0XHRrZXk6IENvbmZpZ3VyYWJsZU9iamVjdEtleTtcblx0XHRhY3Rpb246IERhdGFGaWVsZEZvckFjdGlvbjtcblx0fTtcblxudHlwZSBJbnRlcm5hbEN1c3RvbUFjdGlvbkVsZW1lbnRzID0gUmVjb3JkPENvbmZpZ3VyYWJsZU9iamVjdEtleSwgQ3VzdG9tRWxlbWVudDxBY3Rpb25Db25maWdFbGVtZW50Pj47XG5cbmV4cG9ydCBlbnVtIEFDU3R5bGUge1xuXHREZWZhdWx0ID0gXCJkZWZhdWx0XCIsXG5cdFBvc2l0aXZlID0gXCJwb3NpdGl2ZVwiLFxuXHREZXN0cnVjdGl2ZSA9IFwiZGVzdHJ1Y3RpdmVcIlxufVxuXG5leHBvcnQgZW51bSBBQ0FjdGlvbiB7XG5cdEV4ZWN1dGUgPSBcIkFjdGlvbi5FeGVjdXRlXCIsXG5cdFNob3dDYXJkID0gXCJBY3Rpb24uU2hvd0NhcmRcIlxufVxuXG5leHBvcnQgZW51bSBBQ0lucHV0IHtcblx0VGV4dCA9IFwiSW5wdXQuVGV4dFwiLFxuXHRDaG9pY2VTZXQgPSBcIklucHV0LkNob2ljZVNldFwiLFxuXHREYXRlID0gXCJJbnB1dC5EYXRlXCJcbn1cblxuY29uc3QgQUNUSU9OX09LID0gXCJPS1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZWFkZXJBY3Rpb25zIGV4dGVuZHMgQmFzZUNhcmRDb250ZW50UHJvdmlkZXI8SGVhZGVyQWN0aW9uc0NvbmZpZz4ge1xuXHRwcml2YXRlIGFjdGlvbnM6IElBQ0FjdGlvbltdID0gW107XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgY2FyZCBhY3Rpb25zLlxuXHQgKiBAcmV0dXJucyBDYXJkIGFjdGlvbnMuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0Q2FyZEFjdGlvbnMoKTogSUFDQWN0aW9uW10ge1xuXHRcdHJldHVybiB0aGlzLmFjdGlvbnM7XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcihjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGEsIGNvbmZpZzogSGVhZGVyQWN0aW9uc0NvbmZpZykge1xuXHRcdHN1cGVyKGNvbnZlcnRlZFR5cGVzLCBjb25maWcpO1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBjb250ZXh0SW5mbyA9IHRoaXMuZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleShcImNvbnRleHRJbmZvXCIpO1xuXHRcdFx0Y29uc3QgeyBjb250ZXh0UGF0aCB9ID0gY29udGV4dEluZm87XG5cdFx0XHRjb25zdCBlbnRpdHlUeXBlID0gdGhpcy5nZXRFbnRpdHlUeXBlKCk7XG5cdFx0XHRpZiAoIWVudGl0eVR5cGUpIHtcblx0XHRcdFx0TG9nLmVycm9yKGBGRSA6IFY0IDogQWRhcHRpdmUgQ2FyZCBoZWFkZXIgYWN0aW9ucyA6IG5vIEVudGl0eVR5cGUgZm91bmQgYXQgY29udGV4dCBwYXRoOiAke2NvbnRleHRQYXRofWApO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgYWN0aW9ucyA9IHRoaXMuZ2V0QW5ub3RhdGVkSGVhZGVyQWN0aW9ucyhlbnRpdHlUeXBlKTtcblx0XHRcdGlmIChhY3Rpb25zLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0Y29uc3QgY29uZmlndXJlZEFjdGlvbnMgPSB0aGlzLmdldENvbmZpZ3VyZWRBY3Rpb25zKGFjdGlvbnMpO1xuXHRcdFx0XHR0aGlzLmFjdGlvbnMgPSBjb25maWd1cmVkQWN0aW9ucy5yZWR1Y2UodGhpcy5nZXRBY3Rpb25JbkFkYXB0aXZlQ2FyZEZvcm1hdC5iaW5kKHRoaXMpLCBbXSBhcyBJQUNBY3Rpb25bXSk7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG5cdFx0XHRjb25zdCBtZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIpO1xuXHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgY3JlYXRpbmcgdGhlIGNhcmQgZGVmaW50aW9uXCIsIG1lc3NhZ2UpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYWN0aW9uIHR5cGUgYmFzZWQgb24gdGhlIG5lZWQgZm9yIHVzZXIgaW5wdXRzIGZvciBhY3Rpb24gcGFyYW1ldGVycy5cblx0ICogQHBhcmFtIGVkbUFjdGlvbiBDb252ZXJ0ZWQgbWV0YWRhdGEgYWN0aW9uLlxuXHQgKiBAcmV0dXJucyBBY3Rpb24gdHlwZSB0byB1c2Vcblx0ICovXG5cdHByaXZhdGUgZ2V0QWRhcHRpdmVDYXJkQWN0aW9uVHlwZShlZG1BY3Rpb246IEFjdGlvbik6IEFDQWN0aW9uIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB7IGlzQm91bmQsIGlzRnVuY3Rpb24sIHBhcmFtZXRlcnMgfSA9IGVkbUFjdGlvbjtcblx0XHRpZiAoaXNGdW5jdGlvbikge1xuXHRcdFx0Ly8gZnVuY3Rpb25zIGFyZSBpZ25vcmVkXG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IG5lZWRVc2VySW5wdXRQYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5sZW5ndGggPiAoaXNCb3VuZCA/IDEgOiAwKTtcblxuXHRcdHJldHVybiBuZWVkVXNlcklucHV0UGFyYW1ldGVycyA/IEFDQWN0aW9uLlNob3dDYXJkIDogQUNBY3Rpb24uRXhlY3V0ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgQWN0aW9uIHBhcmFtZXRlciBlbGVtZW50cyB0byBhZGQgdG8gdGhlIGFjdGlvbiBjYXJkIGJvZHkuXG5cdCAqIEBwYXJhbSBhY3Rpb25UYXJnZXQgQ29udmVydGVkIG1ldGFkYXRhIGFjdGlvbi5cblx0ICogQHJldHVybnMgSW5wdXQgZWxlbWVudHMgZm9yIGFjdGlvbiBwYXJhbWV0ZXJzXG5cdCAqL1xuXHRwcml2YXRlIGdldEFjdGlvbkNhcmRCb2R5V2l0aFBhcmFtZXRlckZpZWxkcyhhY3Rpb25UYXJnZXQ6IEFjdGlvbik6IENhcmRFbGVtZW50W10ge1xuXHRcdGNvbnN0IHsgaXNCb3VuZCB9ID0gYWN0aW9uVGFyZ2V0O1xuXHRcdHJldHVybiBhY3Rpb25UYXJnZXQucGFyYW1ldGVycy5yZWR1Y2UoKGVsZW1lbnRzLCBwYXJhbWV0ZXIsIGluZGV4KSA9PiB7XG5cdFx0XHRpZiAoaXNCb3VuZCAmJiBpbmRleCA9PT0gMCkge1xuXHRcdFx0XHRyZXR1cm4gZWxlbWVudHM7XG5cdFx0XHR9XG5cdFx0XHRsZXQgaW5wdXRFbGVtZW50OiBJSW5wdXRUZXh0IHwgSUlucHV0RGF0ZTtcblx0XHRcdGNvbnN0IGxhYmVsVGVybSA9IHBhcmFtZXRlci5hbm5vdGF0aW9ucy5Db21tb24/LkxhYmVsO1xuXHRcdFx0aWYgKHBhcmFtZXRlci50eXBlID09PSBcIkVkbS5EYXRlXCIgfHwgcGFyYW1ldGVyLnR5cGUgPT09IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCIgfHwgcGFyYW1ldGVyLnR5cGUgPT09IFwiRWRtLkRhdGVUaW1lXCIpIHtcblx0XHRcdFx0aW5wdXRFbGVtZW50ID0ge1xuXHRcdFx0XHRcdHR5cGU6IEFDSW5wdXQuRGF0ZSxcblx0XHRcdFx0XHRpZDogcGFyYW1ldGVyLm5hbWUsXG5cdFx0XHRcdFx0bGFiZWw6IGxhYmVsVGVybT8udG9TdHJpbmcoKSA/PyBwYXJhbWV0ZXIubmFtZSxcblx0XHRcdFx0XHRpc1JlcXVpcmVkOiB0aGlzLmdldFJlcXVpcmVkKHBhcmFtZXRlciwgYWN0aW9uVGFyZ2V0KSA/PyB1bmRlZmluZWRcblx0XHRcdFx0fTtcblx0XHRcdFx0ZWxlbWVudHMucHVzaChpbnB1dEVsZW1lbnQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW5wdXRFbGVtZW50ID0ge1xuXHRcdFx0XHRcdHR5cGU6IEFDSW5wdXQuVGV4dCxcblx0XHRcdFx0XHRpZDogcGFyYW1ldGVyLm5hbWUsXG5cdFx0XHRcdFx0bGFiZWw6IGxhYmVsVGVybT8udG9TdHJpbmcoKSA/PyBwYXJhbWV0ZXIubmFtZSxcblx0XHRcdFx0XHRpc1JlcXVpcmVkOiB0aGlzLmdldFJlcXVpcmVkKHBhcmFtZXRlciwgYWN0aW9uVGFyZ2V0KSA/PyB1bmRlZmluZWQsXG5cdFx0XHRcdFx0aXNNdWx0aWxpbmU6IGlzTXVsdGlMaW5lVGV4dChwYXJhbWV0ZXIpID8/IHVuZGVmaW5lZFxuXHRcdFx0XHR9O1xuXHRcdFx0XHRlbGVtZW50cy5wdXNoKGlucHV0RWxlbWVudCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZWxlbWVudHM7XG5cdFx0fSwgW10gYXMgQ2FyZEVsZW1lbnRbXSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGFjdGlvbiBvYmplY3Qgd2l0aCBwYXJhbWV0ZXIgZWxlbWVudHMuXG5cdCAqIEBwYXJhbSBhY3Rpb25UYXJnZXQgQ29udmVydGVkIG1ldGFkYXRhIGFjdGlvbi5cblx0ICogQHBhcmFtIGFjdGlvbkRldGFpbHMgQWN0aW9uIHByb3BlcnRpZXMuXG5cdCAqIEByZXR1cm5zIEFjdGlvbiBvYmplY3Qgd2l0aCBwYXJhbWV0ZXJzLlxuXHQgKi9cblx0cHJpdmF0ZSBnZXRBY3Rpb25XaXRoUGFyYW1ldGVycyhhY3Rpb25UYXJnZXQ6IEFjdGlvbiwgYWN0aW9uRGV0YWlsczogUGFydGlhbDxJQUNBY3Rpb24+KTogSUFDQWN0aW9uIHtcblx0XHRjb25zdCBib2R5ID0gdGhpcy5nZXRBY3Rpb25DYXJkQm9keVdpdGhQYXJhbWV0ZXJGaWVsZHMoYWN0aW9uVGFyZ2V0KTtcblx0XHRjb25zdCB7IHZlcmIsIHRpdGxlLCBzdHlsZSwgZGF0YSB9ID0gYWN0aW9uRGV0YWlscztcblx0XHRjb25zdCBhY3Rpb25XaXRoUGFyYW1ldGVyczogSUFDQWN0aW9uID0ge1xuXHRcdFx0dHlwZTogQUNBY3Rpb24uRXhlY3V0ZSxcblx0XHRcdHZlcmIsXG5cdFx0XHRkYXRhLFxuXHRcdFx0dGl0bGU6IEFDVElPTl9PSyxcblx0XHRcdHN0eWxlOiBBQ1N0eWxlLlBvc2l0aXZlXG5cdFx0fTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHR0eXBlOiBBQ0FjdGlvbi5TaG93Q2FyZCxcblx0XHRcdHRpdGxlLFxuXHRcdFx0c3R5bGUsXG5cdFx0XHRjYXJkOiB7XG5cdFx0XHRcdHR5cGU6IFwiQWRhcHRpdmVDYXJkXCIsXG5cdFx0XHRcdGJvZHksXG5cdFx0XHRcdGFjdGlvbnM6IFthY3Rpb25XaXRoUGFyYW1ldGVyc11cblx0XHRcdH1cblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBhY3Rpb24gZm9yIGFkYXB0aXZlIGNhcmQuXG5cdCAqIEBwYXJhbSBkYXRhRmllbGRGb3JBY3Rpb24gRGF0YUZpZWxkRm9yQWN0aW9uIGFubm90YXRpb25cblx0ICogQHJldHVybnMgQWN0aW9uIHRvIGFkZC5cblx0ICovXG5cdHByaXZhdGUgZ2V0QWN0aW9uKGRhdGFGaWVsZEZvckFjdGlvbjogRGF0YUZpZWxkRm9yQWN0aW9uKTogSUFDQWN0aW9uIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB7IEFjdGlvblRhcmdldDogYWN0aW9uVGFyZ2V0IH0gPSBkYXRhRmllbGRGb3JBY3Rpb247XG5cblx0XHRjb25zdCBhY3Rpb25EZXRhaWxzID0gdGhpcy5nZXRBY3Rpb25EZXRhaWxzKGRhdGFGaWVsZEZvckFjdGlvbik7XG5cdFx0aWYgKCFhY3Rpb25UYXJnZXQgfHwgIWFjdGlvbkRldGFpbHMpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYWN0aW9uVHlwZSA9IHRoaXMuZ2V0QWRhcHRpdmVDYXJkQWN0aW9uVHlwZShhY3Rpb25UYXJnZXQpO1xuXG5cdFx0bGV0IHJldEFjdGlvbjogSUFDQWN0aW9uIHwgdW5kZWZpbmVkO1xuXHRcdGlmIChhY3Rpb25UeXBlID09PSBBQ0FjdGlvbi5FeGVjdXRlKSB7XG5cdFx0XHQvLyBBY3Rpb25zIHdpdGhvdXQgcGFyYW1ldGVyc1xuXHRcdFx0cmV0QWN0aW9uID0geyB0eXBlOiBhY3Rpb25UeXBlLCAuLi5hY3Rpb25EZXRhaWxzIH07XG5cdFx0fSBlbHNlIGlmIChhY3Rpb25UeXBlID09PSBBQ0FjdGlvbi5TaG93Q2FyZCkge1xuXHRcdFx0Ly8gQWN0aW9uIHdpdGggcGFyYW1ldGVyc1xuXHRcdFx0cmV0QWN0aW9uID0gdGhpcy5nZXRBY3Rpb25XaXRoUGFyYW1ldGVycyhhY3Rpb25UYXJnZXQsIGFjdGlvbkRldGFpbHMpO1xuXHRcdH1cblx0XHRyZXR1cm4gcmV0QWN0aW9uO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBkYXRhIHRoYXQgbmVlZHMgdG8gYmUgcGFydCBvZiBhY3Rpb24uXG5cdCAqIEBwYXJhbSBhY3Rpb25UYXJnZXQgQ29udmVydGVkIG1ldGFkYXRhIGFjdGlvbi5cblx0ICogQHJldHVybnMgQWN0aW9uIGRhdGEgdGhhdCBuZWVkcyB0byBiZSBwYXNzZWQgd2l0aCB0aGUgYWN0aW9uLlxuXHQgKi9cblx0cHJpdmF0ZSBnZXRBY3Rpb25EYXRhKGFjdGlvblRhcmdldDogQWN0aW9uKTogQWN0aW9uRGF0YSB7XG5cdFx0Y29uc3QgeyBpc0JvdW5kIH0gPSBhY3Rpb25UYXJnZXQ7XG5cdFx0Y29uc3QgY29udGV4dEluZm8gPSB0aGlzLmdldENhcmRDb25maWd1cmF0aW9uQnlLZXkoXCJjb250ZXh0SW5mb1wiKTtcblx0XHRjb25zdCB7IGJpbmRpbmdDb250ZXh0UGF0aCB9ID0gY29udGV4dEluZm87XG5cdFx0Y29uc3QgYmluZGluZ0NvbnRleHRQYXRoUmVsYXRpdmVUb1NlcnZpY2UgPSBiaW5kaW5nQ29udGV4dFBhdGguc3RhcnRzV2l0aChcIi9cIilcblx0XHRcdD8gYmluZGluZ0NvbnRleHRQYXRoLnN1YnN0cmluZygxKVxuXHRcdFx0OiBiaW5kaW5nQ29udGV4dFBhdGg7XG5cdFx0Y29uc3Qgc2VydmljZVVSSSA9IHRoaXMuZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleShcInNlcnZpY2VVUklcIik7XG5cdFx0Y29uc3QgY29udGV4dFVSTCA9IGAke3NlcnZpY2VVUkl9JHtiaW5kaW5nQ29udGV4dFBhdGhSZWxhdGl2ZVRvU2VydmljZX1gO1xuXHRcdHJldHVybiB7XG5cdFx0XHRjb250ZXh0VVJMLFxuXHRcdFx0c2VydmljZVVSSTogaXNCb3VuZCA/IHVuZGVmaW5lZCA6IHNlcnZpY2VVUkksXG5cdFx0XHRpc0NvbmZpcm1hdGlvblJlcXVpcmVkOiB0aGlzLmdldElzQ3JpdGljYWxGb3JBZGFwdGl2ZUNhcmRBY3Rpb24oYWN0aW9uVGFyZ2V0KSA/PyB1bmRlZmluZWRcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBhY3Rpb24gZm9yIGFkYXB0aXZlIGNhcmQuXG5cdCAqIEBwYXJhbSBkYXRhRmllbGRGb3JBY3Rpb24gRGF0YUZpZWxkRm9yQWN0aW9uIGFubm90YXRpb25cblx0ICogQHJldHVybnMgQWN0aW9uIHRvIGFkZC5cblx0ICovXG5cdHByaXZhdGUgZ2V0QWN0aW9uRGV0YWlscyhkYXRhRmllbGRGb3JBY3Rpb246IERhdGFGaWVsZEZvckFjdGlvbik6IFBhcnRpYWw8SUFDQWN0aW9uPiB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgeyBBY3Rpb25UYXJnZXQ6IGFjdGlvblRhcmdldCB9ID0gZGF0YUZpZWxkRm9yQWN0aW9uO1xuXHRcdGlmICghYWN0aW9uVGFyZ2V0KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gVmVyYiBjcmVhdGlvbiBmb3IgYWN0aW9uczpcblx0XHQvL1xuXHRcdC8vIDEuIEJvdW5kIGFjdGlvbjpcblx0XHQvLyAgICBWZXJiIG5lZWRzIHRvIGJlIHJlbGF0aXZlIHRvIGNvbnRleHRVUkwuIGZvcm1hdDogJzxtZXRhZGF0YSBuYW1lc3BhY2U+LjxhY3Rpb24gbmFtZT4nXG5cdFx0Ly8gICAgRXhhbXBsZTpcblx0XHQvLyAgICAgICAgTWV0YWRhdGEgbmFtZXNwYWNlOiAnY29tLmNfc29tX3NkJ1xuXHRcdC8vICAgICAgICBBY3Rpb24gbmFtZTogJ2JvdW5kQWN0aW9uJ1xuXHRcdC8vICAgICAgICBWZXJiOiAnY29tLmNfc29tX3NkLmJvdW5kQWN0aW9uJ1xuXHRcdC8vICAgICAgICBDb250ZXh0VVJMOiAvU09NKDEpXG5cdFx0Ly8gICAgICAgIFVSTCB0byB0cmlnZ2VyIFBPU1QgY2FsbCh0aGlzIHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgQk9ULCA8c2VydmljZVVSSSArIGNvbnRleHRVUkwgKyB2ZXJiPik6ICdodHRwczovLzxzZXJ2aWNlVVJJPi9TT00oJzEnKS9jb20uY19zb21fc2QuYm91bmRBY3Rpb24nXG5cdFx0Ly9cblx0XHQvLyAyLiBVbmJvdW5kIGFjdGlvbjpcblx0XHQvLyAgICBWZXJiIG5lZWRzIHRvIGJlIHJlbGF0aXZlIHRvIHNlcnZpY2VVUkkuIGZvcm1hdDogJzxhY3Rpb24gbmFtZT4nXG5cdFx0Ly8gICAgRXhhbXBsZTpcblx0XHQvLyAgICAgICAgQWN0aW9uIG5hbWU6ICd1bmJvdW5kQWN0aW9uJ1xuXHRcdC8vICAgICAgICBWZXJiOiAndW5ib3VuZEFjdGlvbidcblx0XHQvLyAgICAgICAgQ29udGV4dFVSTDogdW5kZWZpbmVkXG5cdFx0Ly8gICAgICAgIFVSTCB0byB0cmlnZ2VyIFBPU1QgY2FsbCh0aGlzIHdpbGwgYmUgY3JlYXRlZCBieSB0aGUgQk9ULCA8c2VydmljZVVSSSArIHZlcmI+KTogJ2h0dHBzOi8vPHNlcnZpY2VVUkk+L3VuYm91bmRBY3Rpb24nXG5cdFx0Y29uc3QgYWN0aW9uVG9UcmlnZ2VyID0gYWN0aW9uVGFyZ2V0LmlzQm91bmQgPyBkYXRhRmllbGRGb3JBY3Rpb24uQWN0aW9uLnRvU3RyaW5nKCkgOiBhY3Rpb25UYXJnZXQubmFtZSxcblx0XHRcdC8vIFdlIHJlbW92ZSB0aGUgb3ZlcmxvYWQgcGFydCBmcm9tIHRoZSBhY3Rpb24uIGxpa2UgJ2NvbS5jX3NvbV9zZC5ib3VuZEFjdGlvbihjb20uY19zb21fc2QucmV0dXJuVHlwZSknLCB3ZSBuZWVkIG9ubHkgJ2NvbS5jX3NvbV9zZC5ib3VuZEFjdGlvbicgYXMgdmVyYi5cblx0XHRcdHZlcmIgPSBhY3Rpb25Ub1RyaWdnZXIucmVwbGFjZSgvXFwoKC4qKVxcKSQvLCBcIlwiKSxcblx0XHRcdHRpdGxlID0gZGF0YUZpZWxkRm9yQWN0aW9uLkxhYmVsPy50b1N0cmluZygpID8/IGFjdGlvblRhcmdldC5uYW1lLFxuXHRcdFx0c3R5bGUgPSB0aGlzLmdldEFjdGlvblN0eWxlKGRhdGFGaWVsZEZvckFjdGlvbiksXG5cdFx0XHRkYXRhID0gdGhpcy5nZXRBY3Rpb25EYXRhKGFjdGlvblRhcmdldCk7XG5cblx0XHRyZXR1cm4geyB2ZXJiLCB0aXRsZSwgc3R5bGUsIGRhdGEgfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYWN0aW9uIHNldHMgZm9yIGFkYXB0aXZlIGNhcmQuXG5cdCAqXG5cdCAqIEFzIG9mIG5vdywgb25seSBjb25zaWRlcmluZyAnQW5ub3RhdGVkIEFjdGlvbnMnLlxuXHQgKiBOb3Qgc3VwcG9ydGVkOlxuXHQgKiAxLiBTdGFuZGFyZCBhY3Rpb25zXG5cdCAqIDIuIE1hbmlmZXN0IGFjdGlvbnNcblx0ICpcblx0ICogUHJlc2VudGx5LCBvbmx5IGZpcnN0IHR3byBhY3Rpb25zIHNoYWxsIGJlIHBhc3NlZCB0byB0aGUgYWRhcHRpdmUgY2FyZC5cblx0ICpcblx0ICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCBieSBBcnJheS5yZWR1Y2UuXG5cdCAqIEBwYXJhbSBhZGFwdGl2ZUNhcmRBY3Rpb25zIEFjdGlvbnMgYXJyYXkgdG8gYmUgcmV0dXJuZWQuXG5cdCAqIEBwYXJhbSBhY3Rpb25FbGVtZW50IERhdGFGaWVsZEZvckFjdGlvbiB0aGF0IG5lZWRzIHRvIGJlIGNvbnZlcnRlZC5cblx0ICogQHJldHVybnMgQW4gQXJyYXkgb2YgQWN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgY29uY2F0ZW5hdGVkIHRvIGNhcmQgYm9keS5cblx0ICovXG5cdHByaXZhdGUgZ2V0QWN0aW9uSW5BZGFwdGl2ZUNhcmRGb3JtYXQoYWRhcHRpdmVDYXJkQWN0aW9uczogSUFDQWN0aW9uW10sIGFjdGlvbkVsZW1lbnQ6IEFjdGlvbkNvbmZpZ0VsZW1lbnQpOiBJQUNBY3Rpb25bXSB7XG5cdFx0aWYgKGFkYXB0aXZlQ2FyZEFjdGlvbnMubGVuZ3RoID4gMSkge1xuXHRcdFx0Ly8gTm90ZTogV2Ugb25seSBleHBlY3QgZmlyc3QgMiBhY3Rpb25zIGluIE1TIHRlYW1zIGFkYXB0aXZlIGNhcmRzLiBUaGlzIG1pZ2h0IGNoYW5nZSBpbiB0aGUgZnV0dXJlLlxuXHRcdFx0cmV0dXJuIGFkYXB0aXZlQ2FyZEFjdGlvbnM7XG5cdFx0fVxuXG5cdFx0Y29uc3QgeyBhY3Rpb246IGRhdGFGaWVsZEZvckFjdGlvbiwgdGl0bGU6IHRpdGxlT3ZlcnJpZGUgfSA9IGFjdGlvbkVsZW1lbnQ7XG5cdFx0Y29uc3QgeyBBY3Rpb25UYXJnZXQ6IGFjdGlvblRhcmdldCB9ID0gZGF0YUZpZWxkRm9yQWN0aW9uO1xuXG5cdFx0Ly8gTm8gQWN0aW9uIGluIGNhc2U6XG5cdFx0Ly8gMS4gYWN0aW9uVGFyZ2V0IG5vdCBhdmFpbGFibGUuXG5cdFx0Ly8gMS4gc3RhdGljYWxseSBub3QgdmlzaWJsZS5cblx0XHQvLyAyLiBzdGF0aWNhbGx5IGRpc2FibGVkLlxuXHRcdC8vIDMuIGFjdGlvbiBpcyBzdGF0aWMgYWN0aW9uLlxuXHRcdGlmICghYWN0aW9uVGFyZ2V0KSB7XG5cdFx0XHRyZXR1cm4gYWRhcHRpdmVDYXJkQWN0aW9ucztcblx0XHR9XG5cblx0XHRjb25zdCBpc0FjdGlvblZpc2libGUgPSBhY3Rpb25FbGVtZW50LmlzVmlzaWJsZSA/PyB0aGlzLmdldFZpc2libGVGb3JBZGFwdGl2ZUNhcmRBY3Rpb24oZGF0YUZpZWxkRm9yQWN0aW9uKSA/PyB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgaXNFbmFibGVkID0gdGhpcy5nZXRFbmFibGVkRm9yQWRhcHRpdmVDYXJkQWN0aW9uKGFjdGlvblRhcmdldCkgPz8gdW5kZWZpbmVkO1xuXG5cdFx0Ly8gTk9URTogJyR3aGVuJyBpcyB1c2VkIHRvIGNvbnRyb2wgdmlzaWJpbGl0eSBvZiBhY3Rpb25zLiBMb29rcyBsaWtlIHRoZSB2YWx1ZSBuZWVkcyB0byBhbHdheXMgYmUgYW4gZXhwcmVzc2lvbiBvZiBmb3JtYXQgJyR7PGV4cD59Jy5cblx0XHQvLyBTbywgZGlyZWN0IHN0cmluZ3MgbGlrZSAndHJ1ZScgYW5kICdmYWxzZScgd2hpY2ggYXJlIGV4cGVjdGVkIHRvIHdvcmsgZm9yIG5vcm1hbCBjYXJkIHByb3BlcnRpZXMgZG9uJ3Qgd29yayBmb3IgJHdoZW4uXG5cdFx0Ly8gV2Ugd291bGQgbmVlZCB0byBoYW5kbGUgc3VjaCBjYXNlcyBpbmRlcGVuZGVudGx5LlxuXHRcdGxldCB3aGVuVmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblx0XHRpZiAodHlwZW9mIGlzQWN0aW9uVmlzaWJsZSA9PT0gXCJib29sZWFuXCIgJiYgaXNBY3Rpb25WaXNpYmxlID09PSBmYWxzZSkge1xuXHRcdFx0cmV0dXJuIGFkYXB0aXZlQ2FyZEFjdGlvbnM7XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgaXNBY3Rpb25WaXNpYmxlID09PSBcInN0cmluZ1wiICYmIGlzQWN0aW9uVmlzaWJsZSAmJiAvXlxcJFxcey4qXFx9L2kudGVzdChpc0FjdGlvblZpc2libGUpKSB7XG5cdFx0XHQvLyB2aXNpYmxlIGlzIGFuIGV4cHJlc3Npb24gb2YgZm9ybWF0ICckezxleHA+fScuXG5cdFx0XHR3aGVuVmFsdWUgPSBpc0FjdGlvblZpc2libGU7XG5cdFx0fSBlbHNlIGlmIChpc0FjdGlvblZpc2libGUgPT09IFwidHJ1ZVwiKSB7XG5cdFx0XHQvLyBzdGF0aWNhbGx5IHZpc2libGVcblx0XHRcdHdoZW5WYWx1ZSA9IHVuZGVmaW5lZDtcblx0XHR9IGVsc2UgaWYgKGlzQWN0aW9uVmlzaWJsZSA9PT0gXCJmYWxzZVwiKSB7XG5cdFx0XHQvLyBzdGF0aWNhbGx5IG5vdCB2aXNpYmxlXG5cdFx0XHRyZXR1cm4gYWRhcHRpdmVDYXJkQWN0aW9ucztcblx0XHR9XG5cblx0XHRpZiAoaXNFbmFibGVkID09PSBcImZhbHNlXCIgfHwgdGhpcy5pc1N0YXRpY0FjdGlvbihhY3Rpb25UYXJnZXQpIHx8IHRoaXMuaXNDb3B5QWN0aW9uKGRhdGFGaWVsZEZvckFjdGlvbikpIHtcblx0XHRcdHJldHVybiBhZGFwdGl2ZUNhcmRBY3Rpb25zO1xuXHRcdH1cblxuXHRcdGNvbnN0IGFjdGlvbiA9IHRoaXMuZ2V0QWN0aW9uKGRhdGFGaWVsZEZvckFjdGlvbik7XG5cdFx0aWYgKGFjdGlvbikge1xuXHRcdFx0Y29uc3QgdmlzdWFsVXBkYXRlcyA9IHtcblx0XHRcdFx0aXNFbmFibGVkLFxuXHRcdFx0XHQkd2hlbjogd2hlblZhbHVlLFxuXHRcdFx0XHR0aXRsZTogdGl0bGVPdmVycmlkZSA/PyBhY3Rpb24udGl0bGVcblx0XHRcdH07XG5cdFx0XHRhZGFwdGl2ZUNhcmRBY3Rpb25zLnB1c2goeyAuLi5hY3Rpb24sIC4uLnZpc3VhbFVwZGF0ZXMgfSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGFkYXB0aXZlQ2FyZEFjdGlvbnM7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBEYXRhRmllbGRGb3JBY3Rpb25zIGZvciBhZGFwdGl2ZSBjYXJkLlxuXHQgKiBAcGFyYW0gZW50aXR5VHlwZSBFbnRpdHlUeXBlLlxuXHQgKiBAcmV0dXJucyBEYXRhRmllbGRGb3JBY3Rpb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gYmUgc2hvd24gaW4gdGhlIGFkYXB0aXZlIGNhcmQuXG5cdCAqL1xuXHRwcml2YXRlIGdldEFubm90YXRlZEhlYWRlckFjdGlvbnMoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IERhdGFGaWVsZEZvckFjdGlvbltdIHtcblx0XHRjb25zdCBpZGVudGlmaWNhdGlvbkFubm90YXRpb24gPSBlbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5JZGVudGlmaWNhdGlvbjtcblx0XHRyZXR1cm4gaWRlbnRpZmljYXRpb25Bbm5vdGF0aW9uXG5cdFx0XHQ/IChpZGVudGlmaWNhdGlvbkFubm90YXRpb24uZmlsdGVyKFxuXHRcdFx0XHRcdChkYXRhRmllbGQpID0+IGRhdGFGaWVsZC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQWN0aW9uICYmICFkYXRhRmllbGQuRGV0ZXJtaW5pbmdcblx0XHRcdCAgKSBhcyBEYXRhRmllbGRGb3JBY3Rpb25bXSlcblx0XHRcdDogW107XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGNvbmZpZ3VyZWQgYWN0aW9ucy5cblx0ICogQHBhcmFtIGFubm90YXRlZEFjdGlvbnMgQW5ub3RhdGVkIGFjdGlvbnMgZnJvbSB0aGUgY29udmVydGVkIG1ldGFkYXRhLlxuXHQgKiBAcmV0dXJucyBBY3Rpb25Db25maWdFbGVtZW50cyB0byBjcmVhdGUgYWN0aW9ucyBmb3IgY2FyZCBkZWZpbml0aW9uLlxuXHQgKi9cblx0cHJpdmF0ZSBnZXRDb25maWd1cmVkQWN0aW9ucyhhbm5vdGF0ZWRBY3Rpb25zOiBEYXRhRmllbGRGb3JBY3Rpb25bXSk6IEFjdGlvbkNvbmZpZ0VsZW1lbnRbXSB7XG5cdFx0Ly8gQWN0aW9ucyBmcm9tIGFubm90YXRpb25zLlxuXHRcdGNvbnN0IGFjdGlvbkNvbmZpZ3MgPSB0aGlzLmdldENhcmRDb25maWd1cmF0aW9uQnlLZXkoXCJhY3Rpb25zXCIpO1xuXHRcdGNvbnN0IGFubm90YXRlZEFjdGlvbkVsZW1lbnRzID0gYW5ub3RhdGVkQWN0aW9ucy5tYXAoXG5cdFx0XHQoYWN0aW9uKSA9PiAoeyBrZXk6IGFjdGlvbiAmJiBnZXRTdGFibGVJZFBhcnRGcm9tRGF0YUZpZWxkKGFjdGlvbiksIGFjdGlvbiB9KSBhcyBBY3Rpb25Db25maWdFbGVtZW50XG5cdFx0KTtcblx0XHRpZiAoIWFjdGlvbkNvbmZpZ3MgfHwgT2JqZWN0LmtleXMoYWN0aW9uQ29uZmlncykubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gYW5ub3RhdGVkQWN0aW9uRWxlbWVudHM7XG5cdFx0fVxuXG5cdFx0Ly8gQ3VzdG9tIEFjdGlvbiBjb25maWdzLlxuXHRcdGNvbnN0IGN1c3RvbUNvbmZpZ0FjdGlvbk5hbWVzID0gT2JqZWN0LmtleXMoYWN0aW9uQ29uZmlncyk7XG5cdFx0Y29uc3QgY3VzdG9tQWN0aW9uQ29uZmlnRWxlbWVudHMgPSBjdXN0b21Db25maWdBY3Rpb25OYW1lcy5yZWR1Y2UoKGN1c3RvbUFjdGlvbkVsZW1lbnRzLCBjdXN0b21Db25maWdBY3Rpb25LZXkpID0+IHtcblx0XHRcdGNvbnN0IHJlbGV2YW50QWN0aW9uRWxlbWVudCA9IGFubm90YXRlZEFjdGlvbkVsZW1lbnRzLmZpbmQoKGFjdGlvbkVsZW1lbnQpID0+IGFjdGlvbkVsZW1lbnQua2V5ID09PSBjdXN0b21Db25maWdBY3Rpb25LZXkpO1xuXG5cdFx0XHRpZiAocmVsZXZhbnRBY3Rpb25FbGVtZW50KSB7XG5cdFx0XHRcdGN1c3RvbUFjdGlvbkVsZW1lbnRzW2N1c3RvbUNvbmZpZ0FjdGlvbktleV0gPSB7XG5cdFx0XHRcdFx0a2V5OiBjdXN0b21Db25maWdBY3Rpb25LZXksXG5cdFx0XHRcdFx0YWN0aW9uOiByZWxldmFudEFjdGlvbkVsZW1lbnQuYWN0aW9uLFxuXHRcdFx0XHRcdHBvc2l0aW9uOiB7XG5cdFx0XHRcdFx0XHRwbGFjZW1lbnQ6IFBsYWNlbWVudC5BZnRlclxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0Li4uYWN0aW9uQ29uZmlnc1tjdXN0b21Db25maWdBY3Rpb25LZXldXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBjdXN0b21BY3Rpb25FbGVtZW50cztcblx0XHR9LCB7fSBhcyBJbnRlcm5hbEN1c3RvbUFjdGlvbkVsZW1lbnRzKTtcblxuXHRcdC8vIEZpbmFsIGFjdGlvbiBlbGVtZW50c1xuXHRcdGNvbnN0IGFjdGlvbk92ZXJ3cml0ZUNvbmZpZyA9IHtcblx0XHRcdHRpdGxlOiBPdmVycmlkZVR5cGUub3ZlcndyaXRlLFxuXHRcdFx0cG9zaXRpb246IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGUsXG5cdFx0XHRpc1Zpc2libGU6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGVcblx0XHR9O1xuXHRcdHJldHVybiBpbnNlcnRDdXN0b21FbGVtZW50cyhhbm5vdGF0ZWRBY3Rpb25FbGVtZW50cywgY3VzdG9tQWN0aW9uQ29uZmlnRWxlbWVudHMsIGFjdGlvbk92ZXJ3cml0ZUNvbmZpZyk7XG5cdH1cblxuXHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cdC8qIEZ1bmN0aW9ucyBmb3IgY3JlYXRpbmcgdGVtcGxhdGUgYmluZGluZ3MgYW5kIGdldHRpbmcgYWN0aW9uIHByb3BlcnRpZXMgKi9cblx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cdC8qKlxuXHQgKiBHZXQgYWN0aW9uIHZpc2liaWxpdHkuXG5cdCAqIEBwYXJhbSBkYXRhRmllbGRGb3JBY3Rpb24gRGF0YUZpZWxkRm9yQWN0aW9uIGFubm90YXRpb25cblx0ICogQHJldHVybnMgQm9vbGVhblxuXHQgKi9cblx0cHJpdmF0ZSBnZXRWaXNpYmxlRm9yQWRhcHRpdmVDYXJkQWN0aW9uKGRhdGFGaWVsZEZvckFjdGlvbjogRGF0YUZpZWxkRm9yQWN0aW9uKTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHtcblx0XHRjb25zdCB2aXNpYmlsaXR5RXhwID0gaXNWaXNpYmxlKGRhdGFGaWVsZEZvckFjdGlvbik7XG5cdFx0cmV0dXJuIHRoaXMudXBkYXRlUGF0aHNBbmRHZXRDb21waWxlZEV4cHJlc3Npb24odmlzaWJpbGl0eUV4cCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGFjdGlvbiBzdHlsZSBmb3IgdGhlIGFjdGlvbiBidXR0b24uXG5cdCAqIEBwYXJhbSBkYXRhRmllbGRGb3JBY3Rpb24gRGF0YUZpZWxkRm9yQWN0aW9uIGFubm90YXRpb25cblx0ICogQHJldHVybnMgU3R5bGUgb2YgdGhlIGFjdGlvbiBidXR0b25cblx0ICovXG5cdHByaXZhdGUgZ2V0QWN0aW9uU3R5bGUoZGF0YUZpZWxkRm9yQWN0aW9uOiBEYXRhRmllbGRGb3JBY3Rpb24pOiBBQ1N0eWxlIHtcblx0XHQvLyBUT0RPOiBjb21waWxlIHRvIGFkYXB0aXZlIGNhcmQgYmluZGluZyBzdHJpbmcgZm9yIGR5bmFtaWMgYW5ub3RhdGlvbi5cblx0XHRsZXQgc3R5bGUgPSBBQ1N0eWxlLkRlZmF1bHQ7XG5cdFx0Y29uc3QgY3JpdGljYWxpdHkgPSBkYXRhRmllbGRGb3JBY3Rpb24uQ3JpdGljYWxpdHk7XG5cdFx0aWYgKGNyaXRpY2FsaXR5ICYmIHR5cGVvZiBjcml0aWNhbGl0eSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0c3dpdGNoIChjcml0aWNhbGl0eSkge1xuXHRcdFx0XHRjYXNlIFwiVUkuQ3JpdGljYWxpdHlUeXBlL1Bvc2l0aXZlXCI6XG5cdFx0XHRcdFx0c3R5bGUgPSBBQ1N0eWxlLlBvc2l0aXZlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFwiVUkuQ3JpdGljYWxpdHlUeXBlL05lZ2F0aXZlXCI6XG5cdFx0XHRcdFx0c3R5bGUgPSBBQ1N0eWxlLkRlc3RydWN0aXZlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdHN0eWxlID0gQUNTdHlsZS5EZWZhdWx0O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gc3R5bGU7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2sgaWYgYWN0aW9uIGlzIGNyaXRpY2FsLlxuXHQgKiBAcGFyYW0gYWN0aW9uVGFyZ2V0IEFjdGlvbiBkZWZpbml0aW9uLlxuXHQgKiBAcmV0dXJucyBCb29sZWFuXG5cdCAqL1xuXHRwcml2YXRlIGdldElzQ3JpdGljYWxGb3JBZGFwdGl2ZUNhcmRBY3Rpb24oYWN0aW9uVGFyZ2V0OiBBY3Rpb24pOiBDb21waWxlZEFkYXB0aXZlQ2FyZEV4cHJlc3Npb24ge1xuXHRcdGNvbnN0IGlzQWN0aW9uQ3JpdGljYWwgPSBnZXRJc0FjdGlvbkNyaXRpY2FsRXhwcmVzc2lvbihhY3Rpb25UYXJnZXQsIHRoaXMuY29udmVydGVkVHlwZXMpO1xuXHRcdHJldHVybiB0aGlzLnVwZGF0ZVBhdGhzQW5kR2V0Q29tcGlsZWRFeHByZXNzaW9uKGlzQWN0aW9uQ3JpdGljYWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBhY3Rpb24gZW5hYmxlbWVudC5cblx0ICogQHBhcmFtIGFjdGlvblRhcmdldCBBY3Rpb24gZGVmaW5pdGlvbi5cblx0ICogQHJldHVybnMgQm9vbGVhblxuXHQgKi9cblx0cHJpdmF0ZSBnZXRFbmFibGVkRm9yQWRhcHRpdmVDYXJkQWN0aW9uKGFjdGlvblRhcmdldDogQWN0aW9uKTogQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIHtcblx0XHRjb25zdCBlbmFibGVkRXhwcmVzc2lvbiA9IGdldEFjdGlvbkVuYWJsZWRFeHByZXNzaW9uKGFjdGlvblRhcmdldCwgdGhpcy5jb252ZXJ0ZWRUeXBlcyk7XG5cdFx0cmV0dXJuIHRoaXMudXBkYXRlUGF0aHNBbmRHZXRDb21waWxlZEV4cHJlc3Npb24oZW5hYmxlZEV4cHJlc3Npb24pO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrIGZvciBzdGF0aWMgYWN0aW9uLlxuXHQgKiBAcGFyYW0gYWN0aW9uVGFyZ2V0IEFjdGlvbiBkZWZpbml0aW9uLlxuXHQgKiBAcmV0dXJucyBCb29sZWFuLlxuXHQgKi9cblx0cHJpdmF0ZSBpc1N0YXRpY0FjdGlvbihhY3Rpb25UYXJnZXQ6IEFjdGlvbik6IGJvb2xlYW4ge1xuXHRcdGNvbnN0IHsgaXNCb3VuZCwgcGFyYW1ldGVycyB9ID0gYWN0aW9uVGFyZ2V0O1xuXHRcdHJldHVybiBpc0JvdW5kICYmIHBhcmFtZXRlcnNbMF0gJiYgcGFyYW1ldGVyc1swXS5pc0NvbGxlY3Rpb247XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2sgZm9yIGNvcHkgYWN0aW9uLlxuXHQgKiBAcGFyYW0gZGF0YUZpZWxkIEFjdGlvbiBkZWZpbml0aW9uLlxuXHQgKiBAcmV0dXJucyBCb29sZWFuLlxuXHQgKi9cblx0cHJpdmF0ZSBpc0NvcHlBY3Rpb24oZGF0YUZpZWxkOiBEYXRhRmllbGRGb3JBY3Rpb24pOiBib29sZWFuIHtcblx0XHRyZXR1cm4gZGF0YUZpZWxkLmFubm90YXRpb25zPy5VST8uSXNDb3B5QWN0aW9uPy52YWx1ZU9mKCkgPT09IHRydWU7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2sgaWYgcGFyYW1ldGVyIGlucHV0IGlzIHJlcXVpcmVkIGZvciBhY3Rpb24gZXhlY3V0aW9uLlxuXHQgKiBAcGFyYW0gcGFyYW1ldGVyIEFjdGlvbiBwYXJhbWV0ZXIuXG5cdCAqIEBwYXJhbSBhY3Rpb25UYXJnZXRcblx0ICogQHJldHVybnMgQm9vbGVhblxuXHQgKi9cblx0cHJpdmF0ZSBnZXRSZXF1aXJlZChwYXJhbWV0ZXI6IEFjdGlvblBhcmFtZXRlciwgYWN0aW9uVGFyZ2V0OiBBY3Rpb24pOiBDb21waWxlZEFkYXB0aXZlQ2FyZEV4cHJlc3Npb24ge1xuXHRcdGNvbnN0IGZpZWxkQ29udHJvbEV4cHJlc3Npb24gPSBpc0FjdGlvblBhcmFtZXRlclJlcXVpcmVkRXhwcmVzc2lvbihwYXJhbWV0ZXIsIGFjdGlvblRhcmdldCwgdGhpcy5jb252ZXJ0ZWRUeXBlcyk7XG5cdFx0cmV0dXJuIHRoaXMudXBkYXRlUGF0aHNBbmRHZXRDb21waWxlZEV4cHJlc3Npb24oZmllbGRDb250cm9sRXhwcmVzc2lvbik7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUF5Q1lBLE9BQU8sMEJBQVBBLE9BQU87SUFBUEEsT0FBTztJQUFQQSxPQUFPO0lBQVBBLE9BQU87SUFBQSxPQUFQQSxPQUFPO0VBQUE7RUFBQUMsUUFBQSxDQUFBRCxPQUFBLEdBQUFBLE9BQUE7RUFBQSxJQU1QRSxRQUFRLDBCQUFSQSxRQUFRO0lBQVJBLFFBQVE7SUFBUkEsUUFBUTtJQUFBLE9BQVJBLFFBQVE7RUFBQTtFQUFBRCxRQUFBLENBQUFDLFFBQUEsR0FBQUEsUUFBQTtFQUFBLElBS1JDLE9BQU8sMEJBQVBBLE9BQU87SUFBUEEsT0FBTztJQUFQQSxPQUFPO0lBQVBBLE9BQU87SUFBQSxPQUFQQSxPQUFPO0VBQUE7RUFBQUYsUUFBQSxDQUFBRSxPQUFBLEdBQUFBLE9BQUE7RUFNbkIsTUFBTUMsU0FBUyxHQUFHLElBQUk7RUFBQyxJQUVGQyxhQUFhLDBCQUFBQyxxQkFBQTtJQVdqQyxTQUFBRCxjQUFZRSxjQUFpQyxFQUFFQyxNQUEyQixFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUMzRUEsS0FBQSxHQUFBSCxxQkFBQSxDQUFBSSxJQUFBLE9BQU1ILGNBQWMsRUFBRUMsTUFBTSxDQUFDO01BQUNDLEtBQUEsQ0FYdkJFLE9BQU8sR0FBZ0IsRUFBRTtNQVloQyxJQUFJO1FBQ0gsTUFBTUMsV0FBVyxHQUFHSCxLQUFBLENBQUtJLHlCQUF5QixDQUFDLGFBQWEsQ0FBQztRQUNqRSxNQUFNO1VBQUVDO1FBQVksQ0FBQyxHQUFHRixXQUFXO1FBQ25DLE1BQU1HLFVBQVUsR0FBR04sS0FBQSxDQUFLTyxhQUFhLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUNELFVBQVUsRUFBRTtVQUNoQkUsR0FBRyxDQUFDQyxLQUFLLENBQUMsaUZBQWlGSixXQUFXLEVBQUUsQ0FBQztVQUN6RyxPQUFBTCxLQUFBLElBQUFVLHNCQUFBLENBQUFWLEtBQUE7UUFDRDtRQUVBLE1BQU1FLE9BQU8sR0FBR0YsS0FBQSxDQUFLVyx5QkFBeUIsQ0FBQ0wsVUFBVSxDQUFDO1FBQzFELElBQUlKLE9BQU8sQ0FBQ1UsTUFBTSxHQUFHLENBQUMsRUFBRTtVQUN2QixNQUFNQyxpQkFBaUIsR0FBR2IsS0FBQSxDQUFLYyxvQkFBb0IsQ0FBQ1osT0FBTyxDQUFDO1VBQzVERixLQUFBLENBQUtFLE9BQU8sR0FBR1csaUJBQWlCLENBQUNFLE1BQU0sQ0FBQ2YsS0FBQSxDQUFLZ0IsNkJBQTZCLENBQUNDLElBQUksQ0FBQWpCLEtBQUssQ0FBQyxFQUFFLEVBQWlCLENBQUM7UUFDMUc7TUFDRCxDQUFDLENBQUMsT0FBT2tCLEdBQVksRUFBRTtRQUN0QixNQUFNQyxPQUFPLEdBQUdELEdBQUcsWUFBWUUsS0FBSyxHQUFHRixHQUFHLENBQUNDLE9BQU8sR0FBR0UsTUFBTSxDQUFDSCxHQUFHLENBQUM7UUFDaEVWLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLHlDQUF5QyxFQUFFVSxPQUFPLENBQUM7TUFDOUQ7TUFDQSxPQUFBbkIsS0FBQSxJQUFBVSxzQkFBQSxDQUFBVixLQUFBO0lBQ0Q7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtJQUpDUixRQUFBLEdBQUFJLGFBQUE7SUFBQTBCLGNBQUEsQ0FBQTFCLGFBQUEsRUFBQUMscUJBQUE7SUFBQSxJQUFBMEIsTUFBQSxHQUFBM0IsYUFBQSxDQUFBNEIsU0FBQTtJQS9CQTtBQUNEO0FBQ0E7QUFDQTtJQUhDRCxNQUFBLENBSU9FLGNBQWMsR0FBckIsU0FBT0EsY0FBY0EsQ0FBQSxFQUFnQjtNQUNwQyxPQUFPLElBQUksQ0FBQ3ZCLE9BQU87SUFDcEIsQ0FBQztJQUFBcUIsTUFBQSxDQThCT0cseUJBQXlCLEdBQWpDLFNBQVFBLHlCQUF5QkEsQ0FBQ0MsU0FBaUIsRUFBd0I7TUFDMUUsTUFBTTtRQUFFQyxPQUFPO1FBQUVDLFVBQVU7UUFBRUM7TUFBVyxDQUFDLEdBQUdILFNBQVM7TUFDckQsSUFBSUUsVUFBVSxFQUFFO1FBQ2Y7UUFDQTtNQUNEO01BQ0EsTUFBTUUsdUJBQXVCLEdBQUdELFVBQVUsQ0FBQ2xCLE1BQU0sSUFBSWdCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO01BRXJFLE9BQU9HLHVCQUF1QixHQUFHdEMsUUFBUSxDQUFDdUMsUUFBUSxHQUFHdkMsUUFBUSxDQUFDd0MsT0FBTztJQUN0RTs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQVYsTUFBQSxDQUtRVyxvQ0FBb0MsR0FBNUMsU0FBUUEsb0NBQW9DQSxDQUFDQyxZQUFvQixFQUFpQjtNQUNqRixNQUFNO1FBQUVQO01BQVEsQ0FBQyxHQUFHTyxZQUFZO01BQ2hDLE9BQU9BLFlBQVksQ0FBQ0wsVUFBVSxDQUFDZixNQUFNLENBQUMsQ0FBQ3FCLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxLQUFLLEtBQUs7UUFDckUsSUFBSVYsT0FBTyxJQUFJVSxLQUFLLEtBQUssQ0FBQyxFQUFFO1VBQzNCLE9BQU9GLFFBQVE7UUFDaEI7UUFDQSxJQUFJRyxZQUFxQztRQUN6QyxNQUFNQyxTQUFTLEdBQUdILFNBQVMsQ0FBQ0ksV0FBVyxDQUFDQyxNQUFNLEVBQUVDLEtBQUs7UUFDckQsSUFBSU4sU0FBUyxDQUFDTyxJQUFJLEtBQUssVUFBVSxJQUFJUCxTQUFTLENBQUNPLElBQUksS0FBSyxvQkFBb0IsSUFBSVAsU0FBUyxDQUFDTyxJQUFJLEtBQUssY0FBYyxFQUFFO1VBQ2xITCxZQUFZLEdBQUc7WUFDZEssSUFBSSxFQUFFbEQsT0FBTyxDQUFDbUQsSUFBSTtZQUNsQkMsRUFBRSxFQUFFVCxTQUFTLENBQUNVLElBQUk7WUFDbEJDLEtBQUssRUFBRVIsU0FBUyxFQUFFUyxRQUFRLENBQUMsQ0FBQyxJQUFJWixTQUFTLENBQUNVLElBQUk7WUFDOUNHLFVBQVUsRUFBRSxJQUFJLENBQUNDLFdBQVcsQ0FBQ2QsU0FBUyxFQUFFRixZQUFZLENBQUMsSUFBSWlCO1VBQzFELENBQUM7VUFDRGhCLFFBQVEsQ0FBQ2lCLElBQUksQ0FBQ2QsWUFBWSxDQUFDO1FBQzVCLENBQUMsTUFBTTtVQUNOQSxZQUFZLEdBQUc7WUFDZEssSUFBSSxFQUFFbEQsT0FBTyxDQUFDNEQsSUFBSTtZQUNsQlIsRUFBRSxFQUFFVCxTQUFTLENBQUNVLElBQUk7WUFDbEJDLEtBQUssRUFBRVIsU0FBUyxFQUFFUyxRQUFRLENBQUMsQ0FBQyxJQUFJWixTQUFTLENBQUNVLElBQUk7WUFDOUNHLFVBQVUsRUFBRSxJQUFJLENBQUNDLFdBQVcsQ0FBQ2QsU0FBUyxFQUFFRixZQUFZLENBQUMsSUFBSWlCLFNBQVM7WUFDbEVHLFdBQVcsRUFBRUMsZUFBZSxDQUFDbkIsU0FBUyxDQUFDLElBQUllO1VBQzVDLENBQUM7VUFDRGhCLFFBQVEsQ0FBQ2lCLElBQUksQ0FBQ2QsWUFBWSxDQUFDO1FBQzVCO1FBQ0EsT0FBT0gsUUFBUTtNQUNoQixDQUFDLEVBQUUsRUFBbUIsQ0FBQztJQUN4Qjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FMQztJQUFBYixNQUFBLENBTVFrQyx1QkFBdUIsR0FBL0IsU0FBUUEsdUJBQXVCQSxDQUFDdEIsWUFBb0IsRUFBRXVCLGFBQWlDLEVBQWE7TUFDbkcsTUFBTUMsSUFBSSxHQUFHLElBQUksQ0FBQ3pCLG9DQUFvQyxDQUFDQyxZQUFZLENBQUM7TUFDcEUsTUFBTTtRQUFFeUIsSUFBSTtRQUFFQyxLQUFLO1FBQUVDLEtBQUs7UUFBRUM7TUFBSyxDQUFDLEdBQUdMLGFBQWE7TUFDbEQsTUFBTU0sb0JBQStCLEdBQUc7UUFDdkNwQixJQUFJLEVBQUVuRCxRQUFRLENBQUN3QyxPQUFPO1FBQ3RCMkIsSUFBSTtRQUNKRyxJQUFJO1FBQ0pGLEtBQUssRUFBRWxFLFNBQVM7UUFDaEJtRSxLQUFLLEVBQUV2RSxPQUFPLENBQUMwRTtNQUNoQixDQUFDO01BRUQsT0FBTztRQUNOckIsSUFBSSxFQUFFbkQsUUFBUSxDQUFDdUMsUUFBUTtRQUN2QjZCLEtBQUs7UUFDTEMsS0FBSztRQUNMSSxJQUFJLEVBQUU7VUFDTHRCLElBQUksRUFBRSxjQUFjO1VBQ3BCZSxJQUFJO1VBQ0p6RCxPQUFPLEVBQUUsQ0FBQzhELG9CQUFvQjtRQUMvQjtNQUNELENBQUM7SUFDRjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQXpDLE1BQUEsQ0FLUTRDLFNBQVMsR0FBakIsU0FBUUEsU0FBU0EsQ0FBQ0Msa0JBQXNDLEVBQXlCO01BQ2hGLE1BQU07UUFBRUMsWUFBWSxFQUFFbEM7TUFBYSxDQUFDLEdBQUdpQyxrQkFBa0I7TUFFekQsTUFBTVYsYUFBYSxHQUFHLElBQUksQ0FBQ1ksZ0JBQWdCLENBQUNGLGtCQUFrQixDQUFDO01BQy9ELElBQUksQ0FBQ2pDLFlBQVksSUFBSSxDQUFDdUIsYUFBYSxFQUFFO1FBQ3BDLE9BQU9OLFNBQVM7TUFDakI7TUFFQSxNQUFNbUIsVUFBVSxHQUFHLElBQUksQ0FBQzdDLHlCQUF5QixDQUFDUyxZQUFZLENBQUM7TUFFL0QsSUFBSXFDLFNBQWdDO01BQ3BDLElBQUlELFVBQVUsS0FBSzlFLFFBQVEsQ0FBQ3dDLE9BQU8sRUFBRTtRQUNwQztRQUNBdUMsU0FBUyxHQUFHO1VBQUU1QixJQUFJLEVBQUUyQixVQUFVO1VBQUUsR0FBR2I7UUFBYyxDQUFDO01BQ25ELENBQUMsTUFBTSxJQUFJYSxVQUFVLEtBQUs5RSxRQUFRLENBQUN1QyxRQUFRLEVBQUU7UUFDNUM7UUFDQXdDLFNBQVMsR0FBRyxJQUFJLENBQUNmLHVCQUF1QixDQUFDdEIsWUFBWSxFQUFFdUIsYUFBYSxDQUFDO01BQ3RFO01BQ0EsT0FBT2MsU0FBUztJQUNqQjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQWpELE1BQUEsQ0FLUWtELGFBQWEsR0FBckIsU0FBUUEsYUFBYUEsQ0FBQ3RDLFlBQW9CLEVBQWM7TUFDdkQsTUFBTTtRQUFFUDtNQUFRLENBQUMsR0FBR08sWUFBWTtNQUNoQyxNQUFNaEMsV0FBVyxHQUFHLElBQUksQ0FBQ0MseUJBQXlCLENBQUMsYUFBYSxDQUFDO01BQ2pFLE1BQU07UUFBRXNFO01BQW1CLENBQUMsR0FBR3ZFLFdBQVc7TUFDMUMsTUFBTXdFLG1DQUFtQyxHQUFHRCxrQkFBa0IsQ0FBQ0UsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUMzRUYsa0JBQWtCLENBQUNHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FDL0JILGtCQUFrQjtNQUNyQixNQUFNSSxVQUFVLEdBQUcsSUFBSSxDQUFDMUUseUJBQXlCLENBQUMsWUFBWSxDQUFDO01BQy9ELE1BQU0yRSxVQUFVLEdBQUcsR0FBR0QsVUFBVSxHQUFHSCxtQ0FBbUMsRUFBRTtNQUN4RSxPQUFPO1FBQ05JLFVBQVU7UUFDVkQsVUFBVSxFQUFFbEQsT0FBTyxHQUFHd0IsU0FBUyxHQUFHMEIsVUFBVTtRQUM1Q0Usc0JBQXNCLEVBQUUsSUFBSSxDQUFDQyxrQ0FBa0MsQ0FBQzlDLFlBQVksQ0FBQyxJQUFJaUI7TUFDbEYsQ0FBQztJQUNGOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBN0IsTUFBQSxDQUtRK0MsZ0JBQWdCLEdBQXhCLFNBQVFBLGdCQUFnQkEsQ0FBQ0Ysa0JBQXNDLEVBQWtDO01BQ2hHLE1BQU07UUFBRUMsWUFBWSxFQUFFbEM7TUFBYSxDQUFDLEdBQUdpQyxrQkFBa0I7TUFDekQsSUFBSSxDQUFDakMsWUFBWSxFQUFFO1FBQ2xCO01BQ0Q7O01BRUE7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0EsTUFBTStDLGVBQWUsR0FBRy9DLFlBQVksQ0FBQ1AsT0FBTyxHQUFHd0Msa0JBQWtCLENBQUNlLE1BQU0sQ0FBQ2xDLFFBQVEsQ0FBQyxDQUFDLEdBQUdkLFlBQVksQ0FBQ1ksSUFBSTtRQUN0RztRQUNBYSxJQUFJLEdBQUdzQixlQUFlLENBQUNFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQy9DdkIsS0FBSyxHQUFHTyxrQkFBa0IsQ0FBQ3pCLEtBQUssRUFBRU0sUUFBUSxDQUFDLENBQUMsSUFBSWQsWUFBWSxDQUFDWSxJQUFJO1FBQ2pFZSxLQUFLLEdBQUcsSUFBSSxDQUFDdUIsY0FBYyxDQUFDakIsa0JBQWtCLENBQUM7UUFDL0NMLElBQUksR0FBRyxJQUFJLENBQUNVLGFBQWEsQ0FBQ3RDLFlBQVksQ0FBQztNQUV4QyxPQUFPO1FBQUV5QixJQUFJO1FBQUVDLEtBQUs7UUFBRUMsS0FBSztRQUFFQztNQUFLLENBQUM7SUFDcEM7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BZEM7SUFBQXhDLE1BQUEsQ0FlUVAsNkJBQTZCLEdBQXJDLFNBQVFBLDZCQUE2QkEsQ0FBQ3NFLG1CQUFnQyxFQUFFQyxhQUFrQyxFQUFlO01BQ3hILElBQUlELG1CQUFtQixDQUFDMUUsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNuQztRQUNBLE9BQU8wRSxtQkFBbUI7TUFDM0I7TUFFQSxNQUFNO1FBQUVFLE1BQU0sRUFBRXBCLGtCQUFrQjtRQUFFUCxLQUFLLEVBQUU0QjtNQUFjLENBQUMsR0FBR0YsYUFBYTtNQUMxRSxNQUFNO1FBQUVsQixZQUFZLEVBQUVsQztNQUFhLENBQUMsR0FBR2lDLGtCQUFrQjs7TUFFekQ7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBLElBQUksQ0FBQ2pDLFlBQVksRUFBRTtRQUNsQixPQUFPbUQsbUJBQW1CO01BQzNCO01BRUEsTUFBTUksZUFBZSxHQUFHSCxhQUFhLENBQUNJLFNBQVMsSUFBSSxJQUFJLENBQUNDLCtCQUErQixDQUFDeEIsa0JBQWtCLENBQUMsSUFBSWhCLFNBQVM7TUFDeEgsTUFBTXlDLFNBQVMsR0FBRyxJQUFJLENBQUNDLCtCQUErQixDQUFDM0QsWUFBWSxDQUFDLElBQUlpQixTQUFTOztNQUVqRjtNQUNBO01BQ0E7TUFDQSxJQUFJMkMsU0FBNkI7TUFDakMsSUFBSSxPQUFPTCxlQUFlLEtBQUssU0FBUyxJQUFJQSxlQUFlLEtBQUssS0FBSyxFQUFFO1FBQ3RFLE9BQU9KLG1CQUFtQjtNQUMzQixDQUFDLE1BQU0sSUFBSSxPQUFPSSxlQUFlLEtBQUssUUFBUSxJQUFJQSxlQUFlLElBQUksWUFBWSxDQUFDTSxJQUFJLENBQUNOLGVBQWUsQ0FBQyxFQUFFO1FBQ3hHO1FBQ0FLLFNBQVMsR0FBR0wsZUFBZTtNQUM1QixDQUFDLE1BQU0sSUFBSUEsZUFBZSxLQUFLLE1BQU0sRUFBRTtRQUN0QztRQUNBSyxTQUFTLEdBQUczQyxTQUFTO01BQ3RCLENBQUMsTUFBTSxJQUFJc0MsZUFBZSxLQUFLLE9BQU8sRUFBRTtRQUN2QztRQUNBLE9BQU9KLG1CQUFtQjtNQUMzQjtNQUVBLElBQUlPLFNBQVMsS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDSSxjQUFjLENBQUM5RCxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMrRCxZQUFZLENBQUM5QixrQkFBa0IsQ0FBQyxFQUFFO1FBQ3hHLE9BQU9rQixtQkFBbUI7TUFDM0I7TUFFQSxNQUFNRSxNQUFNLEdBQUcsSUFBSSxDQUFDckIsU0FBUyxDQUFDQyxrQkFBa0IsQ0FBQztNQUNqRCxJQUFJb0IsTUFBTSxFQUFFO1FBQ1gsTUFBTVcsYUFBYSxHQUFHO1VBQ3JCTixTQUFTO1VBQ1RPLEtBQUssRUFBRUwsU0FBUztVQUNoQmxDLEtBQUssRUFBRTRCLGFBQWEsSUFBSUQsTUFBTSxDQUFDM0I7UUFDaEMsQ0FBQztRQUNEeUIsbUJBQW1CLENBQUNqQyxJQUFJLENBQUM7VUFBRSxHQUFHbUMsTUFBTTtVQUFFLEdBQUdXO1FBQWMsQ0FBQyxDQUFDO01BQzFEO01BRUEsT0FBT2IsbUJBQW1CO0lBQzNCOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBL0QsTUFBQSxDQUtRWix5QkFBeUIsR0FBakMsU0FBUUEseUJBQXlCQSxDQUFDTCxVQUFzQixFQUF3QjtNQUMvRSxNQUFNK0Ysd0JBQXdCLEdBQUcvRixVQUFVLENBQUNtQyxXQUFXLENBQUM2RCxFQUFFLEVBQUVDLGNBQWM7TUFDMUUsT0FBT0Ysd0JBQXdCLEdBQzNCQSx3QkFBd0IsQ0FBQ0csTUFBTSxDQUMvQkMsU0FBUyxJQUFLQSxTQUFTLENBQUNDLEtBQUssb0RBQXlDLElBQUksQ0FBQ0QsU0FBUyxDQUFDRSxXQUN0RixDQUFDLEdBQ0QsRUFBRTtJQUNOOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBcEYsTUFBQSxDQUtRVCxvQkFBb0IsR0FBNUIsU0FBUUEsb0JBQW9CQSxDQUFDOEYsZ0JBQXNDLEVBQXlCO01BQzNGO01BQ0EsTUFBTUMsYUFBYSxHQUFHLElBQUksQ0FBQ3pHLHlCQUF5QixDQUFDLFNBQVMsQ0FBQztNQUMvRCxNQUFNMEcsdUJBQXVCLEdBQUdGLGdCQUFnQixDQUFDRyxHQUFHLENBQ2xEdkIsTUFBTSxLQUFNO1FBQUV3QixHQUFHLEVBQUV4QixNQUFNLElBQUl5Qiw0QkFBNEIsQ0FBQ3pCLE1BQU0sQ0FBQztRQUFFQTtNQUFPLENBQUMsQ0FDN0UsQ0FBQztNQUNELElBQUksQ0FBQ3FCLGFBQWEsSUFBSUssTUFBTSxDQUFDQyxJQUFJLENBQUNOLGFBQWEsQ0FBQyxDQUFDakcsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUM5RCxPQUFPa0csdUJBQXVCO01BQy9COztNQUVBO01BQ0EsTUFBTU0sdUJBQXVCLEdBQUdGLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDTixhQUFhLENBQUM7TUFDMUQsTUFBTVEsMEJBQTBCLEdBQUdELHVCQUF1QixDQUFDckcsTUFBTSxDQUFDLENBQUN1RyxvQkFBb0IsRUFBRUMscUJBQXFCLEtBQUs7UUFDbEgsTUFBTUMscUJBQXFCLEdBQUdWLHVCQUF1QixDQUFDVyxJQUFJLENBQUVsQyxhQUFhLElBQUtBLGFBQWEsQ0FBQ3lCLEdBQUcsS0FBS08scUJBQXFCLENBQUM7UUFFMUgsSUFBSUMscUJBQXFCLEVBQUU7VUFDMUJGLG9CQUFvQixDQUFDQyxxQkFBcUIsQ0FBQyxHQUFHO1lBQzdDUCxHQUFHLEVBQUVPLHFCQUFxQjtZQUMxQi9CLE1BQU0sRUFBRWdDLHFCQUFxQixDQUFDaEMsTUFBTTtZQUNwQ2tDLFFBQVEsRUFBRTtjQUNUQyxTQUFTLEVBQUVDLFNBQVMsQ0FBQ0M7WUFDdEIsQ0FBQztZQUNELEdBQUdoQixhQUFhLENBQUNVLHFCQUFxQjtVQUN2QyxDQUFDO1FBQ0Y7UUFFQSxPQUFPRCxvQkFBb0I7TUFDNUIsQ0FBQyxFQUFFLENBQUMsQ0FBaUMsQ0FBQzs7TUFFdEM7TUFDQSxNQUFNUSxxQkFBcUIsR0FBRztRQUM3QmpFLEtBQUssRUFBRWtFLFlBQVksQ0FBQ0MsU0FBUztRQUM3Qk4sUUFBUSxFQUFFSyxZQUFZLENBQUNDLFNBQVM7UUFDaENyQyxTQUFTLEVBQUVvQyxZQUFZLENBQUNDO01BQ3pCLENBQUM7TUFDRCxPQUFPQyxvQkFBb0IsQ0FBQ25CLHVCQUF1QixFQUFFTywwQkFBMEIsRUFBRVMscUJBQXFCLENBQUM7SUFDeEc7O0lBRUE7SUFDQTtJQUNBOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBdkcsTUFBQSxDQUtRcUUsK0JBQStCLEdBQXZDLFNBQVFBLCtCQUErQkEsQ0FBQ3hCLGtCQUFzQyxFQUFrQztNQUMvRyxNQUFNOEQsYUFBYSxHQUFHdkMsU0FBUyxDQUFDdkIsa0JBQWtCLENBQUM7TUFDbkQsT0FBTyxJQUFJLENBQUMrRCxtQ0FBbUMsQ0FBQ0QsYUFBYSxDQUFDO0lBQy9EOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBM0csTUFBQSxDQUtROEQsY0FBYyxHQUF0QixTQUFRQSxjQUFjQSxDQUFDakIsa0JBQXNDLEVBQVc7TUFDdkU7TUFDQSxJQUFJTixLQUFLLEdBQUd2RSxPQUFPLENBQUM2SSxPQUFPO01BQzNCLE1BQU1DLFdBQVcsR0FBR2pFLGtCQUFrQixDQUFDa0UsV0FBVztNQUNsRCxJQUFJRCxXQUFXLElBQUksT0FBT0EsV0FBVyxLQUFLLFFBQVEsRUFBRTtRQUNuRCxRQUFRQSxXQUFXO1VBQ2xCLEtBQUssNkJBQTZCO1lBQ2pDdkUsS0FBSyxHQUFHdkUsT0FBTyxDQUFDMEUsUUFBUTtZQUN4QjtVQUNELEtBQUssNkJBQTZCO1lBQ2pDSCxLQUFLLEdBQUd2RSxPQUFPLENBQUNnSixXQUFXO1lBQzNCO1VBQ0Q7WUFDQ3pFLEtBQUssR0FBR3ZFLE9BQU8sQ0FBQzZJLE9BQU87UUFDekI7TUFDRDtNQUNBLE9BQU90RSxLQUFLO0lBQ2I7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUF2QyxNQUFBLENBS1EwRCxrQ0FBa0MsR0FBMUMsU0FBUUEsa0NBQWtDQSxDQUFDOUMsWUFBb0IsRUFBa0M7TUFDaEcsTUFBTXFHLGdCQUFnQixHQUFHQyw2QkFBNkIsQ0FBQ3RHLFlBQVksRUFBRSxJQUFJLENBQUNyQyxjQUFjLENBQUM7TUFDekYsT0FBTyxJQUFJLENBQUNxSSxtQ0FBbUMsQ0FBQ0ssZ0JBQWdCLENBQUM7SUFDbEU7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUFqSCxNQUFBLENBS1F1RSwrQkFBK0IsR0FBdkMsU0FBUUEsK0JBQStCQSxDQUFDM0QsWUFBb0IsRUFBa0M7TUFDN0YsTUFBTXVHLGlCQUFpQixHQUFHQywwQkFBMEIsQ0FBQ3hHLFlBQVksRUFBRSxJQUFJLENBQUNyQyxjQUFjLENBQUM7TUFDdkYsT0FBTyxJQUFJLENBQUNxSSxtQ0FBbUMsQ0FBQ08saUJBQWlCLENBQUM7SUFDbkU7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUFuSCxNQUFBLENBS1EwRSxjQUFjLEdBQXRCLFNBQVFBLGNBQWNBLENBQUM5RCxZQUFvQixFQUFXO01BQ3JELE1BQU07UUFBRVAsT0FBTztRQUFFRTtNQUFXLENBQUMsR0FBR0ssWUFBWTtNQUM1QyxPQUFPUCxPQUFPLElBQUlFLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSUEsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDOEcsWUFBWTtJQUM5RDs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQXJILE1BQUEsQ0FLUTJFLFlBQVksR0FBcEIsU0FBUUEsWUFBWUEsQ0FBQ08sU0FBNkIsRUFBVztNQUM1RCxPQUFPQSxTQUFTLENBQUNoRSxXQUFXLEVBQUU2RCxFQUFFLEVBQUV1QyxZQUFZLEVBQUVDLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSTtJQUNuRTs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FMQztJQUFBdkgsTUFBQSxDQU1RNEIsV0FBVyxHQUFuQixTQUFRQSxXQUFXQSxDQUFDZCxTQUEwQixFQUFFRixZQUFvQixFQUFrQztNQUNyRyxNQUFNNEcsc0JBQXNCLEdBQUdDLG1DQUFtQyxDQUFDM0csU0FBUyxFQUFFRixZQUFZLEVBQUUsSUFBSSxDQUFDckMsY0FBYyxDQUFDO01BQ2hILE9BQU8sSUFBSSxDQUFDcUksbUNBQW1DLENBQUNZLHNCQUFzQixDQUFDO0lBQ3hFLENBQUM7SUFBQSxPQUFBbkosYUFBQTtFQUFBLEVBN1p5Q3FKLHVCQUF1QjtFQUFBekosUUFBQSxHQUFBSSxhQUFBO0VBQUEsT0FBQUosUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
483
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBQ1N0eWxlIiwiX2V4cG9ydHMiLCJBQ0FjdGlvbiIsIkFDSW5wdXQiLCJBQ1RJT05fT0siLCJIZWFkZXJBY3Rpb25zIiwiX0Jhc2VDYXJkQ29udGVudFByb3ZpIiwiY29udmVydGVkVHlwZXMiLCJjb25maWciLCJfdGhpcyIsImNhbGwiLCJhY3Rpb25zIiwiY29udGV4dEluZm8iLCJnZXRDYXJkQ29uZmlndXJhdGlvbkJ5S2V5IiwiY29udGV4dFBhdGgiLCJlbnRpdHlUeXBlIiwiZ2V0RW50aXR5VHlwZSIsIkxvZyIsImVycm9yIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsImdldEFubm90YXRlZEhlYWRlckFjdGlvbnMiLCJsZW5ndGgiLCJjb25maWd1cmVkQWN0aW9ucyIsImdldENvbmZpZ3VyZWRBY3Rpb25zIiwicmVkdWNlIiwiZ2V0QWN0aW9uSW5BZGFwdGl2ZUNhcmRGb3JtYXQiLCJiaW5kIiwiZXJyIiwibWVzc2FnZSIsIkVycm9yIiwiU3RyaW5nIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRDYXJkQWN0aW9ucyIsImdldEFkYXB0aXZlQ2FyZEFjdGlvblR5cGUiLCJlZG1BY3Rpb24iLCJpc0JvdW5kIiwiaXNGdW5jdGlvbiIsInBhcmFtZXRlcnMiLCJuZWVkVXNlcklucHV0UGFyYW1ldGVycyIsIlNob3dDYXJkIiwiRXhlY3V0ZSIsImdldEFjdGlvbkNhcmRCb2R5V2l0aFBhcmFtZXRlckZpZWxkcyIsImFjdGlvblRhcmdldCIsImVsZW1lbnRzIiwicGFyYW1ldGVyIiwiaW5kZXgiLCJpbnB1dEVsZW1lbnQiLCJsYWJlbFRlcm0iLCJhbm5vdGF0aW9ucyIsIkNvbW1vbiIsIkxhYmVsIiwidHlwZSIsIkRhdGUiLCJpZCIsIm5hbWUiLCJsYWJlbCIsInRvU3RyaW5nIiwiaXNSZXF1aXJlZCIsImdldFJlcXVpcmVkIiwidW5kZWZpbmVkIiwicHVzaCIsIlRleHQiLCJpc011bHRpbGluZSIsImlzTXVsdGlMaW5lVGV4dCIsImdldEFjdGlvbldpdGhQYXJhbWV0ZXJzIiwiYWN0aW9uRGV0YWlscyIsImJvZHkiLCJ2ZXJiIiwidGl0bGUiLCJzdHlsZSIsImRhdGEiLCJhY3Rpb25XaXRoUGFyYW1ldGVycyIsIlBvc2l0aXZlIiwiY2FyZCIsImdldEFjdGlvbiIsImRhdGFGaWVsZEZvckFjdGlvbiIsIkFjdGlvblRhcmdldCIsImdldEFjdGlvbkRldGFpbHMiLCJhY3Rpb25UeXBlIiwicmV0QWN0aW9uIiwiZ2V0QWN0aW9uRGF0YSIsImJpbmRpbmdDb250ZXh0UGF0aCIsImJpbmRpbmdDb250ZXh0UGF0aFJlbGF0aXZlVG9TZXJ2aWNlIiwic3RhcnRzV2l0aCIsInN1YnN0cmluZyIsInNlcnZpY2VVUkkiLCJjb250ZXh0VVJMIiwiaXNDb25maXJtYXRpb25SZXF1aXJlZCIsImdldElzQ3JpdGljYWxGb3JBZGFwdGl2ZUNhcmRBY3Rpb24iLCJhY3Rpb25Ub1RyaWdnZXIiLCJBY3Rpb24iLCJyZXBsYWNlIiwiZ2V0QWN0aW9uU3R5bGUiLCJhZGFwdGl2ZUNhcmRBY3Rpb25zIiwiYWN0aW9uRWxlbWVudCIsImFjdGlvbiIsInRpdGxlT3ZlcnJpZGUiLCJpc0FjdGlvblZpc2libGUiLCJpc1Zpc2libGUiLCJnZXRWaXNpYmxlRm9yQWRhcHRpdmVDYXJkQWN0aW9uIiwiaXNFbmFibGVkIiwiZ2V0RW5hYmxlZEZvckFkYXB0aXZlQ2FyZEFjdGlvbiIsIndoZW5WYWx1ZSIsInRlc3QiLCJpc1N0YXRpY0FjdGlvbiIsImlzQ29weUFjdGlvbiIsInZpc3VhbFVwZGF0ZXMiLCIkd2hlbiIsImlkZW50aWZpY2F0aW9uQW5ub3RhdGlvbiIsIlVJIiwiSWRlbnRpZmljYXRpb24iLCJmaWx0ZXIiLCJkYXRhRmllbGQiLCIkVHlwZSIsIkRldGVybWluaW5nIiwiYW5ub3RhdGVkQWN0aW9ucyIsImFjdGlvbkNvbmZpZ3MiLCJhbm5vdGF0ZWRBY3Rpb25FbGVtZW50cyIsIm1hcCIsImtleSIsImdldFN0YWJsZUlkUGFydEZyb21EYXRhRmllbGQiLCJPYmplY3QiLCJrZXlzIiwiY3VzdG9tQ29uZmlnQWN0aW9uTmFtZXMiLCJjdXN0b21BY3Rpb25Db25maWdFbGVtZW50cyIsImN1c3RvbUFjdGlvbkVsZW1lbnRzIiwiY3VzdG9tQ29uZmlnQWN0aW9uS2V5IiwicmVsZXZhbnRBY3Rpb25FbGVtZW50IiwiZmluZCIsInBvc2l0aW9uIiwicGxhY2VtZW50IiwiUGxhY2VtZW50IiwiQWZ0ZXIiLCJhY3Rpb25PdmVyd3JpdGVDb25maWciLCJPdmVycmlkZVR5cGUiLCJvdmVyd3JpdGUiLCJpbnNlcnRDdXN0b21FbGVtZW50cyIsInZpc2liaWxpdHlFeHAiLCJ1cGRhdGVQYXRoc0FuZEdldENvbXBpbGVkRXhwcmVzc2lvbiIsIkRlZmF1bHQiLCJjcml0aWNhbGl0eSIsIkNyaXRpY2FsaXR5IiwiRGVzdHJ1Y3RpdmUiLCJpc0FjdGlvbkNyaXRpY2FsIiwiZ2V0SXNBY3Rpb25Dcml0aWNhbEV4cHJlc3Npb24iLCJlbmFibGVkRXhwcmVzc2lvbiIsImdldEFjdGlvbkVuYWJsZWRFeHByZXNzaW9uIiwiaXNDb2xsZWN0aW9uIiwiSXNDb3B5QWN0aW9uIiwidmFsdWVPZiIsImZpZWxkQ29udHJvbEV4cHJlc3Npb24iLCJpc1JlcXVpcmVkRXhwcmVzc2lvbiIsIkJhc2VDYXJkQ29udGVudFByb3ZpZGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJIZWFkZXJBY3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uLCBBY3Rpb25QYXJhbWV0ZXIsIENvbnZlcnRlZE1ldGFkYXRhLCBFbnRpdHlUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcywgdHlwZSBEYXRhRmllbGRGb3JBY3Rpb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7XG5cdE92ZXJyaWRlVHlwZSxcblx0UGxhY2VtZW50LFxuXHRpbnNlcnRDdXN0b21FbGVtZW50cyxcblx0dHlwZSBDb25maWd1cmFibGVPYmplY3RLZXksXG5cdHR5cGUgQ3VzdG9tRWxlbWVudCxcblx0dHlwZSBQb3NpdGlvbmFibGVcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB0eXBlIHsgQ29tcGlsZWRBZGFwdGl2ZUNhcmRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQWRhcHRpdmVDYXJkRXhwcmVzc2lvbkNvbXBpbGVyXCI7XG5pbXBvcnQgeyBnZXRTdGFibGVJZFBhcnRGcm9tRGF0YUZpZWxkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7IGdldElzQWN0aW9uQ3JpdGljYWxFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvQWN0aW9uSGVscGVyXCI7XG5pbXBvcnQgeyBpc1JlcXVpcmVkRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0ZpZWxkQ29udHJvbEhlbHBlclwiO1xuaW1wb3J0IHsgaXNNdWx0aUxpbmVUZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCB7IGdldEFjdGlvbkVuYWJsZWRFeHByZXNzaW9uLCBpc1Zpc2libGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9VSUZvcm1hdHRlcnNcIjtcbmltcG9ydCBCYXNlQ2FyZENvbnRlbnRQcm92aWRlciwgeyB0eXBlIENhcmRDb25maWcgfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NhcmQvQmFzZUNhcmRDb250ZW50UHJvdmlkZXJcIjtcbmltcG9ydCB0eXBlIHsgQWN0aW9uRGF0YSwgQ2FyZEVsZW1lbnQsIElBQ0FjdGlvbiwgSUlucHV0RGF0ZSwgSUlucHV0VGV4dCB9IGZyb20gXCJ0eXBlcy9hZGFwdGl2ZUNhcmRfdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgQWN0aW9uQ29uZmlnID0gUG9zaXRpb25hYmxlICYge1xuXHR0aXRsZT86IHN0cmluZztcblx0aXNWaXNpYmxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUFjdGlvbkNvbmZpZ3MgPSBSZWNvcmQ8Q29uZmlndXJhYmxlT2JqZWN0S2V5LCBBY3Rpb25Db25maWc+O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25Db25maWd1cmFibGUgPSB7XG5cdGFjdGlvbnM/OiBDdXN0b21BY3Rpb25Db25maWdzO1xufTtcblxuZXhwb3J0IHR5cGUgSGVhZGVyQWN0aW9uc0NvbmZpZyA9IEFjdGlvbkNvbmZpZ3VyYWJsZSAmIENhcmRDb25maWc7XG5cbnR5cGUgQWN0aW9uQ29uZmlnRWxlbWVudCA9IFBvc2l0aW9uYWJsZSAmXG5cdEFjdGlvbkNvbmZpZyAmIHtcblx0XHRrZXk6IENvbmZpZ3VyYWJsZU9iamVjdEtleTtcblx0XHRhY3Rpb246IERhdGFGaWVsZEZvckFjdGlvbjtcblx0fTtcblxudHlwZSBJbnRlcm5hbEN1c3RvbUFjdGlvbkVsZW1lbnRzID0gUmVjb3JkPENvbmZpZ3VyYWJsZU9iamVjdEtleSwgQ3VzdG9tRWxlbWVudDxBY3Rpb25Db25maWdFbGVtZW50Pj47XG5cbmV4cG9ydCBlbnVtIEFDU3R5bGUge1xuXHREZWZhdWx0ID0gXCJkZWZhdWx0XCIsXG5cdFBvc2l0aXZlID0gXCJwb3NpdGl2ZVwiLFxuXHREZXN0cnVjdGl2ZSA9IFwiZGVzdHJ1Y3RpdmVcIlxufVxuXG5leHBvcnQgZW51bSBBQ0FjdGlvbiB7XG5cdEV4ZWN1dGUgPSBcIkFjdGlvbi5FeGVjdXRlXCIsXG5cdFNob3dDYXJkID0gXCJBY3Rpb24uU2hvd0NhcmRcIlxufVxuXG5leHBvcnQgZW51bSBBQ0lucHV0IHtcblx0VGV4dCA9IFwiSW5wdXQuVGV4dFwiLFxuXHRDaG9pY2VTZXQgPSBcIklucHV0LkNob2ljZVNldFwiLFxuXHREYXRlID0gXCJJbnB1dC5EYXRlXCJcbn1cblxuY29uc3QgQUNUSU9OX09LID0gXCJPS1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZWFkZXJBY3Rpb25zIGV4dGVuZHMgQmFzZUNhcmRDb250ZW50UHJvdmlkZXI8SGVhZGVyQWN0aW9uc0NvbmZpZz4ge1xuXHRwcml2YXRlIGFjdGlvbnM6IElBQ0FjdGlvbltdID0gW107XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgY2FyZCBhY3Rpb25zLlxuXHQgKiBAcmV0dXJucyBDYXJkIGFjdGlvbnMuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0Q2FyZEFjdGlvbnMoKTogSUFDQWN0aW9uW10ge1xuXHRcdHJldHVybiB0aGlzLmFjdGlvbnM7XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcihjb252ZXJ0ZWRUeXBlczogQ29udmVydGVkTWV0YWRhdGEsIGNvbmZpZzogSGVhZGVyQWN0aW9uc0NvbmZpZykge1xuXHRcdHN1cGVyKGNvbnZlcnRlZFR5cGVzLCBjb25maWcpO1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBjb250ZXh0SW5mbyA9IHRoaXMuZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleShcImNvbnRleHRJbmZvXCIpO1xuXHRcdFx0Y29uc3QgeyBjb250ZXh0UGF0aCB9ID0gY29udGV4dEluZm87XG5cdFx0XHRjb25zdCBlbnRpdHlUeXBlID0gdGhpcy5nZXRFbnRpdHlUeXBlKCk7XG5cdFx0XHRpZiAoIWVudGl0eVR5cGUpIHtcblx0XHRcdFx0TG9nLmVycm9yKGBGRSA6IFY0IDogQWRhcHRpdmUgQ2FyZCBoZWFkZXIgYWN0aW9ucyA6IG5vIEVudGl0eVR5cGUgZm91bmQgYXQgY29udGV4dCBwYXRoOiAke2NvbnRleHRQYXRofWApO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgYWN0aW9ucyA9IHRoaXMuZ2V0QW5ub3RhdGVkSGVhZGVyQWN0aW9ucyhlbnRpdHlUeXBlKTtcblx0XHRcdGlmIChhY3Rpb25zLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0Y29uc3QgY29uZmlndXJlZEFjdGlvbnMgPSB0aGlzLmdldENvbmZpZ3VyZWRBY3Rpb25zKGFjdGlvbnMpO1xuXHRcdFx0XHR0aGlzLmFjdGlvbnMgPSBjb25maWd1cmVkQWN0aW9ucy5yZWR1Y2UodGhpcy5nZXRBY3Rpb25JbkFkYXB0aXZlQ2FyZEZvcm1hdC5iaW5kKHRoaXMpLCBbXSBhcyBJQUNBY3Rpb25bXSk7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG5cdFx0XHRjb25zdCBtZXNzYWdlID0gZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIpO1xuXHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgY3JlYXRpbmcgdGhlIGNhcmQgZGVmaW50aW9uXCIsIG1lc3NhZ2UpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYWN0aW9uIHR5cGUgYmFzZWQgb24gdGhlIG5lZWQgZm9yIHVzZXIgaW5wdXRzIGZvciBhY3Rpb24gcGFyYW1ldGVycy5cblx0ICogQHBhcmFtIGVkbUFjdGlvbiBDb252ZXJ0ZWQgbWV0YWRhdGEgYWN0aW9uLlxuXHQgKiBAcmV0dXJucyBBY3Rpb24gdHlwZSB0byB1c2Vcblx0ICovXG5cdHByaXZhdGUgZ2V0QWRhcHRpdmVDYXJkQWN0aW9uVHlwZShlZG1BY3Rpb246IEFjdGlvbik6IEFDQWN0aW9uIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB7IGlzQm91bmQsIGlzRnVuY3Rpb24sIHBhcmFtZXRlcnMgfSA9IGVkbUFjdGlvbjtcblx0XHRpZiAoaXNGdW5jdGlvbikge1xuXHRcdFx0Ly8gZnVuY3Rpb25zIGFyZSBpZ25vcmVkXG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IG5lZWRVc2VySW5wdXRQYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5sZW5ndGggPiAoaXNCb3VuZCA/IDEgOiAwKTtcblxuXHRcdHJldHVybiBuZWVkVXNlcklucHV0UGFyYW1ldGVycyA/IEFDQWN0aW9uLlNob3dDYXJkIDogQUNBY3Rpb24uRXhlY3V0ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgQWN0aW9uIHBhcmFtZXRlciBlbGVtZW50cyB0byBhZGQgdG8gdGhlIGFjdGlvbiBjYXJkIGJvZHkuXG5cdCAqIEBwYXJhbSBhY3Rpb25UYXJnZXQgQ29udmVydGVkIG1ldGFkYXRhIGFjdGlvbi5cblx0ICogQHJldHVybnMgSW5wdXQgZWxlbWVudHMgZm9yIGFjdGlvbiBwYXJhbWV0ZXJzXG5cdCAqL1xuXHRwcml2YXRlIGdldEFjdGlvbkNhcmRCb2R5V2l0aFBhcmFtZXRlckZpZWxkcyhhY3Rpb25UYXJnZXQ6IEFjdGlvbik6IENhcmRFbGVtZW50W10ge1xuXHRcdGNvbnN0IHsgaXNCb3VuZCB9ID0gYWN0aW9uVGFyZ2V0O1xuXHRcdHJldHVybiBhY3Rpb25UYXJnZXQucGFyYW1ldGVycy5yZWR1Y2UoKGVsZW1lbnRzLCBwYXJhbWV0ZXIsIGluZGV4KSA9PiB7XG5cdFx0XHRpZiAoaXNCb3VuZCAmJiBpbmRleCA9PT0gMCkge1xuXHRcdFx0XHRyZXR1cm4gZWxlbWVudHM7XG5cdFx0XHR9XG5cdFx0XHRsZXQgaW5wdXRFbGVtZW50OiBJSW5wdXRUZXh0IHwgSUlucHV0RGF0ZTtcblx0XHRcdGNvbnN0IGxhYmVsVGVybSA9IHBhcmFtZXRlci5hbm5vdGF0aW9ucy5Db21tb24/LkxhYmVsO1xuXHRcdFx0aWYgKHBhcmFtZXRlci50eXBlID09PSBcIkVkbS5EYXRlXCIgfHwgcGFyYW1ldGVyLnR5cGUgPT09IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCIgfHwgcGFyYW1ldGVyLnR5cGUgPT09IFwiRWRtLkRhdGVUaW1lXCIpIHtcblx0XHRcdFx0aW5wdXRFbGVtZW50ID0ge1xuXHRcdFx0XHRcdHR5cGU6IEFDSW5wdXQuRGF0ZSxcblx0XHRcdFx0XHRpZDogcGFyYW1ldGVyLm5hbWUsXG5cdFx0XHRcdFx0bGFiZWw6IGxhYmVsVGVybT8udG9TdHJpbmcoKSA/PyBwYXJhbWV0ZXIubmFtZSxcblx0XHRcdFx0XHRpc1JlcXVpcmVkOiB0aGlzLmdldFJlcXVpcmVkKHBhcmFtZXRlcikgPz8gdW5kZWZpbmVkXG5cdFx0XHRcdH07XG5cdFx0XHRcdGVsZW1lbnRzLnB1c2goaW5wdXRFbGVtZW50KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlucHV0RWxlbWVudCA9IHtcblx0XHRcdFx0XHR0eXBlOiBBQ0lucHV0LlRleHQsXG5cdFx0XHRcdFx0aWQ6IHBhcmFtZXRlci5uYW1lLFxuXHRcdFx0XHRcdGxhYmVsOiBsYWJlbFRlcm0/LnRvU3RyaW5nKCkgPz8gcGFyYW1ldGVyLm5hbWUsXG5cdFx0XHRcdFx0aXNSZXF1aXJlZDogdGhpcy5nZXRSZXF1aXJlZChwYXJhbWV0ZXIpID8/IHVuZGVmaW5lZCxcblx0XHRcdFx0XHRpc011bHRpbGluZTogaXNNdWx0aUxpbmVUZXh0KHBhcmFtZXRlcikgPz8gdW5kZWZpbmVkXG5cdFx0XHRcdH07XG5cdFx0XHRcdGVsZW1lbnRzLnB1c2goaW5wdXRFbGVtZW50KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBlbGVtZW50cztcblx0XHR9LCBbXSBhcyBDYXJkRWxlbWVudFtdKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYWN0aW9uIG9iamVjdCB3aXRoIHBhcmFtZXRlciBlbGVtZW50cy5cblx0ICogQHBhcmFtIGFjdGlvblRhcmdldCBDb252ZXJ0ZWQgbWV0YWRhdGEgYWN0aW9uLlxuXHQgKiBAcGFyYW0gYWN0aW9uRGV0YWlscyBBY3Rpb24gcHJvcGVydGllcy5cblx0ICogQHJldHVybnMgQWN0aW9uIG9iamVjdCB3aXRoIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRwcml2YXRlIGdldEFjdGlvbldpdGhQYXJhbWV0ZXJzKGFjdGlvblRhcmdldDogQWN0aW9uLCBhY3Rpb25EZXRhaWxzOiBQYXJ0aWFsPElBQ0FjdGlvbj4pOiBJQUNBY3Rpb24ge1xuXHRcdGNvbnN0IGJvZHkgPSB0aGlzLmdldEFjdGlvbkNhcmRCb2R5V2l0aFBhcmFtZXRlckZpZWxkcyhhY3Rpb25UYXJnZXQpO1xuXHRcdGNvbnN0IHsgdmVyYiwgdGl0bGUsIHN0eWxlLCBkYXRhIH0gPSBhY3Rpb25EZXRhaWxzO1xuXHRcdGNvbnN0IGFjdGlvbldpdGhQYXJhbWV0ZXJzOiBJQUNBY3Rpb24gPSB7XG5cdFx0XHR0eXBlOiBBQ0FjdGlvbi5FeGVjdXRlLFxuXHRcdFx0dmVyYixcblx0XHRcdGRhdGEsXG5cdFx0XHR0aXRsZTogQUNUSU9OX09LLFxuXHRcdFx0c3R5bGU6IEFDU3R5bGUuUG9zaXRpdmVcblx0XHR9O1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHR5cGU6IEFDQWN0aW9uLlNob3dDYXJkLFxuXHRcdFx0dGl0bGUsXG5cdFx0XHRzdHlsZSxcblx0XHRcdGNhcmQ6IHtcblx0XHRcdFx0dHlwZTogXCJBZGFwdGl2ZUNhcmRcIixcblx0XHRcdFx0Ym9keSxcblx0XHRcdFx0YWN0aW9uczogW2FjdGlvbldpdGhQYXJhbWV0ZXJzXVxuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGFjdGlvbiBmb3IgYWRhcHRpdmUgY2FyZC5cblx0ICogQHBhcmFtIGRhdGFGaWVsZEZvckFjdGlvbiBEYXRhRmllbGRGb3JBY3Rpb24gYW5ub3RhdGlvblxuXHQgKiBAcmV0dXJucyBBY3Rpb24gdG8gYWRkLlxuXHQgKi9cblx0cHJpdmF0ZSBnZXRBY3Rpb24oZGF0YUZpZWxkRm9yQWN0aW9uOiBEYXRhRmllbGRGb3JBY3Rpb24pOiBJQUNBY3Rpb24gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHsgQWN0aW9uVGFyZ2V0OiBhY3Rpb25UYXJnZXQgfSA9IGRhdGFGaWVsZEZvckFjdGlvbjtcblxuXHRcdGNvbnN0IGFjdGlvbkRldGFpbHMgPSB0aGlzLmdldEFjdGlvbkRldGFpbHMoZGF0YUZpZWxkRm9yQWN0aW9uKTtcblx0XHRpZiAoIWFjdGlvblRhcmdldCB8fCAhYWN0aW9uRGV0YWlscykge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHRjb25zdCBhY3Rpb25UeXBlID0gdGhpcy5nZXRBZGFwdGl2ZUNhcmRBY3Rpb25UeXBlKGFjdGlvblRhcmdldCk7XG5cblx0XHRsZXQgcmV0QWN0aW9uOiBJQUNBY3Rpb24gfCB1bmRlZmluZWQ7XG5cdFx0aWYgKGFjdGlvblR5cGUgPT09IEFDQWN0aW9uLkV4ZWN1dGUpIHtcblx0XHRcdC8vIEFjdGlvbnMgd2l0aG91dCBwYXJhbWV0ZXJzXG5cdFx0XHRyZXRBY3Rpb24gPSB7IHR5cGU6IGFjdGlvblR5cGUsIC4uLmFjdGlvbkRldGFpbHMgfTtcblx0XHR9IGVsc2UgaWYgKGFjdGlvblR5cGUgPT09IEFDQWN0aW9uLlNob3dDYXJkKSB7XG5cdFx0XHQvLyBBY3Rpb24gd2l0aCBwYXJhbWV0ZXJzXG5cdFx0XHRyZXRBY3Rpb24gPSB0aGlzLmdldEFjdGlvbldpdGhQYXJhbWV0ZXJzKGFjdGlvblRhcmdldCwgYWN0aW9uRGV0YWlscyk7XG5cdFx0fVxuXHRcdHJldHVybiByZXRBY3Rpb247XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGRhdGEgdGhhdCBuZWVkcyB0byBiZSBwYXJ0IG9mIGFjdGlvbi5cblx0ICogQHBhcmFtIGFjdGlvblRhcmdldCBDb252ZXJ0ZWQgbWV0YWRhdGEgYWN0aW9uLlxuXHQgKiBAcmV0dXJucyBBY3Rpb24gZGF0YSB0aGF0IG5lZWRzIHRvIGJlIHBhc3NlZCB3aXRoIHRoZSBhY3Rpb24uXG5cdCAqL1xuXHRwcml2YXRlIGdldEFjdGlvbkRhdGEoYWN0aW9uVGFyZ2V0OiBBY3Rpb24pOiBBY3Rpb25EYXRhIHtcblx0XHRjb25zdCB7IGlzQm91bmQgfSA9IGFjdGlvblRhcmdldDtcblx0XHRjb25zdCBjb250ZXh0SW5mbyA9IHRoaXMuZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleShcImNvbnRleHRJbmZvXCIpO1xuXHRcdGNvbnN0IHsgYmluZGluZ0NvbnRleHRQYXRoIH0gPSBjb250ZXh0SW5mbztcblx0XHRjb25zdCBiaW5kaW5nQ29udGV4dFBhdGhSZWxhdGl2ZVRvU2VydmljZSA9IGJpbmRpbmdDb250ZXh0UGF0aC5zdGFydHNXaXRoKFwiL1wiKVxuXHRcdFx0PyBiaW5kaW5nQ29udGV4dFBhdGguc3Vic3RyaW5nKDEpXG5cdFx0XHQ6IGJpbmRpbmdDb250ZXh0UGF0aDtcblx0XHRjb25zdCBzZXJ2aWNlVVJJID0gdGhpcy5nZXRDYXJkQ29uZmlndXJhdGlvbkJ5S2V5KFwic2VydmljZVVSSVwiKTtcblx0XHRjb25zdCBjb250ZXh0VVJMID0gYCR7c2VydmljZVVSSX0ke2JpbmRpbmdDb250ZXh0UGF0aFJlbGF0aXZlVG9TZXJ2aWNlfWA7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGNvbnRleHRVUkwsXG5cdFx0XHRzZXJ2aWNlVVJJOiBpc0JvdW5kID8gdW5kZWZpbmVkIDogc2VydmljZVVSSSxcblx0XHRcdGlzQ29uZmlybWF0aW9uUmVxdWlyZWQ6IHRoaXMuZ2V0SXNDcml0aWNhbEZvckFkYXB0aXZlQ2FyZEFjdGlvbihhY3Rpb25UYXJnZXQpID8/IHVuZGVmaW5lZFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGFjdGlvbiBmb3IgYWRhcHRpdmUgY2FyZC5cblx0ICogQHBhcmFtIGRhdGFGaWVsZEZvckFjdGlvbiBEYXRhRmllbGRGb3JBY3Rpb24gYW5ub3RhdGlvblxuXHQgKiBAcmV0dXJucyBBY3Rpb24gdG8gYWRkLlxuXHQgKi9cblx0cHJpdmF0ZSBnZXRBY3Rpb25EZXRhaWxzKGRhdGFGaWVsZEZvckFjdGlvbjogRGF0YUZpZWxkRm9yQWN0aW9uKTogUGFydGlhbDxJQUNBY3Rpb24+IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB7IEFjdGlvblRhcmdldDogYWN0aW9uVGFyZ2V0IH0gPSBkYXRhRmllbGRGb3JBY3Rpb247XG5cdFx0aWYgKCFhY3Rpb25UYXJnZXQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBWZXJiIGNyZWF0aW9uIGZvciBhY3Rpb25zOlxuXHRcdC8vXG5cdFx0Ly8gMS4gQm91bmQgYWN0aW9uOlxuXHRcdC8vICAgIFZlcmIgbmVlZHMgdG8gYmUgcmVsYXRpdmUgdG8gY29udGV4dFVSTC4gZm9ybWF0OiAnPG1ldGFkYXRhIG5hbWVzcGFjZT4uPGFjdGlvbiBuYW1lPidcblx0XHQvLyAgICBFeGFtcGxlOlxuXHRcdC8vICAgICAgICBNZXRhZGF0YSBuYW1lc3BhY2U6ICdjb20uY19zb21fc2QnXG5cdFx0Ly8gICAgICAgIEFjdGlvbiBuYW1lOiAnYm91bmRBY3Rpb24nXG5cdFx0Ly8gICAgICAgIFZlcmI6ICdjb20uY19zb21fc2QuYm91bmRBY3Rpb24nXG5cdFx0Ly8gICAgICAgIENvbnRleHRVUkw6IC9TT00oMSlcblx0XHQvLyAgICAgICAgVVJMIHRvIHRyaWdnZXIgUE9TVCBjYWxsKHRoaXMgd2lsbCBiZSBjcmVhdGVkIGJ5IHRoZSBCT1QsIDxzZXJ2aWNlVVJJICsgY29udGV4dFVSTCArIHZlcmI+KTogJ2h0dHBzOi8vPHNlcnZpY2VVUkk+L1NPTSgnMScpL2NvbS5jX3NvbV9zZC5ib3VuZEFjdGlvbidcblx0XHQvL1xuXHRcdC8vIDIuIFVuYm91bmQgYWN0aW9uOlxuXHRcdC8vICAgIFZlcmIgbmVlZHMgdG8gYmUgcmVsYXRpdmUgdG8gc2VydmljZVVSSS4gZm9ybWF0OiAnPGFjdGlvbiBuYW1lPidcblx0XHQvLyAgICBFeGFtcGxlOlxuXHRcdC8vICAgICAgICBBY3Rpb24gbmFtZTogJ3VuYm91bmRBY3Rpb24nXG5cdFx0Ly8gICAgICAgIFZlcmI6ICd1bmJvdW5kQWN0aW9uJ1xuXHRcdC8vICAgICAgICBDb250ZXh0VVJMOiB1bmRlZmluZWRcblx0XHQvLyAgICAgICAgVVJMIHRvIHRyaWdnZXIgUE9TVCBjYWxsKHRoaXMgd2lsbCBiZSBjcmVhdGVkIGJ5IHRoZSBCT1QsIDxzZXJ2aWNlVVJJICsgdmVyYj4pOiAnaHR0cHM6Ly88c2VydmljZVVSST4vdW5ib3VuZEFjdGlvbidcblx0XHRjb25zdCBhY3Rpb25Ub1RyaWdnZXIgPSBhY3Rpb25UYXJnZXQuaXNCb3VuZCA/IGRhdGFGaWVsZEZvckFjdGlvbi5BY3Rpb24udG9TdHJpbmcoKSA6IGFjdGlvblRhcmdldC5uYW1lLFxuXHRcdFx0Ly8gV2UgcmVtb3ZlIHRoZSBvdmVybG9hZCBwYXJ0IGZyb20gdGhlIGFjdGlvbi4gbGlrZSAnY29tLmNfc29tX3NkLmJvdW5kQWN0aW9uKGNvbS5jX3NvbV9zZC5yZXR1cm5UeXBlKScsIHdlIG5lZWQgb25seSAnY29tLmNfc29tX3NkLmJvdW5kQWN0aW9uJyBhcyB2ZXJiLlxuXHRcdFx0dmVyYiA9IGFjdGlvblRvVHJpZ2dlci5yZXBsYWNlKC9cXCgoLiopXFwpJC8sIFwiXCIpLFxuXHRcdFx0dGl0bGUgPSBkYXRhRmllbGRGb3JBY3Rpb24uTGFiZWw/LnRvU3RyaW5nKCkgPz8gYWN0aW9uVGFyZ2V0Lm5hbWUsXG5cdFx0XHRzdHlsZSA9IHRoaXMuZ2V0QWN0aW9uU3R5bGUoZGF0YUZpZWxkRm9yQWN0aW9uKSxcblx0XHRcdGRhdGEgPSB0aGlzLmdldEFjdGlvbkRhdGEoYWN0aW9uVGFyZ2V0KTtcblxuXHRcdHJldHVybiB7IHZlcmIsIHRpdGxlLCBzdHlsZSwgZGF0YSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhY3Rpb24gc2V0cyBmb3IgYWRhcHRpdmUgY2FyZC5cblx0ICpcblx0ICogQXMgb2Ygbm93LCBvbmx5IGNvbnNpZGVyaW5nICdBbm5vdGF0ZWQgQWN0aW9ucycuXG5cdCAqIE5vdCBzdXBwb3J0ZWQ6XG5cdCAqIDEuIFN0YW5kYXJkIGFjdGlvbnNcblx0ICogMi4gTWFuaWZlc3QgYWN0aW9uc1xuXHQgKlxuXHQgKiBQcmVzZW50bHksIG9ubHkgZmlyc3QgdHdvIGFjdGlvbnMgc2hhbGwgYmUgcGFzc2VkIHRvIHRoZSBhZGFwdGl2ZSBjYXJkLlxuXHQgKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGJ5IEFycmF5LnJlZHVjZS5cblx0ICogQHBhcmFtIGFkYXB0aXZlQ2FyZEFjdGlvbnMgQWN0aW9ucyBhcnJheSB0byBiZSByZXR1cm5lZC5cblx0ICogQHBhcmFtIGFjdGlvbkVsZW1lbnQgRGF0YUZpZWxkRm9yQWN0aW9uIHRoYXQgbmVlZHMgdG8gYmUgY29udmVydGVkLlxuXHQgKiBAcmV0dXJucyBBbiBBcnJheSBvZiBBY3Rpb25zIHRoYXQgbmVlZCB0byBiZSBjb25jYXRlbmF0ZWQgdG8gY2FyZCBib2R5LlxuXHQgKi9cblx0cHJpdmF0ZSBnZXRBY3Rpb25JbkFkYXB0aXZlQ2FyZEZvcm1hdChhZGFwdGl2ZUNhcmRBY3Rpb25zOiBJQUNBY3Rpb25bXSwgYWN0aW9uRWxlbWVudDogQWN0aW9uQ29uZmlnRWxlbWVudCk6IElBQ0FjdGlvbltdIHtcblx0XHRpZiAoYWRhcHRpdmVDYXJkQWN0aW9ucy5sZW5ndGggPiAxKSB7XG5cdFx0XHQvLyBOb3RlOiBXZSBvbmx5IGV4cGVjdCBmaXJzdCAyIGFjdGlvbnMgaW4gTVMgdGVhbXMgYWRhcHRpdmUgY2FyZHMuIFRoaXMgbWlnaHQgY2hhbmdlIGluIHRoZSBmdXR1cmUuXG5cdFx0XHRyZXR1cm4gYWRhcHRpdmVDYXJkQWN0aW9ucztcblx0XHR9XG5cblx0XHRjb25zdCB7IGFjdGlvbjogZGF0YUZpZWxkRm9yQWN0aW9uLCB0aXRsZTogdGl0bGVPdmVycmlkZSB9ID0gYWN0aW9uRWxlbWVudDtcblx0XHRjb25zdCB7IEFjdGlvblRhcmdldDogYWN0aW9uVGFyZ2V0IH0gPSBkYXRhRmllbGRGb3JBY3Rpb247XG5cblx0XHQvLyBObyBBY3Rpb24gaW4gY2FzZTpcblx0XHQvLyAxLiBhY3Rpb25UYXJnZXQgbm90IGF2YWlsYWJsZS5cblx0XHQvLyAxLiBzdGF0aWNhbGx5IG5vdCB2aXNpYmxlLlxuXHRcdC8vIDIuIHN0YXRpY2FsbHkgZGlzYWJsZWQuXG5cdFx0Ly8gMy4gYWN0aW9uIGlzIHN0YXRpYyBhY3Rpb24uXG5cdFx0aWYgKCFhY3Rpb25UYXJnZXQpIHtcblx0XHRcdHJldHVybiBhZGFwdGl2ZUNhcmRBY3Rpb25zO1xuXHRcdH1cblxuXHRcdGNvbnN0IGlzQWN0aW9uVmlzaWJsZSA9IGFjdGlvbkVsZW1lbnQuaXNWaXNpYmxlID8/IHRoaXMuZ2V0VmlzaWJsZUZvckFkYXB0aXZlQ2FyZEFjdGlvbihkYXRhRmllbGRGb3JBY3Rpb24pID8/IHVuZGVmaW5lZDtcblx0XHRjb25zdCBpc0VuYWJsZWQgPSB0aGlzLmdldEVuYWJsZWRGb3JBZGFwdGl2ZUNhcmRBY3Rpb24oYWN0aW9uVGFyZ2V0KSA/PyB1bmRlZmluZWQ7XG5cblx0XHQvLyBOT1RFOiAnJHdoZW4nIGlzIHVzZWQgdG8gY29udHJvbCB2aXNpYmlsaXR5IG9mIGFjdGlvbnMuIExvb2tzIGxpa2UgdGhlIHZhbHVlIG5lZWRzIHRvIGFsd2F5cyBiZSBhbiBleHByZXNzaW9uIG9mIGZvcm1hdCAnJHs8ZXhwPn0nLlxuXHRcdC8vIFNvLCBkaXJlY3Qgc3RyaW5ncyBsaWtlICd0cnVlJyBhbmQgJ2ZhbHNlJyB3aGljaCBhcmUgZXhwZWN0ZWQgdG8gd29yayBmb3Igbm9ybWFsIGNhcmQgcHJvcGVydGllcyBkb24ndCB3b3JrIGZvciAkd2hlbi5cblx0XHQvLyBXZSB3b3VsZCBuZWVkIHRvIGhhbmRsZSBzdWNoIGNhc2VzIGluZGVwZW5kZW50bHkuXG5cdFx0bGV0IHdoZW5WYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGlmICh0eXBlb2YgaXNBY3Rpb25WaXNpYmxlID09PSBcImJvb2xlYW5cIiAmJiBpc0FjdGlvblZpc2libGUgPT09IGZhbHNlKSB7XG5cdFx0XHRyZXR1cm4gYWRhcHRpdmVDYXJkQWN0aW9ucztcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBpc0FjdGlvblZpc2libGUgPT09IFwic3RyaW5nXCIgJiYgaXNBY3Rpb25WaXNpYmxlICYmIC9eXFwkXFx7LipcXH0vaS50ZXN0KGlzQWN0aW9uVmlzaWJsZSkpIHtcblx0XHRcdC8vIHZpc2libGUgaXMgYW4gZXhwcmVzc2lvbiBvZiBmb3JtYXQgJyR7PGV4cD59Jy5cblx0XHRcdHdoZW5WYWx1ZSA9IGlzQWN0aW9uVmlzaWJsZTtcblx0XHR9IGVsc2UgaWYgKGlzQWN0aW9uVmlzaWJsZSA9PT0gXCJ0cnVlXCIpIHtcblx0XHRcdC8vIHN0YXRpY2FsbHkgdmlzaWJsZVxuXHRcdFx0d2hlblZhbHVlID0gdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSBpZiAoaXNBY3Rpb25WaXNpYmxlID09PSBcImZhbHNlXCIpIHtcblx0XHRcdC8vIHN0YXRpY2FsbHkgbm90IHZpc2libGVcblx0XHRcdHJldHVybiBhZGFwdGl2ZUNhcmRBY3Rpb25zO1xuXHRcdH1cblxuXHRcdGlmIChpc0VuYWJsZWQgPT09IFwiZmFsc2VcIiB8fCB0aGlzLmlzU3RhdGljQWN0aW9uKGFjdGlvblRhcmdldCkgfHwgdGhpcy5pc0NvcHlBY3Rpb24oZGF0YUZpZWxkRm9yQWN0aW9uKSkge1xuXHRcdFx0cmV0dXJuIGFkYXB0aXZlQ2FyZEFjdGlvbnM7XG5cdFx0fVxuXG5cdFx0Y29uc3QgYWN0aW9uID0gdGhpcy5nZXRBY3Rpb24oZGF0YUZpZWxkRm9yQWN0aW9uKTtcblx0XHRpZiAoYWN0aW9uKSB7XG5cdFx0XHRjb25zdCB2aXN1YWxVcGRhdGVzID0ge1xuXHRcdFx0XHRpc0VuYWJsZWQsXG5cdFx0XHRcdCR3aGVuOiB3aGVuVmFsdWUsXG5cdFx0XHRcdHRpdGxlOiB0aXRsZU92ZXJyaWRlID8/IGFjdGlvbi50aXRsZVxuXHRcdFx0fTtcblx0XHRcdGFkYXB0aXZlQ2FyZEFjdGlvbnMucHVzaCh7IC4uLmFjdGlvbiwgLi4udmlzdWFsVXBkYXRlcyB9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gYWRhcHRpdmVDYXJkQWN0aW9ucztcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIERhdGFGaWVsZEZvckFjdGlvbnMgZm9yIGFkYXB0aXZlIGNhcmQuXG5cdCAqIEBwYXJhbSBlbnRpdHlUeXBlIEVudGl0eVR5cGUuXG5cdCAqIEByZXR1cm5zIERhdGFGaWVsZEZvckFjdGlvbnMgdGhhdCBhcmUgYXBwbGljYWJsZSB0byBiZSBzaG93biBpbiB0aGUgYWRhcHRpdmUgY2FyZC5cblx0ICovXG5cdHByaXZhdGUgZ2V0QW5ub3RhdGVkSGVhZGVyQWN0aW9ucyhlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogRGF0YUZpZWxkRm9yQWN0aW9uW10ge1xuXHRcdGNvbnN0IGlkZW50aWZpY2F0aW9uQW5ub3RhdGlvbiA9IGVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LklkZW50aWZpY2F0aW9uO1xuXHRcdHJldHVybiBpZGVudGlmaWNhdGlvbkFubm90YXRpb25cblx0XHRcdD8gKGlkZW50aWZpY2F0aW9uQW5ub3RhdGlvbi5maWx0ZXIoXG5cdFx0XHRcdFx0KGRhdGFGaWVsZCkgPT4gZGF0YUZpZWxkLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24gJiYgIWRhdGFGaWVsZC5EZXRlcm1pbmluZ1xuXHRcdFx0ICApIGFzIERhdGFGaWVsZEZvckFjdGlvbltdKVxuXHRcdFx0OiBbXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgY29uZmlndXJlZCBhY3Rpb25zLlxuXHQgKiBAcGFyYW0gYW5ub3RhdGVkQWN0aW9ucyBBbm5vdGF0ZWQgYWN0aW9ucyBmcm9tIHRoZSBjb252ZXJ0ZWQgbWV0YWRhdGEuXG5cdCAqIEByZXR1cm5zIEFjdGlvbkNvbmZpZ0VsZW1lbnRzIHRvIGNyZWF0ZSBhY3Rpb25zIGZvciBjYXJkIGRlZmluaXRpb24uXG5cdCAqL1xuXHRwcml2YXRlIGdldENvbmZpZ3VyZWRBY3Rpb25zKGFubm90YXRlZEFjdGlvbnM6IERhdGFGaWVsZEZvckFjdGlvbltdKTogQWN0aW9uQ29uZmlnRWxlbWVudFtdIHtcblx0XHQvLyBBY3Rpb25zIGZyb20gYW5ub3RhdGlvbnMuXG5cdFx0Y29uc3QgYWN0aW9uQ29uZmlncyA9IHRoaXMuZ2V0Q2FyZENvbmZpZ3VyYXRpb25CeUtleShcImFjdGlvbnNcIik7XG5cdFx0Y29uc3QgYW5ub3RhdGVkQWN0aW9uRWxlbWVudHMgPSBhbm5vdGF0ZWRBY3Rpb25zLm1hcChcblx0XHRcdChhY3Rpb24pID0+ICh7IGtleTogYWN0aW9uICYmIGdldFN0YWJsZUlkUGFydEZyb21EYXRhRmllbGQoYWN0aW9uKSwgYWN0aW9uIH0pIGFzIEFjdGlvbkNvbmZpZ0VsZW1lbnRcblx0XHQpO1xuXHRcdGlmICghYWN0aW9uQ29uZmlncyB8fCBPYmplY3Qua2V5cyhhY3Rpb25Db25maWdzKS5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiBhbm5vdGF0ZWRBY3Rpb25FbGVtZW50cztcblx0XHR9XG5cblx0XHQvLyBDdXN0b20gQWN0aW9uIGNvbmZpZ3MuXG5cdFx0Y29uc3QgY3VzdG9tQ29uZmlnQWN0aW9uTmFtZXMgPSBPYmplY3Qua2V5cyhhY3Rpb25Db25maWdzKTtcblx0XHRjb25zdCBjdXN0b21BY3Rpb25Db25maWdFbGVtZW50cyA9IGN1c3RvbUNvbmZpZ0FjdGlvbk5hbWVzLnJlZHVjZSgoY3VzdG9tQWN0aW9uRWxlbWVudHMsIGN1c3RvbUNvbmZpZ0FjdGlvbktleSkgPT4ge1xuXHRcdFx0Y29uc3QgcmVsZXZhbnRBY3Rpb25FbGVtZW50ID0gYW5ub3RhdGVkQWN0aW9uRWxlbWVudHMuZmluZCgoYWN0aW9uRWxlbWVudCkgPT4gYWN0aW9uRWxlbWVudC5rZXkgPT09IGN1c3RvbUNvbmZpZ0FjdGlvbktleSk7XG5cblx0XHRcdGlmIChyZWxldmFudEFjdGlvbkVsZW1lbnQpIHtcblx0XHRcdFx0Y3VzdG9tQWN0aW9uRWxlbWVudHNbY3VzdG9tQ29uZmlnQWN0aW9uS2V5XSA9IHtcblx0XHRcdFx0XHRrZXk6IGN1c3RvbUNvbmZpZ0FjdGlvbktleSxcblx0XHRcdFx0XHRhY3Rpb246IHJlbGV2YW50QWN0aW9uRWxlbWVudC5hY3Rpb24sXG5cdFx0XHRcdFx0cG9zaXRpb246IHtcblx0XHRcdFx0XHRcdHBsYWNlbWVudDogUGxhY2VtZW50LkFmdGVyXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHQuLi5hY3Rpb25Db25maWdzW2N1c3RvbUNvbmZpZ0FjdGlvbktleV1cblx0XHRcdFx0fTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGN1c3RvbUFjdGlvbkVsZW1lbnRzO1xuXHRcdH0sIHt9IGFzIEludGVybmFsQ3VzdG9tQWN0aW9uRWxlbWVudHMpO1xuXG5cdFx0Ly8gRmluYWwgYWN0aW9uIGVsZW1lbnRzXG5cdFx0Y29uc3QgYWN0aW9uT3ZlcndyaXRlQ29uZmlnID0ge1xuXHRcdFx0dGl0bGU6IE92ZXJyaWRlVHlwZS5vdmVyd3JpdGUsXG5cdFx0XHRwb3NpdGlvbjogT3ZlcnJpZGVUeXBlLm92ZXJ3cml0ZSxcblx0XHRcdGlzVmlzaWJsZTogT3ZlcnJpZGVUeXBlLm92ZXJ3cml0ZVxuXHRcdH07XG5cdFx0cmV0dXJuIGluc2VydEN1c3RvbUVsZW1lbnRzKGFubm90YXRlZEFjdGlvbkVsZW1lbnRzLCBjdXN0b21BY3Rpb25Db25maWdFbGVtZW50cywgYWN0aW9uT3ZlcndyaXRlQ29uZmlnKTtcblx0fVxuXG5cdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblx0LyogRnVuY3Rpb25zIGZvciBjcmVhdGluZyB0ZW1wbGF0ZSBiaW5kaW5ncyBhbmQgZ2V0dGluZyBhY3Rpb24gcHJvcGVydGllcyAqL1xuXHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblx0LyoqXG5cdCAqIEdldCBhY3Rpb24gdmlzaWJpbGl0eS5cblx0ICogQHBhcmFtIGRhdGFGaWVsZEZvckFjdGlvbiBEYXRhRmllbGRGb3JBY3Rpb24gYW5ub3RhdGlvblxuXHQgKiBAcmV0dXJucyBCb29sZWFuXG5cdCAqL1xuXHRwcml2YXRlIGdldFZpc2libGVGb3JBZGFwdGl2ZUNhcmRBY3Rpb24oZGF0YUZpZWxkRm9yQWN0aW9uOiBEYXRhRmllbGRGb3JBY3Rpb24pOiBDb21waWxlZEFkYXB0aXZlQ2FyZEV4cHJlc3Npb24ge1xuXHRcdGNvbnN0IHZpc2liaWxpdHlFeHAgPSBpc1Zpc2libGUoZGF0YUZpZWxkRm9yQWN0aW9uKTtcblx0XHRyZXR1cm4gdGhpcy51cGRhdGVQYXRoc0FuZEdldENvbXBpbGVkRXhwcmVzc2lvbih2aXNpYmlsaXR5RXhwKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYWN0aW9uIHN0eWxlIGZvciB0aGUgYWN0aW9uIGJ1dHRvbi5cblx0ICogQHBhcmFtIGRhdGFGaWVsZEZvckFjdGlvbiBEYXRhRmllbGRGb3JBY3Rpb24gYW5ub3RhdGlvblxuXHQgKiBAcmV0dXJucyBTdHlsZSBvZiB0aGUgYWN0aW9uIGJ1dHRvblxuXHQgKi9cblx0cHJpdmF0ZSBnZXRBY3Rpb25TdHlsZShkYXRhRmllbGRGb3JBY3Rpb246IERhdGFGaWVsZEZvckFjdGlvbik6IEFDU3R5bGUge1xuXHRcdC8vIFRPRE86IGNvbXBpbGUgdG8gYWRhcHRpdmUgY2FyZCBiaW5kaW5nIHN0cmluZyBmb3IgZHluYW1pYyBhbm5vdGF0aW9uLlxuXHRcdGxldCBzdHlsZSA9IEFDU3R5bGUuRGVmYXVsdDtcblx0XHRjb25zdCBjcml0aWNhbGl0eSA9IGRhdGFGaWVsZEZvckFjdGlvbi5Dcml0aWNhbGl0eTtcblx0XHRpZiAoY3JpdGljYWxpdHkgJiYgdHlwZW9mIGNyaXRpY2FsaXR5ID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRzd2l0Y2ggKGNyaXRpY2FsaXR5KSB7XG5cdFx0XHRcdGNhc2UgXCJVSS5Dcml0aWNhbGl0eVR5cGUvUG9zaXRpdmVcIjpcblx0XHRcdFx0XHRzdHlsZSA9IEFDU3R5bGUuUG9zaXRpdmU7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJVSS5Dcml0aWNhbGl0eVR5cGUvTmVnYXRpdmVcIjpcblx0XHRcdFx0XHRzdHlsZSA9IEFDU3R5bGUuRGVzdHJ1Y3RpdmU7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0c3R5bGUgPSBBQ1N0eWxlLkRlZmF1bHQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBzdHlsZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVjayBpZiBhY3Rpb24gaXMgY3JpdGljYWwuXG5cdCAqIEBwYXJhbSBhY3Rpb25UYXJnZXQgQWN0aW9uIGRlZmluaXRpb24uXG5cdCAqIEByZXR1cm5zIEJvb2xlYW5cblx0ICovXG5cdHByaXZhdGUgZ2V0SXNDcml0aWNhbEZvckFkYXB0aXZlQ2FyZEFjdGlvbihhY3Rpb25UYXJnZXQ6IEFjdGlvbik6IENvbXBpbGVkQWRhcHRpdmVDYXJkRXhwcmVzc2lvbiB7XG5cdFx0Y29uc3QgaXNBY3Rpb25Dcml0aWNhbCA9IGdldElzQWN0aW9uQ3JpdGljYWxFeHByZXNzaW9uKGFjdGlvblRhcmdldCwgdGhpcy5jb252ZXJ0ZWRUeXBlcyk7XG5cdFx0cmV0dXJuIHRoaXMudXBkYXRlUGF0aHNBbmRHZXRDb21waWxlZEV4cHJlc3Npb24oaXNBY3Rpb25Dcml0aWNhbCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGFjdGlvbiBlbmFibGVtZW50LlxuXHQgKiBAcGFyYW0gYWN0aW9uVGFyZ2V0IEFjdGlvbiBkZWZpbml0aW9uLlxuXHQgKiBAcmV0dXJucyBCb29sZWFuXG5cdCAqL1xuXHRwcml2YXRlIGdldEVuYWJsZWRGb3JBZGFwdGl2ZUNhcmRBY3Rpb24oYWN0aW9uVGFyZ2V0OiBBY3Rpb24pOiBDb21waWxlZEFkYXB0aXZlQ2FyZEV4cHJlc3Npb24ge1xuXHRcdGNvbnN0IGVuYWJsZWRFeHByZXNzaW9uID0gZ2V0QWN0aW9uRW5hYmxlZEV4cHJlc3Npb24oYWN0aW9uVGFyZ2V0LCB0aGlzLmNvbnZlcnRlZFR5cGVzKTtcblx0XHRyZXR1cm4gdGhpcy51cGRhdGVQYXRoc0FuZEdldENvbXBpbGVkRXhwcmVzc2lvbihlbmFibGVkRXhwcmVzc2lvbik7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2sgZm9yIHN0YXRpYyBhY3Rpb24uXG5cdCAqIEBwYXJhbSBhY3Rpb25UYXJnZXQgQWN0aW9uIGRlZmluaXRpb24uXG5cdCAqIEByZXR1cm5zIEJvb2xlYW4uXG5cdCAqL1xuXHRwcml2YXRlIGlzU3RhdGljQWN0aW9uKGFjdGlvblRhcmdldDogQWN0aW9uKTogYm9vbGVhbiB7XG5cdFx0Y29uc3QgeyBpc0JvdW5kLCBwYXJhbWV0ZXJzIH0gPSBhY3Rpb25UYXJnZXQ7XG5cdFx0cmV0dXJuIGlzQm91bmQgJiYgcGFyYW1ldGVyc1swXSAmJiBwYXJhbWV0ZXJzWzBdLmlzQ29sbGVjdGlvbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVjayBmb3IgY29weSBhY3Rpb24uXG5cdCAqIEBwYXJhbSBkYXRhRmllbGQgQWN0aW9uIGRlZmluaXRpb24uXG5cdCAqIEByZXR1cm5zIEJvb2xlYW4uXG5cdCAqL1xuXHRwcml2YXRlIGlzQ29weUFjdGlvbihkYXRhRmllbGQ6IERhdGFGaWVsZEZvckFjdGlvbik6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBkYXRhRmllbGQuYW5ub3RhdGlvbnM/LlVJPy5Jc0NvcHlBY3Rpb24/LnZhbHVlT2YoKSA9PT0gdHJ1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVjayBpZiBwYXJhbWV0ZXIgaW5wdXQgaXMgcmVxdWlyZWQgZm9yIGFjdGlvbiBleGVjdXRpb24uXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXIgQWN0aW9uIHBhcmFtZXRlci5cblx0ICogQHJldHVybnMgQm9vbGVhblxuXHQgKi9cblx0cHJpdmF0ZSBnZXRSZXF1aXJlZChwYXJhbWV0ZXI6IEFjdGlvblBhcmFtZXRlcik6IENvbXBpbGVkQWRhcHRpdmVDYXJkRXhwcmVzc2lvbiB7XG5cdFx0Y29uc3QgZmllbGRDb250cm9sRXhwcmVzc2lvbiA9IGlzUmVxdWlyZWRFeHByZXNzaW9uKHBhcmFtZXRlcik7XG5cdFx0cmV0dXJuIHRoaXMudXBkYXRlUGF0aHNBbmRHZXRDb21waWxlZEV4cHJlc3Npb24oZmllbGRDb250cm9sRXhwcmVzc2lvbik7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUF5Q1lBLE9BQU8sMEJBQVBBLE9BQU87SUFBUEEsT0FBTztJ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RUFBa0M7TUFDaEcsTUFBTXFHLGdCQUFnQixHQUFHQyw2QkFBNkIsQ0FBQ3RHLFlBQVksRUFBRSxJQUFJLENBQUNyQyxjQUFjLENBQUM7TUFDekYsT0FBTyxJQUFJLENBQUNxSSxtQ0FBbUMsQ0FBQ0ssZ0JBQWdCLENBQUM7SUFDbEU7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUFqSCxNQUFBLENBS1F1RSwrQkFBK0IsR0FBdkMsU0FBUUEsK0JBQStCQSxDQUFDM0QsWUFBb0IsRUFBa0M7TUFDN0YsTUFBTXVHLGlCQUFpQixHQUFHQywwQkFBMEIsQ0FBQ3hHLFlBQVksRUFBRSxJQUFJLENBQUNyQyxjQUFjLENBQUM7TUFDdkYsT0FBTyxJQUFJLENBQUNxSSxtQ0FBbUMsQ0FBQ08saUJBQWlCLENBQUM7SUFDbkU7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUFuSCxNQUFBLENBS1EwRSxjQUFjLEdBQXRCLFNBQVFBLGNBQWNBLENBQUM5RCxZQUFvQixFQUFXO01BQ3JELE1BQU07UUFBRVAsT0FBTztRQUFFRTtNQUFXLENBQUMsR0FBR0ssWUFBWTtNQUM1QyxPQUFPUCxPQUFPLElBQUlFLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSUEsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDOEcsWUFBWTtJQUM5RDs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQXJILE1BQUEsQ0FLUTJFLFlBQVksR0FBcEIsU0FBUUEsWUFBWUEsQ0FBQ08sU0FBNkIsRUFBVztNQUM1RCxPQUFPQSxTQUFTLENBQUNoRSxXQUFXLEVBQUU2RCxFQUFFLEVBQUV1QyxZQUFZLEVBQUVDLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSTtJQUNuRTs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQXZILE1BQUEsQ0FLUTRCLFdBQVcsR0FBbkIsU0FBUUEsV0FBV0EsQ0FBQ2QsU0FBMEIsRUFBa0M7TUFDL0UsTUFBTTBHLHNCQUFzQixHQUFHQyxvQkFBb0IsQ0FBQzNHLFNBQVMsQ0FBQztNQUM5RCxPQUFPLElBQUksQ0FBQzhGLG1DQUFtQyxDQUFDWSxzQkFBc0IsQ0FBQztJQUN4RSxDQUFDO0lBQUEsT0FBQW5KLGFBQUE7RUFBQSxFQTVaeUNxSix1QkFBdUI7RUFBQXpKLFFBQUEsR0FBQUksYUFBQTtFQUFBLE9BQUFKLFFBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -12,7 +12,7 @@ import {
12
12
  import type { CompiledAdaptiveCardExpression } from "sap/fe/core/helpers/AdaptiveCardExpressionCompiler";
13
13
  import { getStableIdPartFromDataField } from "sap/fe/core/helpers/StableIdHelper";
14
14
  import { getIsActionCriticalExpression } from "sap/fe/core/templating/ActionHelper";
15
- import { isActionParameterRequiredExpression } from "sap/fe/core/templating/FieldControlHelper";
15
+ import { isRequiredExpression } from "sap/fe/core/templating/FieldControlHelper";
16
16
  import { isMultiLineText } from "sap/fe/core/templating/PropertyHelper";
17
17
  import { getActionEnabledExpression, isVisible } from "sap/fe/core/templating/UIFormatters";
18
18
  import BaseCardContentProvider, { type CardConfig } from "sap/fe/templates/ObjectPage/card/BaseCardContentProvider";
@@ -126,7 +126,7 @@ export default class HeaderActions extends BaseCardContentProvider<HeaderActions
126
126
  type: ACInput.Date,
127
127
  id: parameter.name,
128
128
  label: labelTerm?.toString() ?? parameter.name,
129
- isRequired: this.getRequired(parameter, actionTarget) ?? undefined
129
+ isRequired: this.getRequired(parameter) ?? undefined
130
130
  };
131
131
  elements.push(inputElement);
132
132
  } else {
@@ -134,7 +134,7 @@ export default class HeaderActions extends BaseCardContentProvider<HeaderActions
134
134
  type: ACInput.Text,
135
135
  id: parameter.name,
136
136
  label: labelTerm?.toString() ?? parameter.name,
137
- isRequired: this.getRequired(parameter, actionTarget) ?? undefined,
137
+ isRequired: this.getRequired(parameter) ?? undefined,
138
138
  isMultiline: isMultiLineText(parameter) ?? undefined
139
139
  };
140
140
  elements.push(inputElement);
@@ -465,11 +465,10 @@ export default class HeaderActions extends BaseCardContentProvider<HeaderActions
465
465
  /**
466
466
  * Check if parameter input is required for action execution.
467
467
  * @param parameter Action parameter.
468
- * @param actionTarget
469
468
  * @returns Boolean
470
469
  */
471
- private getRequired(parameter: ActionParameter, actionTarget: Action): CompiledAdaptiveCardExpression {
472
- const fieldControlExpression = isActionParameterRequiredExpression(parameter, actionTarget, this.convertedTypes);
470
+ private getRequired(parameter: ActionParameter): CompiledAdaptiveCardExpression {
471
+ const fieldControlExpression = isRequiredExpression(parameter);
473
472
  return this.updatePathsAndGetCompiledExpression(fieldControlExpression);
474
473
  }
475
474
  }
@@ -4,7 +4,7 @@
4
4
  "id": "sap.fe.templates.ObjectPage",
5
5
  "type": "component",
6
6
  "applicationVersion": {
7
- "version": "1.136.12"
7
+ "version": "1.136.15"
8
8
  },
9
9
  "title": "Object Page",
10
10
  "tags": {
@@ -17,6 +17,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/macros/insight
17
17
  const controller = view.getController();
18
18
  const appComponent = controller.getOwnerComponent().getAppComponent();
19
19
  const isEditable = CommonUtils.getIsEditable(view);
20
+ await controller.pageReady.waitPageReady();
20
21
  const card = !isEditable ? await appComponent.getCollaborationManagerService().getDesignTimeCard(RetrieveCardTypes.INTEGRATION) : undefined;
21
22
  if (card) {
22
23
  const onAddCardToCollaborationManagerCallback = () => {
@@ -41,4 +42,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/macros/insight
41
42
  };
42
43
  return CollaborationManagerOverride;
43
44
  }, false);
44
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXRyaWV2ZUNhcmRUeXBlcyIsIklOVEVHUkFUSU9OIiwiX2V4cG9ydHMiLCJDb2xsYWJvcmF0aW9uTWFuYWdlck92ZXJyaWRlIiwiY29sbGVjdEF2YWlsYWJsZUNhcmRzIiwiY2FyZHMiLCJ2aWV3IiwiYmFzZSIsImdldFZpZXciLCJjb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsImFwcENvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50IiwiZ2V0QXBwQ29tcG9uZW50IiwiaXNFZGl0YWJsZSIsIkNvbW1vblV0aWxzIiwiZ2V0SXNFZGl0YWJsZSIsImNhcmQiLCJnZXRDb2xsYWJvcmF0aW9uTWFuYWdlclNlcnZpY2UiLCJnZXREZXNpZ25UaW1lQ2FyZCIsInVuZGVmaW5lZCIsIm9uQWRkQ2FyZFRvQ29sbGFib3JhdGlvbk1hbmFnZXJDYWxsYmFjayIsInB1Ymxpc2hDYXJkIiwiZSIsInNob3dHZW5lcmljRXJyb3JNZXNzYWdlIiwiTG9nIiwiZXJyb3IiLCJwYWdlVGl0bGVJbmZvcm1hdGlvbiIsIl9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbiIsInB1c2giLCJ0aXRsZSIsInN1YnRpdGxlIiwiY2FsbGJhY2siXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpb25NYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHsgdHlwZSBSZXRyaWV2ZUNhcmRUeXBlIH0gZnJvbSBcInNhcC9jYXJkcy9hcC9jb21tb24vc2VydmljZXMvUmV0cmlldmVDYXJkXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBDb2xsYWJvcmF0aW9uTWFuYWdlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY2FyZHMvQ29sbGFib3JhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCB7IHR5cGUgV3JhcHBlZENhcmQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvQ29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHsgc2hvd0dlbmVyaWNFcnJvck1lc3NhZ2UgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnNpZ2h0cy9Db21tb25JbnNpZ2h0c0hlbHBlclwiO1xuaW1wb3J0IHsgdHlwZSBDYXJkTWFuaWZlc3QgfSBmcm9tIFwic2FwL2luc2lnaHRzL0NhcmRIZWxwZXJcIjtcbmV4cG9ydCBjb25zdCBSZXRyaWV2ZUNhcmRUeXBlczogUmVjb3JkPHN0cmluZywgUmV0cmlldmVDYXJkVHlwZT4gPSB7XG5cdElOVEVHUkFUSU9OOiBcImludGVncmF0aW9uXCJcbn07XG5cbmNvbnN0IENvbGxhYm9yYXRpb25NYW5hZ2VyT3ZlcnJpZGUgPSB7XG5cdGFzeW5jIGNvbGxlY3RBdmFpbGFibGVDYXJkcyh0aGlzOiBDb2xsYWJvcmF0aW9uTWFuYWdlciwgY2FyZHM6IFdyYXBwZWRDYXJkW10pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCB2aWV3ID0gdGhpcy5iYXNlLmdldFZpZXcoKTtcblx0XHRjb25zdCBjb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCk7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gY29udHJvbGxlci5nZXRPd25lckNvbXBvbmVudCgpLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdGNvbnN0IGlzRWRpdGFibGUgPSBDb21tb25VdGlscy5nZXRJc0VkaXRhYmxlKHZpZXcpO1xuXHRcdGNvbnN0IGNhcmQgPSAhaXNFZGl0YWJsZVxuXHRcdFx0PyBhd2FpdCBhcHBDb21wb25lbnQuZ2V0Q29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlKCkuZ2V0RGVzaWduVGltZUNhcmQoUmV0cmlldmVDYXJkVHlwZXMuSU5URUdSQVRJT04pXG5cdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRpZiAoY2FyZCkge1xuXHRcdFx0Y29uc3Qgb25BZGRDYXJkVG9Db2xsYWJvcmF0aW9uTWFuYWdlckNhbGxiYWNrID0gKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGlmIChjYXJkKSB7XG5cdFx0XHRcdFx0XHRhcHBDb21wb25lbnQuZ2V0Q29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlKCkucHVibGlzaENhcmQoY2FyZCBhcyBDYXJkTWFuaWZlc3QpO1xuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdHNob3dHZW5lcmljRXJyb3JNZXNzYWdlKHZpZXcpO1xuXHRcdFx0XHRcdExvZy5lcnJvcihlIGFzIHN0cmluZyk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRjb25zdCBwYWdlVGl0bGVJbmZvcm1hdGlvbiA9IGF3YWl0IGNvbnRyb2xsZXIuX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uKCk7XG5cdFx0XHRjYXJkcy5wdXNoKHtcblx0XHRcdFx0Y2FyZDogY2FyZCxcblx0XHRcdFx0dGl0bGU6IHBhZ2VUaXRsZUluZm9ybWF0aW9uLnN1YnRpdGxlIHx8IFwiXCIsXG5cdFx0XHRcdGNhbGxiYWNrOiBvbkFkZENhcmRUb0NvbGxhYm9yYXRpb25NYW5hZ2VyQ2FsbGJhY2tcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxufTtcbmV4cG9ydCBkZWZhdWx0IENvbGxhYm9yYXRpb25NYW5hZ2VyT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztFQU9PLE1BQU1BLGlCQUFtRCxHQUFHO0lBQ2xFQyxXQUFXLEVBQUU7RUFDZCxDQUFDO0VBQUNDLFFBQUEsQ0FBQUYsaUJBQUEsR0FBQUEsaUJBQUE7RUFFRixNQUFNRyw0QkFBNEIsR0FBRztJQUNwQyxNQUFNQyxxQkFBcUJBLENBQTZCQyxLQUFvQixFQUFpQjtNQUM1RixNQUFNQyxJQUFJLEdBQUcsSUFBSSxDQUFDQyxJQUFJLENBQUNDLE9BQU8sQ0FBQyxDQUFDO01BQ2hDLE1BQU1DLFVBQVUsR0FBR0gsSUFBSSxDQUFDSSxhQUFhLENBQUMsQ0FBQztNQUN2QyxNQUFNQyxZQUFZLEdBQUdGLFVBQVUsQ0FBQ0csaUJBQWlCLENBQUMsQ0FBQyxDQUFDQyxlQUFlLENBQUMsQ0FBQztNQUNyRSxNQUFNQyxVQUFVLEdBQUdDLFdBQVcsQ0FBQ0MsYUFBYSxDQUFDVixJQUFJLENBQUM7TUFDbEQsTUFBTVcsSUFBSSxHQUFHLENBQUNILFVBQVUsR0FDckIsTUFBTUgsWUFBWSxDQUFDTyw4QkFBOEIsQ0FBQyxDQUFDLENBQUNDLGlCQUFpQixDQUFDbkIsaUJBQWlCLENBQUNDLFdBQVcsQ0FBQyxHQUNwR21CLFNBQVM7TUFDWixJQUFJSCxJQUFJLEVBQUU7UUFDVCxNQUFNSSx1Q0FBdUMsR0FBR0EsQ0FBQSxLQUFZO1VBQzNELElBQUk7WUFDSCxJQUFJSixJQUFJLEVBQUU7Y0FDVE4sWUFBWSxDQUFDTyw4QkFBOEIsQ0FBQyxDQUFDLENBQUNJLFdBQVcsQ0FBQ0wsSUFBb0IsQ0FBQztjQUMvRTtZQUNEO1VBQ0QsQ0FBQyxDQUFDLE9BQU9NLENBQUMsRUFBRTtZQUNYQyx1QkFBdUIsQ0FBQ2xCLElBQUksQ0FBQztZQUM3Qm1CLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDSCxDQUFXLENBQUM7VUFDdkI7UUFDRCxDQUFDO1FBQ0QsTUFBTUksb0JBQW9CLEdBQUcsTUFBTWxCLFVBQVUsQ0FBQ21CLHdCQUF3QixDQUFDLENBQUM7UUFDeEV2QixLQUFLLENBQUN3QixJQUFJLENBQUM7VUFDVlosSUFBSSxFQUFFQSxJQUFJO1VBQ1ZhLEtBQUssRUFBRUgsb0JBQW9CLENBQUNJLFFBQVEsSUFBSSxFQUFFO1VBQzFDQyxRQUFRLEVBQUVYO1FBQ1gsQ0FBQyxDQUFDO01BQ0g7SUFDRDtFQUNELENBQUM7RUFBQyxPQUNhbEIsNEJBQTRCO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXRyaWV2ZUNhcmRUeXBlcyIsIklOVEVHUkFUSU9OIiwiX2V4cG9ydHMiLCJDb2xsYWJvcmF0aW9uTWFuYWdlck92ZXJyaWRlIiwiY29sbGVjdEF2YWlsYWJsZUNhcmRzIiwiY2FyZHMiLCJ2aWV3IiwiYmFzZSIsImdldFZpZXciLCJjb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsImFwcENvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50IiwiZ2V0QXBwQ29tcG9uZW50IiwiaXNFZGl0YWJsZSIsIkNvbW1vblV0aWxzIiwiZ2V0SXNFZGl0YWJsZSIsInBhZ2VSZWFkeSIsIndhaXRQYWdlUmVhZHkiLCJjYXJkIiwiZ2V0Q29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlIiwiZ2V0RGVzaWduVGltZUNhcmQiLCJ1bmRlZmluZWQiLCJvbkFkZENhcmRUb0NvbGxhYm9yYXRpb25NYW5hZ2VyQ2FsbGJhY2siLCJwdWJsaXNoQ2FyZCIsImUiLCJzaG93R2VuZXJpY0Vycm9yTWVzc2FnZSIsIkxvZyIsImVycm9yIiwicGFnZVRpdGxlSW5mb3JtYXRpb24iLCJfZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24iLCJwdXNoIiwidGl0bGUiLCJzdWJ0aXRsZSIsImNhbGxiYWNrIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDb2xsYWJvcmF0aW9uTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IHR5cGUgUmV0cmlldmVDYXJkVHlwZSB9IGZyb20gXCJzYXAvY2FyZHMvYXAvY29tbW9uL3NlcnZpY2VzL1JldHJpZXZlQ2FyZFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgQ29sbGFib3JhdGlvbk1hbmFnZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NhcmRzL0NvbGxhYm9yYXRpb25NYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIFdyYXBwZWRDYXJkIH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0NvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB7IHNob3dHZW5lcmljRXJyb3JNZXNzYWdlIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW5zaWdodHMvQ29tbW9uSW5zaWdodHNIZWxwZXJcIjtcbmltcG9ydCB7IHR5cGUgQ2FyZE1hbmlmZXN0IH0gZnJvbSBcInNhcC9pbnNpZ2h0cy9DYXJkSGVscGVyXCI7XG5leHBvcnQgY29uc3QgUmV0cmlldmVDYXJkVHlwZXM6IFJlY29yZDxzdHJpbmcsIFJldHJpZXZlQ2FyZFR5cGU+ID0ge1xuXHRJTlRFR1JBVElPTjogXCJpbnRlZ3JhdGlvblwiXG59O1xuXG5jb25zdCBDb2xsYWJvcmF0aW9uTWFuYWdlck92ZXJyaWRlID0ge1xuXHRhc3luYyBjb2xsZWN0QXZhaWxhYmxlQ2FyZHModGhpczogQ29sbGFib3JhdGlvbk1hbmFnZXIsIGNhcmRzOiBXcmFwcGVkQ2FyZFtdKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3QgdmlldyA9IHRoaXMuYmFzZS5nZXRWaWV3KCk7XG5cdFx0Y29uc3QgY29udHJvbGxlciA9IHZpZXcuZ2V0Q29udHJvbGxlcigpO1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IGNvbnRyb2xsZXIuZ2V0T3duZXJDb21wb25lbnQoKS5nZXRBcHBDb21wb25lbnQoKTtcblx0XHRjb25zdCBpc0VkaXRhYmxlID0gQ29tbW9uVXRpbHMuZ2V0SXNFZGl0YWJsZSh2aWV3KTtcblx0ICAgIGF3YWl0IGNvbnRyb2xsZXIucGFnZVJlYWR5LndhaXRQYWdlUmVhZHkoKTtcblx0XHRjb25zdCBjYXJkID0gIWlzRWRpdGFibGVcblx0XHRcdD8gYXdhaXQgYXBwQ29tcG9uZW50LmdldENvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZSgpLmdldERlc2lnblRpbWVDYXJkKFJldHJpZXZlQ2FyZFR5cGVzLklOVEVHUkFUSU9OKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0aWYgKGNhcmQpIHtcblx0XHRcdGNvbnN0IG9uQWRkQ2FyZFRvQ29sbGFib3JhdGlvbk1hbmFnZXJDYWxsYmFjayA9ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRpZiAoY2FyZCkge1xuXHRcdFx0XHRcdFx0YXBwQ29tcG9uZW50LmdldENvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZSgpLnB1Ymxpc2hDYXJkKGNhcmQgYXMgQ2FyZE1hbmlmZXN0KTtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRzaG93R2VuZXJpY0Vycm9yTWVzc2FnZSh2aWV3KTtcblx0XHRcdFx0XHRMb2cuZXJyb3IoZSBhcyBzdHJpbmcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3QgcGFnZVRpdGxlSW5mb3JtYXRpb24gPSBhd2FpdCBjb250cm9sbGVyLl9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbigpO1xuXHRcdFx0Y2FyZHMucHVzaCh7XG5cdFx0XHRcdGNhcmQ6IGNhcmQsXG5cdFx0XHRcdHRpdGxlOiBwYWdlVGl0bGVJbmZvcm1hdGlvbi5zdWJ0aXRsZSB8fCBcIlwiLFxuXHRcdFx0XHRjYWxsYmFjazogb25BZGRDYXJkVG9Db2xsYWJvcmF0aW9uTWFuYWdlckNhbGxiYWNrXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cbn07XG5leHBvcnQgZGVmYXVsdCBDb2xsYWJvcmF0aW9uTWFuYWdlck92ZXJyaWRlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7RUFPTyxNQUFNQSxpQkFBbUQsR0FBRztJQUNsRUMsV0FBVyxFQUFFO0VBQ2QsQ0FBQztFQUFDQyxRQUFBLENBQUFGLGlCQUFBLEdBQUFBLGlCQUFBO0VBRUYsTUFBTUcsNEJBQTRCLEdBQUc7SUFDcEMsTUFBTUMscUJBQXFCQSxDQUE2QkMsS0FBb0IsRUFBaUI7TUFDNUYsTUFBTUMsSUFBSSxHQUFHLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxPQUFPLENBQUMsQ0FBQztNQUNoQyxNQUFNQyxVQUFVLEdBQUdILElBQUksQ0FBQ0ksYUFBYSxDQUFDLENBQUM7TUFDdkMsTUFBTUMsWUFBWSxHQUFHRixVQUFVLENBQUNHLGlCQUFpQixDQUFDLENBQUMsQ0FBQ0MsZUFBZSxDQUFDLENBQUM7TUFDckUsTUFBTUMsVUFBVSxHQUFHQyxXQUFXLENBQUNDLGFBQWEsQ0FBQ1YsSUFBSSxDQUFDO01BQy9DLE1BQU1HLFVBQVUsQ0FBQ1EsU0FBUyxDQUFDQyxhQUFhLENBQUMsQ0FBQztNQUM3QyxNQUFNQyxJQUFJLEdBQUcsQ0FBQ0wsVUFBVSxHQUNyQixNQUFNSCxZQUFZLENBQUNTLDhCQUE4QixDQUFDLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUNyQixpQkFBaUIsQ0FBQ0MsV0FBVyxDQUFDLEdBQ3BHcUIsU0FBUztNQUNaLElBQUlILElBQUksRUFBRTtRQUNULE1BQU1JLHVDQUF1QyxHQUFHQSxDQUFBLEtBQVk7VUFDM0QsSUFBSTtZQUNILElBQUlKLElBQUksRUFBRTtjQUNUUixZQUFZLENBQUNTLDhCQUE4QixDQUFDLENBQUMsQ0FBQ0ksV0FBVyxDQUFDTCxJQUFvQixDQUFDO2NBQy9FO1lBQ0Q7VUFDRCxDQUFDLENBQUMsT0FBT00sQ0FBQyxFQUFFO1lBQ1hDLHVCQUF1QixDQUFDcEIsSUFBSSxDQUFDO1lBQzdCcUIsR0FBRyxDQUFDQyxLQUFLLENBQUNILENBQVcsQ0FBQztVQUN2QjtRQUNELENBQUM7UUFDRCxNQUFNSSxvQkFBb0IsR0FBRyxNQUFNcEIsVUFBVSxDQUFDcUIsd0JBQXdCLENBQUMsQ0FBQztRQUN4RXpCLEtBQUssQ0FBQzBCLElBQUksQ0FBQztVQUNWWixJQUFJLEVBQUVBLElBQUk7VUFDVmEsS0FBSyxFQUFFSCxvQkFBb0IsQ0FBQ0ksUUFBUSxJQUFJLEVBQUU7VUFDMUNDLFFBQVEsRUFBRVg7UUFDWCxDQUFDLENBQUM7TUFDSDtJQUNEO0VBQ0QsQ0FBQztFQUFDLE9BQ2FwQiw0QkFBNEI7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -15,6 +15,7 @@ const CollaborationManagerOverride = {
15
15
  const controller = view.getController();
16
16
  const appComponent = controller.getOwnerComponent().getAppComponent();
17
17
  const isEditable = CommonUtils.getIsEditable(view);
18
+ await controller.pageReady.waitPageReady();
18
19
  const card = !isEditable
19
20
  ? await appComponent.getCollaborationManagerService().getDesignTimeCard(RetrieveCardTypes.INTEGRATION)
20
21
  : undefined;
@@ -19,6 +19,7 @@
19
19
  filterBar="{= ${converterContext>filterBarId} ? ${converterContext>filterBarId} : undefined}"
20
20
  busy='{= "{ui>/busyLocal/"+${visualizationDefinition>annotation/id}+"}" }'
21
21
  listBindingChange=".handlers.onTableContextChange"
22
+ bindingUpdated=".handlers.onTableBindingUpdated"
22
23
  variantSelected=".handlers.onVariantSelected"
23
24
  variantSaved=".handlers.onVariantSaved"
24
25
  isAlp="{converterContext>hasMultiVisualizations}"
@@ -36,7 +36,7 @@ sap.ui.define(["sap/f/library", "sap/fe/core/library", "sap/fe/macros/library",
36
36
  controls: [],
37
37
  elements: [],
38
38
  // eslint-disable-next-line no-template-curly-in-string
39
- version: "1.136.12",
39
+ version: "1.136.15",
40
40
  noLibraryCSS: true
41
41
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
42
  });
@@ -68,7 +68,7 @@ T_COMMON_RATING_INDICATOR_AGGREGATE_COUNT=({0})
68
68
  T_COMMON_RATING_INDICATOR_TITLE_LABEL=\u0627\u0644\u062A\u0635\u0646\u064A\u0641
69
69
 
70
70
 
71
- T_PAGINATOR_CONTROL_PAGINATOR_TOOLTIP_UP=\u0627\u0644\u0635\u0646\u0641 \u0627\u0644\u0633\u0627\u0628\u0642
71
+ T_PAGINATOR_CONTROL_PAGINATOR_TOOLTIP_UP=\u0627\u0644\u0639\u0646\u0635\u0631 \u0627\u0644\u0633\u0627\u0628\u0642
72
72
 
73
73
  T_PAGINATOR_CONTROL_PAGINATOR_TOOLTIP_DOWN=\u0627\u0644\u0639\u0646\u0635\u0631 \u0627\u0644\u062A\u0627\u0644\u064A
74
74
 
@@ -14,7 +14,7 @@ C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_TITLE=Sesija istekla
14
14
 
15
15
  C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_MESSAGE=Va\u0161a sesija je istekla. Nesa\u010Duvane promjene su izgubljene.\nIzaberite OK za povratak na prethodnu stranicu.
16
16
 
17
- T_OP_RELATED_APPS=Povezane aplikacije
17
+ T_OP_RELATED_APPS=Povezane apl.
18
18
 
19
19
  T_COMMON_OBJECT_PAGE_APPLY_DRAFT=Primijeni
20
20
 
@@ -224,7 +224,7 @@ T_ILLUSTRATED_MESSAGE_TITLE_NODATA=No hay elementos disponibles
224
224
 
225
225
  T_ILLUSTRATED_MESSAGE_TITLE_NOSEARCHRESULTS=No se han encontrado datos
226
226
 
227
- T_ILLUSTRATED_MESSAGE_TITLE_BEFORESEARCH=Obtengamos resultados
227
+ T_ILLUSTRATED_MESSAGE_TITLE_BEFORESEARCH=Obtengamos\nresultados
228
228
 
229
229
  T_TABLE_AND_CHART_NO_DATA_TEXT=Para empezar, defina los filtros relevantes y seleccione "Ir".
230
230
 
@@ -246,7 +246,7 @@ T_TRANSPORT_SELECTION_SELECTED_TRANSPORT=Solicitud de transporte\:
246
246
 
247
247
  HEADER_FORM_LABEL={0}\:
248
248
 
249
- T_TABLE_AND_CHART_NO_DATA_TITLE_TEXT=Obtengamos resultados
249
+ T_TABLE_AND_CHART_NO_DATA_TITLE_TEXT=Obtengamos\nresultados
250
250
 
251
251
 
252
252
  FILTER_SEARCH_SHORTCUT_DESCRIPTION=Ir
@@ -226,7 +226,7 @@ T_ILLUSTRATED_MESSAGE_TITLE_NOSEARCHRESULTS=Nessun dato trovato
226
226
 
227
227
  T_ILLUSTRATED_MESSAGE_TITLE_BEFORESEARCH=Vediamo qualche risultato
228
228
 
229
- T_TABLE_AND_CHART_NO_DATA_TEXT=Per iniziare, impostare i filtri rilevanti e selezionare "Avvio".
229
+ T_TABLE_AND_CHART_NO_DATA_TEXT=Per iniziare, imposta i filtri rilevanti e seleziona "Avvio".
230
230
 
231
231
  T_TABLE_AND_CHART_NO_DATA_TEXT_WITH_FILTER=Provare a modificare i criteri di filtro o di ricerca.
232
232
 
@@ -114,7 +114,7 @@ RTA_CONFIGURATION_OP_VM_ENUM_CONTROL=\u05D1\u05E7\u05E8\u05D4
114
114
 
115
115
  RTA_CONFIGURATION_OP_VM_ENUM_NONE=\u05DC\u05D0 \u05DE\u05D5\u05E4\u05E2\u05DC
116
116
 
117
- RTA_CONFIGURATION_OP_EHC_NAME=\u05EA\u05D5\u05DB\u05DF \u05DB\u05D5\u05EA\u05E8\u05EA \u05E0\u05D9\u05EA\u05DF \u05DC\u05E2\u05E8\u05D9\u05DB\u05D4
117
+ RTA_CONFIGURATION_OP_EHC_NAME=\u05EA\u05D5\u05DB\u05DF \u05DB\u05D5\u05EA\u05E8\u05EA \u05E0\u05D9\u05EA\u05DF \u05DC\u05E2\u05E8\u05D9\u05DB\u05D4
118
118
 
119
119
  RTA_CONFIGURATION_OP_EHC_DESC=\u05D4\u05D7\u05DC\u05D8 \u05D0\u05DD \u05E0\u05D9\u05EA\u05DF \u05DC\u05E2\u05E8\u05D5\u05DA \u05D0\u05EA \u05EA\u05D5\u05DB\u05DF \u05D4\u05DB\u05D5\u05EA\u05E8\u05EA
120
120
 
@@ -20,7 +20,7 @@ T_COMMON_OBJECT_PAGE_APPLY_DRAFT=\u9069\u7528
20
20
 
21
21
  T_COMMON_OBJECT_PAGE_VALIDATE_DRAFT=\u30C1\u30A7\u30C3\u30AF
22
22
 
23
- T_OP_OBJECT_PAGE_CREATE=\u767B\u9332
23
+ T_OP_OBJECT_PAGE_CREATE=\u4F5C\u6210
24
24
 
25
25
  T_OP_OBJECT_PAGE_SAVE=\u4FDD\u5B58
26
26
 
@@ -204,9 +204,9 @@ C_LR_MULTIVIZ_CHART_IGNORED_FILTER_DRAFT_DATA_AND_SEARCH=Juodra\u0161\u010Dio du
204
204
 
205
205
  C_MULTIVIZ_CHART_IGNORED_FILTER_DRAFT_DATA=Juodra\u0161\u010Dio duomenys nerodomi diagramos rakurse.
206
206
 
207
- T_KEYBOARD_SHORTCUT_SHARE_WIN=Shift+CTRL+S
207
+ T_KEYBOARD_SHORTCUT_SHARE_WIN=SHIFT+CTRL+S
208
208
 
209
- T_KEYBOARD_SHORTCUT_SHARE_MAC=Shift+CMD+S
209
+ T_KEYBOARD_SHORTCUT_SHARE_MAC=SHIFT+CMD+S
210
210
 
211
211
  T_KEYBOARD_SHORTCUT_EDIT_WIN=CTRL+E
212
212
 
@@ -14,7 +14,7 @@ C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_TITLE=Sesija istekla
14
14
 
15
15
  C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_MESSAGE=Va\u0161a sesija je istekla. Nesa\u010Duvane promene su izgubljene.\nIzaberite OK za povratak na prethodnu stranicu.
16
16
 
17
- T_OP_RELATED_APPS=Povezane aplikacije
17
+ T_OP_RELATED_APPS=Povezane apl.
18
18
 
19
19
  T_COMMON_OBJECT_PAGE_APPLY_DRAFT=Primeni
20
20
 
@@ -20,7 +20,7 @@ T_COMMON_OBJECT_PAGE_APPLY_DRAFT=Uporabi
20
20
 
21
21
  T_COMMON_OBJECT_PAGE_VALIDATE_DRAFT=Validacija
22
22
 
23
- T_OP_OBJECT_PAGE_CREATE=Kreiraj
23
+ T_OP_OBJECT_PAGE_CREATE=Ustvari
24
24
 
25
25
  T_OP_OBJECT_PAGE_SAVE=Shrani
26
26
 
@@ -251,9 +251,9 @@ T_TABLE_AND_CHART_NO_DATA_TITLE_TEXT=Poskrbimo za rezultate
251
251
 
252
252
  FILTER_SEARCH_SHORTCUT_DESCRIPTION=Pojdi
253
253
 
254
- CUT_SHORTCUT_DESCRIPTION=Rezanje
254
+ CUT_SHORTCUT_DESCRIPTION=Izre\u017Ei
255
255
 
256
- PASTE_SHORTCUT_DESCRIPTION=Vstavljanje
256
+ PASTE_SHORTCUT_DESCRIPTION=Vstavi
257
257
 
258
258
  TABLE_MOVE_ELEMENT_UP_DESCRIPTION=Premik navzgor
259
259
 
@@ -14,7 +14,7 @@ C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_TITLE=\u0421\u0435\u0441\u0438\u04
14
14
 
15
15
  C_EDITFLOW_OBJECT_PAGE_SESSION_EXPIRED_DIALOG_MESSAGE=\u0412\u0430\u0448\u0430 \u0441\u0435\u0441\u0438\u0458\u0430 \u0458\u0435 \u0438\u0441\u0442\u0435\u043A\u043B\u0430. \u041D\u0435\u0441\u0430\u0447\u0443\u0432\u0430\u043D\u0435 \u043F\u0440\u043E\u043C\u0435\u043D\u0435 \u0441\u0443 \u0438\u0437\u0433\u0443\u0431\u0459\u0435\u043D\u0435.\n\u0418\u0437\u0430\u0431\u0435\u0440\u0438\u0442\u0435 OK \u0437\u0430 \u043F\u043E\u0432\u0440\u0430\u0442\u0430\u043A \u043D\u0430 \u043F\u0440\u0435\u0442\u0445\u043E\u0434\u043D\u0443 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443.
16
16
 
17
- T_OP_RELATED_APPS=\u041F\u043E\u0432\u0435\u0437\u0430\u043D\u0435 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0435
17
+ T_OP_RELATED_APPS=\u041F\u043E\u0432\u0435\u0437\u0430\u043D\u0435 \u0430\u043F\u043B.
18
18
 
19
19
  T_COMMON_OBJECT_PAGE_APPLY_DRAFT=\u041F\u0440\u0438\u043C\u0435\u043D\u0438
20
20
 
@@ -24,11 +24,11 @@ T_OP_OBJECT_PAGE_CREATE=Ta\u0323o
24
24
 
25
25
  T_OP_OBJECT_PAGE_SAVE=L\u01B0u
26
26
 
27
- C_COMMON_OBJECT_PAGE_SAVED_VERSION_BUT=\u0110a\u0303 l\u01B0u phi\u00EAn ba\u0309n
27
+ C_COMMON_OBJECT_PAGE_SAVED_VERSION_BUT=Phi\u00EAn ba\u0309n \u0111\u00E3 l\u01B0u
28
28
 
29
29
  C_COMMON_OBJECT_PAGE_DRAFT_BUT=Ba\u0309n tha\u0309o
30
30
 
31
- C_COMMON_OBJECT_PAGE_DISPLAY_SAVED_VERSION_MIT=\u0110a\u0303 l\u01B0u phi\u00EAn ba\u0309n
31
+ C_COMMON_OBJECT_PAGE_DISPLAY_SAVED_VERSION_MIT=Phi\u00EAn ba\u0309n \u0111\u00E3 l\u01B0u
32
32
 
33
33
  C_COMMON_OBJECT_PAGE_DISPLAY_DRAFT_MIT=Ba\u0309n tha\u0309o
34
34