@sapui5/sap.fe.templates 1.136.18 → 1.136.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +4 -1
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +3 -0
- package/src/sap/fe/templates/ListReport/manifest.json +1 -1
- package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
- package/src/sap/fe/templates/library.js +1 -1
package/package.json
CHANGED
|
@@ -362,6 +362,9 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUt
|
|
|
362
362
|
* @param [keys] The list of the keys identifying the views defined in the manifest for which the views' count will be refreshed. If not provided, all the views' count will be refreshed
|
|
363
363
|
*/;
|
|
364
364
|
_proto.refreshTabsCount = function refreshTabsCount(keys) {
|
|
365
|
+
if (!this.showCounts) {
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
365
368
|
if (!keys) {
|
|
366
369
|
this.setCountsOutDated(true);
|
|
367
370
|
}
|
|
@@ -482,4 +485,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUt
|
|
|
482
485
|
}), _class2)) || _class);
|
|
483
486
|
return MultipleModeControl;
|
|
484
487
|
}, false);
|
|
485
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwicHJvcGVydHkiLCJ0eXBlIiwiX2RlYzMiLCJkZWZhdWx0VmFsdWUiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiaXNEZWZhdWx0IiwiX2RlYzciLCJhc3NvY2lhdGlvbiIsIl9kZWM4IiwiX2RlYzkiLCJldmVudCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQ29udHJvbCIsImlkIiwic2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiY29udGVudCIsImFkZEV2ZW50RGVsZWdhdGUiLCJvbkFmdGVyUmVuZGVyaW5nIiwib25BZnRlckljb25UYWJCYXJSZW5kZXJpbmciLCJiaW5kIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInNob3dDb3VudHMiLCJzZXRWaXNpYmxlT3ZlcnJpZGRlbiIsInNldFByb3BlcnR5IiwiZ2V0QWxsSW5uZXJDb250cm9scyIsImZvckVhY2giLCJtYWNyb0FQSSIsImljb25UYWJGaWx0ZXIiLCJfZ2V0VGFiRnJvbUlubmVyQ29udHJvbCIsIm9yaWdpblNldFZpc2libGUiLCJzZXRWaXNpYmxlIiwidmFsdWUiLCJnZXRWaXNpYmxlIiwicmVmcmVzaFRhYkNvdW50Iiwib25CZWZvcmVSZW5kZXJpbmciLCJnZXRUYWJzTW9kZWwiLCJvRmlsdGVyQ29udHJvbCIsIl9nZXRGaWx0ZXJDb250cm9sIiwic2V0Q291bnRzT3V0RGF0ZWQiLCJvRmlsdGVyQmFyQVBJIiwiZ2V0UGFyZW50Iiwib01hY3JvQVBJIiwiYXR0YWNoRXZlbnQiLCJpbnRlcm5hbFJlZnJlc2hUYWJzQ291bnQiLCJzdXNwZW5kQmluZGluZyIsIl9vblNlYXJjaCIsIl9vbkZpbHRlckNoYW5nZWQiLCJyZW5kZXIiLCJvUm0iLCJvQ29udHJvbCIsInJlbmRlckNvbnRyb2wiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsImhhbmRsZVRhYkNoYW5nZSIsIm9FdmVudCIsIm9JY29uVGFiQmFyIiwiZ2V0U291cmNlIiwib011bHRpQ29udHJvbCIsIm1QYXJhbWV0ZXJzIiwiZ2V0UGFyYW1ldGVycyIsIl9zZXRJbm5lckJpbmRpbmciLCJzUHJldmlvdXNTZWxlY3RlZEtleSIsInByZXZpb3VzS2V5Iiwic1NlbGVjdGVkS2V5Iiwic2VsZWN0ZWRLZXkiLCJvRmlsdGVyQmFyIiwiX3JlZnJlc2hDdXN0b21WaWV3IiwiZ2V0RmlsdGVyQ29uZGl0aW9ucyIsIkNvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSSIsImFkZCIsImNoYW5nZXMiLCJjaGFuZ2VTcGVjaWZpY0RhdGEiLCJjaGFuZ2VUeXBlIiwicHJldmlvdXNTZWxlY3RlZEtleSIsInNlbGVjdG9yRWxlbWVudCIsIl9nZXRWaWV3Q29udHJvbGxlciIsImdldEV4dGVuc2lvbkFQSSIsInVwZGF0ZUFwcFN0YXRlIiwiZmlyZUV2ZW50IiwiaWNvblRhYkJhciIsInJlZnJlc2hTZWxlY3RlZElubmVyQ29udHJvbENvbnRlbnQiLCJpbnZhbGlkYXRlQ29udGVudCIsImtleXMiLCJrZXkiLCJiVmFsdWUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzZXRGcmVlemVDb250ZW50IiwiX3VwZGF0ZU11bHRpVGFiTm90QXBwbGljYWJsZUZpZWxkcyIsInRhYnNNb2RlbCIsInJlc3VsdHMiLCJ2aWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3Iiwidmlld0RhdGEiLCJnZXRWaWV3RGF0YSIsInVzZUhpZGRlbkZpbHRlckJhciIsIm9UYWIiLCJzVGFiSWQiLCJtSWdub3JlZEZpZWxkcyIsInJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzIiwibm90QXBwbGljYWJsZSIsImZpZWxkcyIsInRpdGxlIiwiX3NldFRhYk1lc3NhZ2VTdHJpcCIsImVudGl0eVR5cGVQYXRoIiwiZGF0YSIsImlnbm9yZWRGaWVsZHMiLCJnZXRUZXh0IiwiaXNBIiwiY2hlY2tOb25GaWx0ZXJhYmxlRW50aXR5U2V0Iiwic2V0RGF0YSIsInJlc291cmNlTW9kZWwiLCJnZXRSZXNvdXJjZU1vZGVsIiwib0NoYXJ0IiwiZ2V0Q29udGVudCIsImJFbnRpdHlTZXRGaWxlcmFibGUiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJnZXRNZXRhTW9kZWwiLCJnZXRDb250ZXh0IiwidGFyZ2V0T2JqZWN0IiwiYW5ub3RhdGlvbnMiLCJDYXBhYmlsaXRpZXMiLCJGaWx0ZXJSZXN0cmljdGlvbnMiLCJGaWx0ZXJhYmxlIiwiaW5jbHVkZXMiLCJiT25seUZvclZpc2libGVUYWIiLCJpbm5lckNvbnRyb2xzIiwicmVkdWNlIiwiYUlubmVyQ29udHJvbHMiLCJzSW5uZXJDb250cm9sIiwiVUk1RWxlbWVudCIsImdldEVsZW1lbnRCeUlkIiwicHVzaCIsImZpbHRlciIsIm9Jbm5lckNvbnRyb2wiLCJmaWx0ZXJDb250cm9sIiwib1ZpZXciLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckNvbmRpdGlvbnMiLCJzUmVmcmVzaENhdXNlIiwib25WaWV3TmVlZHNSZWZyZXNoIiwiZmlsdGVyQ29uZGl0aW9ucyIsImN1cnJlbnRUYWJJZCIsInJlZnJlc2hDYXVzZSIsImdldENvdW50cyIsInNldENvdW50IiwidGhlbiIsImNvdW50IiwiY2F0Y2giLCJlcnJvciIsIkxvZyIsInRhYmxlRXZlbnQiLCJldmVudE1hY3JvQVBJIiwidGFyZ2V0S2V5IiwicmVmcmVzaFRhYnNDb3VudCIsInNwbGl0Iiwib0ljb25UYWJGaWx0ZXIiLCJjb3VudHNPdXREYXRlZCIsInNldFRhYkNvbnRlbnRUb0JlUmVmcmVzaGVkT25OZXh0T3BlbmluZyIsInNlbGVjdGVkVGFiS2V5IiwidGFiS2V5cyIsInJlZnJlc2hTZWxlY3RlZFRhYkNvbnRlbnQiLCJiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQiLCJiSXNTZWxlY3RlZEtleSIsInNBY3Rpb24iLCJSZXN1bWUiLCJTdXNwZW5kIiwicHJvcGVydGllcyIsInNUZXh0IiwiYUlnbm9yZWRGaWVsZHMiLCJBcnJheSIsImlzQXJyYXkiLCJhSWdub3JlZExhYmVscyIsIk1lc3NhZ2VTdHJpcCIsImdldExhYmVscyIsImdldFBhcmFtZXRlciIsIkNvbnRyb2wiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk11bHRpcGxlTW9kZUNvbnRyb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHlTZXQgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBldmVudCwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCAqIGFzIE1ldGFNb2RlbENvbnZlcnRlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWVzc2FnZVN0cmlwXCI7XG5pbXBvcnQgeyBnZXRSZXNvdXJjZU1vZGVsIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvUmVzb3VyY2VNb2RlbEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgTWFjcm9BUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvTWFjcm9BUElcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIExpc3RSZXBvcnRDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL0xpc3RSZXBvcnQvTGlzdFJlcG9ydENvbnRyb2xsZXIuY29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgSWNvblRhYkJhciBmcm9tIFwic2FwL20vSWNvblRhYkJhclwiO1xuaW1wb3J0IHR5cGUgeyBJY29uVGFiQmFyJFNlbGVjdEV2ZW50IH0gZnJvbSBcInNhcC9tL0ljb25UYWJCYXJcIjtcbmltcG9ydCB0eXBlIEljb25UYWJGaWx0ZXIgZnJvbSBcInNhcC9tL0ljb25UYWJGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIENvcmVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgJENvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IFVJNUVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCBDb250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUEkgZnJvbSBcInNhcC91aS9mbC93cml0ZS9hcGkvQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIElubmVyQ29udHJvbFR5cGUgPSBNYWNyb0FQSSAmXG5cdFBhcnRpYWw8e1xuXHRcdHJlc3VtZUJpbmRpbmc6IEZ1bmN0aW9uO1xuXHRcdHN1c3BlbmRCaW5kaW5nOiBGdW5jdGlvbjtcblx0XHRnZXRDb3VudHM6IEZ1bmN0aW9uO1xuXHRcdHJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzOiBGdW5jdGlvbjtcblx0XHRpbnZhbGlkYXRlQ29udGVudDogRnVuY3Rpb247XG5cdFx0Z2V0Q29udGVudDogRnVuY3Rpb247XG5cdH0+O1xuXG50eXBlIE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMgPSB7XG5cdGVudGl0eVR5cGVQYXRoOiBzdHJpbmc7XG5cdGlnbm9yZWRGaWVsZHM6IHN0cmluZ1tdO1xuXHR0aXRsZTogc3RyaW5nO1xufTtcblxuZW51bSBCaW5kaW5nQWN0aW9uIHtcblx0U3VzcGVuZCA9IFwic3VzcGVuZEJpbmRpbmdcIixcblx0UmVzdW1lID0gXCJyZXN1bWVCaW5kaW5nXCJcbn1cblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LmNvbnRyb2xzLk11bHRpcGxlTW9kZUNvbnRyb2xcIilcbmNsYXNzIE11bHRpcGxlTW9kZUNvbnRyb2wgZXh0ZW5kcyBDb250cm9sIHtcblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0c2hvd0NvdW50cyE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0c2V0VmlzaWJsZU92ZXJyaWRkZW4hOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGZyZWV6ZUNvbnRlbnQhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGNvdW50c091dERhdGVkITogYm9vbGVhbjtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5tLkljb25UYWJCYXJcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudCE6IEljb25UYWJCYXI7XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiB0cnVlIH0pXG5cdGlubmVyQ29udHJvbHMhOiBzdHJpbmdbXTtcblxuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuRmlsdGVyQmFyXCIsIG11bHRpcGxlOiBmYWxzZSB9KVxuXHRmaWx0ZXJDb250cm9sITogc3RyaW5nO1xuXG5cdEBldmVudCgpXG5cdHNlbGVjdCE6IEZ1bmN0aW9uO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGlkPzogc3RyaW5nIHwgdW5kZWZpbmVkIHwgKFByb3BlcnRpZXNPZjxNdWx0aXBsZU1vZGVDb250cm9sPiAmICRDb250cm9sU2V0dGluZ3MpLFxuXHRcdHNldHRpbmdzPzogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxNdWx0aXBsZU1vZGVDb250cm9sPlxuXHQpIHtcblx0XHRzdXBlcihpZCBhcyBzdHJpbmcsIHNldHRpbmdzKTtcblx0XHR0aGlzLmNvbnRlbnQ/LmFkZEV2ZW50RGVsZWdhdGUoe1xuXHRcdFx0b25BZnRlclJlbmRlcmluZzogdGhpcy5vbkFmdGVySWNvblRhYkJhclJlbmRlcmluZy5iaW5kKHRoaXMpXG5cdFx0fSk7XG5cdH1cblxuXHRvbkFmdGVySWNvblRhYkJhclJlbmRlcmluZygpOiB2b2lkIHtcblx0XHR0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCk/LnJlc3VtZUJpbmRpbmc/LighdGhpcy5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikpO1xuXHRcdGlmICh0aGlzLnNob3dDb3VudHMgJiYgIXRoaXMuc2V0VmlzaWJsZU92ZXJyaWRkZW4pIHtcblx0XHRcdHRoaXMuc2V0UHJvcGVydHkoXCJzZXRWaXNpYmxlT3ZlcnJpZGRlblwiLCB0cnVlKTtcblx0XHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG1hY3JvQVBJOiBNYWNyb0FQSSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRjb25zdCBpY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChtYWNyb0FQSSk7XG5cdFx0XHRcdC8vIE5vIGNvdW50IHRvIHNob3dcblx0XHRcdFx0aWYgKCFpY29uVGFiRmlsdGVyKSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3Qgb3JpZ2luU2V0VmlzaWJsZSA9IGljb25UYWJGaWx0ZXIuc2V0VmlzaWJsZTtcblx0XHRcdFx0aWNvblRhYkZpbHRlci5zZXRWaXNpYmxlID0gKHZhbHVlOiBib29sZWFuKTogSWNvblRhYkZpbHRlciA9PiB7XG5cdFx0XHRcdFx0aWYgKGljb25UYWJGaWx0ZXIuZ2V0VmlzaWJsZSgpID09PSBmYWxzZSAmJiB2YWx1ZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5yZWZyZXNoVGFiQ291bnQobWFjcm9BUEkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gb3JpZ2luU2V0VmlzaWJsZS5iaW5kKGljb25UYWJGaWx0ZXIpKHZhbHVlKTtcblx0XHRcdFx0fTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdG9uQmVmb3JlUmVuZGVyaW5nKCk6IHZvaWQge1xuXHRcdHRoaXMuZ2V0VGFic01vZGVsKCk7IC8vIEdlbmVyYXRlIHRoZSBtb2RlbCB3aGljaCBpcyBtYW5kYXRvcnkgZm9yIHNvbWUgYmluZGluZ3NcblxuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpO1xuXHRcdGlmICghb0ZpbHRlckNvbnRyb2wpIHtcblx0XHRcdC8vIEluIGNhc2UgdGhlcmUncyBubyBmaWx0ZXJiYXIsIHdlIGhhdmUgdG8gdXBkYXRlIHRoZSBjb3VudHMgaW4gdGhlIHRhYnMgaW1tZWRpYXRlbHlcblx0XHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQodHJ1ZSk7XG5cdFx0fVxuXHRcdGNvbnN0IG9GaWx0ZXJCYXJBUEkgPSBvRmlsdGVyQ29udHJvbD8uZ2V0UGFyZW50KCk7XG5cdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5zaG93Q291bnRzKSB7XG5cdFx0XHRcdG9NYWNyb0FQSS5hdHRhY2hFdmVudChcImludGVybmFsRGF0YVJlcXVlc3RlZFwiLCB0aGlzLmludGVybmFsUmVmcmVzaFRhYnNDb3VudC5iaW5kKHRoaXMpKTtcblx0XHRcdH1cblx0XHRcdG9NYWNyb0FQSS5zdXNwZW5kQmluZGluZz8uKCk7XG5cdFx0fSk7XG5cdFx0aWYgKG9GaWx0ZXJCYXJBUEkpIHtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbFNlYXJjaFwiLCB0aGlzLl9vblNlYXJjaC5iaW5kKHRoaXMpKTtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbEZpbHRlckNoYW5nZWRcIiwgdGhpcy5fb25GaWx0ZXJDaGFuZ2VkLmJpbmQodGhpcykpO1xuXHRcdH1cblx0fVxuXG5cdHN0YXRpYyByZW5kZXIob1JtOiBSZW5kZXJNYW5hZ2VyLCBvQ29udHJvbDogTXVsdGlwbGVNb2RlQ29udHJvbCk6IHZvaWQge1xuXHRcdG9SbS5yZW5kZXJDb250cm9sKG9Db250cm9sLmNvbnRlbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIG1vZGVsIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgSWNvblRhYkZpbHRlcnMuXG5cdCAqIEByZXR1cm5zIFRoZSBtb2RlbFxuXHQgKi9cblx0Z2V0VGFic01vZGVsKCk6IEpTT05Nb2RlbCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgc1RhYnNNb2RlbCA9IFwidGFic0ludGVybmFsXCI7XG5cdFx0Y29uc3Qgb0NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0aWYgKCFvQ29udGVudCkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0bGV0IG9Nb2RlbCA9IG9Db250ZW50LmdldE1vZGVsKHNUYWJzTW9kZWwpIGFzIEpTT05Nb2RlbCB8IHVuZGVmaW5lZDtcblx0XHRpZiAoIW9Nb2RlbCkge1xuXHRcdFx0b01vZGVsID0gbmV3IEpTT05Nb2RlbCh7fSk7XG5cdFx0XHRvQ29udGVudC5zZXRNb2RlbChvTW9kZWwsIHNUYWJzTW9kZWwpO1xuXHRcdH1cblx0XHRyZXR1cm4gb01vZGVsO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGlubmVyIGNvbnRyb2wgb2YgdGhlIGRpc3BsYXllZCB0YWIuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sXG5cdCAqL1xuXHRnZXRTZWxlY3RlZElubmVyQ29udHJvbCgpOiBJbm5lckNvbnRyb2xUeXBlIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBvU2VsZWN0ZWRUYWIgPSB0aGlzLmNvbnRlbnQ/LmdldEl0ZW1zKCkuZmluZCgob0l0ZW0pID0+IChvSXRlbSBhcyBJY29uVGFiRmlsdGVyKS5nZXRLZXkoKSA9PT0gdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCkpO1xuXHRcdHJldHVybiBvU2VsZWN0ZWRUYWJcblx0XHRcdD8gdGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZmluZCgob01hY3JvQVBJKSA9PiB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSkgPT09IG9TZWxlY3RlZFRhYilcblx0XHRcdDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1hbmFnZXMgdGhlIGJpbmRpbmcgb2YgYWxsIGlubmVyIGNvbnRyb2xzIHdoZW4gdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgaXMgY2hhbmdlZC5cblx0ICogQHBhcmFtIG9FdmVudCBFdmVudCBmaXJlZCBieSB0aGUgSWNvblRhYkJhclxuXHQgKi9cblx0c3RhdGljIGhhbmRsZVRhYkNoYW5nZShvRXZlbnQ6IEljb25UYWJCYXIkU2VsZWN0RXZlbnQpOiB2b2lkIHtcblx0XHRjb25zdCBvSWNvblRhYkJhciA9IG9FdmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBvTXVsdGlDb250cm9sID0gb0ljb25UYWJCYXIuZ2V0UGFyZW50KCkgYXMgTXVsdGlwbGVNb2RlQ29udHJvbDtcblxuXHRcdGNvbnN0IG1QYXJhbWV0ZXJzID0gb0V2ZW50LmdldFBhcmFtZXRlcnMoKTtcblx0XHRvTXVsdGlDb250cm9sLl9zZXRJbm5lckJpbmRpbmcodHJ1ZSk7XG5cdFx0Y29uc3Qgc1ByZXZpb3VzU2VsZWN0ZWRLZXkgPSBtUGFyYW1ldGVycz8ucHJldmlvdXNLZXk7XG5cdFx0Y29uc3Qgc1NlbGVjdGVkS2V5ID0gbVBhcmFtZXRlcnM/LnNlbGVjdGVkS2V5O1xuXG5cdFx0aWYgKHNTZWxlY3RlZEtleSAmJiBzUHJldmlvdXNTZWxlY3RlZEtleSAhPT0gc1NlbGVjdGVkS2V5KSB7XG5cdFx0XHRjb25zdCBvRmlsdGVyQmFyID0gb011bHRpQ29udHJvbC5fZ2V0RmlsdGVyQ29udHJvbCgpO1xuXHRcdFx0aWYgKG9GaWx0ZXJCYXIgJiYgIW9NdWx0aUNvbnRyb2wuZ2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIpKSB7XG5cdFx0XHRcdGlmICghb011bHRpQ29udHJvbC5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpKSB7XG5cdFx0XHRcdFx0Ly9jdXN0b20gdGFiXG5cdFx0XHRcdFx0b011bHRpQ29udHJvbC5fcmVmcmVzaEN1c3RvbVZpZXcob0ZpbHRlckJhci5nZXRGaWx0ZXJDb25kaXRpb25zKCksIFwidGFiQ2hhbmdlZFwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Q29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJLmFkZCh7XG5cdFx0XHRcdGNoYW5nZXM6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRjaGFuZ2VTcGVjaWZpY0RhdGE6IHtcblx0XHRcdFx0XHRcdFx0Y2hhbmdlVHlwZTogXCJzZWxlY3RJY29uVGFiQmFyRmlsdGVyXCIsXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IHtcblx0XHRcdFx0XHRcdFx0XHRzZWxlY3RlZEtleTogc1NlbGVjdGVkS2V5LFxuXHRcdFx0XHRcdFx0XHRcdHByZXZpb3VzU2VsZWN0ZWRLZXk6IHNQcmV2aW91c1NlbGVjdGVkS2V5XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRzZWxlY3RvckVsZW1lbnQ6IG9JY29uVGFiQmFyXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRvTXVsdGlDb250cm9sLl9nZXRWaWV3Q29udHJvbGxlcigpPy5nZXRFeHRlbnNpb25BUEkoKT8udXBkYXRlQXBwU3RhdGUoKTtcblxuXHRcdG9NdWx0aUNvbnRyb2wuZmlyZUV2ZW50KFwic2VsZWN0XCIsIHtcblx0XHRcdGljb25UYWJCYXI6IG9JY29uVGFiQmFyLFxuXHRcdFx0c2VsZWN0ZWRLZXk6IHNTZWxlY3RlZEtleSxcblx0XHRcdHByZXZpb3VzS2V5OiBzUHJldmlvdXNTZWxlY3RlZEtleVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlZnJlc2hlcyB0aGUgY29udGVudCBvZiB0aGUgc2VsZWN0ZWQgaW5uZXIgY29udHJvbC5cblx0ICpcblx0ICovXG5cdHJlZnJlc2hTZWxlY3RlZElubmVyQ29udHJvbENvbnRlbnQoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0dGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpPy5pbnZhbGlkYXRlQ29udGVudD8uKCk7XG5cdFx0XHR0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCk/LnJlc3VtZUJpbmRpbmc/Lih0cnVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gY3VzdG9tIHRhYlxuXHRcdFx0dGhpcy5fcmVmcmVzaEN1c3RvbVZpZXcodW5kZWZpbmVkLCBcImZvcmNlZFJlZnJlc2hcIik7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEludmFsaWRhdGVzIHRoZSBjb250ZW50IG9mIHRoZSBpbm5lciBjb250cm9scy5cblx0ICogQHBhcmFtIFtrZXlzXSBUaGUgbGlzdCBvZiB0aGUga2V5cyBpZGVudGlmeWluZyB0aGUgdmlld3MgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3QgZm9yIHdoaWNoIHRoZSB2aWV3cycgY29udGVudCB3aWxsIGJlIGludmFsaWRhdGVkLiBJZiBub3QgcHJvdmlkZWQsIGFsbCB0aGUgdmlld3MnIGNvbnRlbnQgd2lsbCBiZSBpbnZhbGlkYXRlZFxuXHQgKi9cblx0aW52YWxpZGF0ZUNvbnRlbnQoa2V5cz86IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChtYWNyb0FQSSkgPT4ge1xuXHRcdFx0aWYgKGtleXMpIHtcblx0XHRcdFx0Y29uc3QgaWNvblRhYkZpbHRlciA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wobWFjcm9BUEkpO1xuXHRcdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0aWNvblRhYkZpbHRlciAmJlxuXHRcdFx0XHRcdFx0KGljb25UYWJGaWx0ZXIuZ2V0S2V5KCkgPT09IGBmZTo6dGFibGU6OiR7a2V5fTo6TGluZUl0ZW1gIHx8IGljb25UYWJGaWx0ZXIuZ2V0S2V5KCkgPT09IGBmZTo6Q3VzdG9tVGFiOjoke2tleX1gKVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0bWFjcm9BUEkuaW52YWxpZGF0ZUNvbnRlbnQ/LigpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bWFjcm9BUEkuaW52YWxpZGF0ZUNvbnRlbnQ/LigpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGNvdW50cyB0byBcIm91dCBvZiBkYXRlXCIgb3IgXCJ1cCB0byBkYXRlXCJcblx0ICogSWYgdGhlIGNvdW50cyBhcmUgc2V0IHRvIFwib3V0IG9mIGRhdGVcIiBhbmQgdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgZG9lc24ndCBjb250YWluIGFuIGlubmVyIGNvbnRyb2wsIGFsbCBpbm5lciBjb250cm9scyBhcmUgcmVxdWVzdGVkIHRvIGdldCB0aGUgbmV3IGNvdW50cy5cblx0ICogQHBhcmFtIGJWYWx1ZSBFaXRoZXIgZnJlZXplcyB0aGUgY29udHJvbCBvciBub3Rcblx0ICovXG5cdHNldENvdW50c091dERhdGVkKGJWYWx1ZSA9IHRydWUpOiB2b2lkIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwiY291bnRzT3V0RGF0ZWRcIiwgYlZhbHVlKTtcblx0XHQvLyBpZiB0aGUgY3VycmVudCB0YWIgaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBubyBpbm5lciBDb250cm9sXG5cdFx0Ly8gdGhlIHRhYiBjb3VudHMgbXVzdCBiZSBtYW51YWxseSByZWZyZXNoZWQgc2luY2Ugbm8gTWFjcm8gQVBJIHdpbGwgc2VudCBldmVudCBpbnRlcm5hbERhdGFSZXF1ZXN0ZWRcblx0XHRpZiAoYlZhbHVlICYmICF0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCkpIHtcblx0XHRcdHRoaXMuaW50ZXJuYWxSZWZyZXNoVGFic0NvdW50KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEZyZWV6ZXMgdGhlIGNvbnRlbnQgOlxuXHQgKiAtIGNvbnRlbnQgaXMgZnJvemVuOiB0aGUgYmluZGluZyBvZiB0aGUgaW5uZXIgY29udHJvbHMgYXJlIHN1c3BlbmRlZC5cblx0ICogLSBjb250ZW50IGlzIHVuZnJvemVuOiB0aGUgYmluZGluZyBvZiBpbm5lciBjb250cm9sIHJlbGF0ZWQgdG8gdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgaXMgcmVzdW1lZC5cblx0ICogQHBhcmFtIGJWYWx1ZSBGcmVlemUgb3Igbm90IHRoZSBjb250cm9sXG5cdCAqL1xuXHRzZXRGcmVlemVDb250ZW50KGJWYWx1ZTogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIsIGJWYWx1ZSk7XG5cdFx0dGhpcy5fc2V0SW5uZXJCaW5kaW5nKCk7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgaW50ZXJuYWwgbW9kZWwgd2l0aCB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBub3QgYXBwbGljYWJsZSBvbiBlYWNoIEljb25UYWJGaWx0ZXIgKGNvbnRhaW5pbmcgaW5uZXIgY29udHJvbCkgYWNjb3JkaW5nIHRvIHRoZSBlbnRpdHlUeXBlIG9mIHRoZSBmaWx0ZXIgY29udHJvbC5cblx0ICpcblx0ICovXG5cdF91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHMoKTogdm9pZCB7XG5cdFx0Y29uc3QgdGFic01vZGVsID0gdGhpcy5nZXRUYWJzTW9kZWwoKTtcblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKSBhcyBDb250cm9sO1xuXHRcdGlmICh0YWJzTW9kZWwgJiYgb0ZpbHRlckNvbnRyb2wpIHtcblx0XHRcdGNvbnN0IHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIHsgbm90QXBwbGljYWJsZTogeyBmaWVsZHM6IHN0cmluZ1tdOyB0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gfT4gPSB7fTtcblx0XHRcdGNvbnN0IHZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdFx0Y29uc3Qgdmlld0RhdGEgPSB2aWV3LmdldFZpZXdEYXRhKCk7XG5cdFx0XHRpZiAoIXZpZXdEYXRhLnVzZUhpZGRlbkZpbHRlckJhcikge1xuXHRcdFx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0XHRjb25zdCBvVGFiID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0XHRcdGlmIChvVGFiKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBzVGFiSWQgPSBvVGFiLmdldEtleSgpO1xuXHRcdFx0XHRcdFx0Y29uc3QgbUlnbm9yZWRGaWVsZHMgPSBvTWFjcm9BUEkucmVmcmVzaE5vdEFwcGxpY2FibGVGaWVsZHM/LihvRmlsdGVyQ29udHJvbCkgfHwgW107XG5cdFx0XHRcdFx0XHRyZXN1bHRzW3NUYWJJZF0gPSB7XG5cdFx0XHRcdFx0XHRcdG5vdEFwcGxpY2FibGU6IHtcblx0XHRcdFx0XHRcdFx0XHRmaWVsZHM6IG1JZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLl9zZXRUYWJNZXNzYWdlU3RyaXAoe1xuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5VHlwZVBhdGg6IG9GaWx0ZXJDb250cm9sLmRhdGEoXCJlbnRpdHlUeXBlXCIpLFxuXHRcdFx0XHRcdFx0XHRcdFx0aWdub3JlZEZpZWxkczogbUlnbm9yZWRGaWVsZHMsXG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogb1RhYi5nZXRUZXh0KClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0aWYgKG9NYWNyb0FQSSAmJiBvTWFjcm9BUEkuaXNBKFwic2FwLmZlLm1hY3Jvcy5DaGFydFwiKSkge1xuXHRcdFx0XHRcdFx0XHRyZXN1bHRzW3NUYWJJZF0gPSB0aGlzLmNoZWNrTm9uRmlsdGVyYWJsZUVudGl0eVNldChvTWFjcm9BUEksIHNUYWJJZCwgcmVzdWx0cyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0dGFic01vZGVsLnNldERhdGEocmVzdWx0cyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIE1vZGlmaWVzIHRoZSBtZXNzYWdlc3RyaXAgbWVzc2FnZSBiYXNlZCBvbiBlbnRpdHkgc2V0IGlzIGZpbGVyYWJsZSBvciBub3QuXG5cdCAqIEBwYXJhbSBvTWFjcm9BUEkgTWFjcm8gY2hhcnQgYXBpXG5cdCAqIEBwYXJhbSBzVGFiSWQgVGFiIGtleSBJRFxuXHQgKiBAcGFyYW0gcmVzdWx0cyBTaG91bGQgY29udGFpbiBmaWVsZHMgYW5kIHRpdGxlXG5cdCAqIEByZXR1cm5zIEFuIG9iamVjdCBvZiBtb2RpZmllZCBmaWVsZHMgYW5kIHRpdGxlXG5cdCAqL1xuXHRjaGVja05vbkZpbHRlcmFibGVFbnRpdHlTZXQoXG5cdFx0b01hY3JvQVBJOiBJbm5lckNvbnRyb2xUeXBlLFxuXHRcdHNUYWJJZDogc3RyaW5nLFxuXHRcdHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIHsgbm90QXBwbGljYWJsZTogeyBmaWVsZHM6IHN0cmluZ1tdOyB0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gfT5cblx0KTogeyBub3RBcHBsaWNhYmxlOiB7IGZpZWxkczogc3RyaW5nW107IHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQgfSB9IHtcblx0XHRjb25zdCByZXNvdXJjZU1vZGVsID0gZ2V0UmVzb3VyY2VNb2RlbChvTWFjcm9BUEkpO1xuXHRcdGNvbnN0IG9DaGFydCA9IG9NYWNyb0FQST8uZ2V0Q29udGVudCA/IG9NYWNyb0FQSS5nZXRDb250ZW50KCkgOiB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgYkVudGl0eVNldEZpbGVyYWJsZSA9XG5cdFx0XHRvQ2hhcnQgJiZcblx0XHRcdE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8RW50aXR5U2V0Pihcblx0XHRcdFx0KG9DaGFydC5nZXRNb2RlbCgpIGFzIE9EYXRhTW9kZWwpLmdldE1ldGFNb2RlbCgpLmdldENvbnRleHQoYCR7b0NoYXJ0LmRhdGEoXCJ0YXJnZXRDb2xsZWN0aW9uUGF0aFwiKX1gKVxuXHRcdFx0KT8udGFyZ2V0T2JqZWN0Py5hbm5vdGF0aW9ucz8uQ2FwYWJpbGl0aWVzPy5GaWx0ZXJSZXN0cmljdGlvbnM/LkZpbHRlcmFibGU7XG5cdFx0aWYgKGJFbnRpdHlTZXRGaWxlcmFibGUgIT09IHVuZGVmaW5lZCAmJiAhYkVudGl0eVNldEZpbGVyYWJsZSkge1xuXHRcdFx0aWYgKHJlc3VsdHNbc1RhYklkXS5ub3RBcHBsaWNhYmxlLmZpZWxkcy5pbmNsdWRlcyhcIiRzZWFyY2hcIikpIHtcblx0XHRcdFx0cmVzdWx0c1tzVGFiSWRdLm5vdEFwcGxpY2FibGUudGl0bGUgKz0gXCIgXCIgKyByZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0xSX01VTFRJVklaX0NIQVJUX01VTFRJX05PTl9GSUxURVJBQkxFXCIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmVzdWx0c1tzVGFiSWRdLm5vdEFwcGxpY2FibGUuZmllbGRzID0gW1wibm9uRmlsdGVyYWJsZVwiXTtcblx0XHRcdFx0cmVzdWx0c1tzVGFiSWRdLm5vdEFwcGxpY2FibGUudGl0bGUgPSByZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0xSX01VTFRJVklaX0NIQVJUX01VTFRJX05PTl9GSUxURVJBQkxFXCIpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0c1tzVGFiSWRdO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGlubmVyIGNvbnRyb2xzLlxuXHQgKiBAcGFyYW0gYk9ubHlGb3JWaXNpYmxlVGFiIFNob3VsZCBkaXNwbGF5IG9ubHkgdGhlIHZpc2libGUgY29udHJvbHNcblx0ICogQHJldHVybnMgQW4gYXJyYXkgb2YgY29udHJvbHNcblx0ICovXG5cdGdldEFsbElubmVyQ29udHJvbHMoYk9ubHlGb3JWaXNpYmxlVGFiID0gZmFsc2UpOiBJbm5lckNvbnRyb2xUeXBlW10ge1xuXHRcdHJldHVybiAoXG5cdFx0XHR0aGlzLmlubmVyQ29udHJvbHMucmVkdWNlKChhSW5uZXJDb250cm9sczogSW5uZXJDb250cm9sVHlwZVtdLCBzSW5uZXJDb250cm9sOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRyb2wgPSBVSTVFbGVtZW50LmdldEVsZW1lbnRCeUlkKHNJbm5lckNvbnRyb2wpIGFzIElubmVyQ29udHJvbFR5cGU7XG5cdFx0XHRcdGlmIChvQ29udHJvbCkge1xuXHRcdFx0XHRcdGFJbm5lckNvbnRyb2xzLnB1c2gob0NvbnRyb2wpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhSW5uZXJDb250cm9scy5maWx0ZXIoXG5cdFx0XHRcdFx0KG9Jbm5lckNvbnRyb2wpID0+ICFiT25seUZvclZpc2libGVUYWIgfHwgdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvSW5uZXJDb250cm9sKT8uZ2V0VmlzaWJsZSgpXG5cdFx0XHRcdCk7XG5cdFx0XHR9LCBbXSkgfHwgW11cblx0XHQpO1xuXHR9XG5cblx0X2dldEZpbHRlckNvbnRyb2woKTogRmlsdGVyQmFyIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gVUk1RWxlbWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmZpbHRlckNvbnRyb2wpIGFzIEZpbHRlckJhciB8IHVuZGVmaW5lZDtcblx0fVxuXG5cdF9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9Db250cm9sOiBDb250cm9sKTogSWNvblRhYkZpbHRlciB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IG9UYWI6IFVJNUVsZW1lbnQgfCB1bmRlZmluZWQgPSBvQ29udHJvbDtcblx0XHRpZiAob1RhYiAmJiAhb1RhYi5pc0E8SWNvblRhYkZpbHRlcj4oXCJzYXAubS5JY29uVGFiRmlsdGVyXCIpICYmIChvVGFiIGFzIHsgZ2V0UGFyZW50PzogRnVuY3Rpb24gfSkuZ2V0UGFyZW50KSB7XG5cdFx0XHRvVGFiID0gb0NvbnRyb2wuZ2V0UGFyZW50KCkgYXMgVUk1RWxlbWVudCB8IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0cmV0dXJuIG9UYWIgJiYgb1RhYi5pc0E8SWNvblRhYkZpbHRlcj4oXCJzYXAubS5JY29uVGFiRmlsdGVyXCIpID8gb1RhYiA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdF9nZXRWaWV3Q29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdHJldHVybiBvVmlldyAmJiBvVmlldy5nZXRDb250cm9sbGVyKCk7XG5cdH1cblxuXHRfcmVmcmVzaEN1c3RvbVZpZXcob0ZpbHRlckNvbmRpdGlvbnM6IHVua25vd24sIHNSZWZyZXNoQ2F1c2U6IHN0cmluZyk6IHZvaWQge1xuXHRcdCh0aGlzLl9nZXRWaWV3Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyKT8ub25WaWV3TmVlZHNSZWZyZXNoPy4oe1xuXHRcdFx0ZmlsdGVyQ29uZGl0aW9uczogb0ZpbHRlckNvbmRpdGlvbnMsXG5cdFx0XHRjdXJyZW50VGFiSWQ6IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpLFxuXHRcdFx0cmVmcmVzaENhdXNlOiBzUmVmcmVzaENhdXNlXG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBjb3VudCBvZiB0aGUgVGFiIGNvbnRhaW5pbmcgdGhlIG1hY3JvIHBhc3NlZCBhcyBwYXJhbWV0ZXIuXG5cdCAqIEBwYXJhbSBtYWNyb0FQSSBUaGUgY29udGVudCBvZiB0aGUgdGFiIHdlIHdhbnQgdG8gcmVmcmVzaFxuXHQgKi9cblx0cmVmcmVzaFRhYkNvdW50KG1hY3JvQVBJOiBJbm5lckNvbnRyb2xUeXBlKTogdm9pZCB7XG5cdFx0Y29uc3QgaWNvblRhYkZpbHRlciA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wobWFjcm9BUEkpO1xuXHRcdGlmICghaWNvblRhYkZpbHRlcikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAobWFjcm9BUEk/LmdldENvdW50cykge1xuXHRcdFx0aWNvblRhYkZpbHRlci5zZXRDb3VudChcIi4uLlwiKTtcblx0XHRcdG1hY3JvQVBJXG5cdFx0XHRcdC5nZXRDb3VudHMoKVxuXHRcdFx0XHQudGhlbigoY291bnQ6IHN0cmluZyk6IEljb25UYWJGaWx0ZXIgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBpY29uVGFiRmlsdGVyLnNldENvdW50KGNvdW50IHx8IFwiMFwiKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogdW5rbm93bik6IHZvaWQge1xuXHRcdFx0XHRcdExvZy5lcnJvcihgRXJyb3Igd2hpbGUgcmVxdWVzdGluZyBDb3VudHMgZm9yIENvbnRyb2w6ICR7ZXJyb3J9YCk7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdGludGVybmFsUmVmcmVzaFRhYnNDb3VudCh0YWJsZUV2ZW50PzogQ29yZUV2ZW50KTogdm9pZCB7XG5cdFx0Ly8gSWYgdGhlIHJlZnJlc2ggaXMgdHJpZ2dlcmVkIGJ5IGFuIGV2ZW50IChpbnRlcm5hbERhdGFSZXF1ZXN0ZWQpXG5cdFx0Ly8gd2UgY2Fubm90IHVzZSB0aGUgc2VsZWN0ZWQga2V5IGFzIHJlZmVyZW5jZSBzaW5jZSB0YWJsZSBjYW4gYmUgcmVmcmVzaGVkIGJ5IFNpZGVFZmZlY3RzXG5cdFx0Ly8gc28gdGhlIHRhYmxlIGNvdWxkIGJlIGludG8gYSBkaWZmZXJlbnQgdGFiIC0+IHdlIHVzZSB0aGUgc291cmNlIG9mIHRoZSBldmVudCB0byBmaW5kIHRoZSB0YXJnZXRlZCB0YWJcblx0XHQvLyBJZiBub3QgdHJpZ2dlcmVkIGJ5IGFuIGV2ZW50IC0+IHJlZnJlc2ggYXQgbGVhc3QgdGhlIGNvdW50cyBvZiB0aGUgY3VycmVudCBNYWNyb0FQSVxuXHRcdGNvbnN0IGV2ZW50TWFjcm9BUEkgPSB0YWJsZUV2ZW50Py5nZXRTb3VyY2UoKSBhcyBNYWNyb0FQSTtcblx0XHRjb25zdCB0YXJnZXRLZXkgPSBldmVudE1hY3JvQVBJID8gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChldmVudE1hY3JvQVBJKT8uZ2V0S2V5KCkgOiB0aGlzLmNvbnRlbnQ/LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0aWYgKHRhcmdldEtleSkge1xuXHRcdFx0dGhpcy5yZWZyZXNoVGFic0NvdW50KFt0YXJnZXRLZXkuc3BsaXQoXCI6OlwiKVsyXV0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZWZyZXNoZXMgdGhlIGNvdW50IG9mIHRoZSB2aWV3cyBpbiB0aGUgTXVsdGlNb2RlIGNvbnRyb2wuXG5cdCAqIEBwYXJhbSBba2V5c10gVGhlIGxpc3Qgb2YgdGhlIGtleXMgaWRlbnRpZnlpbmcgdGhlIHZpZXdzIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0IGZvciB3aGljaCB0aGUgdmlld3MnIGNvdW50IHdpbGwgYmUgcmVmcmVzaGVkLiBJZiBub3QgcHJvdmlkZWQsIGFsbCB0aGUgdmlld3MnIGNvdW50IHdpbGwgYmUgcmVmcmVzaGVkXG5cdCAqL1xuXHRyZWZyZXNoVGFic0NvdW50KGtleXM/OiBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdGlmICgha2V5cykge1xuXHRcdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR9XG5cdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKHRydWUpLmZvckVhY2goKG9NYWNyb0FQSSk6IHZvaWQgPT4ge1xuXHRcdFx0Y29uc3Qgb0ljb25UYWJGaWx0ZXIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRpZiAodGhpcy5jb3VudHNPdXREYXRlZCB8fCAoa2V5cyAmJiBvSWNvblRhYkZpbHRlciAmJiBrZXlzLmluY2x1ZGVzKG9JY29uVGFiRmlsdGVyLmdldEtleSgpLnNwbGl0KFwiOjpcIilbMl0pKSkge1xuXHRcdFx0XHR0aGlzLnJlZnJlc2hUYWJDb3VudChvTWFjcm9BUEkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQoZmFsc2UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlZnJlc2hlcyB0aGUgY29udGVudCBvZiB0aGUgdW5kZXJseWluZyB2aWV3cyB1cG9uIHRoZSBuZXh0IG9wZW5pbmcuXG5cdCAqIE5vdGU6IFRoZSBjb250ZW50IG9mIHRoZSBzZWxlY3RlZCB2aWV3LCBpZiBwYXJ0IG9mIHRoZSBwcm92aWRlZCBrZXlzLCB3aWxsIGJlIHJlZnJlc2hlZCBpbW1lZGlhdGVseS5cblx0ICogQHBhcmFtIFtrZXlzXSBUaGUgbGlzdCBvZiB0aGUga2V5cyBpZGVudGlmeWluZyB0aGUgdmlld3MgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3QgZm9yIHdoaWNoIHRoZSB2aWV3cycgY29udGVudCB3aWxsIGJlIHJlZnJlc2hlZC4gSWYgbm90IHByb3ZpZGVkLCBhbGwgdGhlIHZpZXdzJyBjb250ZW50IHdpbGwgYmUgcmVmcmVzaGVkXG5cdCAqL1xuXHRzZXRUYWJDb250ZW50VG9CZVJlZnJlc2hlZE9uTmV4dE9wZW5pbmcoa2V5cz86IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0Y29uc3Qgc2VsZWN0ZWRUYWJLZXkgPSB0aGlzPy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0Y29uc3QgdGFiS2V5czogc3RyaW5nW10gPSBbXTtcblx0XHRjb25zdCByZWZyZXNoU2VsZWN0ZWRUYWJDb250ZW50ID0ga2V5cyA/IGtleXMuaW5jbHVkZXMoc2VsZWN0ZWRUYWJLZXk/LnNwbGl0KFwiOjpcIilbMl0pIDogdHJ1ZTtcblx0XHRpZiAoa2V5cykge1xuXHRcdFx0Zm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuXHRcdFx0XHRpZiAoc2VsZWN0ZWRUYWJLZXkgIT09IGBmZTo6dGFibGU6OiR7a2V5fTo6TGluZUl0ZW1gICYmIHNlbGVjdGVkVGFiS2V5ICE9PSBgZmU6OkN1c3RvbVRhYjo6JHtrZXl9YCkge1xuXHRcdFx0XHRcdHRhYktleXMucHVzaChrZXkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXM/LmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChtYWNyb0FQSSkgPT4ge1xuXHRcdFx0XHRjb25zdCBpY29uVGFiRmlsdGVyID0gdGhpcz8uX2dldFRhYkZyb21Jbm5lckNvbnRyb2wobWFjcm9BUEkpO1xuXHRcdFx0XHRpZiAoaWNvblRhYkZpbHRlciAmJiBpY29uVGFiRmlsdGVyLmdldEtleSgpICE9PSBzZWxlY3RlZFRhYktleSkge1xuXHRcdFx0XHRcdHRhYktleXMucHVzaChpY29uVGFiRmlsdGVyLmdldEtleSgpLnNwbGl0KFwiOjpcIilbMl0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0dGhpcz8uaW52YWxpZGF0ZUNvbnRlbnQodGFiS2V5cyk7XG5cdFx0aWYgKHJlZnJlc2hTZWxlY3RlZFRhYkNvbnRlbnQpIHtcblx0XHRcdHRoaXM/LnJlZnJlc2hTZWxlY3RlZElubmVyQ29udHJvbENvbnRlbnQoKTtcblx0XHR9XG5cdH1cblxuXHRfc2V0SW5uZXJCaW5kaW5nKGJSZXF1ZXN0SWZOb3RJbml0aWFsaXplZCA9IGZhbHNlKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuY29udGVudCkge1xuXHRcdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9JY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0XHRjb25zdCBiSXNTZWxlY3RlZEtleSA9IG9JY29uVGFiRmlsdGVyPy5nZXRLZXkoKSA9PT0gdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0XHRcdGNvbnN0IHNBY3Rpb24gPSBiSXNTZWxlY3RlZEtleSAmJiAhdGhpcy5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikgPyBCaW5kaW5nQWN0aW9uLlJlc3VtZSA6IEJpbmRpbmdBY3Rpb24uU3VzcGVuZDtcblx0XHRcdFx0b01hY3JvQVBJW3NBY3Rpb25dPy4oc0FjdGlvbiA9PT0gQmluZGluZ0FjdGlvbi5SZXN1bWUgPyBiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQgJiYgYklzU2VsZWN0ZWRLZXkgOiB1bmRlZmluZWQpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0X3NldFRhYk1lc3NhZ2VTdHJpcChwcm9wZXJ0aWVzOiBNZXNzYWdlU3RyaXBQcm9wZXJ0aWVzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRsZXQgc1RleHQgPSBcIlwiO1xuXHRcdGNvbnN0IGFJZ25vcmVkRmllbGRzID0gcHJvcGVydGllcy5pZ25vcmVkRmllbGRzO1xuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpIGFzIENvbnRyb2w7XG5cdFx0aWYgKG9GaWx0ZXJDb250cm9sICYmIEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHMpICYmIGFJZ25vcmVkRmllbGRzLmxlbmd0aCA+IDAgJiYgcHJvcGVydGllcy50aXRsZSkge1xuXHRcdFx0Y29uc3QgYUlnbm9yZWRMYWJlbHMgPSBNZXNzYWdlU3RyaXAuZ2V0TGFiZWxzKFxuXHRcdFx0XHRhSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0cHJvcGVydGllcy5lbnRpdHlUeXBlUGF0aCxcblx0XHRcdFx0b0ZpbHRlckNvbnRyb2wsXG5cdFx0XHRcdGdldFJlc291cmNlTW9kZWwob0ZpbHRlckNvbnRyb2wpXG5cdFx0XHQpO1xuXHRcdFx0c1RleHQgPSBNZXNzYWdlU3RyaXAuZ2V0VGV4dChhSWdub3JlZExhYmVscywgb0ZpbHRlckNvbnRyb2wsIHByb3BlcnRpZXMudGl0bGUpO1xuXHRcdFx0cmV0dXJuIHNUZXh0O1xuXHRcdH1cblx0fVxuXG5cdF9vblNlYXJjaChvRXZlbnQ6IENvcmVFdmVudDx7IGNvbmRpdGlvbnM6IHVua25vd24gfT4pOiB2b2lkIHtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdHRoaXMuc2V0RnJlZXplQ29udGVudChmYWxzZSk7XG5cdFx0aWYgKHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0dGhpcy5fdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGN1c3RvbSB0YWJcblx0XHRcdHRoaXMuX3JlZnJlc2hDdXN0b21WaWV3KG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zXCIpLCBcInNlYXJjaFwiKTtcblx0XHR9XG5cdH1cblxuXHRfb25GaWx0ZXJDaGFuZ2VkKG9FdmVudDogQ29yZUV2ZW50PHsgY29uZGl0aW9uc0Jhc2VkOiBib29sZWFuIH0+KTogdm9pZCB7XG5cdFx0aWYgKG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zQmFzZWRcIikpIHtcblx0XHRcdHRoaXMuc2V0RnJlZXplQ29udGVudCh0cnVlKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTXVsdGlwbGVNb2RlQ29udHJvbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQXdDS0EsYUFBYSwwQkFBYkEsYUFBYTtJQUFiQSxhQUFhO0lBQWJBLGFBQWE7SUFBQSxPQUFiQSxhQUFhO0VBQUEsRUFBYkEsYUFBYTtFQUFBLElBTVpDLG1CQUFtQixJQUFBQyxJQUFBLEdBRHhCQyxjQUFjLENBQUMsMERBQTBELENBQUMsRUFBQUMsS0FBQSxHQUV6RUMsUUFBUSxDQUFDO0lBQUVDLElB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
|
|
488
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwicHJvcGVydHkiLCJ0eXBlIiwiX2RlYzMiLCJkZWZhdWx0VmFsdWUiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiaXNEZWZhdWx0IiwiX2RlYzciLCJhc3NvY2lhdGlvbiIsIl9kZWM4IiwiX2RlYzkiLCJldmVudCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfQ29udHJvbCIsImlkIiwic2V0dGluZ3MiLCJfdGhpcyIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2Rlc2NyaXB0b3I3IiwiX2Rlc2NyaXB0b3I4IiwiY29udGVudCIsImFkZEV2ZW50RGVsZWdhdGUiLCJvbkFmdGVyUmVuZGVyaW5nIiwib25BZnRlckljb25UYWJCYXJSZW5kZXJpbmciLCJiaW5kIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInNob3dDb3VudHMiLCJzZXRWaXNpYmxlT3ZlcnJpZGRlbiIsInNldFByb3BlcnR5IiwiZ2V0QWxsSW5uZXJDb250cm9scyIsImZvckVhY2giLCJtYWNyb0FQSSIsImljb25UYWJGaWx0ZXIiLCJfZ2V0VGFiRnJvbUlubmVyQ29udHJvbCIsIm9yaWdpblNldFZpc2libGUiLCJzZXRWaXNpYmxlIiwidmFsdWUiLCJnZXRWaXNpYmxlIiwicmVmcmVzaFRhYkNvdW50Iiwib25CZWZvcmVSZW5kZXJpbmciLCJnZXRUYWJzTW9kZWwiLCJvRmlsdGVyQ29udHJvbCIsIl9nZXRGaWx0ZXJDb250cm9sIiwic2V0Q291bnRzT3V0RGF0ZWQiLCJvRmlsdGVyQmFyQVBJIiwiZ2V0UGFyZW50Iiwib01hY3JvQVBJIiwiYXR0YWNoRXZlbnQiLCJpbnRlcm5hbFJlZnJlc2hUYWJzQ291bnQiLCJzdXNwZW5kQmluZGluZyIsIl9vblNlYXJjaCIsIl9vbkZpbHRlckNoYW5nZWQiLCJyZW5kZXIiLCJvUm0iLCJvQ29udHJvbCIsInJlbmRlckNvbnRyb2wiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsImhhbmRsZVRhYkNoYW5nZSIsIm9FdmVudCIsIm9JY29uVGFiQmFyIiwiZ2V0U291cmNlIiwib011bHRpQ29udHJvbCIsIm1QYXJhbWV0ZXJzIiwiZ2V0UGFyYW1ldGVycyIsIl9zZXRJbm5lckJpbmRpbmciLCJzUHJldmlvdXNTZWxlY3RlZEtleSIsInByZXZpb3VzS2V5Iiwic1NlbGVjdGVkS2V5Iiwic2VsZWN0ZWRLZXkiLCJvRmlsdGVyQmFyIiwiX3JlZnJlc2hDdXN0b21WaWV3IiwiZ2V0RmlsdGVyQ29uZGl0aW9ucyIsIkNvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSSIsImFkZCIsImNoYW5nZXMiLCJjaGFuZ2VTcGVjaWZpY0RhdGEiLCJjaGFuZ2VUeXBlIiwicHJldmlvdXNTZWxlY3RlZEtleSIsInNlbGVjdG9yRWxlbWVudCIsIl9nZXRWaWV3Q29udHJvbGxlciIsImdldEV4dGVuc2lvbkFQSSIsInVwZGF0ZUFwcFN0YXRlIiwiZmlyZUV2ZW50IiwiaWNvblRhYkJhciIsInJlZnJlc2hTZWxlY3RlZElubmVyQ29udHJvbENvbnRlbnQiLCJpbnZhbGlkYXRlQ29udGVudCIsImtleXMiLCJrZXkiLCJiVmFsdWUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzZXRGcmVlemVDb250ZW50IiwiX3VwZGF0ZU11bHRpVGFiTm90QXBwbGljYWJsZUZpZWxkcyIsInRhYnNNb2RlbCIsInJlc3VsdHMiLCJ2aWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3Iiwidmlld0RhdGEiLCJnZXRWaWV3RGF0YSIsInVzZUhpZGRlbkZpbHRlckJhciIsIm9UYWIiLCJzVGFiSWQiLCJtSWdub3JlZEZpZWxkcyIsInJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzIiwibm90QXBwbGljYWJsZSIsImZpZWxkcyIsInRpdGxlIiwiX3NldFRhYk1lc3NhZ2VTdHJpcCIsImVudGl0eVR5cGVQYXRoIiwiZGF0YSIsImlnbm9yZWRGaWVsZHMiLCJnZXRUZXh0IiwiaXNBIiwiY2hlY2tOb25GaWx0ZXJhYmxlRW50aXR5U2V0Iiwic2V0RGF0YSIsInJlc291cmNlTW9kZWwiLCJnZXRSZXNvdXJjZU1vZGVsIiwib0NoYXJ0IiwiZ2V0Q29udGVudCIsImJFbnRpdHlTZXRGaWxlcmFibGUiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJnZXRNZXRhTW9kZWwiLCJnZXRDb250ZXh0IiwidGFyZ2V0T2JqZWN0IiwiYW5ub3RhdGlvbnMiLCJDYXBhYmlsaXRpZXMiLCJGaWx0ZXJSZXN0cmljdGlvbnMiLCJGaWx0ZXJhYmxlIiwiaW5jbHVkZXMiLCJiT25seUZvclZpc2libGVUYWIiLCJpbm5lckNvbnRyb2xzIiwicmVkdWNlIiwiYUlubmVyQ29udHJvbHMiLCJzSW5uZXJDb250cm9sIiwiVUk1RWxlbWVudCIsImdldEVsZW1lbnRCeUlkIiwicHVzaCIsImZpbHRlciIsIm9Jbm5lckNvbnRyb2wiLCJmaWx0ZXJDb250cm9sIiwib1ZpZXciLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckNvbmRpdGlvbnMiLCJzUmVmcmVzaENhdXNlIiwib25WaWV3TmVlZHNSZWZyZXNoIiwiZmlsdGVyQ29uZGl0aW9ucyIsImN1cnJlbnRUYWJJZCIsInJlZnJlc2hDYXVzZSIsImdldENvdW50cyIsInNldENvdW50IiwidGhlbiIsImNvdW50IiwiY2F0Y2giLCJlcnJvciIsIkxvZyIsInRhYmxlRXZlbnQiLCJldmVudE1hY3JvQVBJIiwidGFyZ2V0S2V5IiwicmVmcmVzaFRhYnNDb3VudCIsInNwbGl0Iiwib0ljb25UYWJGaWx0ZXIiLCJjb3VudHNPdXREYXRlZCIsInNldFRhYkNvbnRlbnRUb0JlUmVmcmVzaGVkT25OZXh0T3BlbmluZyIsInNlbGVjdGVkVGFiS2V5IiwidGFiS2V5cyIsInJlZnJlc2hTZWxlY3RlZFRhYkNvbnRlbnQiLCJiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQiLCJiSXNTZWxlY3RlZEtleSIsInNBY3Rpb24iLCJSZXN1bWUiLCJTdXNwZW5kIiwicHJvcGVydGllcyIsInNUZXh0IiwiYUlnbm9yZWRGaWVsZHMiLCJBcnJheSIsImlzQXJyYXkiLCJhSWdub3JlZExhYmVscyIsIk1lc3NhZ2VTdHJpcCIsImdldExhYmVscyIsImdldFBhcmFtZXRlciIsIkNvbnRyb2wiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk11bHRpcGxlTW9kZUNvbnRyb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHlTZXQgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBldmVudCwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCAqIGFzIE1ldGFNb2RlbENvbnZlcnRlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWVzc2FnZVN0cmlwXCI7XG5pbXBvcnQgeyBnZXRSZXNvdXJjZU1vZGVsIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvUmVzb3VyY2VNb2RlbEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgTWFjcm9BUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvTWFjcm9BUElcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIExpc3RSZXBvcnRDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL0xpc3RSZXBvcnQvTGlzdFJlcG9ydENvbnRyb2xsZXIuY29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgSWNvblRhYkJhciBmcm9tIFwic2FwL20vSWNvblRhYkJhclwiO1xuaW1wb3J0IHR5cGUgeyBJY29uVGFiQmFyJFNlbGVjdEV2ZW50IH0gZnJvbSBcInNhcC9tL0ljb25UYWJCYXJcIjtcbmltcG9ydCB0eXBlIEljb25UYWJGaWx0ZXIgZnJvbSBcInNhcC9tL0ljb25UYWJGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIENvcmVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIHsgJENvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IFVJNUVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCBDb250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUEkgZnJvbSBcInNhcC91aS9mbC93cml0ZS9hcGkvQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIElubmVyQ29udHJvbFR5cGUgPSBNYWNyb0FQSSAmXG5cdFBhcnRpYWw8e1xuXHRcdHJlc3VtZUJpbmRpbmc6IEZ1bmN0aW9uO1xuXHRcdHN1c3BlbmRCaW5kaW5nOiBGdW5jdGlvbjtcblx0XHRnZXRDb3VudHM6IEZ1bmN0aW9uO1xuXHRcdHJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzOiBGdW5jdGlvbjtcblx0XHRpbnZhbGlkYXRlQ29udGVudDogRnVuY3Rpb247XG5cdFx0Z2V0Q29udGVudDogRnVuY3Rpb247XG5cdH0+O1xuXG50eXBlIE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMgPSB7XG5cdGVudGl0eVR5cGVQYXRoOiBzdHJpbmc7XG5cdGlnbm9yZWRGaWVsZHM6IHN0cmluZ1tdO1xuXHR0aXRsZTogc3RyaW5nO1xufTtcblxuZW51bSBCaW5kaW5nQWN0aW9uIHtcblx0U3VzcGVuZCA9IFwic3VzcGVuZEJpbmRpbmdcIixcblx0UmVzdW1lID0gXCJyZXN1bWVCaW5kaW5nXCJcbn1cblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LmNvbnRyb2xzLk11bHRpcGxlTW9kZUNvbnRyb2xcIilcbmNsYXNzIE11bHRpcGxlTW9kZUNvbnRyb2wgZXh0ZW5kcyBDb250cm9sIHtcblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0c2hvd0NvdW50cyE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0c2V0VmlzaWJsZU92ZXJyaWRkZW4hOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGZyZWV6ZUNvbnRlbnQhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGNvdW50c091dERhdGVkITogYm9vbGVhbjtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5tLkljb25UYWJCYXJcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudCE6IEljb25UYWJCYXI7XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiB0cnVlIH0pXG5cdGlubmVyQ29udHJvbHMhOiBzdHJpbmdbXTtcblxuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuRmlsdGVyQmFyXCIsIG11bHRpcGxlOiBmYWxzZSB9KVxuXHRmaWx0ZXJDb250cm9sITogc3RyaW5nO1xuXG5cdEBldmVudCgpXG5cdHNlbGVjdCE6IEZ1bmN0aW9uO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGlkPzogc3RyaW5nIHwgdW5kZWZpbmVkIHwgKFByb3BlcnRpZXNPZjxNdWx0aXBsZU1vZGVDb250cm9sPiAmICRDb250cm9sU2V0dGluZ3MpLFxuXHRcdHNldHRpbmdzPzogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxNdWx0aXBsZU1vZGVDb250cm9sPlxuXHQpIHtcblx0XHRzdXBlcihpZCBhcyBzdHJpbmcsIHNldHRpbmdzKTtcblx0XHR0aGlzLmNvbnRlbnQ/LmFkZEV2ZW50RGVsZWdhdGUoe1xuXHRcdFx0b25BZnRlclJlbmRlcmluZzogdGhpcy5vbkFmdGVySWNvblRhYkJhclJlbmRlcmluZy5iaW5kKHRoaXMpXG5cdFx0fSk7XG5cdH1cblxuXHRvbkFmdGVySWNvblRhYkJhclJlbmRlcmluZygpOiB2b2lkIHtcblx0XHR0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCk/LnJlc3VtZUJpbmRpbmc/LighdGhpcy5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikpO1xuXHRcdGlmICh0aGlzLnNob3dDb3VudHMgJiYgIXRoaXMuc2V0VmlzaWJsZU92ZXJyaWRkZW4pIHtcblx0XHRcdHRoaXMuc2V0UHJvcGVydHkoXCJzZXRWaXNpYmxlT3ZlcnJpZGRlblwiLCB0cnVlKTtcblx0XHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG1hY3JvQVBJOiBNYWNyb0FQSSk6IHZvaWQgPT4ge1xuXHRcdFx0XHRjb25zdCBpY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChtYWNyb0FQSSk7XG5cdFx0XHRcdC8vIE5vIGNvdW50IHRvIHNob3dcblx0XHRcdFx0aWYgKCFpY29uVGFiRmlsdGVyKSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3Qgb3JpZ2luU2V0VmlzaWJsZSA9IGljb25UYWJGaWx0ZXIuc2V0VmlzaWJsZTtcblx0XHRcdFx0aWNvblRhYkZpbHRlci5zZXRWaXNpYmxlID0gKHZhbHVlOiBib29sZWFuKTogSWNvblRhYkZpbHRlciA9PiB7XG5cdFx0XHRcdFx0aWYgKGljb25UYWJGaWx0ZXIuZ2V0VmlzaWJsZSgpID09PSBmYWxzZSAmJiB2YWx1ZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5yZWZyZXNoVGFiQ291bnQobWFjcm9BUEkpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gb3JpZ2luU2V0VmlzaWJsZS5iaW5kKGljb25UYWJGaWx0ZXIpKHZhbHVlKTtcblx0XHRcdFx0fTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdG9uQmVmb3JlUmVuZGVyaW5nKCk6IHZvaWQge1xuXHRcdHRoaXMuZ2V0VGFic01vZGVsKCk7IC8vIEdlbmVyYXRlIHRoZSBtb2RlbCB3aGljaCBpcyBtYW5kYXRvcnkgZm9yIHNvbWUgYmluZGluZ3NcblxuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpO1xuXHRcdGlmICghb0ZpbHRlckNvbnRyb2wpIHtcblx0XHRcdC8vIEluIGNhc2UgdGhlcmUncyBubyBmaWx0ZXJiYXIsIHdlIGhhdmUgdG8gdXBkYXRlIHRoZSBjb3VudHMgaW4gdGhlIHRhYnMgaW1tZWRpYXRlbHlcblx0XHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQodHJ1ZSk7XG5cdFx0fVxuXHRcdGNvbnN0IG9GaWx0ZXJCYXJBUEkgPSBvRmlsdGVyQ29udHJvbD8uZ2V0UGFyZW50KCk7XG5cdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5zaG93Q291bnRzKSB7XG5cdFx0XHRcdG9NYWNyb0FQSS5hdHRhY2hFdmVudChcImludGVybmFsRGF0YVJlcXVlc3RlZFwiLCB0aGlzLmludGVybmFsUmVmcmVzaFRhYnNDb3VudC5iaW5kKHRoaXMpKTtcblx0XHRcdH1cblx0XHRcdG9NYWNyb0FQSS5zdXNwZW5kQmluZGluZz8uKCk7XG5cdFx0fSk7XG5cdFx0aWYgKG9GaWx0ZXJCYXJBUEkpIHtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbFNlYXJjaFwiLCB0aGlzLl9vblNlYXJjaC5iaW5kKHRoaXMpKTtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbEZpbHRlckNoYW5nZWRcIiwgdGhpcy5fb25GaWx0ZXJDaGFuZ2VkLmJpbmQodGhpcykpO1xuXHRcdH1cblx0fVxuXG5cdHN0YXRpYyByZW5kZXIob1JtOiBSZW5kZXJNYW5hZ2VyLCBvQ29udHJvbDogTXVsdGlwbGVNb2RlQ29udHJvbCk6IHZvaWQge1xuXHRcdG9SbS5yZW5kZXJDb250cm9sKG9Db250cm9sLmNvbnRlbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIG1vZGVsIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgSWNvblRhYkZpbHRlcnMuXG5cdCAqIEByZXR1cm5zIFRoZSBtb2RlbFxuXHQgKi9cblx0Z2V0VGFic01vZGVsKCk6IEpTT05Nb2RlbCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgc1RhYnNNb2RlbCA9IFwidGFic0ludGVybmFsXCI7XG5cdFx0Y29uc3Qgb0NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0aWYgKCFvQ29udGVudCkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0bGV0IG9Nb2RlbCA9IG9Db250ZW50LmdldE1vZGVsKHNUYWJzTW9kZWwpIGFzIEpTT05Nb2RlbCB8IHVuZGVmaW5lZDtcblx0XHRpZiAoIW9Nb2RlbCkge1xuXHRcdFx0b01vZGVsID0gbmV3IEpTT05Nb2RlbCh7fSk7XG5cdFx0XHRvQ29udGVudC5zZXRNb2RlbChvTW9kZWwsIHNUYWJzTW9kZWwpO1xuXHRcdH1cblx0XHRyZXR1cm4gb01vZGVsO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGlubmVyIGNvbnRyb2wgb2YgdGhlIGRpc3BsYXllZCB0YWIuXG5cdCAqIEByZXR1cm5zIFRoZSBjb250cm9sXG5cdCAqL1xuXHRnZXRTZWxlY3RlZElubmVyQ29udHJvbCgpOiBJbm5lckNvbnRyb2xUeXBlIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBvU2VsZWN0ZWRUYWIgPSB0aGlzLmNvbnRlbnQ/LmdldEl0ZW1zKCkuZmluZCgob0l0ZW0pID0+IChvSXRlbSBhcyBJY29uVGFiRmlsdGVyKS5nZXRLZXkoKSA9PT0gdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCkpO1xuXHRcdHJldHVybiBvU2VsZWN0ZWRUYWJcblx0XHRcdD8gdGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZmluZCgob01hY3JvQVBJKSA9PiB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSkgPT09IG9TZWxlY3RlZFRhYilcblx0XHRcdDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1hbmFnZXMgdGhlIGJpbmRpbmcgb2YgYWxsIGlubmVyIGNvbnRyb2xzIHdoZW4gdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgaXMgY2hhbmdlZC5cblx0ICogQHBhcmFtIG9FdmVudCBFdmVudCBmaXJlZCBieSB0aGUgSWNvblRhYkJhclxuXHQgKi9cblx0c3RhdGljIGhhbmRsZVRhYkNoYW5nZShvRXZlbnQ6IEljb25UYWJCYXIkU2VsZWN0RXZlbnQpOiB2b2lkIHtcblx0XHRjb25zdCBvSWNvblRhYkJhciA9IG9FdmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBvTXVsdGlDb250cm9sID0gb0ljb25UYWJCYXIuZ2V0UGFyZW50KCkgYXMgTXVsdGlwbGVNb2RlQ29udHJvbDtcblxuXHRcdGNvbnN0IG1QYXJhbWV0ZXJzID0gb0V2ZW50LmdldFBhcmFtZXRlcnMoKTtcblx0XHRvTXVsdGlDb250cm9sLl9zZXRJbm5lckJpbmRpbmcodHJ1ZSk7XG5cdFx0Y29uc3Qgc1ByZXZpb3VzU2VsZWN0ZWRLZXkgPSBtUGFyYW1ldGVycz8ucHJldmlvdXNLZXk7XG5cdFx0Y29uc3Qgc1NlbGVjdGVkS2V5ID0gbVBhcmFtZXRlcnM/LnNlbGVjdGVkS2V5O1xuXG5cdFx0aWYgKHNTZWxlY3RlZEtleSAmJiBzUHJldmlvdXNTZWxlY3RlZEtleSAhPT0gc1NlbGVjdGVkS2V5KSB7XG5cdFx0XHRjb25zdCBvRmlsdGVyQmFyID0gb011bHRpQ29udHJvbC5fZ2V0RmlsdGVyQ29udHJvbCgpO1xuXHRcdFx0aWYgKG9GaWx0ZXJCYXIgJiYgIW9NdWx0aUNvbnRyb2wuZ2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIpKSB7XG5cdFx0XHRcdGlmICghb011bHRpQ29udHJvbC5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpKSB7XG5cdFx0XHRcdFx0Ly9jdXN0b20gdGFiXG5cdFx0XHRcdFx0b011bHRpQ29udHJvbC5fcmVmcmVzaEN1c3RvbVZpZXcob0ZpbHRlckJhci5nZXRGaWx0ZXJDb25kaXRpb25zKCksIFwidGFiQ2hhbmdlZFwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Q29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJLmFkZCh7XG5cdFx0XHRcdGNoYW5nZXM6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRjaGFuZ2VTcGVjaWZpY0RhdGE6IHtcblx0XHRcdFx0XHRcdFx0Y2hhbmdlVHlwZTogXCJzZWxlY3RJY29uVGFiQmFyRmlsdGVyXCIsXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IHtcblx0XHRcdFx0XHRcdFx0XHRzZWxlY3RlZEtleTogc1NlbGVjdGVkS2V5LFxuXHRcdFx0XHRcdFx0XHRcdHByZXZpb3VzU2VsZWN0ZWRLZXk6IHNQcmV2aW91c1NlbGVjdGVkS2V5XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRzZWxlY3RvckVsZW1lbnQ6IG9JY29uVGFiQmFyXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRvTXVsdGlDb250cm9sLl9nZXRWaWV3Q29udHJvbGxlcigpPy5nZXRFeHRlbnNpb25BUEkoKT8udXBkYXRlQXBwU3RhdGUoKTtcblxuXHRcdG9NdWx0aUNvbnRyb2wuZmlyZUV2ZW50KFwic2VsZWN0XCIsIHtcblx0XHRcdGljb25UYWJCYXI6IG9JY29uVGFiQmFyLFxuXHRcdFx0c2VsZWN0ZWRLZXk6IHNTZWxlY3RlZEtleSxcblx0XHRcdHByZXZpb3VzS2V5OiBzUHJldmlvdXNTZWxlY3RlZEtleVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlZnJlc2hlcyB0aGUgY29udGVudCBvZiB0aGUgc2VsZWN0ZWQgaW5uZXIgY29udHJvbC5cblx0ICpcblx0ICovXG5cdHJlZnJlc2hTZWxlY3RlZElubmVyQ29udHJvbENvbnRlbnQoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0dGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpPy5pbnZhbGlkYXRlQ29udGVudD8uKCk7XG5cdFx0XHR0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCk/LnJlc3VtZUJpbmRpbmc/Lih0cnVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gY3VzdG9tIHRhYlxuXHRcdFx0dGhpcy5fcmVmcmVzaEN1c3RvbVZpZXcodW5kZWZpbmVkLCBcImZvcmNlZFJlZnJlc2hcIik7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEludmFsaWRhdGVzIHRoZSBjb250ZW50IG9mIHRoZSBpbm5lciBjb250cm9scy5cblx0ICogQHBhcmFtIFtrZXlzXSBUaGUgbGlzdCBvZiB0aGUga2V5cyBpZGVudGlmeWluZyB0aGUgdmlld3MgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3QgZm9yIHdoaWNoIHRoZSB2aWV3cycgY29udGVudCB3aWxsIGJlIGludmFsaWRhdGVkLiBJZiBub3QgcHJvdmlkZWQsIGFsbCB0aGUgdmlld3MnIGNvbnRlbnQgd2lsbCBiZSBpbnZhbGlkYXRlZFxuXHQgKi9cblx0aW52YWxpZGF0ZUNvbnRlbnQoa2V5cz86IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChtYWNyb0FQSSkgPT4ge1xuXHRcdFx0aWYgKGtleXMpIHtcblx0XHRcdFx0Y29uc3QgaWNvblRhYkZpbHRlciA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wobWFjcm9BUEkpO1xuXHRcdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0aWNvblRhYkZpbHRlciAmJlxuXHRcdFx0XHRcdFx0KGljb25UYWJGaWx0ZXIuZ2V0S2V5KCkgPT09IGBmZTo6dGFibGU6OiR7a2V5fTo6TGluZUl0ZW1gIHx8IGljb25UYWJGaWx0ZXIuZ2V0S2V5KCkgPT09IGBmZTo6Q3VzdG9tVGFiOjoke2tleX1gKVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0bWFjcm9BUEkuaW52YWxpZGF0ZUNvbnRlbnQ/LigpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bWFjcm9BUEkuaW52YWxpZGF0ZUNvbnRlbnQ/LigpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGNvdW50cyB0byBcIm91dCBvZiBkYXRlXCIgb3IgXCJ1cCB0byBkYXRlXCJcblx0ICogSWYgdGhlIGNvdW50cyBhcmUgc2V0IHRvIFwib3V0IG9mIGRhdGVcIiBhbmQgdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgZG9lc24ndCBjb250YWluIGFuIGlubmVyIGNvbnRyb2wsIGFsbCBpbm5lciBjb250cm9scyBhcmUgcmVxdWVzdGVkIHRvIGdldCB0aGUgbmV3IGNvdW50cy5cblx0ICogQHBhcmFtIGJWYWx1ZSBFaXRoZXIgZnJlZXplcyB0aGUgY29udHJvbCBvciBub3Rcblx0ICovXG5cdHNldENvdW50c091dERhdGVkKGJWYWx1ZSA9IHRydWUpOiB2b2lkIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwiY291bnRzT3V0RGF0ZWRcIiwgYlZhbHVlKTtcblx0XHQvLyBpZiB0aGUgY3VycmVudCB0YWIgaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBubyBpbm5lciBDb250cm9sXG5cdFx0Ly8gdGhlIHRhYiBjb3VudHMgbXVzdCBiZSBtYW51YWxseSByZWZyZXNoZWQgc2luY2Ugbm8gTWFjcm8gQVBJIHdpbGwgc2VudCBldmVudCBpbnRlcm5hbERhdGFSZXF1ZXN0ZWRcblx0XHRpZiAoYlZhbHVlICYmICF0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCkpIHtcblx0XHRcdHRoaXMuaW50ZXJuYWxSZWZyZXNoVGFic0NvdW50KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEZyZWV6ZXMgdGhlIGNvbnRlbnQgOlxuXHQgKiAtIGNvbnRlbnQgaXMgZnJvemVuOiB0aGUgYmluZGluZyBvZiB0aGUgaW5uZXIgY29udHJvbHMgYXJlIHN1c3BlbmRlZC5cblx0ICogLSBjb250ZW50IGlzIHVuZnJvemVuOiB0aGUgYmluZGluZyBvZiBpbm5lciBjb250cm9sIHJlbGF0ZWQgdG8gdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgaXMgcmVzdW1lZC5cblx0ICogQHBhcmFtIGJWYWx1ZSBGcmVlemUgb3Igbm90IHRoZSBjb250cm9sXG5cdCAqL1xuXHRzZXRGcmVlemVDb250ZW50KGJWYWx1ZTogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIsIGJWYWx1ZSk7XG5cdFx0dGhpcy5fc2V0SW5uZXJCaW5kaW5nKCk7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgaW50ZXJuYWwgbW9kZWwgd2l0aCB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBub3QgYXBwbGljYWJsZSBvbiBlYWNoIEljb25UYWJGaWx0ZXIgKGNvbnRhaW5pbmcgaW5uZXIgY29udHJvbCkgYWNjb3JkaW5nIHRvIHRoZSBlbnRpdHlUeXBlIG9mIHRoZSBmaWx0ZXIgY29udHJvbC5cblx0ICpcblx0ICovXG5cdF91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHMoKTogdm9pZCB7XG5cdFx0Y29uc3QgdGFic01vZGVsID0gdGhpcy5nZXRUYWJzTW9kZWwoKTtcblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKSBhcyBDb250cm9sO1xuXHRcdGlmICh0YWJzTW9kZWwgJiYgb0ZpbHRlckNvbnRyb2wpIHtcblx0XHRcdGNvbnN0IHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIHsgbm90QXBwbGljYWJsZTogeyBmaWVsZHM6IHN0cmluZ1tdOyB0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gfT4gPSB7fTtcblx0XHRcdGNvbnN0IHZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdFx0Y29uc3Qgdmlld0RhdGEgPSB2aWV3LmdldFZpZXdEYXRhKCk7XG5cdFx0XHRpZiAoIXZpZXdEYXRhLnVzZUhpZGRlbkZpbHRlckJhcikge1xuXHRcdFx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0XHRjb25zdCBvVGFiID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0XHRcdGlmIChvVGFiKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBzVGFiSWQgPSBvVGFiLmdldEtleSgpO1xuXHRcdFx0XHRcdFx0Y29uc3QgbUlnbm9yZWRGaWVsZHMgPSBvTWFjcm9BUEkucmVmcmVzaE5vdEFwcGxpY2FibGVGaWVsZHM/LihvRmlsdGVyQ29udHJvbCkgfHwgW107XG5cdFx0XHRcdFx0XHRyZXN1bHRzW3NUYWJJZF0gPSB7XG5cdFx0XHRcdFx0XHRcdG5vdEFwcGxpY2FibGU6IHtcblx0XHRcdFx0XHRcdFx0XHRmaWVsZHM6IG1JZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiB0aGlzLl9zZXRUYWJNZXNzYWdlU3RyaXAoe1xuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5VHlwZVBhdGg6IG9GaWx0ZXJDb250cm9sLmRhdGEoXCJlbnRpdHlUeXBlXCIpLFxuXHRcdFx0XHRcdFx0XHRcdFx0aWdub3JlZEZpZWxkczogbUlnbm9yZWRGaWVsZHMsXG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogb1RhYi5nZXRUZXh0KClcblx0XHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0aWYgKG9NYWNyb0FQSSAmJiBvTWFjcm9BUEkuaXNBKFwic2FwLmZlLm1hY3Jvcy5DaGFydFwiKSkge1xuXHRcdFx0XHRcdFx0XHRyZXN1bHRzW3NUYWJJZF0gPSB0aGlzLmNoZWNrTm9uRmlsdGVyYWJsZUVudGl0eVNldChvTWFjcm9BUEksIHNUYWJJZCwgcmVzdWx0cyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0dGFic01vZGVsLnNldERhdGEocmVzdWx0cyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIE1vZGlmaWVzIHRoZSBtZXNzYWdlc3RyaXAgbWVzc2FnZSBiYXNlZCBvbiBlbnRpdHkgc2V0IGlzIGZpbGVyYWJsZSBvciBub3QuXG5cdCAqIEBwYXJhbSBvTWFjcm9BUEkgTWFjcm8gY2hhcnQgYXBpXG5cdCAqIEBwYXJhbSBzVGFiSWQgVGFiIGtleSBJRFxuXHQgKiBAcGFyYW0gcmVzdWx0cyBTaG91bGQgY29udGFpbiBmaWVsZHMgYW5kIHRpdGxlXG5cdCAqIEByZXR1cm5zIEFuIG9iamVjdCBvZiBtb2RpZmllZCBmaWVsZHMgYW5kIHRpdGxlXG5cdCAqL1xuXHRjaGVja05vbkZpbHRlcmFibGVFbnRpdHlTZXQoXG5cdFx0b01hY3JvQVBJOiBJbm5lckNvbnRyb2xUeXBlLFxuXHRcdHNUYWJJZDogc3RyaW5nLFxuXHRcdHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIHsgbm90QXBwbGljYWJsZTogeyBmaWVsZHM6IHN0cmluZ1tdOyB0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gfT5cblx0KTogeyBub3RBcHBsaWNhYmxlOiB7IGZpZWxkczogc3RyaW5nW107IHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQgfSB9IHtcblx0XHRjb25zdCByZXNvdXJjZU1vZGVsID0gZ2V0UmVzb3VyY2VNb2RlbChvTWFjcm9BUEkpO1xuXHRcdGNvbnN0IG9DaGFydCA9IG9NYWNyb0FQST8uZ2V0Q29udGVudCA/IG9NYWNyb0FQSS5nZXRDb250ZW50KCkgOiB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgYkVudGl0eVNldEZpbGVyYWJsZSA9XG5cdFx0XHRvQ2hhcnQgJiZcblx0XHRcdE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8RW50aXR5U2V0Pihcblx0XHRcdFx0KG9DaGFydC5nZXRNb2RlbCgpIGFzIE9EYXRhTW9kZWwpLmdldE1ldGFNb2RlbCgpLmdldENvbnRleHQoYCR7b0NoYXJ0LmRhdGEoXCJ0YXJnZXRDb2xsZWN0aW9uUGF0aFwiKX1gKVxuXHRcdFx0KT8udGFyZ2V0T2JqZWN0Py5hbm5vdGF0aW9ucz8uQ2FwYWJpbGl0aWVzPy5GaWx0ZXJSZXN0cmljdGlvbnM/LkZpbHRlcmFibGU7XG5cdFx0aWYgKGJFbnRpdHlTZXRGaWxlcmFibGUgIT09IHVuZGVmaW5lZCAmJiAhYkVudGl0eVNldEZpbGVyYWJsZSkge1xuXHRcdFx0aWYgKHJlc3VsdHNbc1RhYklkXS5ub3RBcHBsaWNhYmxlLmZpZWxkcy5pbmNsdWRlcyhcIiRzZWFyY2hcIikpIHtcblx0XHRcdFx0cmVzdWx0c1tzVGFiSWRdLm5vdEFwcGxpY2FibGUudGl0bGUgKz0gXCIgXCIgKyByZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0xSX01VTFRJVklaX0NIQVJUX01VTFRJX05PTl9GSUxURVJBQkxFXCIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmVzdWx0c1tzVGFiSWRdLm5vdEFwcGxpY2FibGUuZmllbGRzID0gW1wibm9uRmlsdGVyYWJsZVwiXTtcblx0XHRcdFx0cmVzdWx0c1tzVGFiSWRdLm5vdEFwcGxpY2FibGUudGl0bGUgPSByZXNvdXJjZU1vZGVsLmdldFRleHQoXCJDX0xSX01VTFRJVklaX0NIQVJUX01VTFRJX05PTl9GSUxURVJBQkxFXCIpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0c1tzVGFiSWRdO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGlubmVyIGNvbnRyb2xzLlxuXHQgKiBAcGFyYW0gYk9ubHlGb3JWaXNpYmxlVGFiIFNob3VsZCBkaXNwbGF5IG9ubHkgdGhlIHZpc2libGUgY29udHJvbHNcblx0ICogQHJldHVybnMgQW4gYXJyYXkgb2YgY29udHJvbHNcblx0ICovXG5cdGdldEFsbElubmVyQ29udHJvbHMoYk9ubHlGb3JWaXNpYmxlVGFiID0gZmFsc2UpOiBJbm5lckNvbnRyb2xUeXBlW10ge1xuXHRcdHJldHVybiAoXG5cdFx0XHR0aGlzLmlubmVyQ29udHJvbHMucmVkdWNlKChhSW5uZXJDb250cm9sczogSW5uZXJDb250cm9sVHlwZVtdLCBzSW5uZXJDb250cm9sOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRyb2wgPSBVSTVFbGVtZW50LmdldEVsZW1lbnRCeUlkKHNJbm5lckNvbnRyb2wpIGFzIElubmVyQ29udHJvbFR5cGU7XG5cdFx0XHRcdGlmIChvQ29udHJvbCkge1xuXHRcdFx0XHRcdGFJbm5lckNvbnRyb2xzLnB1c2gob0NvbnRyb2wpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhSW5uZXJDb250cm9scy5maWx0ZXIoXG5cdFx0XHRcdFx0KG9Jbm5lckNvbnRyb2wpID0+ICFiT25seUZvclZpc2libGVUYWIgfHwgdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvSW5uZXJDb250cm9sKT8uZ2V0VmlzaWJsZSgpXG5cdFx0XHRcdCk7XG5cdFx0XHR9LCBbXSkgfHwgW11cblx0XHQpO1xuXHR9XG5cblx0X2dldEZpbHRlckNvbnRyb2woKTogRmlsdGVyQmFyIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gVUk1RWxlbWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmZpbHRlckNvbnRyb2wpIGFzIEZpbHRlckJhciB8IHVuZGVmaW5lZDtcblx0fVxuXG5cdF9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9Db250cm9sOiBDb250cm9sKTogSWNvblRhYkZpbHRlciB8IHVuZGVmaW5lZCB7XG5cdFx0bGV0IG9UYWI6IFVJNUVsZW1lbnQgfCB1bmRlZmluZWQgPSBvQ29udHJvbDtcblx0XHRpZiAob1RhYiAmJiAhb1RhYi5pc0E8SWNvblRhYkZpbHRlcj4oXCJzYXAubS5JY29uVGFiRmlsdGVyXCIpICYmIChvVGFiIGFzIHsgZ2V0UGFyZW50PzogRnVuY3Rpb24gfSkuZ2V0UGFyZW50KSB7XG5cdFx0XHRvVGFiID0gb0NvbnRyb2wuZ2V0UGFyZW50KCkgYXMgVUk1RWxlbWVudCB8IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0cmV0dXJuIG9UYWIgJiYgb1RhYi5pc0E8SWNvblRhYkZpbHRlcj4oXCJzYXAubS5JY29uVGFiRmlsdGVyXCIpID8gb1RhYiA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdF9nZXRWaWV3Q29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdHJldHVybiBvVmlldyAmJiBvVmlldy5nZXRDb250cm9sbGVyKCk7XG5cdH1cblxuXHRfcmVmcmVzaEN1c3RvbVZpZXcob0ZpbHRlckNvbmRpdGlvbnM6IHVua25vd24sIHNSZWZyZXNoQ2F1c2U6IHN0cmluZyk6IHZvaWQge1xuXHRcdCh0aGlzLl9nZXRWaWV3Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyKT8ub25WaWV3TmVlZHNSZWZyZXNoPy4oe1xuXHRcdFx0ZmlsdGVyQ29uZGl0aW9uczogb0ZpbHRlckNvbmRpdGlvbnMsXG5cdFx0XHRjdXJyZW50VGFiSWQ6IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpLFxuXHRcdFx0cmVmcmVzaENhdXNlOiBzUmVmcmVzaENhdXNlXG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBjb3VudCBvZiB0aGUgVGFiIGNvbnRhaW5pbmcgdGhlIG1hY3JvIHBhc3NlZCBhcyBwYXJhbWV0ZXIuXG5cdCAqIEBwYXJhbSBtYWNyb0FQSSBUaGUgY29udGVudCBvZiB0aGUgdGFiIHdlIHdhbnQgdG8gcmVmcmVzaFxuXHQgKi9cblx0cmVmcmVzaFRhYkNvdW50KG1hY3JvQVBJOiBJbm5lckNvbnRyb2xUeXBlKTogdm9pZCB7XG5cdFx0Y29uc3QgaWNvblRhYkZpbHRlciA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wobWFjcm9BUEkpO1xuXHRcdGlmICghaWNvblRhYkZpbHRlcikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAobWFjcm9BUEk/LmdldENvdW50cykge1xuXHRcdFx0aWNvblRhYkZpbHRlci5zZXRDb3VudChcIi4uLlwiKTtcblx0XHRcdG1hY3JvQVBJXG5cdFx0XHRcdC5nZXRDb3VudHMoKVxuXHRcdFx0XHQudGhlbigoY291bnQ6IHN0cmluZyk6IEljb25UYWJGaWx0ZXIgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBpY29uVGFiRmlsdGVyLnNldENvdW50KGNvdW50IHx8IFwiMFwiKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogdW5rbm93bik6IHZvaWQge1xuXHRcdFx0XHRcdExvZy5lcnJvcihgRXJyb3Igd2hpbGUgcmVxdWVzdGluZyBDb3VudHMgZm9yIENvbnRyb2w6ICR7ZXJyb3J9YCk7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdGludGVybmFsUmVmcmVzaFRhYnNDb3VudCh0YWJsZUV2ZW50PzogQ29yZUV2ZW50KTogdm9pZCB7XG5cdFx0Ly8gSWYgdGhlIHJlZnJlc2ggaXMgdHJpZ2dlcmVkIGJ5IGFuIGV2ZW50IChpbnRlcm5hbERhdGFSZXF1ZXN0ZWQpXG5cdFx0Ly8gd2UgY2Fubm90IHVzZSB0aGUgc2VsZWN0ZWQga2V5IGFzIHJlZmVyZW5jZSBzaW5jZSB0YWJsZSBjYW4gYmUgcmVmcmVzaGVkIGJ5IFNpZGVFZmZlY3RzXG5cdFx0Ly8gc28gdGhlIHRhYmxlIGNvdWxkIGJlIGludG8gYSBkaWZmZXJlbnQgdGFiIC0+IHdlIHVzZSB0aGUgc291cmNlIG9mIHRoZSBldmVudCB0byBmaW5kIHRoZSB0YXJnZXRlZCB0YWJcblx0XHQvLyBJZiBub3QgdHJpZ2dlcmVkIGJ5IGFuIGV2ZW50IC0+IHJlZnJlc2ggYXQgbGVhc3QgdGhlIGNvdW50cyBvZiB0aGUgY3VycmVudCBNYWNyb0FQSVxuXHRcdGNvbnN0IGV2ZW50TWFjcm9BUEkgPSB0YWJsZUV2ZW50Py5nZXRTb3VyY2UoKSBhcyBNYWNyb0FQSTtcblx0XHRjb25zdCB0YXJnZXRLZXkgPSBldmVudE1hY3JvQVBJID8gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChldmVudE1hY3JvQVBJKT8uZ2V0S2V5KCkgOiB0aGlzLmNvbnRlbnQ/LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0aWYgKHRhcmdldEtleSkge1xuXHRcdFx0dGhpcy5yZWZyZXNoVGFic0NvdW50KFt0YXJnZXRLZXkuc3BsaXQoXCI6OlwiKVsyXV0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZWZyZXNoZXMgdGhlIGNvdW50IG9mIHRoZSB2aWV3cyBpbiB0aGUgTXVsdGlNb2RlIGNvbnRyb2wuXG5cdCAqIEBwYXJhbSBba2V5c10gVGhlIGxpc3Qgb2YgdGhlIGtleXMgaWRlbnRpZnlpbmcgdGhlIHZpZXdzIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0IGZvciB3aGljaCB0aGUgdmlld3MnIGNvdW50IHdpbGwgYmUgcmVmcmVzaGVkLiBJZiBub3QgcHJvdmlkZWQsIGFsbCB0aGUgdmlld3MnIGNvdW50IHdpbGwgYmUgcmVmcmVzaGVkXG5cdCAqL1xuXHRyZWZyZXNoVGFic0NvdW50KGtleXM/OiBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5zaG93Q291bnRzKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmICgha2V5cykge1xuXHRcdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR9XG5cdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKHRydWUpLmZvckVhY2goKG9NYWNyb0FQSSk6IHZvaWQgPT4ge1xuXHRcdFx0Y29uc3Qgb0ljb25UYWJGaWx0ZXIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRpZiAodGhpcy5jb3VudHNPdXREYXRlZCB8fCAoa2V5cyAmJiBvSWNvblRhYkZpbHRlciAmJiBrZXlzLmluY2x1ZGVzKG9JY29uVGFiRmlsdGVyLmdldEtleSgpLnNwbGl0KFwiOjpcIilbMl0pKSkge1xuXHRcdFx0XHR0aGlzLnJlZnJlc2hUYWJDb3VudChvTWFjcm9BUEkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQoZmFsc2UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlZnJlc2hlcyB0aGUgY29udGVudCBvZiB0aGUgdW5kZXJseWluZyB2aWV3cyB1cG9uIHRoZSBuZXh0IG9wZW5pbmcuXG5cdCAqIE5vdGU6IFRoZSBjb250ZW50IG9mIHRoZSBzZWxlY3RlZCB2aWV3LCBpZiBwYXJ0IG9mIHRoZSBwcm92aWRlZCBrZXlzLCB3aWxsIGJlIHJlZnJlc2hlZCBpbW1lZGlhdGVseS5cblx0ICogQHBhcmFtIFtrZXlzXSBUaGUgbGlzdCBvZiB0aGUga2V5cyBpZGVudGlmeWluZyB0aGUgdmlld3MgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3QgZm9yIHdoaWNoIHRoZSB2aWV3cycgY29udGVudCB3aWxsIGJlIHJlZnJlc2hlZC4gSWYgbm90IHByb3ZpZGVkLCBhbGwgdGhlIHZpZXdzJyBjb250ZW50IHdpbGwgYmUgcmVmcmVzaGVkXG5cdCAqL1xuXHRzZXRUYWJDb250ZW50VG9CZVJlZnJlc2hlZE9uTmV4dE9wZW5pbmcoa2V5cz86IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0Y29uc3Qgc2VsZWN0ZWRUYWJLZXkgPSB0aGlzPy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0Y29uc3QgdGFiS2V5czogc3RyaW5nW10gPSBbXTtcblx0XHRjb25zdCByZWZyZXNoU2VsZWN0ZWRUYWJDb250ZW50ID0ga2V5cyA/IGtleXMuaW5jbHVkZXMoc2VsZWN0ZWRUYWJLZXk/LnNwbGl0KFwiOjpcIilbMl0pIDogdHJ1ZTtcblx0XHRpZiAoa2V5cykge1xuXHRcdFx0Zm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuXHRcdFx0XHRpZiAoc2VsZWN0ZWRUYWJLZXkgIT09IGBmZTo6dGFibGU6OiR7a2V5fTo6TGluZUl0ZW1gICYmIHNlbGVjdGVkVGFiS2V5ICE9PSBgZmU6OkN1c3RvbVRhYjo6JHtrZXl9YCkge1xuXHRcdFx0XHRcdHRhYktleXMucHVzaChrZXkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXM/LmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChtYWNyb0FQSSkgPT4ge1xuXHRcdFx0XHRjb25zdCBpY29uVGFiRmlsdGVyID0gdGhpcz8uX2dldFRhYkZyb21Jbm5lckNvbnRyb2wobWFjcm9BUEkpO1xuXHRcdFx0XHRpZiAoaWNvblRhYkZpbHRlciAmJiBpY29uVGFiRmlsdGVyLmdldEtleSgpICE9PSBzZWxlY3RlZFRhYktleSkge1xuXHRcdFx0XHRcdHRhYktleXMucHVzaChpY29uVGFiRmlsdGVyLmdldEtleSgpLnNwbGl0KFwiOjpcIilbMl0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0dGhpcz8uaW52YWxpZGF0ZUNvbnRlbnQodGFiS2V5cyk7XG5cdFx0aWYgKHJlZnJlc2hTZWxlY3RlZFRhYkNvbnRlbnQpIHtcblx0XHRcdHRoaXM/LnJlZnJlc2hTZWxlY3RlZElubmVyQ29udHJvbENvbnRlbnQoKTtcblx0XHR9XG5cdH1cblxuXHRfc2V0SW5uZXJCaW5kaW5nKGJSZXF1ZXN0SWZOb3RJbml0aWFsaXplZCA9IGZhbHNlKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuY29udGVudCkge1xuXHRcdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9JY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0XHRjb25zdCBiSXNTZWxlY3RlZEtleSA9IG9JY29uVGFiRmlsdGVyPy5nZXRLZXkoKSA9PT0gdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0XHRcdGNvbnN0IHNBY3Rpb24gPSBiSXNTZWxlY3RlZEtleSAmJiAhdGhpcy5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikgPyBCaW5kaW5nQWN0aW9uLlJlc3VtZSA6IEJpbmRpbmdBY3Rpb24uU3VzcGVuZDtcblx0XHRcdFx0b01hY3JvQVBJW3NBY3Rpb25dPy4oc0FjdGlvbiA9PT0gQmluZGluZ0FjdGlvbi5SZXN1bWUgPyBiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQgJiYgYklzU2VsZWN0ZWRLZXkgOiB1bmRlZmluZWQpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0X3NldFRhYk1lc3NhZ2VTdHJpcChwcm9wZXJ0aWVzOiBNZXNzYWdlU3RyaXBQcm9wZXJ0aWVzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRsZXQgc1RleHQgPSBcIlwiO1xuXHRcdGNvbnN0IGFJZ25vcmVkRmllbGRzID0gcHJvcGVydGllcy5pZ25vcmVkRmllbGRzO1xuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpIGFzIENvbnRyb2w7XG5cdFx0aWYgKG9GaWx0ZXJDb250cm9sICYmIEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHMpICYmIGFJZ25vcmVkRmllbGRzLmxlbmd0aCA+IDAgJiYgcHJvcGVydGllcy50aXRsZSkge1xuXHRcdFx0Y29uc3QgYUlnbm9yZWRMYWJlbHMgPSBNZXNzYWdlU3RyaXAuZ2V0TGFiZWxzKFxuXHRcdFx0XHRhSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0cHJvcGVydGllcy5lbnRpdHlUeXBlUGF0aCxcblx0XHRcdFx0b0ZpbHRlckNvbnRyb2wsXG5cdFx0XHRcdGdldFJlc291cmNlTW9kZWwob0ZpbHRlckNvbnRyb2wpXG5cdFx0XHQpO1xuXHRcdFx0c1RleHQgPSBNZXNzYWdlU3RyaXAuZ2V0VGV4dChhSWdub3JlZExhYmVscywgb0ZpbHRlckNvbnRyb2wsIHByb3BlcnRpZXMudGl0bGUpO1xuXHRcdFx0cmV0dXJuIHNUZXh0O1xuXHRcdH1cblx0fVxuXG5cdF9vblNlYXJjaChvRXZlbnQ6IENvcmVFdmVudDx7IGNvbmRpdGlvbnM6IHVua25vd24gfT4pOiB2b2lkIHtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdHRoaXMuc2V0RnJlZXplQ29udGVudChmYWxzZSk7XG5cdFx0aWYgKHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0dGhpcy5fdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGN1c3RvbSB0YWJcblx0XHRcdHRoaXMuX3JlZnJlc2hDdXN0b21WaWV3KG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zXCIpLCBcInNlYXJjaFwiKTtcblx0XHR9XG5cdH1cblxuXHRfb25GaWx0ZXJDaGFuZ2VkKG9FdmVudDogQ29yZUV2ZW50PHsgY29uZGl0aW9uc0Jhc2VkOiBib29sZWFuIH0+KTogdm9pZCB7XG5cdFx0aWYgKG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zQmFzZWRcIikpIHtcblx0XHRcdHRoaXMuc2V0RnJlZXplQ29udGVudCh0cnVlKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTXVsdGlwbGVNb2RlQ29udHJvbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQXdDS0EsYUFBYSwwQkFBYkEsYUFBYTtJQUFiQSxhQUFhO0lBQWJBLGFBQWE7SUFBQSxPQUFiQSxhQUFhO0VBQUEsRUFBYkEsYUFBYTtFQUFBLElBTVpDLG1CQUFtQixJQUFBQyxJQUFBLEdBRHhCQyxjQUFjLENB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
|
|
@@ -411,6 +411,9 @@ class MultipleModeControl extends Control {
|
|
|
411
411
|
* @param [keys] The list of the keys identifying the views defined in the manifest for which the views' count will be refreshed. If not provided, all the views' count will be refreshed
|
|
412
412
|
*/
|
|
413
413
|
refreshTabsCount(keys?: string[]): void {
|
|
414
|
+
if (!this.showCounts) {
|
|
415
|
+
return;
|
|
416
|
+
}
|
|
414
417
|
if (!keys) {
|
|
415
418
|
this.setCountsOutDated(true);
|
|
416
419
|
}
|
|
@@ -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.
|
|
39
|
+
version: "1.136.19",
|
|
40
40
|
noLibraryCSS: true
|
|
41
41
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
42
|
});
|