@sapui5/sap.fe.core 1.105.1 → 1.105.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.core",
3
- "version": "1.105.1",
3
+ "version": "1.105.2",
4
4
  "description": "SAPUI5 Library sap.fe.core",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "SAP SE (https://www.sap.com)",
@@ -6,7 +6,7 @@
6
6
  <copyright>SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.105.1</version>
9
+ <version>1.105.2</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.core</documentation>
12
12
 
@@ -86,6 +86,39 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/ui/base/Object",
86
86
  // delete this.editFlow._controller;
87
87
  // delete this.intentBasedNavigation._controller;
88
88
  }
89
+ /**
90
+ * Retrieves the editFlow controller extension for this page.
91
+ *
92
+ * @public
93
+ * @returns The editFlow controller extension
94
+ */
95
+ ;
96
+
97
+ _proto.getEditFlow = function getEditFlow() {
98
+ return this.editFlow;
99
+ }
100
+ /**
101
+ * Retrieves the routing controller extension for this page.
102
+ *
103
+ * @public
104
+ * @returns The routing controller extension
105
+ */
106
+ ;
107
+
108
+ _proto.getRouting = function getRouting() {
109
+ return this.routing;
110
+ }
111
+ /**
112
+ * Retrieves the intentBasedNavigation controller extension for this page.
113
+ *
114
+ * @public
115
+ * @returns The intentBasedNavigation controller extension
116
+ */
117
+ ;
118
+
119
+ _proto.getIntentBasedNavigation = function getIntentBasedNavigation() {
120
+ return this.intentBasedNavigation;
121
+ }
89
122
  /**
90
123
  * Access any control by ID.
91
124
  *
@@ -274,4 +307,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/ui/base/Object",
274
307
  })), _class2)) || _class);
275
308
  return ExtensionAPI;
276
309
  }, false);
277
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFeHRlbnNpb25BUEkiLCJkZWZpbmVVSTVDbGFzcyIsInByb3BlcnR5IiwidHlwZSIsIm9Db250cm9sbGVyIiwic0lkIiwiX2NvbnRyb2xsZXIiLCJfdmlldyIsImdldFZpZXciLCJleHRlbnNpb24iLCJlZGl0RmxvdyIsInJvdXRpbmciLCJfcm91dGluZyIsImludGVudEJhc2VkTmF2aWdhdGlvbiIsIl9wcmVmaXgiLCJkZXN0cm95IiwiYnlJZCIsIm9Db250cm9sIiwiZ2V0TW9kZWwiLCJzTW9kZWxOYW1lIiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0TWFuaWZlc3RFbnRyeSIsIm1vZGVscyIsInVuZGVmaW5lZCIsImFkZERlcGVuZGVudCIsInJlbW92ZURlcGVuZGVudCIsIm5hdmlnYXRlVG9UYXJnZXQiLCJzVGFyZ2V0Iiwib0NvbnRleHQiLCJsb2FkRnJhZ21lbnQiLCJtU2V0dGluZ3MiLCJvVGVtcGxhdGVDb21wb25lbnQiLCJDb21wb25lbnQiLCJnZXRPd25lckNvbXBvbmVudEZvciIsIm9QYWdlTW9kZWwiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwibVZpZXdEYXRhIiwiZ2V0Vmlld0RhdGEiLCJvVmlld0RhdGFNb2RlbCIsIkpTT05Nb2RlbCIsIm9QcmVwcm9jZXNzb3JTZXR0aW5ncyIsImJpbmRpbmdDb250ZXh0cyIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwiY29udGV4dFBhdGgiLCJnZXRFbnRpdHlTZXQiLCJjb252ZXJ0ZXJDb250ZXh0Iiwibm9SZXNvbHZlIiwidmlld0RhdGEiLCJtZXRhTW9kZWwiLCJhcHBDb21wb25lbnQiLCJvVGVtcGxhdGVQcm9taXNlIiwidGVtcGxhdGVDb250cm9sRnJhZ21lbnQiLCJuYW1lIiwiY29udHJvbGxlciIsImlzWE1MIiwiaWQiLCJ0aGVuIiwib0ZyYWdtZW50IiwiaW5pdGlhbEJpbmRpbmdDb250ZXh0Iiwic2V0QmluZGluZ0NvbnRleHQiLCJjYXRjaCIsIm9FcnJvciIsIkxvZyIsImVycm9yIiwidXBkYXRlQXBwU3RhdGUiLCJnZXRBcHBTdGF0ZUhhbmRsZXIiLCJjcmVhdGVBcHBTdGF0ZSIsIkJhc2VPYmplY3QiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkV4dGVuc2lvbkFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIEVkaXRGbG93IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9FZGl0Rmxvd1wiO1xuaW1wb3J0IHR5cGUgSW50ZW50QmFzZWROYXZpZ2F0aW9uIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlbnRCYXNlZE5hdmlnYXRpb25cIjtcbmltcG9ydCB0eXBlIEludGVybmFsUm91dGluZyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvSW50ZXJuYWxSb3V0aW5nXCI7XG5pbXBvcnQgdHlwZSBSb3V0aW5nIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9Sb3V0aW5nXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIFRlbXBsYXRlQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZUNvbXBvbmVudFwiO1xuaW1wb3J0IEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IENvbXBvbmVudCBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSB9IGZyb20gXCIuL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwiLi9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuXG4vKipcbiAqIENvbW1vbiBFeHRlbnNpb24gQVBJIGZvciBhbGwgcGFnZXMgb2YgU0FQIEZpb3JpIGVsZW1lbnRzIGZvciBPRGF0YSBWNC5cbiAqXG4gKiBAYWxpYXMgc2FwLmZlLmNvcmUuRXh0ZW5zaW9uQVBJXG4gKiBAcHVibGljXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBzYXAudWkuYmFzZS5PYmplY3RcbiAqIEBzaW5jZSAxLjc5LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuRXh0ZW5zaW9uQVBJXCIpXG5jbGFzcyBFeHRlbnNpb25BUEkgZXh0ZW5kcyBCYXNlT2JqZWN0IHtcblx0LyoqXG5cdCAqIEEgY29udHJvbGxlciBleHRlbnNpb24gb2ZmZXJpbmcgaG9va3MgaW50byB0aGUgZWRpdCBmbG93IG9mIHRoZSBhcHBsaWNhdGlvbi5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9FZGl0Rmxvd1wiIH0pXG5cdGVkaXRGbG93OiBFZGl0Rmxvdztcblx0LyoqXG5cdCAqIEEgY29udHJvbGxlciBleHRlbnNpb24gb2ZmZXJpbmcgaG9va3MgaW50byB0aGUgcm91dGluZyBmbG93IG9mIHRoZSBhcHBsaWNhdGlvbi5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9Sb3V0aW5nXCIgfSlcblx0cm91dGluZzogUm91dGluZztcblx0LyoqXG5cdCAqIEV4dGVuc2lvbkFQSSBmb3IgaW50ZW50LWJhc2VkIG5hdmlnYXRpb25cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlbnRCYXNlZE5hdmlnYXRpb25cIiB9KVxuXHRpbnRlbnRCYXNlZE5hdmlnYXRpb246IEludGVudEJhc2VkTmF2aWdhdGlvbjtcblxuXHRwcm90ZWN0ZWQgX2NvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyO1xuXHRwcm90ZWN0ZWQgX3ZpZXc6IFZpZXc7XG5cdHByaXZhdGUgX3JvdXRpbmc6IEludGVybmFsUm91dGluZztcblx0cHJpdmF0ZSBfcHJlZml4Pzogc3RyaW5nO1xuXHRwcml2YXRlIGV4dGVuc2lvbjogYW55O1xuXG5cdGNvbnN0cnVjdG9yKG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlciwgc0lkPzogc3RyaW5nKSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLl9jb250cm9sbGVyID0gb0NvbnRyb2xsZXI7XG5cdFx0dGhpcy5fdmlldyA9IG9Db250cm9sbGVyLmdldFZpZXcoKTtcblx0XHR0aGlzLmV4dGVuc2lvbiA9ICh0aGlzLl9jb250cm9sbGVyIGFzIGFueSkuZXh0ZW5zaW9uO1xuXHRcdHRoaXMuZWRpdEZsb3cgPSB0aGlzLl9jb250cm9sbGVyLmVkaXRGbG93O1xuXHRcdHRoaXMucm91dGluZyA9IHRoaXMuX2NvbnRyb2xsZXIucm91dGluZztcblx0XHR0aGlzLl9yb3V0aW5nID0gdGhpcy5fY29udHJvbGxlci5fcm91dGluZztcblx0XHR0aGlzLmludGVudEJhc2VkTmF2aWdhdGlvbiA9IHRoaXMuX2NvbnRyb2xsZXIuaW50ZW50QmFzZWROYXZpZ2F0aW9uO1xuXHRcdHRoaXMuX3ByZWZpeCA9IHNJZDtcblx0fVxuXHRkZXN0cm95KCkge1xuXHRcdC8vIGRlbGV0ZSB0aGlzLl9jb250cm9sbGVyO1xuXHRcdC8vIGRlbGV0ZSB0aGlzLl92aWV3O1xuXHRcdC8vIGRlbGV0ZSB0aGlzLmVkaXRGbG93Ll9jb250cm9sbGVyO1xuXHRcdC8vIGRlbGV0ZSB0aGlzLmludGVudEJhc2VkTmF2aWdhdGlvbi5fY29udHJvbGxlcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBBY2Nlc3MgYW55IGNvbnRyb2wgYnkgSUQuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUuY29yZS5FeHRlbnNpb25BUEkjYnlJZFxuXHQgKiBAcGFyYW0gc0lkIElEIG9mIHRoZSBjb250cm9sIHdpdGhvdXQgdGhlIHZpZXcgcHJlZml4LiBFaXRoZXIgdGhlIElEIHByZWZpeGVkIGJ5IFNBUCBGaW9yaSBlbGVtZW50c1xuXHQgKiAoZm9yIGV4YW1wbGUgd2l0aCB0aGUgc2VjdGlvbikgb3IgdGhlIGNvbnRyb2wgSUQgb25seS4gVGhlIGxhdHRlciB3b3JrcyBvbmx5IGZvciBhbiBleHRlbnNpb24gcnVubmluZyBpblxuXHQgKiB0aGUgc2FtZSBjb250ZXh0IChsaWtlIGluIHRoZSBzYW1lIHNlY3Rpb24pLiBZb3UgY2FuIHVzZSB0aGUgcHJlZml4IGZvciBTQVAgRmlvcmkgZWxlbWVudHMgdG8gYWxzbyBhY2Nlc3Mgb3RoZXIgY29udHJvbHMgbG9jYXRlZCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG5cdCAqIEByZXR1cm5zIFRoZSByZXF1ZXN0ZWQgY29udHJvbCwgaWYgZm91bmQgaW4gdGhlIHZpZXcuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRieUlkKHNJZDogc3RyaW5nKSB7XG5cdFx0bGV0IG9Db250cm9sID0gdGhpcy5fdmlldy5ieUlkKHNJZCk7XG5cblx0XHRpZiAoIW9Db250cm9sICYmIHRoaXMuX3ByZWZpeCkge1xuXHRcdFx0Ly8gZ2l2ZSBpdCBhIHRyeSB3aXRoIHRoZSBwcmVmaXhcblx0XHRcdG9Db250cm9sID0gdGhpcy5fdmlldy5ieUlkKGAke3RoaXMuX3ByZWZpeH0tLSR7c0lkfWApO1xuXHRcdH1cblxuXHRcdGlmIChvQ29udHJvbCkge1xuXHRcdFx0cmV0dXJuIG9Db250cm9sO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYWNjZXNzIHRvIG1vZGVscyBtYW5hZ2VkIGJ5IFNBUCBGaW9yaSBlbGVtZW50cy48YnI+XG5cdCAqIFRoZSBmb2xsb3dpbmcgbW9kZWxzIGNhbiBiZSBhY2Nlc3NlZDpcblx0ICogPHVsPlxuXHQgKiA8bGk+dW5kZWZpbmVkOiB0aGUgdW5kZWZpbmVkIG1vZGVsIHJldHVybnMgdGhlIFNBUFVJNSBPRGF0YSBWNCBtb2RlbCBib3VuZCB0byB0aGlzIHBhZ2U8L2xpPlxuXHQgKiA8bGk+aTE4biAvIGZ1cnRoZXIgZGF0YSBtb2RlbHMgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3Q8L2xpPlxuXHQgKiA8bGk+dWk6IHJldHVybnMgYSBTQVBVSTUgSlNPTiBtb2RlbCBjb250YWluaW5nIFVJIGluZm9ybWF0aW9uLlxuXHQgKiBPbmx5IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgcHVibGljIGFuZCBzdXBwb3J0ZWQ6XG5cdCAqIFx0PHVsPlxuXHQgKiAgICAgPGxpPmlzRWRpdGFibGU6IHNldCB0byB0cnVlIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBpbiBlZGl0IG1vZGU8L2xpPlxuXHQgKiAgPC91bD5cblx0ICogPC9saT5cblx0ICogPC91bD4uXG5cdCAqIGVkaXRNb2RlIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBhbnltb3JlLiBVc2UgaXNFZGl0YWJsZSBpbnN0ZWFkLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLmNvcmUuRXh0ZW5zaW9uQVBJI2dldE1vZGVsXG5cdCAqIEBwYXJhbSBzTW9kZWxOYW1lIE5hbWUgb2YgdGhlIG1vZGVsXG5cdCAqIEByZXR1cm5zIFRoZSByZXF1aXJlZCBtb2RlbFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRnZXRNb2RlbChzTW9kZWxOYW1lPzogc3RyaW5nKTogTW9kZWwgfCB1bmRlZmluZWQge1xuXHRcdGxldCBvQXBwQ29tcG9uZW50O1xuXG5cdFx0aWYgKHNNb2RlbE5hbWUgJiYgc01vZGVsTmFtZSAhPT0gXCJ1aVwiKSB7XG5cdFx0XHRvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuX3ZpZXcpO1xuXHRcdFx0aWYgKCFvQXBwQ29tcG9uZW50LmdldE1hbmlmZXN0RW50cnkoXCJzYXAudWk1XCIpLm1vZGVsc1tzTW9kZWxOYW1lXSkge1xuXHRcdFx0XHQvLyBkb24ndCBhbGxvdyBhY2Nlc3MgdG8gb3VyIGludGVybmFsIG1vZGVsc1xuXHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLl92aWV3LmdldE1vZGVsKHNNb2RlbE5hbWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZCBhbnkgY29udHJvbCBhcyBhIGRlcGVuZGVudCBjb250cm9sIHRvIHRoaXMgU0FQIEZpb3JpIGVsZW1lbnRzIHBhZ2UuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUuY29yZS5FeHRlbnNpb25BUEkjYWRkRGVwZW5kZW50XG5cdCAqIEBwYXJhbSBvQ29udHJvbCBDb250cm9sIHRvIGJlIGFkZGVkIGFzIGEgZGVwZW5kZW50IGNvbnRyb2xcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0YWRkRGVwZW5kZW50KG9Db250cm9sOiBDb250cm9sKSB7XG5cdFx0dGhpcy5fdmlldy5hZGREZXBlbmRlbnQob0NvbnRyb2wpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZSBhIGRlcGVuZGVudCBjb250cm9sIGZyb20gdGhpcyBTQVAgRmlvcmkgZWxlbWVudHMgcGFnZS5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS5jb3JlLkV4dGVuc2lvbkFQSSNyZW1vdmVEZXBlbmRlbnRcblx0ICogQHBhcmFtIG9Db250cm9sIENvbnRyb2wgdG8gYmUgYWRkZWQgYXMgYSBkZXBlbmRlbnQgY29udHJvbFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRyZW1vdmVEZXBlbmRlbnQob0NvbnRyb2w6IENvbnRyb2wpIHtcblx0XHR0aGlzLl92aWV3LnJlbW92ZURlcGVuZGVudChvQ29udHJvbCk7XG5cdH1cblxuXHQvKipcblx0ICogTmF2aWdhdGUgdG8gYW5vdGhlciB0YXJnZXQuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUuY29yZS5FeHRlbnNpb25BUEkjbmF2aWdhdGVUb1RhcmdldFxuXHQgKiBAcGFyYW0gc1RhcmdldCBOYW1lIG9mIHRoZSB0YXJnZXQgcm91dGVcblx0ICogQHBhcmFtIFtvQ29udGV4dF0gQ29udGV4dCBpbnN0YW5jZVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRuYXZpZ2F0ZVRvVGFyZ2V0KHNUYXJnZXQ6IHN0cmluZywgb0NvbnRleHQ6IENvbnRleHQpOiB2b2lkIHtcblx0XHR0aGlzLl9jb250cm9sbGVyLl9yb3V0aW5nLm5hdmlnYXRlVG9UYXJnZXQob0NvbnRleHQsIHNUYXJnZXQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIExvYWQgYSBmcmFnbWVudCBhbmQgZ28gdGhyb3VnaCB0aGUgdGVtcGxhdGUgcHJlcHJvY2Vzc29yIHdpdGggdGhlIGN1cnJlbnQgcGFnZSBjb250ZXh0LlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLmNvcmUuRXh0ZW5zaW9uQVBJI2xvYWRGcmFnbWVudFxuXHQgKiBAcGFyYW0gbVNldHRpbmdzIFRoZSBzZXR0aW5ncyBvYmplY3Rcblx0ICogQHBhcmFtIG1TZXR0aW5ncy5pZCBUaGUgSUQgb2YgdGhlIGZyYWdtZW50IGl0c2VsZlxuXHQgKiBAcGFyYW0gbVNldHRpbmdzLm5hbWUgVGhlIG5hbWUgb2YgdGhlIGZyYWdtZW50IHRvIGJlIGxvYWRlZFxuXHQgKiBAcGFyYW0gbVNldHRpbmdzLmNvbnRyb2xsZXIgVGhlIGNvbnRyb2xsZXIgdG8gYmUgYXR0YWNoZWQgdG8gdGhlIGZyYWdtZW50XG5cdCAqIEBwYXJhbSBtU2V0dGluZ3MuY29udGV4dFBhdGggVGhlIGNvbnRleHRQYXRoIHRvIGJlIHVzZWQgZm9yIHRoZSB0ZW1wbGF0aW5nIHByb2Nlc3Ncblx0ICogQHBhcmFtIG1TZXR0aW5ncy5pbml0aWFsQmluZGluZ0NvbnRleHQgVGhlIGluaXRpYWwgYmluZGluZyBjb250ZXh0XG5cdCAqIEByZXR1cm5zIFRoZSBmcmFnbWVudCBkZWZpbml0aW9uXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGxvYWRGcmFnbWVudChtU2V0dGluZ3M6IHtcblx0XHRpZDogc3RyaW5nO1xuXHRcdG5hbWU6IHN0cmluZztcblx0XHRjb250cm9sbGVyOiBvYmplY3Q7XG5cdFx0Y29udGV4dFBhdGg6IHN0cmluZztcblx0XHRpbml0aWFsQmluZGluZ0NvbnRleHQ6IENvbnRleHQ7XG5cdH0pOiBQcm9taXNlPEVsZW1lbnQgfCBFbGVtZW50W10+IHtcblx0XHRjb25zdCBvVGVtcGxhdGVDb21wb25lbnQgPSBDb21wb25lbnQuZ2V0T3duZXJDb21wb25lbnRGb3IodGhpcy5fdmlldykgYXMgRW5oYW5jZVdpdGhVSTU8VGVtcGxhdGVDb21wb25lbnQ+O1xuXHRcdGNvbnN0IG9QYWdlTW9kZWwgPSB0aGlzLl92aWV3LmdldE1vZGVsKFwiX3BhZ2VNb2RlbFwiKTtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gdGhpcy5nZXRNb2RlbCgpPy5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBtVmlld0RhdGEgPSBvVGVtcGxhdGVDb21wb25lbnQuZ2V0Vmlld0RhdGEoKTtcblx0XHRjb25zdCBvVmlld0RhdGFNb2RlbCA9IG5ldyBKU09OTW9kZWwobVZpZXdEYXRhKSxcblx0XHRcdG9QcmVwcm9jZXNzb3JTZXR0aW5ncyA9IHtcblx0XHRcdFx0YmluZGluZ0NvbnRleHRzOiB7XG5cdFx0XHRcdFx0XCJjb250ZXh0UGF0aFwiOiBvTWV0YU1vZGVsPy5jcmVhdGVCaW5kaW5nQ29udGV4dChtU2V0dGluZ3MuY29udGV4dFBhdGggfHwgYC8ke29UZW1wbGF0ZUNvbXBvbmVudC5nZXRFbnRpdHlTZXQoKX1gKSxcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBvUGFnZU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiLCB1bmRlZmluZWQsIHsgbm9SZXNvbHZlOiB0cnVlIH0pLFxuXHRcdFx0XHRcdHZpZXdEYXRhOiBtVmlld0RhdGEgPyBvVmlld0RhdGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIikgOiBudWxsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG1vZGVsczoge1xuXHRcdFx0XHRcdFwiY29udGV4dFBhdGhcIjogb01ldGFNb2RlbCxcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBvUGFnZU1vZGVsLFxuXHRcdFx0XHRcdG1ldGFNb2RlbDogb01ldGFNb2RlbCxcblx0XHRcdFx0XHR2aWV3RGF0YTogb1ZpZXdEYXRhTW9kZWxcblx0XHRcdFx0fSxcblx0XHRcdFx0YXBwQ29tcG9uZW50OiBDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQodGhpcy5fdmlldylcblx0XHRcdH07XG5cdFx0Y29uc3Qgb1RlbXBsYXRlUHJvbWlzZSA9IENvbW1vblV0aWxzLnRlbXBsYXRlQ29udHJvbEZyYWdtZW50KG1TZXR0aW5ncy5uYW1lLCBvUHJlcHJvY2Vzc29yU2V0dGluZ3MsIHtcblx0XHRcdGNvbnRyb2xsZXI6IG1TZXR0aW5ncy5jb250cm9sbGVyIHx8IHRoaXMsXG5cdFx0XHRpc1hNTDogZmFsc2UsXG5cdFx0XHRpZDogbVNldHRpbmdzLmlkXG5cdFx0fSk7XG5cdFx0b1RlbXBsYXRlUHJvbWlzZVxuXHRcdFx0LnRoZW4oKG9GcmFnbWVudDogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChtU2V0dGluZ3MuaW5pdGlhbEJpbmRpbmdDb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRvRnJhZ21lbnQuc2V0QmluZGluZ0NvbnRleHQobVNldHRpbmdzLmluaXRpYWxCaW5kaW5nQ29udGV4dCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5hZGREZXBlbmRlbnQob0ZyYWdtZW50KTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihvRXJyb3IpO1xuXHRcdFx0fSk7XG5cdFx0cmV0dXJuIG9UZW1wbGF0ZVByb21pc2U7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcnMgYW4gdXBkYXRlIG9mIHRoZSBhcHAgc3RhdGUuXG5cdCAqIFNob3VsZCBiZSBjYWxsZWQgaWYgdGhlIHN0YXRlIG9mIGEgY29udHJvbCwgb3IgYW55IG90aGVyIHN0YXRlLXJlbGV2YW50IGluZm9ybWF0aW9uLCB3YXMgY2hhbmdlZC5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS5jb3JlLkV4dGVuc2lvbkFQSSN1cGRhdGVBcHBTdGF0ZVxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBuZXcgYXBwIHN0YXRlIG9iamVjdC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0dXBkYXRlQXBwU3RhdGUoKTogUHJvbWlzZTx2b2lkPiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX2NvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0QXBwU3RhdGVIYW5kbGVyKCkuY3JlYXRlQXBwU3RhdGUoKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBFeHRlbnNpb25BUEk7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFFTUEsWSxXQURMQyxjQUFjLENBQUMsMEJBQUQsQyxVQU9iQyxRQUFRLENBQUM7SUFBRUMsSUFB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
310
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFeHRlbnNpb25BUEkiLCJkZWZpbmVVSTVDbGFzcyIsInByb3BlcnR5IiwidHlwZSIsIm9Db250cm9sbGVyIiwic0lkIiwiX2NvbnRyb2xsZXIiLCJfdmlldyIsImdldFZpZXciLCJleHRlbnNpb24iLCJlZGl0RmxvdyIsInJvdXRpbmciLCJfcm91dGluZyIsImludGVudEJhc2VkTmF2aWdhdGlvbiIsIl9wcmVmaXgiLCJkZXN0cm95IiwiZ2V0RWRpdEZsb3ciLCJnZXRSb3V0aW5nIiwiZ2V0SW50ZW50QmFzZWROYXZpZ2F0aW9uIiwiYnlJZCIsIm9Db250cm9sIiwiZ2V0TW9kZWwiLCJzTW9kZWxOYW1lIiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0TWFuaWZlc3RFbnRyeSIsIm1vZGVscyIsInVuZGVmaW5lZCIsImFkZERlcGVuZGVudCIsInJlbW92ZURlcGVuZGVudCIsIm5hdmlnYXRlVG9UYXJnZXQiLCJzVGFyZ2V0Iiwib0NvbnRleHQiLCJsb2FkRnJhZ21lbnQiLCJtU2V0dGluZ3MiLCJvVGVtcGxhdGVDb21wb25lbnQiLCJDb21wb25lbnQiLCJnZXRPd25lckNvbXBvbmVudEZvciIsIm9QYWdlTW9kZWwiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwibVZpZXdEYXRhIiwiZ2V0Vmlld0RhdGEiLCJvVmlld0RhdGFNb2RlbCIsIkpTT05Nb2RlbCIsIm9QcmVwcm9jZXNzb3JTZXR0aW5ncyIsImJpbmRpbmdDb250ZXh0cyIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwiY29udGV4dFBhdGgiLCJnZXRFbnRpdHlTZXQiLCJjb252ZXJ0ZXJDb250ZXh0Iiwibm9SZXNvbHZlIiwidmlld0RhdGEiLCJtZXRhTW9kZWwiLCJhcHBDb21wb25lbnQiLCJvVGVtcGxhdGVQcm9taXNlIiwidGVtcGxhdGVDb250cm9sRnJhZ21lbnQiLCJuYW1lIiwiY29udHJvbGxlciIsImlzWE1MIiwiaWQiLCJ0aGVuIiwib0ZyYWdtZW50IiwiaW5pdGlhbEJpbmRpbmdDb250ZXh0Iiwic2V0QmluZGluZ0NvbnRleHQiLCJjYXRjaCIsIm9FcnJvciIsIkxvZyIsImVycm9yIiwidXBkYXRlQXBwU3RhdGUiLCJnZXRBcHBTdGF0ZUhhbmRsZXIiLCJjcmVhdGVBcHBTdGF0ZSIsIkJhc2VPYmplY3QiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkV4dGVuc2lvbkFQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIEVkaXRGbG93IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9FZGl0Rmxvd1wiO1xuaW1wb3J0IHR5cGUgSW50ZW50QmFzZWROYXZpZ2F0aW9uIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlbnRCYXNlZE5hdmlnYXRpb25cIjtcbmltcG9ydCB0eXBlIEludGVybmFsUm91dGluZyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvSW50ZXJuYWxSb3V0aW5nXCI7XG5pbXBvcnQgdHlwZSBSb3V0aW5nIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9Sb3V0aW5nXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIFRlbXBsYXRlQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZUNvbXBvbmVudFwiO1xuaW1wb3J0IEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IENvbXBvbmVudCBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSB9IGZyb20gXCIuL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwiLi9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuXG4vKipcbiAqIENvbW1vbiBFeHRlbnNpb24gQVBJIGZvciBhbGwgcGFnZXMgb2YgU0FQIEZpb3JpIGVsZW1lbnRzIGZvciBPRGF0YSBWNC5cbiAqXG4gKiBAYWxpYXMgc2FwLmZlLmNvcmUuRXh0ZW5zaW9uQVBJXG4gKiBAcHVibGljXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAZXh0ZW5kcyBzYXAudWkuYmFzZS5PYmplY3RcbiAqIEBzaW5jZSAxLjc5LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuRXh0ZW5zaW9uQVBJXCIpXG5jbGFzcyBFeHRlbnNpb25BUEkgZXh0ZW5kcyBCYXNlT2JqZWN0IHtcblx0LyoqXG5cdCAqIEEgY29udHJvbGxlciBleHRlbnNpb24gb2ZmZXJpbmcgaG9va3MgaW50byB0aGUgZWRpdCBmbG93IG9mIHRoZSBhcHBsaWNhdGlvbi5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9FZGl0Rmxvd1wiIH0pXG5cdGVkaXRGbG93OiBFZGl0Rmxvdztcblx0LyoqXG5cdCAqIEEgY29udHJvbGxlciBleHRlbnNpb24gb2ZmZXJpbmcgaG9va3MgaW50byB0aGUgcm91dGluZyBmbG93IG9mIHRoZSBhcHBsaWNhdGlvbi5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9Sb3V0aW5nXCIgfSlcblx0cm91dGluZzogUm91dGluZztcblx0LyoqXG5cdCAqIEV4dGVuc2lvbkFQSSBmb3IgaW50ZW50LWJhc2VkIG5hdmlnYXRpb25cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlbnRCYXNlZE5hdmlnYXRpb25cIiB9KVxuXHRpbnRlbnRCYXNlZE5hdmlnYXRpb246IEludGVudEJhc2VkTmF2aWdhdGlvbjtcblxuXHRwcm90ZWN0ZWQgX2NvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyO1xuXHRwcm90ZWN0ZWQgX3ZpZXc6IFZpZXc7XG5cdHByaXZhdGUgX3JvdXRpbmc6IEludGVybmFsUm91dGluZztcblx0cHJpdmF0ZSBfcHJlZml4Pzogc3RyaW5nO1xuXHRwcml2YXRlIGV4dGVuc2lvbjogYW55O1xuXG5cdGNvbnN0cnVjdG9yKG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlciwgc0lkPzogc3RyaW5nKSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLl9jb250cm9sbGVyID0gb0NvbnRyb2xsZXI7XG5cdFx0dGhpcy5fdmlldyA9IG9Db250cm9sbGVyLmdldFZpZXcoKTtcblx0XHR0aGlzLmV4dGVuc2lvbiA9ICh0aGlzLl9jb250cm9sbGVyIGFzIGFueSkuZXh0ZW5zaW9uO1xuXHRcdHRoaXMuZWRpdEZsb3cgPSB0aGlzLl9jb250cm9sbGVyLmVkaXRGbG93O1xuXHRcdHRoaXMucm91dGluZyA9IHRoaXMuX2NvbnRyb2xsZXIucm91dGluZztcblx0XHR0aGlzLl9yb3V0aW5nID0gdGhpcy5fY29udHJvbGxlci5fcm91dGluZztcblx0XHR0aGlzLmludGVudEJhc2VkTmF2aWdhdGlvbiA9IHRoaXMuX2NvbnRyb2xsZXIuaW50ZW50QmFzZWROYXZpZ2F0aW9uO1xuXHRcdHRoaXMuX3ByZWZpeCA9IHNJZDtcblx0fVxuXHRkZXN0cm95KCkge1xuXHRcdC8vIGRlbGV0ZSB0aGlzLl9jb250cm9sbGVyO1xuXHRcdC8vIGRlbGV0ZSB0aGlzLl92aWV3O1xuXHRcdC8vIGRlbGV0ZSB0aGlzLmVkaXRGbG93Ll9jb250cm9sbGVyO1xuXHRcdC8vIGRlbGV0ZSB0aGlzLmludGVudEJhc2VkTmF2aWdhdGlvbi5fY29udHJvbGxlcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGVkaXRGbG93IGNvbnRyb2xsZXIgZXh0ZW5zaW9uIGZvciB0aGlzIHBhZ2UuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICogQHJldHVybnMgVGhlIGVkaXRGbG93IGNvbnRyb2xsZXIgZXh0ZW5zaW9uXG5cdCAqL1xuXHRnZXRFZGl0RmxvdygpIHtcblx0XHRyZXR1cm4gdGhpcy5lZGl0Rmxvdztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHJvdXRpbmcgY29udHJvbGxlciBleHRlbnNpb24gZm9yIHRoaXMgcGFnZS5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKiBAcmV0dXJucyBUaGUgcm91dGluZyBjb250cm9sbGVyIGV4dGVuc2lvblxuXHQgKi9cblx0Z2V0Um91dGluZygpIHtcblx0XHRyZXR1cm4gdGhpcy5yb3V0aW5nO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgaW50ZW50QmFzZWROYXZpZ2F0aW9uIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIGZvciB0aGlzIHBhZ2UuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICogQHJldHVybnMgVGhlIGludGVudEJhc2VkTmF2aWdhdGlvbiBjb250cm9sbGVyIGV4dGVuc2lvblxuXHQgKi9cblx0Z2V0SW50ZW50QmFzZWROYXZpZ2F0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmludGVudEJhc2VkTmF2aWdhdGlvbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBBY2Nlc3MgYW55IGNvbnRyb2wgYnkgSUQuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUuY29yZS5FeHRlbnNpb25BUEkjYnlJZFxuXHQgKiBAcGFyYW0gc0lkIElEIG9mIHRoZSBjb250cm9sIHdpdGhvdXQgdGhlIHZpZXcgcHJlZml4LiBFaXRoZXIgdGhlIElEIHByZWZpeGVkIGJ5IFNBUCBGaW9yaSBlbGVtZW50c1xuXHQgKiAoZm9yIGV4YW1wbGUgd2l0aCB0aGUgc2VjdGlvbikgb3IgdGhlIGNvbnRyb2wgSUQgb25seS4gVGhlIGxhdHRlciB3b3JrcyBvbmx5IGZvciBhbiBleHRlbnNpb24gcnVubmluZyBpblxuXHQgKiB0aGUgc2FtZSBjb250ZXh0IChsaWtlIGluIHRoZSBzYW1lIHNlY3Rpb24pLiBZb3UgY2FuIHVzZSB0aGUgcHJlZml4IGZvciBTQVAgRmlvcmkgZWxlbWVudHMgdG8gYWxzbyBhY2Nlc3Mgb3RoZXIgY29udHJvbHMgbG9jYXRlZCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG5cdCAqIEByZXR1cm5zIFRoZSByZXF1ZXN0ZWQgY29udHJvbCwgaWYgZm91bmQgaW4gdGhlIHZpZXcuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRieUlkKHNJZDogc3RyaW5nKSB7XG5cdFx0bGV0IG9Db250cm9sID0gdGhpcy5fdmlldy5ieUlkKHNJZCk7XG5cblx0XHRpZiAoIW9Db250cm9sICYmIHRoaXMuX3ByZWZpeCkge1xuXHRcdFx0Ly8gZ2l2ZSBpdCBhIHRyeSB3aXRoIHRoZSBwcmVmaXhcblx0XHRcdG9Db250cm9sID0gdGhpcy5fdmlldy5ieUlkKGAke3RoaXMuX3ByZWZpeH0tLSR7c0lkfWApO1xuXHRcdH1cblxuXHRcdGlmIChvQ29udHJvbCkge1xuXHRcdFx0cmV0dXJuIG9Db250cm9sO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYWNjZXNzIHRvIG1vZGVscyBtYW5hZ2VkIGJ5IFNBUCBGaW9yaSBlbGVtZW50cy48YnI+XG5cdCAqIFRoZSBmb2xsb3dpbmcgbW9kZWxzIGNhbiBiZSBhY2Nlc3NlZDpcblx0ICogPHVsPlxuXHQgKiA8bGk+dW5kZWZpbmVkOiB0aGUgdW5kZWZpbmVkIG1vZGVsIHJldHVybnMgdGhlIFNBUFVJNSBPRGF0YSBWNCBtb2RlbCBib3VuZCB0byB0aGlzIHBhZ2U8L2xpPlxuXHQgKiA8bGk+aTE4biAvIGZ1cnRoZXIgZGF0YSBtb2RlbHMgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3Q8L2xpPlxuXHQgKiA8bGk+dWk6IHJldHVybnMgYSBTQVBVSTUgSlNPTiBtb2RlbCBjb250YWluaW5nIFVJIGluZm9ybWF0aW9uLlxuXHQgKiBPbmx5IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgcHVibGljIGFuZCBzdXBwb3J0ZWQ6XG5cdCAqIFx0PHVsPlxuXHQgKiAgICAgPGxpPmlzRWRpdGFibGU6IHNldCB0byB0cnVlIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBpbiBlZGl0IG1vZGU8L2xpPlxuXHQgKiAgPC91bD5cblx0ICogPC9saT5cblx0ICogPC91bD4uXG5cdCAqIGVkaXRNb2RlIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBhbnltb3JlLiBVc2UgaXNFZGl0YWJsZSBpbnN0ZWFkLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLmNvcmUuRXh0ZW5zaW9uQVBJI2dldE1vZGVsXG5cdCAqIEBwYXJhbSBzTW9kZWxOYW1lIE5hbWUgb2YgdGhlIG1vZGVsXG5cdCAqIEByZXR1cm5zIFRoZSByZXF1aXJlZCBtb2RlbFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRnZXRNb2RlbChzTW9kZWxOYW1lPzogc3RyaW5nKTogTW9kZWwgfCB1bmRlZmluZWQge1xuXHRcdGxldCBvQXBwQ29tcG9uZW50O1xuXG5cdFx0aWYgKHNNb2RlbE5hbWUgJiYgc01vZGVsTmFtZSAhPT0gXCJ1aVwiKSB7XG5cdFx0XHRvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuX3ZpZXcpO1xuXHRcdFx0aWYgKCFvQXBwQ29tcG9uZW50LmdldE1hbmlmZXN0RW50cnkoXCJzYXAudWk1XCIpLm1vZGVsc1tzTW9kZWxOYW1lXSkge1xuXHRcdFx0XHQvLyBkb24ndCBhbGxvdyBhY2Nlc3MgdG8gb3VyIGludGVybmFsIG1vZGVsc1xuXHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLl92aWV3LmdldE1vZGVsKHNNb2RlbE5hbWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZCBhbnkgY29udHJvbCBhcyBhIGRlcGVuZGVudCBjb250cm9sIHRvIHRoaXMgU0FQIEZpb3JpIGVsZW1lbnRzIHBhZ2UuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUuY29yZS5FeHRlbnNpb25BUEkjYWRkRGVwZW5kZW50XG5cdCAqIEBwYXJhbSBvQ29udHJvbCBDb250cm9sIHRvIGJlIGFkZGVkIGFzIGEgZGVwZW5kZW50IGNvbnRyb2xcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0YWRkRGVwZW5kZW50KG9Db250cm9sOiBDb250cm9sKSB7XG5cdFx0dGhpcy5fdmlldy5hZGREZXBlbmRlbnQob0NvbnRyb2wpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZSBhIGRlcGVuZGVudCBjb250cm9sIGZyb20gdGhpcyBTQVAgRmlvcmkgZWxlbWVudHMgcGFnZS5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS5jb3JlLkV4dGVuc2lvbkFQSSNyZW1vdmVEZXBlbmRlbnRcblx0ICogQHBhcmFtIG9Db250cm9sIENvbnRyb2wgdG8gYmUgYWRkZWQgYXMgYSBkZXBlbmRlbnQgY29udHJvbFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRyZW1vdmVEZXBlbmRlbnQob0NvbnRyb2w6IENvbnRyb2wpIHtcblx0XHR0aGlzLl92aWV3LnJlbW92ZURlcGVuZGVudChvQ29udHJvbCk7XG5cdH1cblxuXHQvKipcblx0ICogTmF2aWdhdGUgdG8gYW5vdGhlciB0YXJnZXQuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUuY29yZS5FeHRlbnNpb25BUEkjbmF2aWdhdGVUb1RhcmdldFxuXHQgKiBAcGFyYW0gc1RhcmdldCBOYW1lIG9mIHRoZSB0YXJnZXQgcm91dGVcblx0ICogQHBhcmFtIFtvQ29udGV4dF0gQ29udGV4dCBpbnN0YW5jZVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRuYXZpZ2F0ZVRvVGFyZ2V0KHNUYXJnZXQ6IHN0cmluZywgb0NvbnRleHQ6IENvbnRleHQpOiB2b2lkIHtcblx0XHR0aGlzLl9jb250cm9sbGVyLl9yb3V0aW5nLm5hdmlnYXRlVG9UYXJnZXQob0NvbnRleHQsIHNUYXJnZXQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIExvYWQgYSBmcmFnbWVudCBhbmQgZ28gdGhyb3VnaCB0aGUgdGVtcGxhdGUgcHJlcHJvY2Vzc29yIHdpdGggdGhlIGN1cnJlbnQgcGFnZSBjb250ZXh0LlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLmNvcmUuRXh0ZW5zaW9uQVBJI2xvYWRGcmFnbWVudFxuXHQgKiBAcGFyYW0gbVNldHRpbmdzIFRoZSBzZXR0aW5ncyBvYmplY3Rcblx0ICogQHBhcmFtIG1TZXR0aW5ncy5pZCBUaGUgSUQgb2YgdGhlIGZyYWdtZW50IGl0c2VsZlxuXHQgKiBAcGFyYW0gbVNldHRpbmdzLm5hbWUgVGhlIG5hbWUgb2YgdGhlIGZyYWdtZW50IHRvIGJlIGxvYWRlZFxuXHQgKiBAcGFyYW0gbVNldHRpbmdzLmNvbnRyb2xsZXIgVGhlIGNvbnRyb2xsZXIgdG8gYmUgYXR0YWNoZWQgdG8gdGhlIGZyYWdtZW50XG5cdCAqIEBwYXJhbSBtU2V0dGluZ3MuY29udGV4dFBhdGggVGhlIGNvbnRleHRQYXRoIHRvIGJlIHVzZWQgZm9yIHRoZSB0ZW1wbGF0aW5nIHByb2Nlc3Ncblx0ICogQHBhcmFtIG1TZXR0aW5ncy5pbml0aWFsQmluZGluZ0NvbnRleHQgVGhlIGluaXRpYWwgYmluZGluZyBjb250ZXh0XG5cdCAqIEByZXR1cm5zIFRoZSBmcmFnbWVudCBkZWZpbml0aW9uXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGxvYWRGcmFnbWVudChtU2V0dGluZ3M6IHtcblx0XHRpZDogc3RyaW5nO1xuXHRcdG5hbWU6IHN0cmluZztcblx0XHRjb250cm9sbGVyOiBvYmplY3Q7XG5cdFx0Y29udGV4dFBhdGg6IHN0cmluZztcblx0XHRpbml0aWFsQmluZGluZ0NvbnRleHQ6IENvbnRleHQ7XG5cdH0pOiBQcm9taXNlPEVsZW1lbnQgfCBFbGVtZW50W10+IHtcblx0XHRjb25zdCBvVGVtcGxhdGVDb21wb25lbnQgPSBDb21wb25lbnQuZ2V0T3duZXJDb21wb25lbnRGb3IodGhpcy5fdmlldykgYXMgRW5oYW5jZVdpdGhVSTU8VGVtcGxhdGVDb21wb25lbnQ+O1xuXHRcdGNvbnN0IG9QYWdlTW9kZWwgPSB0aGlzLl92aWV3LmdldE1vZGVsKFwiX3BhZ2VNb2RlbFwiKTtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gdGhpcy5nZXRNb2RlbCgpPy5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBtVmlld0RhdGEgPSBvVGVtcGxhdGVDb21wb25lbnQuZ2V0Vmlld0RhdGEoKTtcblx0XHRjb25zdCBvVmlld0RhdGFNb2RlbCA9IG5ldyBKU09OTW9kZWwobVZpZXdEYXRhKSxcblx0XHRcdG9QcmVwcm9jZXNzb3JTZXR0aW5ncyA9IHtcblx0XHRcdFx0YmluZGluZ0NvbnRleHRzOiB7XG5cdFx0XHRcdFx0XCJjb250ZXh0UGF0aFwiOiBvTWV0YU1vZGVsPy5jcmVhdGVCaW5kaW5nQ29udGV4dChtU2V0dGluZ3MuY29udGV4dFBhdGggfHwgYC8ke29UZW1wbGF0ZUNvbXBvbmVudC5nZXRFbnRpdHlTZXQoKX1gKSxcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBvUGFnZU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiLCB1bmRlZmluZWQsIHsgbm9SZXNvbHZlOiB0cnVlIH0pLFxuXHRcdFx0XHRcdHZpZXdEYXRhOiBtVmlld0RhdGEgPyBvVmlld0RhdGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIikgOiBudWxsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG1vZGVsczoge1xuXHRcdFx0XHRcdFwiY29udGV4dFBhdGhcIjogb01ldGFNb2RlbCxcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBvUGFnZU1vZGVsLFxuXHRcdFx0XHRcdG1ldGFNb2RlbDogb01ldGFNb2RlbCxcblx0XHRcdFx0XHR2aWV3RGF0YTogb1ZpZXdEYXRhTW9kZWxcblx0XHRcdFx0fSxcblx0XHRcdFx0YXBwQ29tcG9uZW50OiBDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQodGhpcy5fdmlldylcblx0XHRcdH07XG5cdFx0Y29uc3Qgb1RlbXBsYXRlUHJvbWlzZSA9IENvbW1vblV0aWxzLnRlbXBsYXRlQ29udHJvbEZyYWdtZW50KG1TZXR0aW5ncy5uYW1lLCBvUHJlcHJvY2Vzc29yU2V0dGluZ3MsIHtcblx0XHRcdGNvbnRyb2xsZXI6IG1TZXR0aW5ncy5jb250cm9sbGVyIHx8IHRoaXMsXG5cdFx0XHRpc1hNTDogZmFsc2UsXG5cdFx0XHRpZDogbVNldHRpbmdzLmlkXG5cdFx0fSk7XG5cdFx0b1RlbXBsYXRlUHJvbWlzZVxuXHRcdFx0LnRoZW4oKG9GcmFnbWVudDogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChtU2V0dGluZ3MuaW5pdGlhbEJpbmRpbmdDb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRvRnJhZ21lbnQuc2V0QmluZGluZ0NvbnRleHQobVNldHRpbmdzLmluaXRpYWxCaW5kaW5nQ29udGV4dCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5hZGREZXBlbmRlbnQob0ZyYWdtZW50KTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihvRXJyb3IpO1xuXHRcdFx0fSk7XG5cdFx0cmV0dXJuIG9UZW1wbGF0ZVByb21pc2U7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcnMgYW4gdXBkYXRlIG9mIHRoZSBhcHAgc3RhdGUuXG5cdCAqIFNob3VsZCBiZSBjYWxsZWQgaWYgdGhlIHN0YXRlIG9mIGEgY29udHJvbCwgb3IgYW55IG90aGVyIHN0YXRlLXJlbGV2YW50IGluZm9ybWF0aW9uLCB3YXMgY2hhbmdlZC5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS5jb3JlLkV4dGVuc2lvbkFQSSN1cGRhdGVBcHBTdGF0ZVxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBuZXcgYXBwIHN0YXRlIG9iamVjdC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0dXBkYXRlQXBwU3RhdGUoKTogUHJvbWlzZTx2b2lkPiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX2NvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0QXBwU3RhdGVIYW5kbGVyKCkuY3JlYXRlQXBwU3RhdGUoKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBFeHRlbnNpb25BUEk7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFFTUEsWSxXQURMQyxjQUFjLENBQUMsMEJBQUQsQyxVQU9iQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVIsQ0FBRCxDLFVBT1JELFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUixDQUFELEMsVUFPUkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFSLENBQUQsQzs7O0lBbkJUO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7O0lBR0M7QUFDRDtBQUNBO0FBQ0E7QUFDQTs7SUFHQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0lBVUMsc0JBQVlDLFdBQVosRUFBeUNDLEdBQXpDLEVBQXVEO01BQUE7O01BQ3REOztNQURzRDs7TUFBQTs7TUFBQTs7TUFFdEQsTUFBS0MsV0FBTCxHQUFtQkYsV0FBbkI7TUFDQSxNQUFLRyxLQUFMLEdBQWFILFdBQVcsQ0FBQ0ksT0FBWixFQUFiO01BQ0EsTUFBS0MsU0FBTCxHQUFrQixNQUFLSCxXQUFOLENBQTBCRyxTQUEzQztNQUNBLE1BQUtDLFFBQUwsR0FBZ0IsTUFBS0osV0FBTCxDQUFpQkksUUFBakM7TUFDQSxNQUFLQyxPQUFMLEdBQWUsTUFBS0wsV0FBTCxDQUFpQkssT0FBaEM7TUFDQSxNQUFLQyxRQUFMLEdBQWdCLE1BQUtOLFdBQUwsQ0FBaUJNLFFBQWpDO01BQ0EsTUFBS0MscUJBQUwsR0FBNkIsTUFBS1AsV0FBTCxDQUFpQk8scUJBQTlDO01BQ0EsTUFBS0MsT0FBTCxHQUFlVCxHQUFmO01BVHNEO0lBVXREOzs7O1dBQ0RVLE8sR0FBQSxtQkFBVSxDQUNUO01BQ0E7TUFDQTtNQUNBO0lBQ0E7SUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDQyxXLEdBQUEsdUJBQWM7TUFDYixPQUFPLEtBQUtOLFFBQVo7SUFDQTtJQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBQ0NPLFUsR0FBQSxzQkFBYTtNQUNaLE9BQU8sS0FBS04sT0FBWjtJQUNBO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ08sd0IsR0FBQSxvQ0FBMkI7TUFDMUIsT0FBTyxLQUFLTCxxQkFBWjtJQUNBO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDTSxJLEdBQUEsY0FBS2QsR0FBTCxFQUFrQjtNQUNqQixJQUFJZSxRQUFRLEdBQUcsS0FBS2IsS0FBTCxDQUFXWSxJQUFYLENBQWdCZCxHQUFoQixDQUFmOztNQUVBLElBQUksQ0FBQ2UsUUFBRCxJQUFhLEtBQUtOLE9BQXRCLEVBQStCO1FBQzlCO1FBQ0FNLFFBQVEsR0FBRyxLQUFLYixLQUFMLENBQVdZLElBQVgsV0FBbUIsS0FBS0wsT0FBeEIsZUFBb0NULEdBQXBDLEVBQVg7TUFDQTs7TUFFRCxJQUFJZSxRQUFKLEVBQWM7UUFDYixPQUFPQSxRQUFQO01BQ0E7SUFDRDtJQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDQyxRLEdBQUEsa0JBQVNDLFVBQVQsRUFBaUQ7TUFDaEQsSUFBSUMsYUFBSjs7TUFFQSxJQUFJRCxVQUFVLElBQUlBLFVBQVUsS0FBSyxJQUFqQyxFQUF1QztRQUN0Q0MsYUFBYSxHQUFHQyxXQUFXLENBQUNDLGVBQVosQ0FBNEIsS0FBS2xCLEtBQWpDLENBQWhCOztRQUNBLElBQUksQ0FBQ2dCLGFBQWEsQ0FBQ0csZ0JBQWQsQ0FBK0IsU0FBL0IsRUFBMENDLE1BQTFDLENBQWlETCxVQUFqRCxDQUFMLEVBQW1FO1VBQ2xFO1VBQ0EsT0FBT00sU0FBUDtRQUNBO01BQ0Q7O01BRUQsT0FBTyxLQUFLckIsS0FBTCxDQUFXYyxRQUFYLENBQW9CQyxVQUFwQixDQUFQO0lBQ0E7SUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBQ0NPLFksR0FBQSxzQkFBYVQsUUFBYixFQUFnQztNQUMvQixLQUFLYixLQUFMLENBQVdzQixZQUFYLENBQXdCVCxRQUF4QjtJQUNBO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDVSxlLEdBQUEseUJBQWdCVixRQUFoQixFQUFtQztNQUNsQyxLQUFLYixLQUFMLENBQVd1QixlQUFYLENBQTJCVixRQUEzQjtJQUNBO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBQ0NXLGdCLEdBQUEsMEJBQWlCQyxPQUFqQixFQUFrQ0MsUUFBbEMsRUFBMkQ7TUFDMUQsS0FBSzNCLFdBQUwsQ0FBaUJNLFFBQWpCLENBQTBCbUIsZ0JBQTFCLENBQTJDRSxRQUEzQyxFQUFxREQsT0FBckQ7SUFDQTtJQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ0UsWSxHQUFBLHNCQUFhQyxTQUFiLEVBTWlDO01BQUE7TUFBQTs7TUFDaEMsSUFBTUMsa0JBQWtCLEdBQUdDLFNBQVMsQ0FBQ0Msb0JBQVYsQ0FBK0IsS0FBSy9CLEtBQXBDLENBQTNCOztNQUNBLElBQU1nQyxVQUFVLEdBQUcsS0FBS2hDLEtBQUwsQ0FBV2MsUUFBWCxDQUFvQixZQUFwQixDQUFuQjs7TUFDQSxJQUFNbUIsVUFBVSxxQkFBRyxLQUFLbkIsUUFBTCxFQUFILG1EQUFHLGVBQWlCb0IsWUFBakIsRUFBbkI7TUFDQSxJQUFNQyxTQUFTLEdBQUdOLGtCQUFrQixDQUFDTyxXQUFuQixFQUFsQjtNQUNBLElBQU1DLGNBQWMsR0FBRyxJQUFJQyxTQUFKLENBQWNILFNBQWQsQ0FBdkI7TUFBQSxJQUNDSSxxQkFBcUIsR0FBRztRQUN2QkMsZUFBZSxFQUFFO1VBQ2hCLGVBQWVQLFVBQWYsYUFBZUEsVUFBZix1QkFBZUEsVUFBVSxDQUFFUSxvQkFBWixDQUFpQ2IsU0FBUyxDQUFDYyxXQUFWLGVBQTZCYixrQkFBa0IsQ0FBQ2MsWUFBbkIsRUFBN0IsQ0FBakMsQ0FEQztVQUVoQkMsZ0JBQWdCLEVBQUVaLFVBQVUsQ0FBQ1Msb0JBQVgsQ0FBZ0MsR0FBaEMsRUFBcUNwQixTQUFyQyxFQUFnRDtZQUFFd0IsU0FBUyxFQUFFO1VBQWIsQ0FBaEQsQ0FGRjtVQUdoQkMsUUFBUSxFQUFFWCxTQUFTLEdBQUdFLGNBQWMsQ0FBQ0ksb0JBQWYsQ0FBb0MsR0FBcEMsQ0FBSCxHQUE4QztRQUhqRCxDQURNO1FBTXZCckIsTUFBTSxFQUFFO1VBQ1AsZUFBZWEsVUFEUjtVQUVQVyxnQkFBZ0IsRUFBRVosVUFGWDtVQUdQZSxTQUFTLEVBQUVkLFVBSEo7VUFJUGEsUUFBUSxFQUFFVDtRQUpILENBTmU7UUFZdkJXLFlBQVksRUFBRS9CLFdBQVcsQ0FBQ0MsZUFBWixDQUE0QixLQUFLbEIsS0FBakM7TUFaUyxDQUR6QjtNQWVBLElBQU1pRCxnQkFBZ0IsR0FBR2hDLFdBQVcsQ0FBQ2lDLHVCQUFaLENBQW9DdEIsU0FBUyxDQUFDdUIsSUFBOUMsRUFBb0RaLHFCQUFwRCxFQUEyRTtRQUNuR2EsVUFBVSxFQUFFeEIsU0FBUyxDQUFDd0IsVUFBVixJQUF3QixJQUQrRDtRQUVuR0MsS0FBSyxFQUFFLEtBRjRGO1FBR25HQyxFQUFFLEVBQUUxQixTQUFTLENBQUMwQjtNQUhxRixDQUEzRSxDQUF6QjtNQUtBTCxnQkFBZ0IsQ0FDZE0sSUFERixDQUNPLFVBQUNDLFNBQUQsRUFBb0I7UUFDekIsSUFBSTVCLFNBQVMsQ0FBQzZCLHFCQUFWLEtBQW9DcEMsU0FBeEMsRUFBbUQ7VUFDbERtQyxTQUFTLENBQUNFLGlCQUFWLENBQTRCOUIsU0FBUyxDQUFDNkIscUJBQXRDO1FBQ0E7O1FBQ0QsTUFBSSxDQUFDbkMsWUFBTCxDQUFrQmtDLFNBQWxCO01BQ0EsQ0FORixFQU9FRyxLQVBGLENBT1EsVUFBVUMsTUFBVixFQUF1QjtRQUM3QkMsR0FBRyxDQUFDQyxLQUFKLENBQVVGLE1BQVY7TUFDQSxDQVRGO01BVUEsT0FBT1gsZ0JBQVA7SUFDQTtJQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDYyxjLEdBQUEsMEJBQTRDO01BQzNDLE9BQU8sS0FBS2hFLFdBQUwsQ0FBaUJtQixlQUFqQixHQUFtQzhDLGtCQUFuQyxHQUF3REMsY0FBeEQsRUFBUDtJQUNBLEM7OztJQTNPeUJDLFU7Ozs7Ozs7Ozs7Ozs7Ozs7U0E4T1p6RSxZIn0=
@@ -74,6 +74,36 @@ class ExtensionAPI extends BaseObject {
74
74
  // delete this.intentBasedNavigation._controller;
75
75
  }
76
76
 
77
+ /**
78
+ * Retrieves the editFlow controller extension for this page.
79
+ *
80
+ * @public
81
+ * @returns The editFlow controller extension
82
+ */
83
+ getEditFlow() {
84
+ return this.editFlow;
85
+ }
86
+
87
+ /**
88
+ * Retrieves the routing controller extension for this page.
89
+ *
90
+ * @public
91
+ * @returns The routing controller extension
92
+ */
93
+ getRouting() {
94
+ return this.routing;
95
+ }
96
+
97
+ /**
98
+ * Retrieves the intentBasedNavigation controller extension for this page.
99
+ *
100
+ * @public
101
+ * @returns The intentBasedNavigation controller extension
102
+ */
103
+ getIntentBasedNavigation() {
104
+ return this.intentBasedNavigation;
105
+ }
106
+
77
107
  /**
78
108
  * Access any control by ID.
79
109
  *
@@ -78,11 +78,6 @@ sap.ui.define(["sap/fe/core/BaseController", "sap/fe/core/controllerextensions/E
78
78
 
79
79
  var _proto = PageController.prototype;
80
80
 
81
- // @Public
82
- // getView(): { getController(): PageController } & View {
83
- // return super.getView() as any;
84
- // }
85
-
86
81
  /**
87
82
  * @private
88
83
  * @name sap.fe.core.PageController.getMetadata
@@ -129,7 +124,14 @@ sap.ui.define(["sap/fe/core/BaseController", "sap/fe/core/controllerextensions/E
129
124
  if (this.placeholder.attachHideCallback) {
130
125
  this.placeholder.attachHideCallback();
131
126
  }
132
- };
127
+ }
128
+ /**
129
+ * Get the extension API for the current page.
130
+ *
131
+ * @public
132
+ * @returns The extension API.
133
+ */
134
+ ;
133
135
 
134
136
  _proto.getExtensionAPI = function getExtensionAPI() {
135
137
  if (!this.extensionAPI) {
@@ -223,4 +225,4 @@ sap.ui.define(["sap/fe/core/BaseController", "sap/fe/core/controllerextensions/E
223
225
  }), _applyDecoratedDescriptor(_class2.prototype, "onInit", [_dec16], Object.getOwnPropertyDescriptor(_class2.prototype, "onInit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onBeforeRendering", [_dec17], Object.getOwnPropertyDescriptor(_class2.prototype, "onBeforeRendering"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "getExtensionAPI", [_dec18], Object.getOwnPropertyDescriptor(_class2.prototype, "getExtensionAPI"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onPageReady", [_dec19, _dec20], Object.getOwnPropertyDescriptor(_class2.prototype, "onPageReady"), _class2.prototype)), _class2)) || _class);
224
226
  return PageController;
225
227
  }, false);
226
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYWdlQ29udHJvbGxlciIsImRlZmluZVVJNUNsYXNzIiwidXNpbmdFeHRlbnNpb24iLCJSb3V0aW5nIiwiSW50ZXJuYWxSb3V0aW5nIiwiRWRpdEZsb3ciLCJJbnRlcm5hbEVkaXRGbG93IiwiSW50ZW50QmFzZWROYXZpZ2F0aW9uIiwiSW50ZXJuYWxJbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJQYWdlUmVhZHkiLCJNZXNzYWdlSGFuZGxlciIsIlNoYXJlIiwiUGFnaW5hdG9yIiwiVmlld1N0YXRlIiwiUGxhY2Vob2xkZXIiLCJTaWRlRWZmZWN0cyIsIk1hc3NFZGl0IiwicHVibGljRXh0ZW5zaW9uIiwiZXh0ZW5zaWJsZSIsIk92ZXJyaWRlRXhlY3V0aW9uIiwiQWZ0ZXIiLCJvbkluaXQiLCJvVUlNb2RlbCIsImdldEFwcENvbXBvbmVudCIsImdldE1vZGVsIiwib0ludGVybmFsTW9kZWwiLCJzUGF0aCIsImdldFZpZXciLCJnZXRJZCIsInNldFByb3BlcnR5IiwiY29udHJvbHMiLCJjb2xsYWJvcmF0aW9uIiwiYmluZEVsZW1lbnQiLCJwYXRoIiwibW9kZWwiLCJzZXRNb2RlbCIsIm9uQmVmb3JlUmVuZGVyaW5nIiwicGxhY2Vob2xkZXIiLCJhdHRhY2hIaWRlQ2FsbGJhY2siLCJnZXRFeHRlbnNpb25BUEkiLCJleHRlbnNpb25BUEkiLCJFeHRlbnNpb25BUEkiLCJvblBhZ2VSZWFkeSIsIm1QYXJhbWV0ZXJzIiwiZ2V0QXBwU3RhdGVIYW5kbGVyIiwiYXBwbHlBcHBTdGF0ZSIsIkJhc2VDb250cm9sbGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJQYWdlQ29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgRWRpdEZsb3cgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0VkaXRGbG93XCI7XG5pbXBvcnQgSW50ZW50QmFzZWROYXZpZ2F0aW9uIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlbnRCYXNlZE5hdmlnYXRpb25cIjtcbmltcG9ydCBJbnRlcm5hbEVkaXRGbG93IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlcm5hbEVkaXRGbG93XCI7XG5pbXBvcnQgSW50ZXJuYWxJbnRlbnRCYXNlZE5hdmlnYXRpb24gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVybmFsSW50ZW50QmFzZWROYXZpZ2F0aW9uXCI7XG5pbXBvcnQgSW50ZXJuYWxSb3V0aW5nIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlcm5hbFJvdXRpbmdcIjtcbmltcG9ydCBNYXNzRWRpdCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvTWFzc0VkaXRcIjtcbmltcG9ydCBNZXNzYWdlSGFuZGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvTWVzc2FnZUhhbmRsZXJcIjtcbmltcG9ydCBQYWdlUmVhZHkgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1BhZ2VSZWFkeVwiO1xuaW1wb3J0IFBhZ2luYXRvciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUGFnaW5hdG9yXCI7XG5pbXBvcnQgUGxhY2Vob2xkZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1BsYWNlaG9sZGVyXCI7XG5pbXBvcnQgUm91dGluZyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUm91dGluZ1wiO1xuaW1wb3J0IFNoYXJlIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9TaGFyZVwiO1xuaW1wb3J0IFNpZGVFZmZlY3RzIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9TaWRlRWZmZWN0c1wiO1xuaW1wb3J0IFZpZXdTdGF0ZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvVmlld1N0YXRlXCI7XG5pbXBvcnQgRXh0ZW5zaW9uQVBJIGZyb20gXCJzYXAvZmUvY29yZS9FeHRlbnNpb25BUElcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBleHRlbnNpYmxlLCBwdWJsaWNFeHRlbnNpb24sIHVzaW5nRXh0ZW5zaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgT3ZlcnJpZGVFeGVjdXRpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9PdmVycmlkZUV4ZWN1dGlvblwiO1xuaW1wb3J0IHR5cGUgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcblxuLyoqXG4gKiBCYXNlIGNvbnRyb2xsZXIgY2xhc3MgZm9yIHlvdXIgY3VzdG9tIHBhZ2UgdXNlZCBpbnNpZGUgYW4gU0FQIEZpb3JpIGVsZW1lbnRzIGFwcGxpY2F0aW9uLlxuICpcbiAqIFRoaXMgY29udHJvbGxlciBwcm92aWRlcyBwcmVjb25maWd1cmVkIGV4dGVuc2lvbnMgdGhhdCB3aWxsIGVuc3VyZSB5b3UgaGF2ZSB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0aWVzIHJlcXVpcmVkIHRvIHVzZSB0aGUgYnVpbGRpbmcgYmxvY2tzLlxuICpcbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjg4LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXJcIilcbmNsYXNzIFBhZ2VDb250cm9sbGVyIGV4dGVuZHMgQmFzZUNvbnRyb2xsZXIge1xuXHRAdXNpbmdFeHRlbnNpb24oUm91dGluZylcblx0cm91dGluZyE6IFJvdXRpbmc7XG5cdEB1c2luZ0V4dGVuc2lvbihJbnRlcm5hbFJvdXRpbmcpXG5cdF9yb3V0aW5nITogSW50ZXJuYWxSb3V0aW5nO1xuXHRAdXNpbmdFeHRlbnNpb24oRWRpdEZsb3cpXG5cdGVkaXRGbG93ITogRWRpdEZsb3c7XG5cdEB1c2luZ0V4dGVuc2lvbihJbnRlcm5hbEVkaXRGbG93KVxuXHRfZWRpdEZsb3chOiBJbnRlcm5hbEVkaXRGbG93O1xuXHRAdXNpbmdFeHRlbnNpb24oSW50ZW50QmFzZWROYXZpZ2F0aW9uKVxuXHRpbnRlbnRCYXNlZE5hdmlnYXRpb24hOiBJbnRlbnRCYXNlZE5hdmlnYXRpb247XG5cdEB1c2luZ0V4dGVuc2lvbihJbnRlcm5hbEludGVudEJhc2VkTmF2aWdhdGlvbilcblx0X2ludGVudEJhc2VkTmF2aWdhdGlvbiE6IEludGVybmFsSW50ZW50QmFzZWROYXZpZ2F0aW9uO1xuXHRAdXNpbmdFeHRlbnNpb24oUGFnZVJlYWR5KVxuXHRwYWdlUmVhZHkhOiBQYWdlUmVhZHk7XG5cdEB1c2luZ0V4dGVuc2lvbihNZXNzYWdlSGFuZGxlcilcblx0bWVzc2FnZUhhbmRsZXIhOiBNZXNzYWdlSGFuZGxlcjtcblx0QHVzaW5nRXh0ZW5zaW9uKFNoYXJlKVxuXHRzaGFyZSE6IFNoYXJlO1xuXHRAdXNpbmdFeHRlbnNpb24oUGFnaW5hdG9yKVxuXHRwYWdpbmF0b3IhOiBQYWdpbmF0b3I7XG5cdEB1c2luZ0V4dGVuc2lvbihWaWV3U3RhdGUpXG5cdHZpZXdTdGF0ZSE6IFZpZXdTdGF0ZTtcblx0QHVzaW5nRXh0ZW5zaW9uKFBsYWNlaG9sZGVyKVxuXHRwbGFjZWhvbGRlciE6IFBsYWNlaG9sZGVyO1xuXHRAdXNpbmdFeHRlbnNpb24oU2lkZUVmZmVjdHMpXG5cdF9zaWRlRWZmZWN0cyE6IFNpZGVFZmZlY3RzO1xuXHRAdXNpbmdFeHRlbnNpb24oTWFzc0VkaXQpXG5cdG1hc3NFZGl0ITogTWFzc0VkaXQ7XG5cdC8vIEBQdWJsaWNcblx0Ly8gZ2V0VmlldygpOiB7IGdldENvbnRyb2xsZXIoKTogUGFnZUNvbnRyb2xsZXIgfSAmIFZpZXcge1xuXHQvLyBcdHJldHVybiBzdXBlci5nZXRWaWV3KCkgYXMgYW55O1xuXHQvLyB9XG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5QYWdlQ29udHJvbGxlci5nZXRNZXRhZGF0YVxuXHQgKiBAZnVuY3Rpb25cblx0ICovXG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5QYWdlQ29udHJvbGxlci5leHRlbmRcblx0ICogQGZ1bmN0aW9uXG5cdCAqL1xuXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRvbkluaXQoKSB7XG5cdFx0Y29uc3Qgb1VJTW9kZWwgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpLmdldE1vZGVsKFwidWlcIikgYXMgSlNPTk1vZGVsLFxuXHRcdFx0b0ludGVybmFsTW9kZWwgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpLmdldE1vZGVsKFwiaW50ZXJuYWxcIikgYXMgSlNPTk1vZGVsLFxuXHRcdFx0c1BhdGggPSBgL3BhZ2VzLyR7dGhpcy5nZXRWaWV3KCkuZ2V0SWQoKX1gO1xuXG5cdFx0b1VJTW9kZWwuc2V0UHJvcGVydHkoc1BhdGgsIHtcblx0XHRcdGNvbnRyb2xzOiB7fVxuXHRcdH0pO1xuXHRcdG9JbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KHNQYXRoLCB7XG5cdFx0XHRjb250cm9sczoge30sXG5cdFx0XHRjb2xsYWJvcmF0aW9uOiB7fVxuXHRcdH0pO1xuXHRcdHRoaXMuZ2V0VmlldygpLmJpbmRFbGVtZW50KHtcblx0XHRcdHBhdGg6IHNQYXRoLFxuXHRcdFx0bW9kZWw6IFwidWlcIlxuXHRcdH0pO1xuXHRcdHRoaXMuZ2V0VmlldygpLmJpbmRFbGVtZW50KHtcblx0XHRcdHBhdGg6IHNQYXRoLFxuXHRcdFx0bW9kZWw6IFwiaW50ZXJuYWxcIlxuXHRcdH0pO1xuXG5cdFx0Ly8gZm9yIHRoZSB0aW1lIGJlaW5nIHByb3ZpZGUgaXQgYWxzbyBwYWdlSW50ZXJuYWwgYXMgc29tZSBtYWNyb3MgYWNjZXNzIGl0IC0gdG8gYmUgcmVtb3ZlZFxuXHRcdHRoaXMuZ2V0VmlldygpLmJpbmRFbGVtZW50KHtcblx0XHRcdHBhdGg6IHNQYXRoLFxuXHRcdFx0bW9kZWw6IFwicGFnZUludGVybmFsXCJcblx0XHR9KTtcblx0XHR0aGlzLmdldFZpZXcoKS5zZXRNb2RlbChvSW50ZXJuYWxNb2RlbCwgXCJwYWdlSW50ZXJuYWxcIik7XG5cblx0XHQvLyBhcyB0aGUgbW9kZWwgcHJvcGFnYXRpb24gaGFwcGVucyBhZnRlciBpbml0IGJ1dCB3ZSBhY3R1YWxseSB3YW50IHRvIGFjY2VzcyB0aGUgYmluZGluZyBjb250ZXh0IGluIHRoZVxuXHRcdC8vIGluaXQgcGhhc2UgYWxyZWFkeSBzZXR0aW5nIHRoZSBtb2RlbCBoZXJlXG5cdFx0dGhpcy5nZXRWaWV3KCkuc2V0TW9kZWwob1VJTW9kZWwsIFwidWlcIik7XG5cdFx0dGhpcy5nZXRWaWV3KCkuc2V0TW9kZWwob0ludGVybmFsTW9kZWwsIFwiaW50ZXJuYWxcIik7XG5cdH1cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdG9uQmVmb3JlUmVuZGVyaW5nKCkge1xuXHRcdGlmICh0aGlzLnBsYWNlaG9sZGVyLmF0dGFjaEhpZGVDYWxsYmFjaykge1xuXHRcdFx0dGhpcy5wbGFjZWhvbGRlci5hdHRhY2hIaWRlQ2FsbGJhY2soKTtcblx0XHR9XG5cdH1cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdGdldEV4dGVuc2lvbkFQSSh0aGlzOiBhbnkpOiBFeHRlbnNpb25BUEkge1xuXHRcdGlmICghdGhpcy5leHRlbnNpb25BUEkpIHtcblx0XHRcdHRoaXMuZXh0ZW5zaW9uQVBJID0gbmV3IEV4dGVuc2lvbkFQSSh0aGlzKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZXh0ZW5zaW9uQVBJO1xuXHR9XG5cdC8vIFdlIHNwZWNpZnkgdGhlIGV4dGVuc2liaWxpdHkgaGVyZSB0aGUgc2FtZSB3YXkgYXMgaXQgaXMgZG9uZSBpbiB0aGUgb2JqZWN0IHBhZ2UgY29udHJvbGxlclxuXHQvLyBzaW5jZSB0aGUgc3BlY2lmaWNhdGlvbiBoZXJlIG92ZXJyaWRlcyBpdCBhbmQgaWYgd2UgZG8gbm90IHNwZWNpZnkgYW55dGhpbmcgaGVyZSwgdGhlXG5cdC8vIGJlaGF2aW9yIGRlZmF1bHRzIHRvIGFuIGV4ZWN1dGUgaW5zdGVhZCFcblx0Ly8gVE9ETyBUaGlzIG1heSBub3QgYmUgaWRlYWwsIHNpbmNlIGl0IGFsc28gaW5mbHVlbmNlcyB0aGUgbGlzdCByZXBvcnQgY29udHJvbGxlciBidXQgY3VycmVudGx5IGl0J3MgdGhlIGJlc3Qgc29sdXRpb24uXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZXh0ZW5zaWJsZShPdmVycmlkZUV4ZWN1dGlvbi5BZnRlcilcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRvblBhZ2VSZWFkeShtUGFyYW1ldGVyczogYW55KSB7XG5cdFx0Ly8gQXBwbHkgYXBwIHN0YXRlIG9ubHkgYWZ0ZXIgdGhlIHBhZ2UgaXMgcmVhZHkgd2l0aCB0aGUgZmlyc3Qgc2VjdGlvbiBzZWxlY3RlZFxuXHRcdHRoaXMuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0QXBwU3RhdGVIYW5kbGVyKCkuYXBwbHlBcHBTdGF0ZSgpO1xuXHR9XG59XG5leHBvcnQgZGVmYXVsdCBQYWdlQ29udHJvbGxlcjtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO01BRU1BLGMsV0FETEMsY0FBYyxDQUFDLDRCQUFELEMsVUFFYkMsY0FBYyxDQUFDQyxPQUFELEMsVUFFZEQsY0FBYyxDQUFDRSxlQUFELEMsVUFFZEYsY0FBYyxDQUFDRyxRQUFELEMsVUFFZEgsY0FBYyxDQUFDSSxnQkFBRCxDLFVBRWRKLGNBQWMsQ0FBQ0sscUJBQUQsQyxVQUVkTCxjQUFjLENBQUNNLDZCQUFELEMsVUFFZE4sY0FB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
228
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYWdlQ29udHJvbGxlciIsImRlZmluZVVJNUNsYXNzIiwidXNpbmdFeHRlbnNpb24iLCJSb3V0aW5nIiwiSW50ZXJuYWxSb3V0aW5nIiwiRWRpdEZsb3ciLCJJbnRlcm5hbEVkaXRGbG93IiwiSW50ZW50QmFzZWROYXZpZ2F0aW9uIiwiSW50ZXJuYWxJbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJQYWdlUmVhZHkiLCJNZXNzYWdlSGFuZGxlciIsIlNoYXJlIiwiUGFnaW5hdG9yIiwiVmlld1N0YXRlIiwiUGxhY2Vob2xkZXIiLCJTaWRlRWZmZWN0cyIsIk1hc3NFZGl0IiwicHVibGljRXh0ZW5zaW9uIiwiZXh0ZW5zaWJsZSIsIk92ZXJyaWRlRXhlY3V0aW9uIiwiQWZ0ZXIiLCJvbkluaXQiLCJvVUlNb2RlbCIsImdldEFwcENvbXBvbmVudCIsImdldE1vZGVsIiwib0ludGVybmFsTW9kZWwiLCJzUGF0aCIsImdldFZpZXciLCJnZXRJZCIsInNldFByb3BlcnR5IiwiY29udHJvbHMiLCJjb2xsYWJvcmF0aW9uIiwiYmluZEVsZW1lbnQiLCJwYXRoIiwibW9kZWwiLCJzZXRNb2RlbCIsIm9uQmVmb3JlUmVuZGVyaW5nIiwicGxhY2Vob2xkZXIiLCJhdHRhY2hIaWRlQ2FsbGJhY2siLCJnZXRFeHRlbnNpb25BUEkiLCJleHRlbnNpb25BUEkiLCJFeHRlbnNpb25BUEkiLCJvblBhZ2VSZWFkeSIsIm1QYXJhbWV0ZXJzIiwiZ2V0QXBwU3RhdGVIYW5kbGVyIiwiYXBwbHlBcHBTdGF0ZSIsIkJhc2VDb250cm9sbGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJQYWdlQ29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgRWRpdEZsb3cgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0VkaXRGbG93XCI7XG5pbXBvcnQgSW50ZW50QmFzZWROYXZpZ2F0aW9uIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlbnRCYXNlZE5hdmlnYXRpb25cIjtcbmltcG9ydCBJbnRlcm5hbEVkaXRGbG93IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlcm5hbEVkaXRGbG93XCI7XG5pbXBvcnQgSW50ZXJuYWxJbnRlbnRCYXNlZE5hdmlnYXRpb24gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0ludGVybmFsSW50ZW50QmFzZWROYXZpZ2F0aW9uXCI7XG5pbXBvcnQgSW50ZXJuYWxSb3V0aW5nIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9JbnRlcm5hbFJvdXRpbmdcIjtcbmltcG9ydCBNYXNzRWRpdCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvTWFzc0VkaXRcIjtcbmltcG9ydCBNZXNzYWdlSGFuZGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvTWVzc2FnZUhhbmRsZXJcIjtcbmltcG9ydCBQYWdlUmVhZHkgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1BhZ2VSZWFkeVwiO1xuaW1wb3J0IFBhZ2luYXRvciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUGFnaW5hdG9yXCI7XG5pbXBvcnQgUGxhY2Vob2xkZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1BsYWNlaG9sZGVyXCI7XG5pbXBvcnQgUm91dGluZyBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvUm91dGluZ1wiO1xuaW1wb3J0IFNoYXJlIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9TaGFyZVwiO1xuaW1wb3J0IFNpZGVFZmZlY3RzIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9TaWRlRWZmZWN0c1wiO1xuaW1wb3J0IFZpZXdTdGF0ZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvVmlld1N0YXRlXCI7XG5pbXBvcnQgRXh0ZW5zaW9uQVBJIGZyb20gXCJzYXAvZmUvY29yZS9FeHRlbnNpb25BUElcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBleHRlbnNpYmxlLCBwdWJsaWNFeHRlbnNpb24sIHVzaW5nRXh0ZW5zaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgT3ZlcnJpZGVFeGVjdXRpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9PdmVycmlkZUV4ZWN1dGlvblwiO1xuaW1wb3J0IHR5cGUgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcblxuLyoqXG4gKiBCYXNlIGNvbnRyb2xsZXIgY2xhc3MgZm9yIHlvdXIgY3VzdG9tIHBhZ2UgdXNlZCBpbnNpZGUgYW4gU0FQIEZpb3JpIGVsZW1lbnRzIGFwcGxpY2F0aW9uLlxuICpcbiAqIFRoaXMgY29udHJvbGxlciBwcm92aWRlcyBwcmVjb25maWd1cmVkIGV4dGVuc2lvbnMgdGhhdCB3aWxsIGVuc3VyZSB5b3UgaGF2ZSB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0aWVzIHJlcXVpcmVkIHRvIHVzZSB0aGUgYnVpbGRpbmcgYmxvY2tzLlxuICpcbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjg4LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXJcIilcbmNsYXNzIFBhZ2VDb250cm9sbGVyIGV4dGVuZHMgQmFzZUNvbnRyb2xsZXIge1xuXHRAdXNpbmdFeHRlbnNpb24oUm91dGluZylcblx0cm91dGluZyE6IFJvdXRpbmc7XG5cdEB1c2luZ0V4dGVuc2lvbihJbnRlcm5hbFJvdXRpbmcpXG5cdF9yb3V0aW5nITogSW50ZXJuYWxSb3V0aW5nO1xuXHRAdXNpbmdFeHRlbnNpb24oRWRpdEZsb3cpXG5cdGVkaXRGbG93ITogRWRpdEZsb3c7XG5cdEB1c2luZ0V4dGVuc2lvbihJbnRlcm5hbEVkaXRGbG93KVxuXHRfZWRpdEZsb3chOiBJbnRlcm5hbEVkaXRGbG93O1xuXHRAdXNpbmdFeHRlbnNpb24oSW50ZW50QmFzZWROYXZpZ2F0aW9uKVxuXHRpbnRlbnRCYXNlZE5hdmlnYXRpb24hOiBJbnRlbnRCYXNlZE5hdmlnYXRpb247XG5cdEB1c2luZ0V4dGVuc2lvbihJbnRlcm5hbEludGVudEJhc2VkTmF2aWdhdGlvbilcblx0X2ludGVudEJhc2VkTmF2aWdhdGlvbiE6IEludGVybmFsSW50ZW50QmFzZWROYXZpZ2F0aW9uO1xuXHRAdXNpbmdFeHRlbnNpb24oUGFnZVJlYWR5KVxuXHRwYWdlUmVhZHkhOiBQYWdlUmVhZHk7XG5cdEB1c2luZ0V4dGVuc2lvbihNZXNzYWdlSGFuZGxlcilcblx0bWVzc2FnZUhhbmRsZXIhOiBNZXNzYWdlSGFuZGxlcjtcblx0QHVzaW5nRXh0ZW5zaW9uKFNoYXJlKVxuXHRzaGFyZSE6IFNoYXJlO1xuXHRAdXNpbmdFeHRlbnNpb24oUGFnaW5hdG9yKVxuXHRwYWdpbmF0b3IhOiBQYWdpbmF0b3I7XG5cdEB1c2luZ0V4dGVuc2lvbihWaWV3U3RhdGUpXG5cdHZpZXdTdGF0ZSE6IFZpZXdTdGF0ZTtcblx0QHVzaW5nRXh0ZW5zaW9uKFBsYWNlaG9sZGVyKVxuXHRwbGFjZWhvbGRlciE6IFBsYWNlaG9sZGVyO1xuXHRAdXNpbmdFeHRlbnNpb24oU2lkZUVmZmVjdHMpXG5cdF9zaWRlRWZmZWN0cyE6IFNpZGVFZmZlY3RzO1xuXHRAdXNpbmdFeHRlbnNpb24oTWFzc0VkaXQpXG5cdG1hc3NFZGl0ITogTWFzc0VkaXQ7XG5cdC8vIEBQdWJsaWNcblx0Ly8gZ2V0VmlldygpOiB7IGdldENvbnRyb2xsZXIoKTogUGFnZUNvbnRyb2xsZXIgfSAmIFZpZXcge1xuXHQvLyBcdHJldHVybiBzdXBlci5nZXRWaWV3KCkgYXMgYW55O1xuXHQvLyB9XG5cblx0cHJvdGVjdGVkIGV4dGVuc2lvbkFQST86IEV4dGVuc2lvbkFQSTtcblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLlBhZ2VDb250cm9sbGVyLmdldE1ldGFkYXRhXG5cdCAqIEBmdW5jdGlvblxuXHQgKi9cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLlBhZ2VDb250cm9sbGVyLmV4dGVuZFxuXHQgKiBAZnVuY3Rpb25cblx0ICovXG5cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdG9uSW5pdCgpIHtcblx0XHRjb25zdCBvVUlNb2RlbCA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TW9kZWwoXCJ1aVwiKSBhcyBKU09OTW9kZWwsXG5cdFx0XHRvSW50ZXJuYWxNb2RlbCA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKSBhcyBKU09OTW9kZWwsXG5cdFx0XHRzUGF0aCA9IGAvcGFnZXMvJHt0aGlzLmdldFZpZXcoKS5nZXRJZCgpfWA7XG5cblx0XHRvVUlNb2RlbC5zZXRQcm9wZXJ0eShzUGF0aCwge1xuXHRcdFx0Y29udHJvbHM6IHt9XG5cdFx0fSk7XG5cdFx0b0ludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoc1BhdGgsIHtcblx0XHRcdGNvbnRyb2xzOiB7fSxcblx0XHRcdGNvbGxhYm9yYXRpb246IHt9XG5cdFx0fSk7XG5cdFx0dGhpcy5nZXRWaWV3KCkuYmluZEVsZW1lbnQoe1xuXHRcdFx0cGF0aDogc1BhdGgsXG5cdFx0XHRtb2RlbDogXCJ1aVwiXG5cdFx0fSk7XG5cdFx0dGhpcy5nZXRWaWV3KCkuYmluZEVsZW1lbnQoe1xuXHRcdFx0cGF0aDogc1BhdGgsXG5cdFx0XHRtb2RlbDogXCJpbnRlcm5hbFwiXG5cdFx0fSk7XG5cblx0XHQvLyBmb3IgdGhlIHRpbWUgYmVpbmcgcHJvdmlkZSBpdCBhbHNvIHBhZ2VJbnRlcm5hbCBhcyBzb21lIG1hY3JvcyBhY2Nlc3MgaXQgLSB0byBiZSByZW1vdmVkXG5cdFx0dGhpcy5nZXRWaWV3KCkuYmluZEVsZW1lbnQoe1xuXHRcdFx0cGF0aDogc1BhdGgsXG5cdFx0XHRtb2RlbDogXCJwYWdlSW50ZXJuYWxcIlxuXHRcdH0pO1xuXHRcdHRoaXMuZ2V0VmlldygpLnNldE1vZGVsKG9JbnRlcm5hbE1vZGVsLCBcInBhZ2VJbnRlcm5hbFwiKTtcblxuXHRcdC8vIGFzIHRoZSBtb2RlbCBwcm9wYWdhdGlvbiBoYXBwZW5zIGFmdGVyIGluaXQgYnV0IHdlIGFjdHVhbGx5IHdhbnQgdG8gYWNjZXNzIHRoZSBiaW5kaW5nIGNvbnRleHQgaW4gdGhlXG5cdFx0Ly8gaW5pdCBwaGFzZSBhbHJlYWR5IHNldHRpbmcgdGhlIG1vZGVsIGhlcmVcblx0XHR0aGlzLmdldFZpZXcoKS5zZXRNb2RlbChvVUlNb2RlbCwgXCJ1aVwiKTtcblx0XHR0aGlzLmdldFZpZXcoKS5zZXRNb2RlbChvSW50ZXJuYWxNb2RlbCwgXCJpbnRlcm5hbFwiKTtcblx0fVxuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0b25CZWZvcmVSZW5kZXJpbmcoKSB7XG5cdFx0aWYgKHRoaXMucGxhY2Vob2xkZXIuYXR0YWNoSGlkZUNhbGxiYWNrKSB7XG5cdFx0XHR0aGlzLnBsYWNlaG9sZGVyLmF0dGFjaEhpZGVDYWxsYmFjaygpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIGV4dGVuc2lvbiBBUEkgZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICogQHJldHVybnMgVGhlIGV4dGVuc2lvbiBBUEkuXG5cdCAqL1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0Z2V0RXh0ZW5zaW9uQVBJKCk6IEV4dGVuc2lvbkFQSSB7XG5cdFx0aWYgKCF0aGlzLmV4dGVuc2lvbkFQSSkge1xuXHRcdFx0dGhpcy5leHRlbnNpb25BUEkgPSBuZXcgRXh0ZW5zaW9uQVBJKHRoaXMpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5leHRlbnNpb25BUEk7XG5cdH1cblx0Ly8gV2Ugc3BlY2lmeSB0aGUgZXh0ZW5zaWJpbGl0eSBoZXJlIHRoZSBzYW1lIHdheSBhcyBpdCBpcyBkb25lIGluIHRoZSBvYmplY3QgcGFnZSBjb250cm9sbGVyXG5cdC8vIHNpbmNlIHRoZSBzcGVjaWZpY2F0aW9uIGhlcmUgb3ZlcnJpZGVzIGl0IGFuZCBpZiB3ZSBkbyBub3Qgc3BlY2lmeSBhbnl0aGluZyBoZXJlLCB0aGVcblx0Ly8gYmVoYXZpb3IgZGVmYXVsdHMgdG8gYW4gZXhlY3V0ZSBpbnN0ZWFkIVxuXHQvLyBUT0RPIFRoaXMgbWF5IG5vdCBiZSBpZGVhbCwgc2luY2UgaXQgYWxzbyBpbmZsdWVuY2VzIHRoZSBsaXN0IHJlcG9ydCBjb250cm9sbGVyIGJ1dCBjdXJyZW50bHkgaXQncyB0aGUgYmVzdCBzb2x1dGlvbi5cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBleHRlbnNpYmxlKE92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyKVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdG9uUGFnZVJlYWR5KG1QYXJhbWV0ZXJzOiBhbnkpIHtcblx0XHQvLyBBcHBseSBhcHAgc3RhdGUgb25seSBhZnRlciB0aGUgcGFnZSBpcyByZWFkeSB3aXRoIHRoZSBmaXJzdCBzZWN0aW9uIHNlbGVjdGVkXG5cdFx0dGhpcy5nZXRBcHBDb21wb25lbnQoKS5nZXRBcHBTdGF0ZUhhbmRsZXIoKS5hcHBseUFwcFN0YXRlKCk7XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IFBhZ2VDb250cm9sbGVyO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFFTUEsYyxXQURMQyxjQUFjLENBQUMsNEJBQUQsQyxV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
@@ -61,6 +61,8 @@ class PageController extends BaseController {
61
61
  // getView(): { getController(): PageController } & View {
62
62
  // return super.getView() as any;
63
63
  // }
64
+
65
+ protected extensionAPI?: ExtensionAPI;
64
66
  /**
65
67
  * @private
66
68
  * @name sap.fe.core.PageController.getMetadata
@@ -112,8 +114,15 @@ class PageController extends BaseController {
112
114
  this.placeholder.attachHideCallback();
113
115
  }
114
116
  }
117
+
118
+ /**
119
+ * Get the extension API for the current page.
120
+ *
121
+ * @public
122
+ * @returns The extension API.
123
+ */
115
124
  @publicExtension()
116
- getExtensionAPI(this: any): ExtensionAPI {
125
+ getExtensionAPI(): ExtensionAPI {
117
126
  if (!this.extensionAPI) {
118
127
  this.extensionAPI = new ExtensionAPI(this);
119
128
  }
@@ -17,33 +17,22 @@ sap.ui.define(["sap/base/Log"], function (Log) {
17
17
  return isAnnotationFieldStaticallyHidden(property);
18
18
 
19
19
  case "com.sap.vocabularies.UI.v1.DataField":
20
- if (property.targetObject) {
21
- var _headerInfoAnnotation, _headerInfoAnnotation2, _headerInfoAnnotation3, _headerInfoAnnotation9, _headerInfoAnnotation10, _headerInfoAnnotation11, _headerInfoAnnotation12, _headerInfoAnnotation13;
22
-
23
- var headerInfoAnnotation = property.targetObject;
24
-
25
- if (headerInfoAnnotation.annotations && ((_headerInfoAnnotation = headerInfoAnnotation.annotations) === null || _headerInfoAnnotation === void 0 ? void 0 : (_headerInfoAnnotation2 = _headerInfoAnnotation.UI) === null || _headerInfoAnnotation2 === void 0 ? void 0 : (_headerInfoAnnotation3 = _headerInfoAnnotation2.Hidden) === null || _headerInfoAnnotation3 === void 0 ? void 0 : _headerInfoAnnotation3.valueOf()) === true) {
26
- var _headerInfoAnnotation4, _headerInfoAnnotation5, _headerInfoAnnotation6, _headerInfoAnnotation7, _headerInfoAnnotation8;
27
-
28
- if (((_headerInfoAnnotation4 = headerInfoAnnotation.Value) === null || _headerInfoAnnotation4 === void 0 ? void 0 : (_headerInfoAnnotation5 = _headerInfoAnnotation4.$target) === null || _headerInfoAnnotation5 === void 0 ? void 0 : (_headerInfoAnnotation6 = _headerInfoAnnotation5.annotations) === null || _headerInfoAnnotation6 === void 0 ? void 0 : (_headerInfoAnnotation7 = _headerInfoAnnotation6.UI) === null || _headerInfoAnnotation7 === void 0 ? void 0 : (_headerInfoAnnotation8 = _headerInfoAnnotation7.HiddenFilter) === null || _headerInfoAnnotation8 === void 0 ? void 0 : _headerInfoAnnotation8.valueOf()) === true) Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
29
- return true;
30
- } else if (headerInfoAnnotation.Value.$target && ((_headerInfoAnnotation9 = headerInfoAnnotation.Value) === null || _headerInfoAnnotation9 === void 0 ? void 0 : (_headerInfoAnnotation10 = _headerInfoAnnotation9.$target) === null || _headerInfoAnnotation10 === void 0 ? void 0 : (_headerInfoAnnotation11 = _headerInfoAnnotation10.annotations) === null || _headerInfoAnnotation11 === void 0 ? void 0 : (_headerInfoAnnotation12 = _headerInfoAnnotation11.UI) === null || _headerInfoAnnotation12 === void 0 ? void 0 : (_headerInfoAnnotation13 = _headerInfoAnnotation12.Hidden) === null || _headerInfoAnnotation13 === void 0 ? void 0 : _headerInfoAnnotation13.valueOf()) === true) {
31
- var _headerInfoAnnotation14, _headerInfoAnnotation15, _headerInfoAnnotation16, _headerInfoAnnotation17, _headerInfoAnnotation18;
32
-
33
- if (((_headerInfoAnnotation14 = headerInfoAnnotation.Value) === null || _headerInfoAnnotation14 === void 0 ? void 0 : (_headerInfoAnnotation15 = _headerInfoAnnotation14.$target) === null || _headerInfoAnnotation15 === void 0 ? void 0 : (_headerInfoAnnotation16 = _headerInfoAnnotation15.annotations) === null || _headerInfoAnnotation16 === void 0 ? void 0 : (_headerInfoAnnotation17 = _headerInfoAnnotation16.UI) === null || _headerInfoAnnotation17 === void 0 ? void 0 : (_headerInfoAnnotation18 = _headerInfoAnnotation17.HiddenFilter) === null || _headerInfoAnnotation18 === void 0 ? void 0 : _headerInfoAnnotation18.valueOf()) === true) Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
34
- return true;
35
- } else return false;
36
- } else if (property.annotations && ((_property$annotations = property.annotations) === null || _property$annotations === void 0 ? void 0 : (_property$annotations2 = _property$annotations.UI) === null || _property$annotations2 === void 0 ? void 0 : (_property$annotations3 = _property$annotations2.Hidden) === null || _property$annotations3 === void 0 ? void 0 : _property$annotations3.valueOf()) === true) {
20
+ if (property.annotations && ((_property$annotations = property.annotations) === null || _property$annotations === void 0 ? void 0 : (_property$annotations2 = _property$annotations.UI) === null || _property$annotations2 === void 0 ? void 0 : (_property$annotations3 = _property$annotations2.Hidden) === null || _property$annotations3 === void 0 ? void 0 : _property$annotations3.valueOf()) === true) {
37
21
  var _UI, _UI$HiddenFilter;
38
22
 
39
- if (property.annotations && ((_UI = property.annotations.UI) === null || _UI === void 0 ? void 0 : (_UI$HiddenFilter = _UI.HiddenFilter) === null || _UI$HiddenFilter === void 0 ? void 0 : _UI$HiddenFilter.valueOf()) === true) Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
23
+ if (property.annotations && ((_UI = property.annotations.UI) === null || _UI === void 0 ? void 0 : (_UI$HiddenFilter = _UI.HiddenFilter) === null || _UI$HiddenFilter === void 0 ? void 0 : _UI$HiddenFilter.valueOf()) === true) {
24
+ Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
25
+ }
26
+
40
27
  return true;
41
28
  } else if (property.Value.$target && ((_property$Value = property.Value) === null || _property$Value === void 0 ? void 0 : (_property$Value$$targ = _property$Value.$target) === null || _property$Value$$targ === void 0 ? void 0 : (_property$Value$$targ2 = _property$Value$$targ.annotations) === null || _property$Value$$targ2 === void 0 ? void 0 : (_property$Value$$targ3 = _property$Value$$targ2.UI) === null || _property$Value$$targ3 === void 0 ? void 0 : (_property$Value$$targ4 = _property$Value$$targ3.Hidden) === null || _property$Value$$targ4 === void 0 ? void 0 : _property$Value$$targ4.valueOf()) === true) {
42
29
  var _property$Value2, _property$Value2$$tar, _property$Value2$$tar2, _property$Value2$$tar3, _property$Value2$$tar4;
43
30
 
44
31
  if (((_property$Value2 = property.Value) === null || _property$Value2 === void 0 ? void 0 : (_property$Value2$$tar = _property$Value2.$target) === null || _property$Value2$$tar === void 0 ? void 0 : (_property$Value2$$tar2 = _property$Value2$$tar.annotations) === null || _property$Value2$$tar2 === void 0 ? void 0 : (_property$Value2$$tar3 = _property$Value2$$tar2.UI) === null || _property$Value2$$tar3 === void 0 ? void 0 : (_property$Value2$$tar4 = _property$Value2$$tar3.HiddenFilter) === null || _property$Value2$$tar4 === void 0 ? void 0 : _property$Value2$$tar4.valueOf()) === true) Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
45
32
  return true;
46
- } else return false;
33
+ } else {
34
+ return false;
35
+ }
47
36
 
48
37
  case "com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath":
49
38
  var propertyValueAnnotation = (_property$Value3 = property.Value) === null || _property$Value3 === void 0 ? void 0 : (_property$Value3$$tar = _property$Value3.$target) === null || _property$Value3$$tar === void 0 ? void 0 : _property$Value3$$tar.annotations;
@@ -51,17 +40,27 @@ sap.ui.define(["sap/base/Log"], function (Log) {
51
40
  if ((propertyValueAnnotation === null || propertyValueAnnotation === void 0 ? void 0 : (_propertyValueAnnotat = propertyValueAnnotation.UI) === null || _propertyValueAnnotat === void 0 ? void 0 : (_propertyValueAnnotat2 = _propertyValueAnnotat.Hidden) === null || _propertyValueAnnotat2 === void 0 ? void 0 : _propertyValueAnnotat2.valueOf()) === true) {
52
41
  var _propertyValueAnnotat3, _propertyValueAnnotat4;
53
42
 
54
- if ((propertyValueAnnotation === null || propertyValueAnnotation === void 0 ? void 0 : (_propertyValueAnnotat3 = propertyValueAnnotation.UI) === null || _propertyValueAnnotat3 === void 0 ? void 0 : (_propertyValueAnnotat4 = _propertyValueAnnotat3.HiddenFilter) === null || _propertyValueAnnotat4 === void 0 ? void 0 : _propertyValueAnnotat4.valueOf()) === true) Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
43
+ if ((propertyValueAnnotation === null || propertyValueAnnotation === void 0 ? void 0 : (_propertyValueAnnotat3 = propertyValueAnnotation.UI) === null || _propertyValueAnnotat3 === void 0 ? void 0 : (_propertyValueAnnotat4 = _propertyValueAnnotat3.HiddenFilter) === null || _propertyValueAnnotat4 === void 0 ? void 0 : _propertyValueAnnotat4.valueOf()) === true) {
44
+ Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
45
+ }
46
+
55
47
  return true;
56
- } else return false;
48
+ } else {
49
+ return false;
50
+ }
57
51
 
58
52
  case "com.sap.vocabularies.UI.v1.DataFieldWithUrl":
59
53
  if (((_property$annotations4 = property.annotations) === null || _property$annotations4 === void 0 ? void 0 : (_property$annotations5 = _property$annotations4.UI) === null || _property$annotations5 === void 0 ? void 0 : (_property$annotations6 = _property$annotations5.Hidden) === null || _property$annotations6 === void 0 ? void 0 : _property$annotations6.valueOf()) === true) {
60
54
  var _UI2, _UI2$HiddenFilter;
61
55
 
62
- if (property.annotations && ((_UI2 = property.annotations.UI) === null || _UI2 === void 0 ? void 0 : (_UI2$HiddenFilter = _UI2.HiddenFilter) === null || _UI2$HiddenFilter === void 0 ? void 0 : _UI2$HiddenFilter.valueOf()) === true) Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
56
+ if (property.annotations && ((_UI2 = property.annotations.UI) === null || _UI2 === void 0 ? void 0 : (_UI2$HiddenFilter = _UI2.HiddenFilter) === null || _UI2$HiddenFilter === void 0 ? void 0 : _UI2$HiddenFilter.valueOf()) === true) {
57
+ Log.warning("Warning: Property " + property.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
58
+ }
59
+
63
60
  return true;
64
- } else return false;
61
+ } else {
62
+ return false;
63
+ }
65
64
 
66
65
  default:
67
66
  }
@@ -85,11 +84,20 @@ sap.ui.define(["sap/base/Log"], function (Log) {
85
84
  var _UI3, _UI3$HiddenFilter;
86
85
 
87
86
  Log.warning("Warning: Measure attribute for Chart " + chartMeasure.$target.name + " is statically hidden hence chart can't be rendered");
88
- if (chartMeasure.$target.annotations && ((_UI3 = chartMeasure.$target.annotations.UI) === null || _UI3 === void 0 ? void 0 : (_UI3$HiddenFilter = _UI3.HiddenFilter) === null || _UI3$HiddenFilter === void 0 ? void 0 : _UI3$HiddenFilter.valueOf()) === true) Log.warning("Warning: Property " + chartMeasure.$target.name + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
87
+
88
+ if (chartMeasure.$target.annotations && ((_UI3 = chartMeasure.$target.annotations.UI) === null || _UI3 === void 0 ? void 0 : (_UI3$HiddenFilter = _UI3.HiddenFilter) === null || _UI3$HiddenFilter === void 0 ? void 0 : _UI3$HiddenFilter.valueOf()) === true) {
89
+ Log.warning("Warning: Property " + chartMeasure.$target.name + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
90
+ }
91
+
89
92
  ischartMeasureHidden = true;
90
93
  }
91
94
  });
92
- if (ischartMeasureHidden === true) return true;else return false;
95
+
96
+ if (ischartMeasureHidden === true) {
97
+ return true;
98
+ } else {
99
+ return false;
100
+ }
93
101
 
94
102
  case "com.sap.vocabularies.UI.v1.ConnectedFields":
95
103
  if (annotationProperty) {
@@ -98,9 +106,14 @@ sap.ui.define(["sap/base/Log"], function (Log) {
98
106
  if (((_annotationProperty$a = annotationProperty.annotations) === null || _annotationProperty$a === void 0 ? void 0 : (_annotationProperty$a2 = _annotationProperty$a.UI) === null || _annotationProperty$a2 === void 0 ? void 0 : (_annotationProperty$a3 = _annotationProperty$a2.Hidden) === null || _annotationProperty$a3 === void 0 ? void 0 : _annotationProperty$a3.valueOf()) === true) {
99
107
  var _UI4, _UI4$HiddenFilter;
100
108
 
101
- if (annotationProperty.annotations && ((_UI4 = annotationProperty.annotations.UI) === null || _UI4 === void 0 ? void 0 : (_UI4$HiddenFilter = _UI4.HiddenFilter) === null || _UI4$HiddenFilter === void 0 ? void 0 : _UI4$HiddenFilter.valueOf()) === true) Log.warning("Warning: Property " + annotationProperty.Target.$target.qualifier + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
109
+ if (annotationProperty.annotations && ((_UI4 = annotationProperty.annotations.UI) === null || _UI4 === void 0 ? void 0 : (_UI4$HiddenFilter = _UI4.HiddenFilter) === null || _UI4$HiddenFilter === void 0 ? void 0 : _UI4$HiddenFilter.valueOf()) === true) {
110
+ Log.warning("Warning: Property " + annotationProperty.Target.$target.qualifier + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
111
+ }
112
+
102
113
  return true;
103
- } else return false;
114
+ } else {
115
+ return false;
116
+ }
104
117
  }
105
118
 
106
119
  break;
@@ -120,7 +133,10 @@ sap.ui.define(["sap/base/Log"], function (Log) {
120
133
  if (((_propertyValueAnnotat5 = propertyValueAnnotation.annotations) === null || _propertyValueAnnotat5 === void 0 ? void 0 : (_propertyValueAnnotat6 = _propertyValueAnnotat5.UI) === null || _propertyValueAnnotat6 === void 0 ? void 0 : (_propertyValueAnnotat7 = _propertyValueAnnotat6.Hidden) === null || _propertyValueAnnotat7 === void 0 ? void 0 : _propertyValueAnnotat7.valueOf()) === true) {
121
134
  var _propertyValueAnnotat8, _propertyValueAnnotat9, _propertyValueAnnotat10;
122
135
 
123
- if (((_propertyValueAnnotat8 = propertyValueAnnotation.annotations) === null || _propertyValueAnnotat8 === void 0 ? void 0 : (_propertyValueAnnotat9 = _propertyValueAnnotat8.UI) === null || _propertyValueAnnotat9 === void 0 ? void 0 : (_propertyValueAnnotat10 = _propertyValueAnnotat9.HiddenFilter) === null || _propertyValueAnnotat10 === void 0 ? void 0 : _propertyValueAnnotat10.valueOf()) === true) Log.warning("Warning: Property " + annotationProperty.Target.$target.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
136
+ if (((_propertyValueAnnotat8 = propertyValueAnnotation.annotations) === null || _propertyValueAnnotat8 === void 0 ? void 0 : (_propertyValueAnnotat9 = _propertyValueAnnotat8.UI) === null || _propertyValueAnnotat9 === void 0 ? void 0 : (_propertyValueAnnotat10 = _propertyValueAnnotat9.HiddenFilter) === null || _propertyValueAnnotat10 === void 0 ? void 0 : _propertyValueAnnotat10.valueOf()) === true) {
137
+ Log.warning("Warning: Property " + annotationProperty.Target.$target.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
138
+ }
139
+
124
140
  return true;
125
141
  } else {
126
142
  return false;
@@ -131,6 +147,36 @@ sap.ui.define(["sap/base/Log"], function (Log) {
131
147
  }
132
148
 
133
149
  _exports.isAnnotationFieldStaticallyHidden = isAnnotationFieldStaticallyHidden;
150
+
151
+ function isHeaderStaticallyHidden(property) {
152
+ if (property.targetObject) {
153
+ var _headerInfoAnnotation, _headerInfoAnnotation2, _headerInfoAnnotation3, _headerInfoAnnotation9, _headerInfoAnnotation10, _headerInfoAnnotation11, _headerInfoAnnotation12, _headerInfoAnnotation13, _headerInfoAnnotation14;
154
+
155
+ var headerInfoAnnotation = property.targetObject;
156
+
157
+ if (headerInfoAnnotation.annotations && ((_headerInfoAnnotation = headerInfoAnnotation.annotations) === null || _headerInfoAnnotation === void 0 ? void 0 : (_headerInfoAnnotation2 = _headerInfoAnnotation.UI) === null || _headerInfoAnnotation2 === void 0 ? void 0 : (_headerInfoAnnotation3 = _headerInfoAnnotation2.Hidden) === null || _headerInfoAnnotation3 === void 0 ? void 0 : _headerInfoAnnotation3.valueOf()) === true) {
158
+ var _headerInfoAnnotation4, _headerInfoAnnotation5, _headerInfoAnnotation6, _headerInfoAnnotation7, _headerInfoAnnotation8;
159
+
160
+ if (((_headerInfoAnnotation4 = headerInfoAnnotation.Value) === null || _headerInfoAnnotation4 === void 0 ? void 0 : (_headerInfoAnnotation5 = _headerInfoAnnotation4.$target) === null || _headerInfoAnnotation5 === void 0 ? void 0 : (_headerInfoAnnotation6 = _headerInfoAnnotation5.annotations) === null || _headerInfoAnnotation6 === void 0 ? void 0 : (_headerInfoAnnotation7 = _headerInfoAnnotation6.UI) === null || _headerInfoAnnotation7 === void 0 ? void 0 : (_headerInfoAnnotation8 = _headerInfoAnnotation7.HiddenFilter) === null || _headerInfoAnnotation8 === void 0 ? void 0 : _headerInfoAnnotation8.valueOf()) === true) {
161
+ Log.warning("Warning: Property " + headerInfoAnnotation.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
162
+ }
163
+
164
+ return true;
165
+ } else if (headerInfoAnnotation !== null && headerInfoAnnotation !== void 0 && (_headerInfoAnnotation9 = headerInfoAnnotation.Value) !== null && _headerInfoAnnotation9 !== void 0 && _headerInfoAnnotation9.$target && (headerInfoAnnotation === null || headerInfoAnnotation === void 0 ? void 0 : (_headerInfoAnnotation10 = headerInfoAnnotation.Value) === null || _headerInfoAnnotation10 === void 0 ? void 0 : (_headerInfoAnnotation11 = _headerInfoAnnotation10.$target) === null || _headerInfoAnnotation11 === void 0 ? void 0 : (_headerInfoAnnotation12 = _headerInfoAnnotation11.annotations) === null || _headerInfoAnnotation12 === void 0 ? void 0 : (_headerInfoAnnotation13 = _headerInfoAnnotation12.UI) === null || _headerInfoAnnotation13 === void 0 ? void 0 : (_headerInfoAnnotation14 = _headerInfoAnnotation13.Hidden) === null || _headerInfoAnnotation14 === void 0 ? void 0 : _headerInfoAnnotation14.valueOf()) === true) {
166
+ var _headerInfoAnnotation15, _headerInfoAnnotation16, _headerInfoAnnotation17, _headerInfoAnnotation18, _headerInfoAnnotation19;
167
+
168
+ if ((headerInfoAnnotation === null || headerInfoAnnotation === void 0 ? void 0 : (_headerInfoAnnotation15 = headerInfoAnnotation.Value) === null || _headerInfoAnnotation15 === void 0 ? void 0 : (_headerInfoAnnotation16 = _headerInfoAnnotation15.$target) === null || _headerInfoAnnotation16 === void 0 ? void 0 : (_headerInfoAnnotation17 = _headerInfoAnnotation16.annotations) === null || _headerInfoAnnotation17 === void 0 ? void 0 : (_headerInfoAnnotation18 = _headerInfoAnnotation17.UI) === null || _headerInfoAnnotation18 === void 0 ? void 0 : (_headerInfoAnnotation19 = _headerInfoAnnotation18.HiddenFilter) === null || _headerInfoAnnotation19 === void 0 ? void 0 : _headerInfoAnnotation19.valueOf()) === true) {
169
+ Log.warning("Warning: Property " + headerInfoAnnotation.Value.path + " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!");
170
+ }
171
+
172
+ return true;
173
+ } else {
174
+ return false;
175
+ }
176
+ }
177
+ }
178
+
179
+ _exports.isHeaderStaticallyHidden = isHeaderStaticallyHidden;
134
180
  return _exports;
135
181
  }, false);
136
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbiIsInByb3BlcnR5IiwiJFR5cGUiLCJpc0Fubm90YXRpb25GaWVsZFN0YXRpY2FsbHlIaWRkZW4iLCJ0YXJnZXRPYmplY3QiLCJoZWFkZXJJbmZvQW5ub3RhdGlvbiIsImFubm90YXRpb25zIiwiVUkiLCJIaWRkZW4iLCJ2YWx1ZU9mIiwiVmFsdWUiLCIkdGFyZ2V0IiwiSGlkZGVuRmlsdGVyIiwiTG9nIiwid2FybmluZyIsInBhdGgiLCJwcm9wZXJ0eVZhbHVlQW5ub3RhdGlvbiIsImFubm90YXRpb25Qcm9wZXJ0eSIsInRhcmdldCIsIlRhcmdldCIsInRlcm0iLCJpc2NoYXJ0TWVhc3VyZUhpZGRlbiIsIk1lYXN1cmVzIiwiZm9yRWFjaCIsImNoYXJ0TWVhc3VyZSIsIm5hbWUiLCJxdWFsaWZpZXIiLCJEYXRhIiwiZmllbGQiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRhdGFGaWVsZEhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREYXRhRmllbGRBYnN0cmFjdFR5cGVzLFxuXHREYXRhRmllbGRGb3JBbm5vdGF0aW9uVHlwZXMsXG5cdFVJQW5ub3RhdGlvblRlcm1zLFxuXHRVSUFubm90YXRpb25UeXBlc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcblxuLy9mdW5jdGlvbiB0byBjaGVjayBmb3Igc3RhdGljYWxseSBoaWRkZW4gcmVmZXJlbmNlIHByb3BlcnRpZXNcbmV4cG9ydCBmdW5jdGlvbiBpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbihwcm9wZXJ0eT86IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgfCB1bmRlZmluZWQpIHtcblx0aWYgKHByb3BlcnR5KSB7XG5cdFx0c3dpdGNoIChwcm9wZXJ0eS4kVHlwZSkge1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uOlxuXHRcdFx0XHRyZXR1cm4gaXNBbm5vdGF0aW9uRmllbGRTdGF0aWNhbGx5SGlkZGVuKHByb3BlcnR5KTtcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkOlxuXHRcdFx0XHRpZiAoKHByb3BlcnR5IGFzIGFueSkudGFyZ2V0T2JqZWN0KSB7XG5cdFx0XHRcdFx0Y29uc3QgaGVhZGVySW5mb0Fubm90YXRpb24gPSAocHJvcGVydHkgYXMgYW55KS50YXJnZXRPYmplY3Q7XG5cdFx0XHRcdFx0aWYgKGhlYWRlckluZm9Bbm5vdGF0aW9uLmFubm90YXRpb25zICYmIGhlYWRlckluZm9Bbm5vdGF0aW9uLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdGlmIChoZWFkZXJJbmZvQW5ub3RhdGlvbi5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZSlcblx0XHRcdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eS5WYWx1ZS5wYXRoICtcblx0XHRcdFx0XHRcdFx0XHRcdFwiIGlzIHNldCB3aXRoIGJvdGggVUkuSGlkZGVuIGFuZCBVSS5IaWRkZW5GaWx0ZXIgLSBwbGVhc2Ugc2V0IG9ubHkgb25lIG9mIHRoZXNlISBVSS5IaWRkZW5GaWx0ZXIgaXMgaWdub3JlZCBjdXJyZW50bHkhXCJcblx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRcdFx0XHRoZWFkZXJJbmZvQW5ub3RhdGlvbi5WYWx1ZS4kdGFyZ2V0ICYmXG5cdFx0XHRcdFx0XHRoZWFkZXJJbmZvQW5ub3RhdGlvbi5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0aWYgKGhlYWRlckluZm9Bbm5vdGF0aW9uLlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKVxuXHRcdFx0XHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdFx0XHRcdHByb3BlcnR5LlZhbHVlLnBhdGggK1xuXHRcdFx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fSBlbHNlIHJldHVybiBmYWxzZTtcblx0XHRcdFx0fSBlbHNlIGlmIChwcm9wZXJ0eS5hbm5vdGF0aW9ucyAmJiBwcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0aWYgKHByb3BlcnR5LmFubm90YXRpb25zICYmIChwcm9wZXJ0eS5hbm5vdGF0aW9ucyBhcyBhbnkpLlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZSlcblx0XHRcdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eS5WYWx1ZS5wYXRoICtcblx0XHRcdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHByb3BlcnR5LlZhbHVlLiR0YXJnZXQgJiYgcHJvcGVydHkuVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRpZiAocHJvcGVydHkuVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5VST8uSGlkZGVuRmlsdGVyPy52YWx1ZU9mKCkgPT09IHRydWUpXG5cdFx0XHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdFx0cHJvcGVydHkuVmFsdWUucGF0aCArXG5cdFx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSBlbHNlIHJldHVybiBmYWxzZTtcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkV2l0aE5hdmlnYXRpb25QYXRoOlxuXHRcdFx0XHRjb25zdCBwcm9wZXJ0eVZhbHVlQW5ub3RhdGlvbiA9IHByb3BlcnR5LlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucztcblx0XHRcdFx0aWYgKHByb3BlcnR5VmFsdWVBbm5vdGF0aW9uPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRpZiAocHJvcGVydHlWYWx1ZUFubm90YXRpb24/LlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZSlcblx0XHRcdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eS5WYWx1ZS5wYXRoICtcblx0XHRcdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9IGVsc2UgcmV0dXJuIGZhbHNlO1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoVXJsOlxuXHRcdFx0XHRpZiAocHJvcGVydHkuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdGlmIChwcm9wZXJ0eS5hbm5vdGF0aW9ucyAmJiAocHJvcGVydHkuYW5ub3RhdGlvbnMgYXMgYW55KS5VST8uSGlkZGVuRmlsdGVyPy52YWx1ZU9mKCkgPT09IHRydWUpXG5cdFx0XHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdFx0cHJvcGVydHkuVmFsdWUucGF0aCArXG5cdFx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSBlbHNlIHJldHVybiBmYWxzZTtcblx0XHRcdGRlZmF1bHQ6XG5cdFx0fVxuXHR9XG59XG5leHBvcnQgZnVuY3Rpb24gaXNBbm5vdGF0aW9uRmllbGRTdGF0aWNhbGx5SGlkZGVuKGFubm90YXRpb25Qcm9wZXJ0eTogRGF0YUZpZWxkRm9yQW5ub3RhdGlvblR5cGVzKSB7XG5cdGNvbnN0IHRhcmdldCA9IGFubm90YXRpb25Qcm9wZXJ0eS5UYXJnZXQuJHRhcmdldC50ZXJtO1xuXHQvLyBsZXQgQ2hhcnRBbm5vdGF0aW9uOiBDaGFydCwgQ29ubmVjdGVkRmllbGRzQW5ub3RhdGlvbjogQ29ubmVjdGVkRmllbGRzLCBGaWVsZEdyb3VwQW5ub3RhdGlvbjogRmllbGRHcm91cCwgRGF0YVBvaW50QW5ub3RhdGlvbjogRGF0YVBvaW50O1xuXHRzd2l0Y2ggKHRhcmdldCkge1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQ6XG5cdFx0XHRsZXQgaXNjaGFydE1lYXN1cmVIaWRkZW47XG5cdFx0XHRhbm5vdGF0aW9uUHJvcGVydHkuVGFyZ2V0LiR0YXJnZXQuTWVhc3VyZXMuZm9yRWFjaCgoY2hhcnRNZWFzdXJlKSA9PiB7XG5cdFx0XHRcdGlmIChjaGFydE1lYXN1cmUuJHRhcmdldC5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcIldhcm5pbmc6IE1lYXN1cmUgYXR0cmlidXRlIGZvciBDaGFydCBcIiArXG5cdFx0XHRcdFx0XHRcdGNoYXJ0TWVhc3VyZS4kdGFyZ2V0Lm5hbWUgK1xuXHRcdFx0XHRcdFx0XHRcIiBpcyBzdGF0aWNhbGx5IGhpZGRlbiBoZW5jZSBjaGFydCBjYW4ndCBiZSByZW5kZXJlZFwiXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAoY2hhcnRNZWFzdXJlLiR0YXJnZXQuYW5ub3RhdGlvbnMgJiYgKGNoYXJ0TWVhc3VyZS4kdGFyZ2V0LmFubm90YXRpb25zIGFzIGFueSkuVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKVxuXHRcdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcdFwiV2FybmluZzogUHJvcGVydHkgXCIgK1xuXHRcdFx0XHRcdFx0XHRcdGNoYXJ0TWVhc3VyZS4kdGFyZ2V0Lm5hbWUgK1xuXHRcdFx0XHRcdFx0XHRcdFwiIGlzIHNldCB3aXRoIGJvdGggVUkuSGlkZGVuIGFuZCBVSS5IaWRkZW5GaWx0ZXIgLSBwbGVhc2Ugc2V0IG9ubHkgb25lIG9mIHRoZXNlISBVSS5IaWRkZW5GaWx0ZXIgaXMgaWdub3JlZCBjdXJyZW50bHkhXCJcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aXNjaGFydE1lYXN1cmVIaWRkZW4gPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdGlmIChpc2NoYXJ0TWVhc3VyZUhpZGRlbiA9PT0gdHJ1ZSkgcmV0dXJuIHRydWU7XG5cdFx0XHRlbHNlIHJldHVybiBmYWxzZTtcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkNvbm5lY3RlZEZpZWxkczpcblx0XHRcdGlmIChhbm5vdGF0aW9uUHJvcGVydHkpIHtcblx0XHRcdFx0aWYgKGFubm90YXRpb25Qcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0aWYgKGFubm90YXRpb25Qcm9wZXJ0eS5hbm5vdGF0aW9ucyAmJiAoYW5ub3RhdGlvblByb3BlcnR5LmFubm90YXRpb25zIGFzIGFueSkuVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKVxuXHRcdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcdFwiV2FybmluZzogUHJvcGVydHkgXCIgK1xuXHRcdFx0XHRcdFx0XHRcdGFubm90YXRpb25Qcm9wZXJ0eS5UYXJnZXQuJHRhcmdldC5xdWFsaWZpZXIgK1xuXHRcdFx0XHRcdFx0XHRcdFwiIGlzIHNldCB3aXRoIGJvdGggVUkuSGlkZGVuIGFuZCBVSS5IaWRkZW5GaWx0ZXIgLSBwbGVhc2Ugc2V0IG9ubHkgb25lIG9mIHRoZXNlISBVSS5IaWRkZW5GaWx0ZXIgaXMgaWdub3JlZCBjdXJyZW50bHkhXCJcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gZWxzZSByZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkZpZWxkR3JvdXA6XG5cdFx0XHRpZiAoYW5ub3RhdGlvblByb3BlcnR5KSB7XG5cdFx0XHRcdChhbm5vdGF0aW9uUHJvcGVydHkgYXMgYW55KS5UYXJnZXQuJHRhcmdldC5EYXRhLmZvckVhY2goKGZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKSA9PlxuXHRcdFx0XHRcdGlzUmVmZXJlbmNlUHJvcGVydHlTdGF0aWNhbGx5SGlkZGVuKGZpZWxkKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5EYXRhUG9pbnQ6XG5cdFx0XHRjb25zdCBwcm9wZXJ0eVZhbHVlQW5ub3RhdGlvbiA9IChhbm5vdGF0aW9uUHJvcGVydHkuVGFyZ2V0LiR0YXJnZXQgYXMgYW55KS5WYWx1ZS4kdGFyZ2V0O1xuXHRcdFx0aWYgKHByb3BlcnR5VmFsdWVBbm5vdGF0aW9uLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0aWYgKHByb3BlcnR5VmFsdWVBbm5vdGF0aW9uLmFubm90YXRpb25zPy5VST8uSGlkZGVuRmlsdGVyPy52YWx1ZU9mKCkgPT09IHRydWUpXG5cdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblByb3BlcnR5LlRhcmdldC4kdGFyZ2V0LlZhbHVlLnBhdGggK1xuXHRcdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0ZGVmYXVsdDpcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7RUFRQTtFQUNPLFNBQVNBLG1DQUFULENBQTZDQyxRQUE3QyxFQUE0RjtJQUFBOztJQUNsRyxJQUFJQSxRQUFKLEVBQWM7TUFDYixRQUFRQSxRQUFRLENBQUNDLEtBQWpCO1FBQ0M7VUFDQyxPQUFPQyxpQ0FBaUMsQ0FBQ0YsUUFBRCxDQUF4Qzs7UUFDRDtVQUNDLElBQUtBLFFBQUQsQ0FBa0JHLFlBQXRCLEVBQW9DO1lBQUE7O1lBQ25DLElBQU1DLG9CQUFvQixHQUFJSixRQUFELENBQWtCRyxZQUEvQzs7WUFDQSxJQUFJQyxvQkFBb0IsQ0FBQ0MsV0FBckIsSUFBb0MsMEJBQUFELG9CQUFvQixDQUFDQyxXQUFyQiwwR0FBa0NDLEVBQWxDLDRHQUFzQ0MsTUFBdEMsa0ZBQThDQyxPQUE5QyxRQUE0RCxJQUFwRyxFQUEwRztjQUFBOztjQUN6RyxJQUFJLDJCQUFBSixvQkFBb0IsQ0FBQ0ssS0FBckIsNEdBQTRCQyxPQUE1Qiw0R0FBcUNMLFdBQXJDLDRHQUFrREMsRUFBbEQsNEdBQXNESyxZQUF0RCxrRkFBb0VILE9BQXBFLFFBQWtGLElBQXRGLEVBQ0NJLEdBQUcsQ0FBQ0MsT0FBSixDQUNDLHVCQUNDYixRQUFRLENBQUNTLEtBQVQsQ0FBZUssSUFEaEIsR0FFQyx1SEFIRjtjQUtELE9BQU8sSUFBUDtZQUNBLENBUkQsTUFRTyxJQUNOVixvQkFBb0IsQ0FBQ0ssS0FBckIsQ0FBMkJDLE9BQTNCLElBQ0EsMkJBQUFOLG9CQUFvQixDQUFDSyxLQUFyQiw2R0FBNEJDLE9BQTVCLCtHQUFxQ0wsV0FBckMsK0dBQWtEQyxF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
182
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1JlZmVyZW5jZVByb3BlcnR5U3RhdGljYWxseUhpZGRlbiIsInByb3BlcnR5IiwiJFR5cGUiLCJpc0Fubm90YXRpb25GaWVsZFN0YXRpY2FsbHlIaWRkZW4iLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsIkhpZGRlbkZpbHRlciIsIkxvZyIsIndhcm5pbmciLCJWYWx1ZSIsInBhdGgiLCIkdGFyZ2V0IiwicHJvcGVydHlWYWx1ZUFubm90YXRpb24iLCJhbm5vdGF0aW9uUHJvcGVydHkiLCJ0YXJnZXQiLCJUYXJnZXQiLCJ0ZXJtIiwiaXNjaGFydE1lYXN1cmVIaWRkZW4iLCJNZWFzdXJlcyIsImZvckVhY2giLCJjaGFydE1lYXN1cmUiLCJuYW1lIiwicXVhbGlmaWVyIiwiRGF0YSIsImZpZWxkIiwiaXNIZWFkZXJTdGF0aWNhbGx5SGlkZGVuIiwidGFyZ2V0T2JqZWN0IiwiaGVhZGVySW5mb0Fubm90YXRpb24iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRhdGFGaWVsZEhlbHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREYXRhRmllbGRBYnN0cmFjdFR5cGVzLFxuXHREYXRhRmllbGRGb3JBbm5vdGF0aW9uVHlwZXMsXG5cdFVJQW5ub3RhdGlvblRlcm1zLFxuXHRVSUFubm90YXRpb25UeXBlc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbi8vZnVuY3Rpb24gdG8gY2hlY2sgZm9yIHN0YXRpY2FsbHkgaGlkZGVuIHJlZmVyZW5jZSBwcm9wZXJ0aWVzXG5leHBvcnQgZnVuY3Rpb24gaXNSZWZlcmVuY2VQcm9wZXJ0eVN0YXRpY2FsbHlIaWRkZW4ocHJvcGVydHk/OiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzIHwgdW5kZWZpbmVkKSB7XG5cdGlmIChwcm9wZXJ0eSkge1xuXHRcdHN3aXRjaCAocHJvcGVydHkuJFR5cGUpIHtcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVHlwZXMuRGF0YUZpZWxkRm9yQW5ub3RhdGlvbjpcblx0XHRcdFx0cmV0dXJuIGlzQW5ub3RhdGlvbkZpZWxkU3RhdGljYWxseUhpZGRlbihwcm9wZXJ0eSk7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZDpcblx0XHRcdFx0aWYgKHByb3BlcnR5LmFubm90YXRpb25zICYmIHByb3BlcnR5LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRpZiAocHJvcGVydHkuYW5ub3RhdGlvbnMgJiYgKHByb3BlcnR5LmFubm90YXRpb25zIGFzIGFueSkuVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdFx0cHJvcGVydHkuVmFsdWUucGF0aCArXG5cdFx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gZWxzZSBpZiAocHJvcGVydHkuVmFsdWUuJHRhcmdldCAmJiBwcm9wZXJ0eS5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdGlmIChwcm9wZXJ0eS5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZSlcblx0XHRcdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eS5WYWx1ZS5wYXRoICtcblx0XHRcdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRXaXRoTmF2aWdhdGlvblBhdGg6XG5cdFx0XHRcdGNvbnN0IHByb3BlcnR5VmFsdWVBbm5vdGF0aW9uID0gcHJvcGVydHkuVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zO1xuXHRcdFx0XHRpZiAocHJvcGVydHlWYWx1ZUFubm90YXRpb24/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdGlmIChwcm9wZXJ0eVZhbHVlQW5ub3RhdGlvbj8uVUk/LkhpZGRlbkZpbHRlcj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdFx0cHJvcGVydHkuVmFsdWUucGF0aCArXG5cdFx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZFdpdGhVcmw6XG5cdFx0XHRcdGlmIChwcm9wZXJ0eS5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0aWYgKHByb3BlcnR5LmFubm90YXRpb25zICYmIChwcm9wZXJ0eS5hbm5vdGF0aW9ucyBhcyBhbnkpLlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XHRcdFwiV2FybmluZzogUHJvcGVydHkgXCIgK1xuXHRcdFx0XHRcdFx0XHRcdHByb3BlcnR5LlZhbHVlLnBhdGggK1xuXHRcdFx0XHRcdFx0XHRcdFwiIGlzIHNldCB3aXRoIGJvdGggVUkuSGlkZGVuIGFuZCBVSS5IaWRkZW5GaWx0ZXIgLSBwbGVhc2Ugc2V0IG9ubHkgb25lIG9mIHRoZXNlISBVSS5IaWRkZW5GaWx0ZXIgaXMgaWdub3JlZCBjdXJyZW50bHkhXCJcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0ZGVmYXVsdDpcblx0XHR9XG5cdH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0Fubm90YXRpb25GaWVsZFN0YXRpY2FsbHlIaWRkZW4oYW5ub3RhdGlvblByb3BlcnR5OiBEYXRhRmllbGRGb3JBbm5vdGF0aW9uVHlwZXMpIHtcblx0Y29uc3QgdGFyZ2V0ID0gYW5ub3RhdGlvblByb3BlcnR5LlRhcmdldC4kdGFyZ2V0LnRlcm07XG5cdC8vIGxldCBDaGFydEFubm90YXRpb246IENoYXJ0LCBDb25uZWN0ZWRGaWVsZHNBbm5vdGF0aW9uOiBDb25uZWN0ZWRGaWVsZHMsIEZpZWxkR3JvdXBBbm5vdGF0aW9uOiBGaWVsZEdyb3VwLCBEYXRhUG9pbnRBbm5vdGF0aW9uOiBEYXRhUG9pbnQ7XG5cdHN3aXRjaCAodGFyZ2V0KSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdGxldCBpc2NoYXJ0TWVhc3VyZUhpZGRlbjtcblx0XHRcdGFubm90YXRpb25Qcm9wZXJ0eS5UYXJnZXQuJHRhcmdldC5NZWFzdXJlcy5mb3JFYWNoKChjaGFydE1lYXN1cmUpID0+IHtcblx0XHRcdFx0aWYgKGNoYXJ0TWVhc3VyZS4kdGFyZ2V0LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcdFwiV2FybmluZzogTWVhc3VyZSBhdHRyaWJ1dGUgZm9yIENoYXJ0IFwiICtcblx0XHRcdFx0XHRcdFx0Y2hhcnRNZWFzdXJlLiR0YXJnZXQubmFtZSArXG5cdFx0XHRcdFx0XHRcdFwiIGlzIHN0YXRpY2FsbHkgaGlkZGVuIGhlbmNlIGNoYXJ0IGNhbid0IGJlIHJlbmRlcmVkXCJcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdGNoYXJ0TWVhc3VyZS4kdGFyZ2V0LmFubm90YXRpb25zICYmXG5cdFx0XHRcdFx0XHQoY2hhcnRNZWFzdXJlLiR0YXJnZXQuYW5ub3RhdGlvbnMgYXMgYW55KS5VST8uSGlkZGVuRmlsdGVyPy52YWx1ZU9mKCkgPT09IHRydWVcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdFx0XHRjaGFydE1lYXN1cmUuJHRhcmdldC5uYW1lICtcblx0XHRcdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpc2NoYXJ0TWVhc3VyZUhpZGRlbiA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0aWYgKGlzY2hhcnRNZWFzdXJlSGlkZGVuID09PSB0cnVlKSB7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuQ29ubmVjdGVkRmllbGRzOlxuXHRcdFx0aWYgKGFubm90YXRpb25Qcm9wZXJ0eSkge1xuXHRcdFx0XHRpZiAoYW5ub3RhdGlvblByb3BlcnR5LmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRpZiAoYW5ub3RhdGlvblByb3BlcnR5LmFubm90YXRpb25zICYmIChhbm5vdGF0aW9uUHJvcGVydHkuYW5ub3RhdGlvbnMgYXMgYW55KS5VST8uSGlkZGVuRmlsdGVyPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uUHJvcGVydHkuVGFyZ2V0LiR0YXJnZXQucXVhbGlmaWVyICtcblx0XHRcdFx0XHRcdFx0XHRcIiBpcyBzZXQgd2l0aCBib3RoIFVJLkhpZGRlbiBhbmQgVUkuSGlkZGVuRmlsdGVyIC0gcGxlYXNlIHNldCBvbmx5IG9uZSBvZiB0aGVzZSEgVUkuSGlkZGVuRmlsdGVyIGlzIGlnbm9yZWQgY3VycmVudGx5IVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuRmllbGRHcm91cDpcblx0XHRcdGlmIChhbm5vdGF0aW9uUHJvcGVydHkpIHtcblx0XHRcdFx0KGFubm90YXRpb25Qcm9wZXJ0eSBhcyBhbnkpLlRhcmdldC4kdGFyZ2V0LkRhdGEuZm9yRWFjaCgoZmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpID0+XG5cdFx0XHRcdFx0aXNSZWZlcmVuY2VQcm9wZXJ0eVN0YXRpY2FsbHlIaWRkZW4oZmllbGQpXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkRhdGFQb2ludDpcblx0XHRcdGNvbnN0IHByb3BlcnR5VmFsdWVBbm5vdGF0aW9uID0gKGFubm90YXRpb25Qcm9wZXJ0eS5UYXJnZXQuJHRhcmdldCBhcyBhbnkpLlZhbHVlLiR0YXJnZXQ7XG5cdFx0XHRpZiAocHJvcGVydHlWYWx1ZUFubm90YXRpb24uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRpZiAocHJvcGVydHlWYWx1ZUFubm90YXRpb24uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25Qcm9wZXJ0eS5UYXJnZXQuJHRhcmdldC5WYWx1ZS5wYXRoICtcblx0XHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0ZGVmYXVsdDpcblx0fVxufVxuZXhwb3J0IGZ1bmN0aW9uIGlzSGVhZGVyU3RhdGljYWxseUhpZGRlbihwcm9wZXJ0eT86IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpIHtcblx0aWYgKChwcm9wZXJ0eSBhcyBhbnkpLnRhcmdldE9iamVjdCkge1xuXHRcdGNvbnN0IGhlYWRlckluZm9Bbm5vdGF0aW9uID0gKHByb3BlcnR5IGFzIGFueSkudGFyZ2V0T2JqZWN0O1xuXHRcdGlmIChoZWFkZXJJbmZvQW5ub3RhdGlvbi5hbm5vdGF0aW9ucyAmJiBoZWFkZXJJbmZvQW5ub3RhdGlvbi5hbm5vdGF0aW9ucz8uVUk/LkhpZGRlbj8udmFsdWVPZigpID09PSB0cnVlKSB7XG5cdFx0XHRpZiAoaGVhZGVySW5mb0Fubm90YXRpb24uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5VST8uSGlkZGVuRmlsdGVyPy52YWx1ZU9mKCkgPT09IHRydWUpIHtcblx0XHRcdFx0TG9nLndhcm5pbmcoXG5cdFx0XHRcdFx0XCJXYXJuaW5nOiBQcm9wZXJ0eSBcIiArXG5cdFx0XHRcdFx0XHRoZWFkZXJJbmZvQW5ub3RhdGlvbi5WYWx1ZS5wYXRoICtcblx0XHRcdFx0XHRcdFwiIGlzIHNldCB3aXRoIGJvdGggVUkuSGlkZGVuIGFuZCBVSS5IaWRkZW5GaWx0ZXIgLSBwbGVhc2Ugc2V0IG9ubHkgb25lIG9mIHRoZXNlISBVSS5IaWRkZW5GaWx0ZXIgaXMgaWdub3JlZCBjdXJyZW50bHkhXCJcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRoZWFkZXJJbmZvQW5ub3RhdGlvbj8uVmFsdWU/LiR0YXJnZXQgJiZcblx0XHRcdGhlYWRlckluZm9Bbm5vdGF0aW9uPy5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSA9PT0gdHJ1ZVxuXHRcdCkge1xuXHRcdFx0aWYgKGhlYWRlckluZm9Bbm5vdGF0aW9uPy5WYWx1ZT8uJHRhcmdldD8uYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW5GaWx0ZXI/LnZhbHVlT2YoKSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XHRcIldhcm5pbmc6IFByb3BlcnR5IFwiICtcblx0XHRcdFx0XHRcdGhlYWRlckluZm9Bbm5vdGF0aW9uLlZhbHVlLnBhdGggK1xuXHRcdFx0XHRcdFx0XCIgaXMgc2V0IHdpdGggYm90aCBVSS5IaWRkZW4gYW5kIFVJLkhpZGRlbkZpbHRlciAtIHBsZWFzZSBzZXQgb25seSBvbmUgb2YgdGhlc2UhIFVJLkhpZGRlbkZpbHRlciBpcyBpZ25vcmVkIGN1cnJlbnRseSFcIlxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7O0VBT0E7RUFDTyxTQUFTQSxtQ0FBVCxDQUE2Q0MsUUFBN0MsRUFBNEY7SUFBQTs7SUFDbEcsSUFBSUEsUUFBSixFQUFjO01BQ2IsUUFBUUEsUUFBUSxDQUFDQyxLQUFqQjtRQUNDO1VBQ0MsT0FBT0MsaUNBQWlDLENBQUNGLFFBQUQsQ0FBeEM7O1FBQ0Q7VUFDQyxJQUFJQSxRQUFRLENBQUNHLFdBQVQsSUFBd0IsMEJBQUFILFFBQVEsQ0FBQ0csV0FBVCwwR0FBc0JDLEVBQXRCLDRHQUEwQkMsTUFBMUIsa0ZBQWtDQyxPQUFsQyxRQUFnRCxJQUE1RSxFQUFrRjtZQUFBOztZQUNqRixJQUFJTixRQUFRLENBQUNHLFdBQVQsSUFBd0IsUUFBQ0gsUUFBUSxDQUFDRyxXQUFWLENBQThCQyxFQUE5QixnRUFBa0NHLFlBQWxDLHNFQUFnREQsT0FBaEQsUUFBOEQsSUFBMUYsRUFBZ0c7Y0FDL0ZFLEdB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
@@ -5,7 +5,6 @@ import {
5
5
  UIAnnotationTypes
6
6
  } from "@sap-ux/vocabularies-types/vocabularies/UI";
7
7
  import Log from "sap/base/Log";
8
-
9
8
  //function to check for statically hidden reference properties
10
9
  export function isReferencePropertyStaticallyHidden(property?: DataFieldAbstractTypes | undefined) {
11
10
  if (property) {
@@ -13,35 +12,14 @@ export function isReferencePropertyStaticallyHidden(property?: DataFieldAbstract
13
12
  case UIAnnotationTypes.DataFieldForAnnotation:
14
13
  return isAnnotationFieldStaticallyHidden(property);
15
14
  case UIAnnotationTypes.DataField:
16
- if ((property as any).targetObject) {
17
- const headerInfoAnnotation = (property as any).targetObject;
18
- if (headerInfoAnnotation.annotations && headerInfoAnnotation.annotations?.UI?.Hidden?.valueOf() === true) {
19
- if (headerInfoAnnotation.Value?.$target?.annotations?.UI?.HiddenFilter?.valueOf() === true)
20
- Log.warning(
21
- "Warning: Property " +
22
- property.Value.path +
23
- " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!"
24
- );
25
- return true;
26
- } else if (
27
- headerInfoAnnotation.Value.$target &&
28
- headerInfoAnnotation.Value?.$target?.annotations?.UI?.Hidden?.valueOf() === true
29
- ) {
30
- if (headerInfoAnnotation.Value?.$target?.annotations?.UI?.HiddenFilter?.valueOf() === true)
31
- Log.warning(
32
- "Warning: Property " +
33
- property.Value.path +
34
- " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!"
35
- );
36
- return true;
37
- } else return false;
38
- } else if (property.annotations && property.annotations?.UI?.Hidden?.valueOf() === true) {
39
- if (property.annotations && (property.annotations as any).UI?.HiddenFilter?.valueOf() === true)
15
+ if (property.annotations && property.annotations?.UI?.Hidden?.valueOf() === true) {
16
+ if (property.annotations && (property.annotations as any).UI?.HiddenFilter?.valueOf() === true) {
40
17
  Log.warning(
41
18
  "Warning: Property " +
42
19
  property.Value.path +
43
20
  " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!"
44
21
  );
22
+ }
45
23
  return true;
46
24
  } else if (property.Value.$target && property.Value?.$target?.annotations?.UI?.Hidden?.valueOf() === true) {
47
25
  if (property.Value?.$target?.annotations?.UI?.HiddenFilter?.valueOf() === true)
@@ -51,28 +29,36 @@ export function isReferencePropertyStaticallyHidden(property?: DataFieldAbstract
51
29
  " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!"
52
30
  );
53
31
  return true;
54
- } else return false;
32
+ } else {
33
+ return false;
34
+ }
55
35
  case UIAnnotationTypes.DataFieldWithNavigationPath:
56
36
  const propertyValueAnnotation = property.Value?.$target?.annotations;
57
37
  if (propertyValueAnnotation?.UI?.Hidden?.valueOf() === true) {
58
- if (propertyValueAnnotation?.UI?.HiddenFilter?.valueOf() === true)
38
+ if (propertyValueAnnotation?.UI?.HiddenFilter?.valueOf() === true) {
59
39
  Log.warning(
60
40
  "Warning: Property " +
61
41
  property.Value.path +
62
42
  " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!"
63
43
  );
44
+ }
64
45
  return true;
65
- } else return false;
46
+ } else {
47
+ return false;
48
+ }
66
49
  case UIAnnotationTypes.DataFieldWithUrl:
67
50
  if (property.annotations?.UI?.Hidden?.valueOf() === true) {
68
- if (property.annotations && (property.annotations as any).UI?.HiddenFilter?.valueOf() === true)
51
+ if (property.annotations && (property.annotations as any).UI?.HiddenFilter?.valueOf() === true) {
69
52
  Log.warning(
70
53
  "Warning: Property " +
71
54
  property.Value.path +
72
55
  " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!"
73
56
  );
57
+ }
74
58
  return true;
75
- } else return false;
59
+ } else {
60
+ return false;
61
+ }
76
62
  default:
77
63
  }
78
64
  }
@@ -90,28 +76,38 @@ export function isAnnotationFieldStaticallyHidden(annotationProperty: DataFieldF
90
76
  chartMeasure.$target.name +
91
77
  " is statically hidden hence chart can't be rendered"
92
78
  );
93
- if (chartMeasure.$target.annotations && (chartMeasure.$target.annotations as any).UI?.HiddenFilter?.valueOf() === true)
79
+ if (
80
+ chartMeasure.$target.annotations &&
81
+ (chartMeasure.$target.annotations as any).UI?.HiddenFilter?.valueOf() === true
82
+ ) {
94
83
  Log.warning(
95
84
  "Warning: Property " +
96
85
  chartMeasure.$target.name +
97
86
  " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!"
98
87
  );
88
+ }
99
89
  ischartMeasureHidden = true;
100
90
  }
101
91
  });
102
- if (ischartMeasureHidden === true) return true;
103
- else return false;
92
+ if (ischartMeasureHidden === true) {
93
+ return true;
94
+ } else {
95
+ return false;
96
+ }
104
97
  case UIAnnotationTerms.ConnectedFields:
105
98
  if (annotationProperty) {
106
99
  if (annotationProperty.annotations?.UI?.Hidden?.valueOf() === true) {
107
- if (annotationProperty.annotations && (annotationProperty.annotations as any).UI?.HiddenFilter?.valueOf() === true)
100
+ if (annotationProperty.annotations && (annotationProperty.annotations as any).UI?.HiddenFilter?.valueOf() === true) {
108
101
  Log.warning(
109
102
  "Warning: Property " +
110
103
  annotationProperty.Target.$target.qualifier +
111
104
  " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!"
112
105
  );
106
+ }
113
107
  return true;
114
- } else return false;
108
+ } else {
109
+ return false;
110
+ }
115
111
  }
116
112
  break;
117
113
  case UIAnnotationTerms.FieldGroup:
@@ -124,12 +120,13 @@ export function isAnnotationFieldStaticallyHidden(annotationProperty: DataFieldF
124
120
  case UIAnnotationTerms.DataPoint:
125
121
  const propertyValueAnnotation = (annotationProperty.Target.$target as any).Value.$target;
126
122
  if (propertyValueAnnotation.annotations?.UI?.Hidden?.valueOf() === true) {
127
- if (propertyValueAnnotation.annotations?.UI?.HiddenFilter?.valueOf() === true)
123
+ if (propertyValueAnnotation.annotations?.UI?.HiddenFilter?.valueOf() === true) {
128
124
  Log.warning(
129
125
  "Warning: Property " +
130
126
  annotationProperty.Target.$target.Value.path +
131
127
  " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!"
132
128
  );
129
+ }
133
130
  return true;
134
131
  } else {
135
132
  return false;
@@ -137,3 +134,32 @@ export function isAnnotationFieldStaticallyHidden(annotationProperty: DataFieldF
137
134
  default:
138
135
  }
139
136
  }
137
+ export function isHeaderStaticallyHidden(property?: DataFieldAbstractTypes) {
138
+ if ((property as any).targetObject) {
139
+ const headerInfoAnnotation = (property as any).targetObject;
140
+ if (headerInfoAnnotation.annotations && headerInfoAnnotation.annotations?.UI?.Hidden?.valueOf() === true) {
141
+ if (headerInfoAnnotation.Value?.$target?.annotations?.UI?.HiddenFilter?.valueOf() === true) {
142
+ Log.warning(
143
+ "Warning: Property " +
144
+ headerInfoAnnotation.Value.path +
145
+ " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!"
146
+ );
147
+ }
148
+ return true;
149
+ } else if (
150
+ headerInfoAnnotation?.Value?.$target &&
151
+ headerInfoAnnotation?.Value?.$target?.annotations?.UI?.Hidden?.valueOf() === true
152
+ ) {
153
+ if (headerInfoAnnotation?.Value?.$target?.annotations?.UI?.HiddenFilter?.valueOf() === true) {
154
+ Log.warning(
155
+ "Warning: Property " +
156
+ headerInfoAnnotation.Value.path +
157
+ " is set with both UI.Hidden and UI.HiddenFilter - please set only one of these! UI.HiddenFilter is ignored currently!"
158
+ );
159
+ }
160
+ return true;
161
+ } else {
162
+ return false;
163
+ }
164
+ }
165
+ }
@@ -68,7 +68,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/formatters/FPMFormatter", "sap/fe/co
68
68
  controls: [],
69
69
  elements: [],
70
70
  // eslint-disable-next-line no-template-curly-in-string
71
- version: "1.105.1",
71
+ version: "1.105.2",
72
72
  noLibraryCSS: true,
73
73
  extensions: {
74
74
  //Configuration used for rule loading of Support Assistant
@@ -174,7 +174,7 @@ sap.ui.define(["sap/fe/core/helpers/BindingToolkit", "sap/fe/core/templating/Pro
174
174
  }).join("/");
175
175
  }
176
176
 
177
- if (dataModelObjectPath.targetObject && dataModelObjectPath.targetObject.name && dataModelObjectPath.targetObject._type !== "NavigationProperty" && dataModelObjectPath.targetObject._type !== "EntityType" && dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet) {
177
+ if (dataModelObjectPath.targetObject && dataModelObjectPath.targetObject.name && dataModelObjectPath.targetObject._type !== "NavigationProperty" && dataModelObjectPath.targetObject._type !== "EntityType" && dataModelObjectPath.targetObject._type !== "EntitySet" && dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet) {
178
178
  if (!path.endsWith("/")) {
179
179
  path += "/";
180
180
  }
@@ -216,7 +216,7 @@ sap.ui.define(["sap/fe/core/helpers/BindingToolkit", "sap/fe/core/templating/Pro
216
216
  return np.name;
217
217
  }).join("/");
218
218
 
219
- if (dataModelObjectPath.targetObject && (dataModelObjectPath.targetObject.name || dataModelObjectPath.targetObject.type === "PropertyPath" && dataModelObjectPath.targetObject.value) && dataModelObjectPath.targetObject._type !== "NavigationProperty" && dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet) {
219
+ if (dataModelObjectPath.targetObject && (dataModelObjectPath.targetObject.name || dataModelObjectPath.targetObject.type === "PropertyPath" && dataModelObjectPath.targetObject.value) && dataModelObjectPath.targetObject._type !== "NavigationProperty" && dataModelObjectPath.targetObject._type !== "EntityType" && dataModelObjectPath.targetObject._type !== "EntitySet" && dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet) {
220
220
  if (path.length > 0 && !path.endsWith("/")) {
221
221
  path += "/";
222
222
  }
@@ -421,4 +421,4 @@ sap.ui.define(["sap/fe/core/helpers/BindingToolkit", "sap/fe/core/templating/Pro
421
421
 
422
422
  return _exports;
423
423
  }, false);
424
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbiIsImNvbnRleHRQYXRoIiwidmlzaXRlZE5hdlByb3BzIiwibGVuZ3RoIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJyZW1haW5pbmdOYXZQcm9wcyIsImZvckVhY2giLCJuYXZQcm9wIiwibmF2SW5kZXgiLCJwdXNoIiwiY29uY2F0Iiwic2xpY2UiLCJjdXJyZW50SWR4IiwiY3VycmVudE5hdiIsIm5leHROYXZQcm9wIiwicGFydG5lciIsIm5hbWUiLCJzcGxpY2UiLCJleHRyYU5hdlByb3AiLCJtYXAiLCJ0YXJnZXRUeXBlIiwiZmluZCIsIm5wIiwiZW5oYW5jZURhdGFNb2RlbFBhdGgiLCJkYXRhTW9kZWxPYmplY3RQYXRoIiwicHJvcGVydHlQYXRoIiwic1Byb3BlcnR5UGF0aCIsImlzUGF0aEV4cHJlc3Npb24iLCJpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiIsInBhdGgiLCJvVGFyZ2V0IiwiJHRhcmdldCIsInRhcmdldEVudGl0eVR5cGUiLCJyZXNvbHZlUGF0aCIsInRhcmdldE9iamVjdCIsImFQYXRoU3BsaXQiLCJzcGxpdCIsImN1cnJlbnRFbnRpdHlTZXQiLCJ0YXJnZXRFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5VHlwZSIsInJlZHVjZWRFbnRpdHlUeXBlIiwicGF0aFBhcnQiLCJwb3RlbnRpYWxOYXZQcm9wIiwibmF2aWdhdGlvblByb3BlcnR5QmluZGluZyIsImhhc093blByb3BlcnR5IiwidW5kZWZpbmVkIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJjb250ZXh0TG9jYXRpb24iLCJjb252ZXJ0ZWRUeXBlcyIsImdldFRhcmdldEVudGl0eVNldFBhdGgiLCJ0YXJnZXRFbnRpdHlTZXRQYXRoIiwibmF2aWdhdGVkUGF0aHMiLCJqb2luIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImJSZWxhdGl2ZSIsIl90eXBlIiwiZW5kc1dpdGgiLCJ0ZXJtIiwiZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCIsImZvckJpbmRpbmdFeHByZXNzaW9uIiwibmF2UHJvcGVydGllcyIsImlzQ29sbGVjdGlvbiIsInR5cGUiLCJ2YWx1ZSIsInF1YWxpZmllciIsImlzUGF0aFVwZGF0YWJsZSIsImV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoIiwiY2hlY2tPblBhdGgiLCJhbm5vdGF0aW9uT2JqZWN0IiwiVXBkYXRlUmVzdHJpY3Rpb25zIiwiVXBkYXRhYmxlIiwiaXNQYXRoU2VhcmNoYWJsZSIsIlNlYXJjaFJlc3RyaWN0aW9ucyIsIlNlYXJjaGFibGUiLCJpc1BhdGhEZWxldGFibGUiLCJEZWxldGVSZXN0cmljdGlvbnMiLCJEZWxldGFibGUiLCJpc1BhdGhJbnNlcnRhYmxlIiwiSW5zZXJ0UmVzdHJpY3Rpb25zIiwiSW5zZXJ0YWJsZSIsImNoZWNrRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyIsImFsbG93ZWRFeHByZXNzaW9uIiwiZmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyIsIkZpbHRlclJlc3RyaWN0aW9ucyIsIkZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMiLCJjdXJyZW50T2JqZWN0UmVzdHJpY3Rpb24iLCJyZXN0cmljdGlvbiIsIlByb3BlcnR5IiwiaW5kZXhPZiIsIkFsbG93ZWRFeHByZXNzaW9ucyIsInRvU3RyaW5nIiwiY2hlY2tGdW5jdGlvbiIsImNvbnN0YW50IiwicGFyZW50RW50aXR5U2V0IiwidmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUiLCJhbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzIiwicmVzZXRWaXNpdGVkTmF2UHJvcHMiLCJuYXZpZ2F0aW9uUHJvcGVydHkiLCJjb250YWluc1RhcmdldCIsImZ1bGxOYXZpZ2F0aW9uUGF0aCIsInJlc3RyaWN0aW9ucyIsIl9wYXJlbnRFbnRpdHlTZXQiLCJhbm5vdGF0aW9ucyIsIkNhcGFiaWxpdGllcyIsIk5hdmlnYXRpb25SZXN0cmljdGlvbnMiLCJSZXN0cmljdGVkUHJvcGVydGllcyIsInJlc3RyaWN0ZWROYXZQcm9wIiwiTmF2aWdhdGlvblByb3BlcnR5IiwicmVzdHJpY3Rpb25EZWZpbml0aW9uIiwiX2FsbFZpc2l0ZWROYXZpZ2F0aW9uUHJvcHMiLCJwYXRoUmVsYXRpdmVMb2NhdGlvbiIsInBhdGhWaXNpdG9yRnVuY3Rpb24iLCJwYXRoVmlzaXRvciIsImdldFBhdGhWaXNpdG9yRm9yU2luZ2xldG9uIiwiZXF1YWwiLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJ0YXJnZXRSZXN0cmljdGlvbnMiLCJpZ25vcmVUYXJnZXRDb2xsZWN0aW9uIiwiYXV0aG9yaXplVW5yZXNvbHZhYmxlIiwidW5yZXNvbHZlYWJsZUV4cHJlc3Npb24iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRhdGFNb2RlbFBhdGhIZWxwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuXHRDb252ZXJ0ZWRNZXRhZGF0YSxcblx0RW50aXR5U2V0LFxuXHRFbnRpdHlUeXBlLFxuXHROYXZpZ2F0aW9uUHJvcGVydHksXG5cdFByb3BlcnR5LFxuXHRQcm9wZXJ0eVBhdGgsXG5cdFNpbmdsZXRvblxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHtcblx0RmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9uVHlwZVR5cGVzLFxuXHROYXZpZ2F0aW9uUHJvcGVydHlSZXN0cmljdGlvbixcblx0TmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb25UeXBlc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NhcGFiaWxpdGllc1wiO1xuaW1wb3J0IHR5cGUge1xuXHRFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMsXG5cdEVudGl0eVR5cGVBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXNcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9DYXBhYmlsaXRpZXNfRWRtXCI7XG5pbXBvcnQgdHlwZSB7IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBjb25zdGFudCwgZXF1YWwsIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiwgdW5yZXNvbHZlYWJsZUV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eU9yUGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0Rpc3BsYXlNb2RlRm9ybWF0dGVyXCI7XG5pbXBvcnQgeyBpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiwgaXNQYXRoRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5SGVscGVyXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFNb2RlbE9iamVjdFBhdGggPSB7XG5cdHN0YXJ0aW5nRW50aXR5U2V0OiBTaW5nbGV0b24gfCBFbnRpdHlTZXQ7XG5cdGNvbnRleHRMb2NhdGlvbj86IERhdGFNb2RlbE9iamVjdFBhdGg7XG5cdG5hdmlnYXRpb25Qcm9wZXJ0aWVzOiBOYXZpZ2F0aW9uUHJvcGVydHlbXTtcblx0dGFyZ2V0RW50aXR5U2V0PzogU2luZ2xldG9uIHwgRW50aXR5U2V0O1xuXHR0YXJnZXRFbnRpdHlUeXBlOiBFbnRpdHlUeXBlO1xuXHR0YXJnZXRPYmplY3Q6IGFueTtcblx0Y29udmVydGVkVHlwZXM6IENvbnZlcnRlZE1ldGFkYXRhO1xufTtcblxudHlwZSBFeHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aCA9IHtcblx0cHJvcGVydHlQYXRoPzogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+O1xuXHRwYXRoVmlzaXRvcj86IEZ1bmN0aW9uO1xuXHRpZ25vcmVUYXJnZXRDb2xsZWN0aW9uPzogYm9vbGVhbjtcblx0YXV0aG9yaXplVW5yZXNvbHZhYmxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbiA9IGZ1bmN0aW9uIChcblx0Y29udGV4dFBhdGg/OiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHR2aXNpdGVkTmF2UHJvcHM6IE5hdmlnYXRpb25Qcm9wZXJ0eVtdID0gW11cbik6IE5hdmlnYXRpb25Qcm9wZXJ0eVtdIHtcblx0aWYgKCFjb250ZXh0UGF0aCkge1xuXHRcdHJldHVybiB2aXNpdGVkTmF2UHJvcHM7XG5cdH0gZWxzZSBpZiAodmlzaXRlZE5hdlByb3BzLmxlbmd0aCA+PSBjb250ZXh0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5sZW5ndGgpIHtcblx0XHRsZXQgcmVtYWluaW5nTmF2UHJvcHM6IE5hdmlnYXRpb25Qcm9wZXJ0eVtdID0gW107XG5cdFx0Y29udGV4dFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMuZm9yRWFjaCgobmF2UHJvcCwgbmF2SW5kZXgpID0+IHtcblx0XHRcdGlmICh2aXNpdGVkTmF2UHJvcHNbbmF2SW5kZXhdICE9PSBuYXZQcm9wKSB7XG5cdFx0XHRcdHJlbWFpbmluZ05hdlByb3BzLnB1c2godmlzaXRlZE5hdlByb3BzW25hdkluZGV4XSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmVtYWluaW5nTmF2UHJvcHMgPSByZW1haW5pbmdOYXZQcm9wcy5jb25jYXQodmlzaXRlZE5hdlByb3BzLnNsaWNlKGNvbnRleHRQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmxlbmd0aCkpO1xuXHRcdC8vIENsZWFuIHVwIE5hdlByb3AgLT4gT3duZXJcblx0XHRsZXQgY3VycmVudElkeCA9IDA7XG5cdFx0d2hpbGUgKHJlbWFpbmluZ05hdlByb3BzLmxlbmd0aCA+IDEgJiYgY3VycmVudElkeCAhPSByZW1haW5pbmdOYXZQcm9wcy5sZW5ndGggLSAxKSB7XG5cdFx0XHRjb25zdCBjdXJyZW50TmF2ID0gcmVtYWluaW5nTmF2UHJvcHNbY3VycmVudElkeF07XG5cdFx0XHRjb25zdCBuZXh0TmF2UHJvcCA9IHJlbWFpbmluZ05hdlByb3BzW2N1cnJlbnRJZHggKyAxXTtcblx0XHRcdGlmIChjdXJyZW50TmF2LnBhcnRuZXIgPT09IG5leHROYXZQcm9wLm5hbWUpIHtcblx0XHRcdFx0cmVtYWluaW5nTmF2UHJvcHMuc3BsaWNlKDAsIDIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3VycmVudElkeCsrO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gcmVtYWluaW5nTmF2UHJvcHM7XG5cdH0gZWxzZSB7XG5cdFx0bGV0IGV4dHJhTmF2UHJvcDogTmF2aWdhdGlvblByb3BlcnR5W10gPSBbXTtcblx0XHR2aXNpdGVkTmF2UHJvcHMuZm9yRWFjaCgobmF2UHJvcCwgbmF2SW5kZXgpID0+IHtcblx0XHRcdGlmIChjb250ZXh0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllc1tuYXZJbmRleF0gIT09IG5hdlByb3ApIHtcblx0XHRcdFx0ZXh0cmFOYXZQcm9wLnB1c2godmlzaXRlZE5hdlByb3BzW25hdkluZGV4XSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0ZXh0cmFOYXZQcm9wID0gZXh0cmFOYXZQcm9wLmNvbmNhdChjb250ZXh0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5zbGljZSh2aXNpdGVkTmF2UHJvcHMubGVuZ3RoKSk7XG5cdFx0Ly8gQ2xlYW4gdXAgTmF2UHJvcCAtPiBPd25lclxuXHRcdGxldCBjdXJyZW50SWR4ID0gMDtcblx0XHR3aGlsZSAoZXh0cmFOYXZQcm9wLmxlbmd0aCA+IDEgJiYgY3VycmVudElkeCAhPSBleHRyYU5hdlByb3AubGVuZ3RoIC0gMSkge1xuXHRcdFx0Y29uc3QgY3VycmVudE5hdiA9IGV4dHJhTmF2UHJvcFtjdXJyZW50SWR4XTtcblx0XHRcdGNvbnN0IG5leHROYXZQcm9wID0gZXh0cmFOYXZQcm9wW2N1cnJlbnRJZHggKyAxXTtcblx0XHRcdGlmIChjdXJyZW50TmF2LnBhcnRuZXIgPT09IG5leHROYXZQcm9wLm5hbWUpIHtcblx0XHRcdFx0ZXh0cmFOYXZQcm9wLnNwbGljZSgwLCAyKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGN1cnJlbnRJZHgrKztcblx0XHRcdH1cblx0XHR9XG5cdFx0ZXh0cmFOYXZQcm9wID0gZXh0cmFOYXZQcm9wLm1hcCgobmF2UHJvcCkgPT4ge1xuXHRcdFx0cmV0dXJuIG5hdlByb3AudGFyZ2V0VHlwZS5uYXZpZ2F0aW9uUHJvcGVydGllcy5maW5kKChucCkgPT4gbnAubmFtZSA9PT0gbmF2UHJvcC5wYXJ0bmVyKSBhcyBOYXZpZ2F0aW9uUHJvcGVydHk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIGV4dHJhTmF2UHJvcDtcblx0fVxufTtcblxuZXhwb3J0IGNvbnN0IGVuaGFuY2VEYXRhTW9kZWxQYXRoID0gZnVuY3Rpb24gKFxuXHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRwcm9wZXJ0eVBhdGg/OiBQcm9wZXJ0eU9yUGF0aDxQcm9wZXJ0eT5cbik6IERhdGFNb2RlbE9iamVjdFBhdGgge1xuXHRsZXQgc1Byb3BlcnR5UGF0aDogc3RyaW5nID0gXCJcIjtcblx0aWYgKChpc1BhdGhFeHByZXNzaW9uKHByb3BlcnR5UGF0aCkgfHwgaXNBbm5vdGF0aW9uUGF0aEV4cHJlc3Npb24ocHJvcGVydHlQYXRoKSkgJiYgcHJvcGVydHlQYXRoLnBhdGgpIHtcblx0XHRzUHJvcGVydHlQYXRoID0gcHJvcGVydHlQYXRoLnBhdGg7XG5cdH0gZWxzZSBpZiAodHlwZW9mIHByb3BlcnR5UGF0aCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHNQcm9wZXJ0eVBhdGggPSBwcm9wZXJ0eVBhdGg7XG5cdH1cblx0bGV0IG9UYXJnZXQ7XG5cdGlmIChpc1BhdGhFeHByZXNzaW9uKHByb3BlcnR5UGF0aCkgfHwgaXNBbm5vdGF0aW9uUGF0aEV4cHJlc3Npb24ocHJvcGVydHlQYXRoKSkge1xuXHRcdG9UYXJnZXQgPSBwcm9wZXJ0eVBhdGguJHRhcmdldDtcblx0fSBlbHNlIGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGUpIHtcblx0XHRvVGFyZ2V0ID0gZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRFbnRpdHlUeXBlLnJlc29sdmVQYXRoKHNQcm9wZXJ0eVBhdGgpO1xuXHR9IGVsc2Uge1xuXHRcdG9UYXJnZXQgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdDtcblx0fVxuXHRjb25zdCBhUGF0aFNwbGl0ID0gc1Byb3BlcnR5UGF0aC5zcGxpdChcIi9cIik7XG5cdGxldCBjdXJyZW50RW50aXR5U2V0ID0gZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRFbnRpdHlTZXQ7XG5cdGxldCBjdXJyZW50RW50aXR5VHlwZSA9IGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0RW50aXR5VHlwZTtcblx0Y29uc3QgbmF2aWdhdGlvblByb3BlcnRpZXMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmNvbmNhdCgpO1xuXHQvLyBQcm9jZXNzIG9ubHkgaWYgd2UgaGF2ZSB0byBnbyB0aHJvdWdoIG5hdmlnYXRpb24gcHJvcGVydGllc1xuXG5cdGxldCByZWR1Y2VkRW50aXR5VHlwZTogRW50aXR5VHlwZSB8IHVuZGVmaW5lZCA9IGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0RW50aXR5VHlwZTtcblx0YVBhdGhTcGxpdC5mb3JFYWNoKChwYXRoUGFydDogc3RyaW5nKSA9PiB7XG5cdFx0aWYgKCFyZWR1Y2VkRW50aXR5VHlwZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBwb3RlbnRpYWxOYXZQcm9wID0gcmVkdWNlZEVudGl0eVR5cGUubmF2aWdhdGlvblByb3BlcnRpZXMuZmluZCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lID09PSBwYXRoUGFydCk7XG5cdFx0aWYgKHBvdGVudGlhbE5hdlByb3ApIHtcblx0XHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzLnB1c2gocG90ZW50aWFsTmF2UHJvcCk7XG5cdFx0XHRjdXJyZW50RW50aXR5VHlwZSA9IHBvdGVudGlhbE5hdlByb3AudGFyZ2V0VHlwZTtcblx0XHRcdGlmIChjdXJyZW50RW50aXR5U2V0ICYmIGN1cnJlbnRFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZy5oYXNPd25Qcm9wZXJ0eShwYXRoUGFydCkpIHtcblx0XHRcdFx0Y3VycmVudEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1twYXRoUGFydF0gYXMgRW50aXR5U2V0O1xuXHRcdFx0fVxuXHRcdFx0cmVkdWNlZEVudGl0eVR5cGUgPSBjdXJyZW50RW50aXR5VHlwZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVkdWNlZEVudGl0eVR5cGUgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9KTtcblxuXHRyZXR1cm4ge1xuXHRcdHN0YXJ0aW5nRW50aXR5U2V0OiBkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0LFxuXHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzOiBuYXZpZ2F0aW9uUHJvcGVydGllcyxcblx0XHRjb250ZXh0TG9jYXRpb246IGRhdGFNb2RlbE9iamVjdFBhdGguY29udGV4dExvY2F0aW9uLFxuXHRcdHRhcmdldEVudGl0eVNldDogY3VycmVudEVudGl0eVNldCxcblx0XHR0YXJnZXRFbnRpdHlUeXBlOiBjdXJyZW50RW50aXR5VHlwZSxcblx0XHR0YXJnZXRPYmplY3Q6IG9UYXJnZXQsXG5cdFx0Y29udmVydGVkVHlwZXM6IGRhdGFNb2RlbE9iamVjdFBhdGguY29udmVydGVkVHlwZXNcblx0fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoID0gZnVuY3Rpb24gKGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpOiBzdHJpbmcge1xuXHRsZXQgdGFyZ2V0RW50aXR5U2V0UGF0aDogc3RyaW5nID0gYC8ke2RhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXQubmFtZX1gO1xuXHRsZXQgY3VycmVudEVudGl0eVNldCA9IGRhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXQ7XG5cdGxldCBuYXZpZ2F0ZWRQYXRoczogc3RyaW5nW10gPSBbXTtcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5mb3JFYWNoKChuYXZQcm9wKSA9PiB7XG5cdFx0bmF2aWdhdGVkUGF0aHMucHVzaChuYXZQcm9wLm5hbWUpO1xuXHRcdGlmIChjdXJyZW50RW50aXR5U2V0ICYmIGN1cnJlbnRFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZy5oYXNPd25Qcm9wZXJ0eShuYXZpZ2F0ZWRQYXRocy5qb2luKFwiL1wiKSkpIHtcblx0XHRcdHRhcmdldEVudGl0eVNldFBhdGggKz0gYC8kTmF2aWdhdGlvblByb3BlcnR5QmluZGluZy8ke25hdmlnYXRlZFBhdGhzLmpvaW4oXCIvXCIpfS8kYDtcblx0XHRcdGN1cnJlbnRFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmdbbmF2aWdhdGVkUGF0aHMuam9pbihcIi9cIildIGFzIEVudGl0eVNldDtcblx0XHRcdG5hdmlnYXRlZFBhdGhzID0gW107XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIHRhcmdldEVudGl0eVNldFBhdGg7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGFyZ2V0T2JqZWN0UGF0aCA9IGZ1bmN0aW9uIChkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLCBiUmVsYXRpdmU6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XG5cdGxldCBwYXRoID0gXCJcIjtcblx0aWYgKCFkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0KSB7XG5cdFx0cmV0dXJuIFwiL1wiO1xuXHR9XG5cdGlmICghYlJlbGF0aXZlKSB7XG5cdFx0cGF0aCArPSBgLyR7ZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldC5uYW1lfWA7XG5cdH1cblx0aWYgKGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuXHRcdGlmIChwYXRoLmxlbmd0aCA+IDApIHtcblx0XHRcdHBhdGggKz0gXCIvXCI7XG5cdFx0fVxuXHRcdHBhdGggKz0gZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5tYXAoKG5hdlByb3ApID0+IG5hdlByb3AubmFtZSkuam9pbihcIi9cIik7XG5cdH1cblxuXHRpZiAoXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5uYW1lICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QuX3R5cGUgIT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5fdHlwZSAhPT0gXCJFbnRpdHlUeXBlXCIgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCAhPT0gZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldFxuXHQpIHtcblx0XHRpZiAoIXBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRwYXRoICs9IFwiL1wiO1xuXHRcdH1cblx0XHRwYXRoICs9IGAke2RhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Lm5hbWV9YDtcblx0fSBlbHNlIGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCAmJiBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5oYXNPd25Qcm9wZXJ0eShcInRlcm1cIikpIHtcblx0XHRpZiAocGF0aC5sZW5ndGggPiAwICYmICFwYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuXHRcdFx0cGF0aCArPSBcIi9cIjtcblx0XHR9XG5cdFx0cGF0aCArPSBgQCR7ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QudGVybX1gO1xuXHR9XG5cdHJldHVybiBwYXRoO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnRleHRSZWxhdGl2ZVRhcmdldE9iamVjdFBhdGggPSBmdW5jdGlvbiAoXG5cdGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgsXG5cdGZvckJpbmRpbmdFeHByZXNzaW9uOiBib29sZWFuID0gZmFsc2Vcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbj8uc3RhcnRpbmdFbnRpdHlTZXQgIT09IGRhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXQpIHtcblx0XHRyZXR1cm4gZ2V0VGFyZ2V0T2JqZWN0UGF0aChkYXRhTW9kZWxPYmplY3RQYXRoKTtcblx0fVxuXHRjb25zdCBuYXZQcm9wZXJ0aWVzID0gZ2V0UGF0aFJlbGF0aXZlTG9jYXRpb24oZGF0YU1vZGVsT2JqZWN0UGF0aC5jb250ZXh0TG9jYXRpb24sIGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMpO1xuXHRpZiAoZm9yQmluZGluZ0V4cHJlc3Npb24pIHtcblx0XHRpZiAobmF2UHJvcGVydGllcy5maW5kKChucCkgPT4gbnAuaXNDb2xsZWN0aW9uKSkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblx0bGV0IHBhdGggPSBuYXZQcm9wZXJ0aWVzLm1hcCgobnApID0+IG5wLm5hbWUpLmpvaW4oXCIvXCIpO1xuXHRpZiAoXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgJiZcblx0XHQoZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QubmFtZSB8fFxuXHRcdFx0KGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LnR5cGUgPT09IFwiUHJvcGVydHlQYXRoXCIgJiYgZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QudmFsdWUpKSAmJlxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Ll90eXBlICE9PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgIT09IGRhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXRcblx0KSB7XG5cdFx0aWYgKHBhdGgubGVuZ3RoID4gMCAmJiAhcGF0aC5lbmRzV2l0aChcIi9cIikpIHtcblx0XHRcdHBhdGggKz0gXCIvXCI7XG5cdFx0fVxuXHRcdHBhdGggKz1cblx0XHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LnR5cGUgPT09IFwiUHJvcGVydHlQYXRoXCJcblx0XHRcdFx0PyBgJHtkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC52YWx1ZX1gXG5cdFx0XHRcdDogYCR7ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QubmFtZX1gO1xuXHR9IGVsc2UgaWYgKGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0ICYmIGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Lmhhc093blByb3BlcnR5KFwidGVybVwiKSkge1xuXHRcdGlmIChwYXRoLmxlbmd0aCA+IDAgJiYgIXBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRwYXRoICs9IFwiL1wiO1xuXHRcdH1cblx0XHRwYXRoICs9IGBAJHtkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC50ZXJtfWA7XG5cdFx0aWYgKGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Lmhhc093blByb3BlcnR5KFwicXVhbGlmaWVyXCIpICYmICEhZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QucXVhbGlmaWVyKSB7XG5cdFx0XHRwYXRoICs9IGAjJHtkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5xdWFsaWZpZXJ9YDtcblx0XHR9XG5cdH0gZWxzZSBpZiAoIWRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0KSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRyZXR1cm4gcGF0aDtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1BhdGhVcGRhdGFibGUgPSBmdW5jdGlvbiAoXG5cdGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGggfCB1bmRlZmluZWQsXG5cdGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPzogRXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBjaGVja09uUGF0aChcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRcdChhbm5vdGF0aW9uT2JqZWN0OiBOYXZpZ2F0aW9uUHJvcGVydHlSZXN0cmljdGlvbiB8IEVudGl0eVNldEFubm90YXRpb25zX0NhcGFiaWxpdGllcykgPT4ge1xuXHRcdFx0cmV0dXJuIGFubm90YXRpb25PYmplY3Q/LlVwZGF0ZVJlc3RyaWN0aW9ucz8uVXBkYXRhYmxlO1xuXHRcdH0sXG5cdFx0ZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcblx0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1BhdGhTZWFyY2hhYmxlID0gZnVuY3Rpb24gKFxuXHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoIHwgdW5kZWZpbmVkLFxuXHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD86IEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRyZXR1cm4gY2hlY2tPblBhdGgoXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0XHQoYW5ub3RhdGlvbk9iamVjdDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb24gfCBFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpID0+IHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0Py5TZWFyY2hSZXN0cmljdGlvbnM/LlNlYXJjaGFibGU7XG5cdFx0fSxcblx0XHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aFxuXHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUGF0aERlbGV0YWJsZSA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCB8IHVuZGVmaW5lZCxcblx0ZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/OiBFeHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0cmV0dXJuIGNoZWNrT25QYXRoKFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgsXG5cdFx0KGFubm90YXRpb25PYmplY3Q6IE5hdmlnYXRpb25Qcm9wZXJ0eVJlc3RyaWN0aW9uIHwgRW50aXR5U2V0QW5ub3RhdGlvbnNfQ2FwYWJpbGl0aWVzKSA9PiB7XG5cdFx0XHRyZXR1cm4gYW5ub3RhdGlvbk9iamVjdD8uRGVsZXRlUmVzdHJpY3Rpb25zPy5EZWxldGFibGU7XG5cdFx0fSxcblx0XHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aFxuXHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUGF0aEluc2VydGFibGUgPSBmdW5jdGlvbiAoXG5cdGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGggfCB1bmRlZmluZWQsXG5cdGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPzogRXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBjaGVja09uUGF0aChcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRcdChhbm5vdGF0aW9uT2JqZWN0OiBOYXZpZ2F0aW9uUHJvcGVydHlSZXN0cmljdGlvbiB8IEVudGl0eVNldEFubm90YXRpb25zX0NhcGFiaWxpdGllcykgPT4ge1xuXHRcdFx0cmV0dXJuIGFubm90YXRpb25PYmplY3Q/Lkluc2VydFJlc3RyaWN0aW9ucz8uSW5zZXJ0YWJsZTtcblx0XHR9LFxuXHRcdGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG5cdCk7XG59O1xuXG5leHBvcnQgY29uc3QgY2hlY2tGaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25zID0gZnVuY3Rpb24gKFxuXHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRhbGxvd2VkRXhwcmVzc2lvbjogKHN0cmluZyB8IHVuZGVmaW5lZClbXVxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0cmV0dXJuIGNoZWNrT25QYXRoKFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgsXG5cdFx0KGFubm90YXRpb25PYmplY3Q6IE5hdmlnYXRpb25Qcm9wZXJ0eVJlc3RyaWN0aW9uIHwgRW50aXR5U2V0QW5ub3RhdGlvbnNfQ2FwYWJpbGl0aWVzIHwgRW50aXR5VHlwZUFubm90YXRpb25zX0NhcGFiaWxpdGllcykgPT4ge1xuXHRcdFx0aWYgKGFubm90YXRpb25PYmplY3QgJiYgXCJGaWx0ZXJSZXN0cmljdGlvbnNcIiBpbiBhbm5vdGF0aW9uT2JqZWN0KSB7XG5cdFx0XHRcdGNvbnN0IGZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnM6IEZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvblR5cGVUeXBlc1tdID1cblx0XHRcdFx0XHQoYW5ub3RhdGlvbk9iamVjdD8uRmlsdGVyUmVzdHJpY3Rpb25zPy5GaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25zIGFzIEZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvblR5cGVUeXBlc1tdKSB8fCBbXTtcblx0XHRcdFx0Y29uc3QgY3VycmVudE9iamVjdFJlc3RyaWN0aW9uID0gZmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucy5maW5kKChyZXN0cmljdGlvbikgPT4ge1xuXHRcdFx0XHRcdHJldHVybiAocmVzdHJpY3Rpb24uUHJvcGVydHkgYXMgUHJvcGVydHlQYXRoKS4kdGFyZ2V0ID09PSBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdDtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGlmIChjdXJyZW50T2JqZWN0UmVzdHJpY3Rpb24pIHtcblx0XHRcdFx0XHRyZXR1cm4gYWxsb3dlZEV4cHJlc3Npb24uaW5kZXhPZihjdXJyZW50T2JqZWN0UmVzdHJpY3Rpb24/LkFsbG93ZWRFeHByZXNzaW9ucz8udG9TdHJpbmcoKSkgIT09IC0xO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdH1cblx0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjaGVja09uUGF0aCA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCB8IHVuZGVmaW5lZCxcblx0Y2hlY2tGdW5jdGlvbjogRnVuY3Rpb24sXG5cdGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPzogRXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGlmICghZGF0YU1vZGVsT2JqZWN0UGF0aCB8fCAhZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldCkge1xuXHRcdHJldHVybiBjb25zdGFudCh0cnVlKTtcblx0fVxuXG5cdGRhdGFNb2RlbE9iamVjdFBhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aChkYXRhTW9kZWxPYmplY3RQYXRoLCBleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD8ucHJvcGVydHlQYXRoKTtcblxuXHRsZXQgY3VycmVudEVudGl0eVNldDogRW50aXR5U2V0IHwgU2luZ2xldG9uIHwgbnVsbCA9IGRhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXQ7XG5cdGxldCBwYXJlbnRFbnRpdHlTZXQ6IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IG51bGwgPSBudWxsO1xuXHRsZXQgdmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWU6IHN0cmluZ1tdID0gW107XG5cdGNvbnN0IGFsbFZpc2l0ZWROYXZpZ2F0aW9uUHJvcHM6IE5hdmlnYXRpb25Qcm9wZXJ0eVtdID0gW107XG5cdGxldCB0YXJnZXRFbnRpdHlTZXQ6IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IG51bGwgPSBjdXJyZW50RW50aXR5U2V0O1xuXHRjb25zdCB0YXJnZXRFbnRpdHlUeXBlOiBFbnRpdHlUeXBlIHwgbnVsbCA9IGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0RW50aXR5VHlwZTtcblx0bGV0IHJlc2V0VmlzaXRlZE5hdlByb3BzID0gZmFsc2U7XG5cblx0ZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5mb3JFYWNoKChuYXZpZ2F0aW9uUHJvcGVydHk6IE5hdmlnYXRpb25Qcm9wZXJ0eSkgPT4ge1xuXHRcdGlmIChyZXNldFZpc2l0ZWROYXZQcm9wcykge1xuXHRcdFx0dmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUgPSBbXTtcblx0XHR9XG5cdFx0dmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUucHVzaChuYXZpZ2F0aW9uUHJvcGVydHkubmFtZSk7XG5cdFx0YWxsVmlzaXRlZE5hdmlnYXRpb25Qcm9wcy5wdXNoKG5hdmlnYXRpb25Qcm9wZXJ0eSk7XG5cdFx0aWYgKCFuYXZpZ2F0aW9uUHJvcGVydHkuY29udGFpbnNUYXJnZXQpIHtcblx0XHRcdC8vIFdlIHNob3VsZCBoYXZlIGEgbmF2aWdhdGlvblByb3BlcnR5QmluZGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHBhdGggc28gZmFyIHdoaWNoIGNhbiBjb25zaXN0IG9mIChbQ29udGFpbm1lbnROYXZQcm9wXS8pKltOYXZQcm9wXVxuXHRcdFx0Y29uc3QgZnVsbE5hdmlnYXRpb25QYXRoID0gdmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUuam9pbihcIi9cIik7XG5cdFx0XHRpZiAoY3VycmVudEVudGl0eVNldCAmJiBjdXJyZW50RW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcuaGFzT3duUHJvcGVydHkoZnVsbE5hdmlnYXRpb25QYXRoKSkge1xuXHRcdFx0XHRwYXJlbnRFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0O1xuXHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gY3VycmVudEVudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW2Z1bGxOYXZpZ2F0aW9uUGF0aF07XG5cdFx0XHRcdHRhcmdldEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHRcdC8vIElmIHdlIHJlYWNoZWQgYSBuYXZpZ2F0aW9uIHByb3BlcnR5IHdpdGggYSBuYXZpZ2F0aW9ucHJvcGVydHliaW5kaW5nLCB3ZSBuZWVkIHRvIHJlc2V0IHRoZSB2aXNpdGVkIHBhdGggb24gdGhlIG5leHQgaXRlcmF0aW9uIChpZiB0aGVyZSBpcyBvbmUpXG5cdFx0XHRcdHJlc2V0VmlzaXRlZE5hdlByb3BzID0gdHJ1ZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFdlIHJlYWxseSBzaG91bGQgbm90IGVuZCB1cCBoZXJlIGJ1dCBhdCBsZWFzdCBsZXQncyB0cnkgdG8gYXZvaWQgaW5jb3JyZWN0IGJlaGF2aW9yXG5cdFx0XHRcdHBhcmVudEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHRcdGN1cnJlbnRFbnRpdHlTZXQgPSBudWxsO1xuXHRcdFx0XHRyZXNldFZpc2l0ZWROYXZQcm9wcyA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHBhcmVudEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQ7XG5cdFx0XHR0YXJnZXRFbnRpdHlTZXQgPSBudWxsO1xuXHRcdH1cblx0fSk7XG5cblx0Ly8gQXQgdGhpcyBwb2ludCB3ZSBoYXZlIG5hdmlnYXRlZCBkb3duIGFsbCB0aGUgbmF2IHByb3AgYW5kIHdlIHNob3VsZCBoYXZlXG5cdC8vIFRoZSB0YXJnZXQgZW50aXR5U2V0IHBvaW50aW5nIHRvIGVpdGhlciBudWxsIChpbiBjYXNlIG9mIGNvbnRhaW5tZW50IG5hdnByb3AgYSBsYXN0IHBhcnQpLCBvciB0aGUgYWN0dWFsIHRhcmdldCAobm9uIGNvbnRhaW5tZW50IGFzIHRhcmdldClcblx0Ly8gVGhlIHBhcmVudCBlbnRpdHlTZXQgcG9pbnRpbmcgdG8gdGhlIHByZXZpb3VzIGVudGl0eVNldCB1c2VkIGluIHRoZSBwYXRoXG5cdC8vIFZpc2l0ZWROYXZpZ2F0aW9uUGF0aCBzaG91bGQgY29udGFpbiB0aGUgcGF0aCB1cCB0byB0aGlzIHByb3BlcnR5XG5cblx0Ly8gUmVzdHJpY3Rpb25zIHNob3VsZCB0aGVuIGJlIGV2YWx1YXRlZCBhcyBQYXJlbnRFbnRpdHlTZXQuTmF2UmVzdHJpY3Rpb25zW05hdlByb3BlcnR5UGF0aF0gfHwgVGFyZ2V0RW50aXR5U2V0LlJlc3RyaWN0aW9uc1xuXHRjb25zdCBmdWxsTmF2aWdhdGlvblBhdGggPSB2aXNpdGVkTmF2aWdhdGlvblByb3BzTmFtZS5qb2luKFwiL1wiKTtcblx0bGV0IHJlc3RyaWN0aW9ucywgdmlzaXRlZE5hdlByb3BzO1xuXHRpZiAocGFyZW50RW50aXR5U2V0ICE9PSBudWxsKSB7XG5cdFx0Y29uc3QgX3BhcmVudEVudGl0eVNldDogRW50aXR5U2V0ID0gcGFyZW50RW50aXR5U2V0O1xuXHRcdF9wYXJlbnRFbnRpdHlTZXQuYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcz8uTmF2aWdhdGlvblJlc3RyaWN0aW9ucz8uUmVzdHJpY3RlZFByb3BlcnRpZXMuZm9yRWFjaChcblx0XHRcdChyZXN0cmljdGVkTmF2UHJvcDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb25UeXBlcykgPT4ge1xuXHRcdFx0XHRpZiAocmVzdHJpY3RlZE5hdlByb3AuTmF2aWdhdGlvblByb3BlcnR5Py50eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcIikge1xuXHRcdFx0XHRcdGNvbnN0IHJlc3RyaWN0aW9uRGVmaW5pdGlvbiA9IGNoZWNrRnVuY3Rpb24ocmVzdHJpY3RlZE5hdlByb3ApO1xuXHRcdFx0XHRcdGlmIChmdWxsTmF2aWdhdGlvblBhdGggPT09IHJlc3RyaWN0ZWROYXZQcm9wLk5hdmlnYXRpb25Qcm9wZXJ0eS52YWx1ZSAmJiByZXN0cmljdGlvbkRlZmluaXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgX2FsbFZpc2l0ZWROYXZpZ2F0aW9uUHJvcHMgPSBhbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzLnNsaWNlKDAsIC0xKTtcblx0XHRcdFx0XHRcdHZpc2l0ZWROYXZQcm9wcyA9IF9hbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzO1xuXHRcdFx0XHRcdFx0Y29uc3QgcGF0aFJlbGF0aXZlTG9jYXRpb24gPSBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbihkYXRhTW9kZWxPYmplY3RQYXRoPy5jb250ZXh0TG9jYXRpb24sIHZpc2l0ZWROYXZQcm9wcykubWFwKFxuXHRcdFx0XHRcdFx0XHQobnApID0+IG5wLm5hbWVcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRjb25zdCBwYXRoVmlzaXRvckZ1bmN0aW9uID0gZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/LnBhdGhWaXNpdG9yXG5cdFx0XHRcdFx0XHRcdD8gZ2V0UGF0aFZpc2l0b3JGb3JTaW5nbGV0b24oZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGgucGF0aFZpc2l0b3IsIHBhdGhSZWxhdGl2ZUxvY2F0aW9uKVxuXHRcdFx0XHRcdFx0XHQ6IHVuZGVmaW5lZDsgLy8gc2VuZCBwYXRoVmlzaXRvciBmdW5jdGlvbiBvbmx5IHdoZW4gaXQgaXMgZGVmaW5lZCBhbmQgb25seSBzZW5kIGZ1bmN0aW9uIG9yIGRlZmluZWQgYXMgYSBwYXJhbWV0ZXJcblx0XHRcdFx0XHRcdHJlc3RyaWN0aW9ucyA9IGVxdWFsKFxuXHRcdFx0XHRcdFx0XHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24ocmVzdHJpY3Rpb25EZWZpbml0aW9uLCBwYXRoUmVsYXRpdmVMb2NhdGlvbiwgdW5kZWZpbmVkLCBwYXRoVmlzaXRvckZ1bmN0aW9uKSxcblx0XHRcdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHQpO1xuXHR9XG5cdGxldCB0YXJnZXRSZXN0cmljdGlvbnM7XG5cdGlmICghZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/Lmlnbm9yZVRhcmdldENvbGxlY3Rpb24pIHtcblx0XHRsZXQgcmVzdHJpY3Rpb25EZWZpbml0aW9uID0gY2hlY2tGdW5jdGlvbih0YXJnZXRFbnRpdHlTZXQ/LmFubm90YXRpb25zPy5DYXBhYmlsaXRpZXMpO1xuXHRcdGlmICh0YXJnZXRFbnRpdHlTZXQgPT09IG51bGwgJiYgcmVzdHJpY3Rpb25EZWZpbml0aW9uID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHJlc3RyaWN0aW9uRGVmaW5pdGlvbiA9IGNoZWNrRnVuY3Rpb24odGFyZ2V0RW50aXR5VHlwZT8uYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcyk7XG5cdFx0fVxuXHRcdGlmIChyZXN0cmljdGlvbkRlZmluaXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29uc3QgcGF0aFJlbGF0aXZlTG9jYXRpb24gPSBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbihkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbiwgYWxsVmlzaXRlZE5hdmlnYXRpb25Qcm9wcykubWFwKFxuXHRcdFx0XHQobnApID0+IG5wLm5hbWVcblx0XHRcdCk7XG5cdFx0XHRjb25zdCBwYXRoVmlzaXRvckZ1bmN0aW9uID0gZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/LnBhdGhWaXNpdG9yXG5cdFx0XHRcdD8gZ2V0UGF0aFZpc2l0b3JGb3JTaW5nbGV0b24oZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGgucGF0aFZpc2l0b3IsIHBhdGhSZWxhdGl2ZUxvY2F0aW9uKVxuXHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0XHRcdHRhcmdldFJlc3RyaWN0aW9ucyA9IGVxdWFsKFxuXHRcdFx0XHRnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24ocmVzdHJpY3Rpb25EZWZpbml0aW9uLCBwYXRoUmVsYXRpdmVMb2NhdGlvbiwgdW5kZWZpbmVkLCBwYXRoVmlzaXRvckZ1bmN0aW9uKSxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gKFxuXHRcdHJlc3RyaWN0aW9ucyB8fCB0YXJnZXRSZXN0cmljdGlvbnMgfHwgKGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPy5hdXRob3JpemVVbnJlc29sdmFibGUgPyB1bnJlc29sdmVhYmxlRXhwcmVzc2lvbiA6IGNvbnN0YW50KHRydWUpKVxuXHQpO1xufTtcbi8vIFRoaXMgaGVscGVyIG1ldGhvZCBpcyB1c2VkIHRvIGFkZCByZWxhdGl2ZSBwYXRoIGxvY2F0aW9uIGFyZ3VtZW50IHRvIHNpbmdsZXRvblBhdGhWaXNpdG9yRnVuY3Rpb24gaS5lLiBwYXRoVmlzaXRvclxuLy8gcGF0aFZpc2l0b3IgbWV0aG9kIGlzIHVzZWQgbGF0ZXIgdG8gZ2V0IHRoZSBjb3JyZWN0IGJpbmRpbmdzIGZvciBzaW5nbGV0b24gZW50aXR5XG4vLyBtZXRob2QgaXMgaW52b2tlZCBsYXRlciBpbiBwYXRoSW5Nb2RlbCgpIG1ldGhvZCB0byBnZXQgdGhlIGNvcnJlY3QgYmluZGluZy5cbmNvbnN0IGdldFBhdGhWaXNpdG9yRm9yU2luZ2xldG9uID0gZnVuY3Rpb24gKHBhdGhWaXNpdG9yOiBGdW5jdGlvbiwgcGF0aFJlbGF0aXZlTG9jYXRpb246IHN0cmluZ1tdKSB7XG5cdHJldHVybiBmdW5jdGlvbiAocGF0aDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHBhdGhW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
424
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbiIsImNvbnRleHRQYXRoIiwidmlzaXRlZE5hdlByb3BzIiwibGVuZ3RoIiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJyZW1haW5pbmdOYXZQcm9wcyIsImZvckVhY2giLCJuYXZQcm9wIiwibmF2SW5kZXgiLCJwdXNoIiwiY29uY2F0Iiwic2xpY2UiLCJjdXJyZW50SWR4IiwiY3VycmVudE5hdiIsIm5leHROYXZQcm9wIiwicGFydG5lciIsIm5hbWUiLCJzcGxpY2UiLCJleHRyYU5hdlByb3AiLCJtYXAiLCJ0YXJnZXRUeXBlIiwiZmluZCIsIm5wIiwiZW5oYW5jZURhdGFNb2RlbFBhdGgiLCJkYXRhTW9kZWxPYmplY3RQYXRoIiwicHJvcGVydHlQYXRoIiwic1Byb3BlcnR5UGF0aCIsImlzUGF0aEV4cHJlc3Npb24iLCJpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiIsInBhdGgiLCJvVGFyZ2V0IiwiJHRhcmdldCIsInRhcmdldEVudGl0eVR5cGUiLCJyZXNvbHZlUGF0aCIsInRhcmdldE9iamVjdCIsImFQYXRoU3BsaXQiLCJzcGxpdCIsImN1cnJlbnRFbnRpdHlTZXQiLCJ0YXJnZXRFbnRpdHlTZXQiLCJjdXJyZW50RW50aXR5VHlwZSIsInJlZHVjZWRFbnRpdHlUeXBlIiwicGF0aFBhcnQiLCJwb3RlbnRpYWxOYXZQcm9wIiwibmF2aWdhdGlvblByb3BlcnR5QmluZGluZyIsImhhc093blByb3BlcnR5IiwidW5kZWZpbmVkIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJjb250ZXh0TG9jYXRpb24iLCJjb252ZXJ0ZWRUeXBlcyIsImdldFRhcmdldEVudGl0eVNldFBhdGgiLCJ0YXJnZXRFbnRpdHlTZXRQYXRoIiwibmF2aWdhdGVkUGF0aHMiLCJqb2luIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImJSZWxhdGl2ZSIsIl90eXBlIiwiZW5kc1dpdGgiLCJ0ZXJtIiwiZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCIsImZvckJpbmRpbmdFeHByZXNzaW9uIiwibmF2UHJvcGVydGllcyIsImlzQ29sbGVjdGlvbiIsInR5cGUiLCJ2YWx1ZSIsInF1YWxpZmllciIsImlzUGF0aFVwZGF0YWJsZSIsImV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoIiwiY2hlY2tPblBhdGgiLCJhbm5vdGF0aW9uT2JqZWN0IiwiVXBkYXRlUmVzdHJpY3Rpb25zIiwiVXBkYXRhYmxlIiwiaXNQYXRoU2VhcmNoYWJsZSIsIlNlYXJjaFJlc3RyaWN0aW9ucyIsIlNlYXJjaGFibGUiLCJpc1BhdGhEZWxldGFibGUiLCJEZWxldGVSZXN0cmljdGlvbnMiLCJEZWxldGFibGUiLCJpc1BhdGhJbnNlcnRhYmxlIiwiSW5zZXJ0UmVzdHJpY3Rpb25zIiwiSW5zZXJ0YWJsZSIsImNoZWNrRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyIsImFsbG93ZWRFeHByZXNzaW9uIiwiZmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyIsIkZpbHRlclJlc3RyaWN0aW9ucyIsIkZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMiLCJjdXJyZW50T2JqZWN0UmVzdHJpY3Rpb24iLCJyZXN0cmljdGlvbiIsIlByb3BlcnR5IiwiaW5kZXhPZiIsIkFsbG93ZWRFeHByZXNzaW9ucyIsInRvU3RyaW5nIiwiY2hlY2tGdW5jdGlvbiIsImNvbnN0YW50IiwicGFyZW50RW50aXR5U2V0IiwidmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUiLCJhbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzIiwicmVzZXRWaXNpdGVkTmF2UHJvcHMiLCJuYXZpZ2F0aW9uUHJvcGVydHkiLCJjb250YWluc1RhcmdldCIsImZ1bGxOYXZpZ2F0aW9uUGF0aCIsInJlc3RyaWN0aW9ucyIsIl9wYXJlbnRFbnRpdHlTZXQiLCJhbm5vdGF0aW9ucyIsIkNhcGFiaWxpdGllcyIsIk5hdmlnYXRpb25SZXN0cmljdGlvbnMiLCJSZXN0cmljdGVkUHJvcGVydGllcyIsInJlc3RyaWN0ZWROYXZQcm9wIiwiTmF2aWdhdGlvblByb3BlcnR5IiwicmVzdHJpY3Rpb25EZWZpbml0aW9uIiwiX2FsbFZpc2l0ZWROYXZpZ2F0aW9uUHJvcHMiLCJwYXRoUmVsYXRpdmVMb2NhdGlvbiIsInBhdGhWaXNpdG9yRnVuY3Rpb24iLCJwYXRoVmlzaXRvciIsImdldFBhdGhWaXNpdG9yRm9yU2luZ2xldG9uIiwiZXF1YWwiLCJnZXRFeHByZXNzaW9uRnJvbUFubm90YXRpb24iLCJ0YXJnZXRSZXN0cmljdGlvbnMiLCJpZ25vcmVUYXJnZXRDb2xsZWN0aW9uIiwiYXV0aG9yaXplVW5yZXNvbHZhYmxlIiwidW5yZXNvbHZlYWJsZUV4cHJlc3Npb24iXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRhdGFNb2RlbFBhdGhIZWxwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuXHRDb252ZXJ0ZWRNZXRhZGF0YSxcblx0RW50aXR5U2V0LFxuXHRFbnRpdHlUeXBlLFxuXHROYXZpZ2F0aW9uUHJvcGVydHksXG5cdFByb3BlcnR5LFxuXHRQcm9wZXJ0eVBhdGgsXG5cdFNpbmdsZXRvblxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHtcblx0RmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9uVHlwZVR5cGVzLFxuXHROYXZpZ2F0aW9uUHJvcGVydHlSZXN0cmljdGlvbixcblx0TmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb25UeXBlc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NhcGFiaWxpdGllc1wiO1xuaW1wb3J0IHR5cGUge1xuXHRFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMsXG5cdEVudGl0eVR5cGVBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXNcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9DYXBhYmlsaXRpZXNfRWRtXCI7XG5pbXBvcnQgdHlwZSB7IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBjb25zdGFudCwgZXF1YWwsIGdldEV4cHJlc3Npb25Gcm9tQW5ub3RhdGlvbiwgdW5yZXNvbHZlYWJsZUV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eU9yUGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0Rpc3BsYXlNb2RlRm9ybWF0dGVyXCI7XG5pbXBvcnQgeyBpc0Fubm90YXRpb25QYXRoRXhwcmVzc2lvbiwgaXNQYXRoRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5SGVscGVyXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFNb2RlbE9iamVjdFBhdGggPSB7XG5cdHN0YXJ0aW5nRW50aXR5U2V0OiBTaW5nbGV0b24gfCBFbnRpdHlTZXQ7XG5cdGNvbnRleHRMb2NhdGlvbj86IERhdGFNb2RlbE9iamVjdFBhdGg7XG5cdG5hdmlnYXRpb25Qcm9wZXJ0aWVzOiBOYXZpZ2F0aW9uUHJvcGVydHlbXTtcblx0dGFyZ2V0RW50aXR5U2V0PzogU2luZ2xldG9uIHwgRW50aXR5U2V0O1xuXHR0YXJnZXRFbnRpdHlUeXBlOiBFbnRpdHlUeXBlO1xuXHR0YXJnZXRPYmplY3Q6IGFueTtcblx0Y29udmVydGVkVHlwZXM6IENvbnZlcnRlZE1ldGFkYXRhO1xufTtcblxudHlwZSBFeHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aCA9IHtcblx0cHJvcGVydHlQYXRoPzogUHJvcGVydHlPclBhdGg8UHJvcGVydHk+O1xuXHRwYXRoVmlzaXRvcj86IEZ1bmN0aW9uO1xuXHRpZ25vcmVUYXJnZXRDb2xsZWN0aW9uPzogYm9vbGVhbjtcblx0YXV0aG9yaXplVW5yZXNvbHZhYmxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbiA9IGZ1bmN0aW9uIChcblx0Y29udGV4dFBhdGg/OiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHR2aXNpdGVkTmF2UHJvcHM6IE5hdmlnYXRpb25Qcm9wZXJ0eVtdID0gW11cbik6IE5hdmlnYXRpb25Qcm9wZXJ0eVtdIHtcblx0aWYgKCFjb250ZXh0UGF0aCkge1xuXHRcdHJldHVybiB2aXNpdGVkTmF2UHJvcHM7XG5cdH0gZWxzZSBpZiAodmlzaXRlZE5hdlByb3BzLmxlbmd0aCA+PSBjb250ZXh0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5sZW5ndGgpIHtcblx0XHRsZXQgcmVtYWluaW5nTmF2UHJvcHM6IE5hdmlnYXRpb25Qcm9wZXJ0eVtdID0gW107XG5cdFx0Y29udGV4dFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMuZm9yRWFjaCgobmF2UHJvcCwgbmF2SW5kZXgpID0+IHtcblx0XHRcdGlmICh2aXNpdGVkTmF2UHJvcHNbbmF2SW5kZXhdICE9PSBuYXZQcm9wKSB7XG5cdFx0XHRcdHJlbWFpbmluZ05hdlByb3BzLnB1c2godmlzaXRlZE5hdlByb3BzW25hdkluZGV4XSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmVtYWluaW5nTmF2UHJvcHMgPSByZW1haW5pbmdOYXZQcm9wcy5jb25jYXQodmlzaXRlZE5hdlByb3BzLnNsaWNlKGNvbnRleHRQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmxlbmd0aCkpO1xuXHRcdC8vIENsZWFuIHVwIE5hdlByb3AgLT4gT3duZXJcblx0XHRsZXQgY3VycmVudElkeCA9IDA7XG5cdFx0d2hpbGUgKHJlbWFpbmluZ05hdlByb3BzLmxlbmd0aCA+IDEgJiYgY3VycmVudElkeCAhPSByZW1haW5pbmdOYXZQcm9wcy5sZW5ndGggLSAxKSB7XG5cdFx0XHRjb25zdCBjdXJyZW50TmF2ID0gcmVtYWluaW5nTmF2UHJvcHNbY3VycmVudElkeF07XG5cdFx0XHRjb25zdCBuZXh0TmF2UHJvcCA9IHJlbWFpbmluZ05hdlByb3BzW2N1cnJlbnRJZHggKyAxXTtcblx0XHRcdGlmIChjdXJyZW50TmF2LnBhcnRuZXIgPT09IG5leHROYXZQcm9wLm5hbWUpIHtcblx0XHRcdFx0cmVtYWluaW5nTmF2UHJvcHMuc3BsaWNlKDAsIDIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y3VycmVudElkeCsrO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gcmVtYWluaW5nTmF2UHJvcHM7XG5cdH0gZWxzZSB7XG5cdFx0bGV0IGV4dHJhTmF2UHJvcDogTmF2aWdhdGlvblByb3BlcnR5W10gPSBbXTtcblx0XHR2aXNpdGVkTmF2UHJvcHMuZm9yRWFjaCgobmF2UHJvcCwgbmF2SW5kZXgpID0+IHtcblx0XHRcdGlmIChjb250ZXh0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllc1tuYXZJbmRleF0gIT09IG5hdlByb3ApIHtcblx0XHRcdFx0ZXh0cmFOYXZQcm9wLnB1c2godmlzaXRlZE5hdlByb3BzW25hdkluZGV4XSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0ZXh0cmFOYXZQcm9wID0gZXh0cmFOYXZQcm9wLmNvbmNhdChjb250ZXh0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5zbGljZSh2aXNpdGVkTmF2UHJvcHMubGVuZ3RoKSk7XG5cdFx0Ly8gQ2xlYW4gdXAgTmF2UHJvcCAtPiBPd25lclxuXHRcdGxldCBjdXJyZW50SWR4ID0gMDtcblx0XHR3aGlsZSAoZXh0cmFOYXZQcm9wLmxlbmd0aCA+IDEgJiYgY3VycmVudElkeCAhPSBleHRyYU5hdlByb3AubGVuZ3RoIC0gMSkge1xuXHRcdFx0Y29uc3QgY3VycmVudE5hdiA9IGV4dHJhTmF2UHJvcFtjdXJyZW50SWR4XTtcblx0XHRcdGNvbnN0IG5leHROYXZQcm9wID0gZXh0cmFOYXZQcm9wW2N1cnJlbnRJZHggKyAxXTtcblx0XHRcdGlmIChjdXJyZW50TmF2LnBhcnRuZXIgPT09IG5leHROYXZQcm9wLm5hbWUpIHtcblx0XHRcdFx0ZXh0cmFOYXZQcm9wLnNwbGljZSgwLCAyKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGN1cnJlbnRJZHgrKztcblx0XHRcdH1cblx0XHR9XG5cdFx0ZXh0cmFOYXZQcm9wID0gZXh0cmFOYXZQcm9wLm1hcCgobmF2UHJvcCkgPT4ge1xuXHRcdFx0cmV0dXJuIG5hdlByb3AudGFyZ2V0VHlwZS5uYXZpZ2F0aW9uUHJvcGVydGllcy5maW5kKChucCkgPT4gbnAubmFtZSA9PT0gbmF2UHJvcC5wYXJ0bmVyKSBhcyBOYXZpZ2F0aW9uUHJvcGVydHk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIGV4dHJhTmF2UHJvcDtcblx0fVxufTtcblxuZXhwb3J0IGNvbnN0IGVuaGFuY2VEYXRhTW9kZWxQYXRoID0gZnVuY3Rpb24gKFxuXHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRwcm9wZXJ0eVBhdGg/OiBQcm9wZXJ0eU9yUGF0aDxQcm9wZXJ0eT5cbik6IERhdGFNb2RlbE9iamVjdFBhdGgge1xuXHRsZXQgc1Byb3BlcnR5UGF0aDogc3RyaW5nID0gXCJcIjtcblx0aWYgKChpc1BhdGhFeHByZXNzaW9uKHByb3BlcnR5UGF0aCkgfHwgaXNBbm5vdGF0aW9uUGF0aEV4cHJlc3Npb24ocHJvcGVydHlQYXRoKSkgJiYgcHJvcGVydHlQYXRoLnBhdGgpIHtcblx0XHRzUHJvcGVydHlQYXRoID0gcHJvcGVydHlQYXRoLnBhdGg7XG5cdH0gZWxzZSBpZiAodHlwZW9mIHByb3BlcnR5UGF0aCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdHNQcm9wZXJ0eVBhdGggPSBwcm9wZXJ0eVBhdGg7XG5cdH1cblx0bGV0IG9UYXJnZXQ7XG5cdGlmIChpc1BhdGhFeHByZXNzaW9uKHByb3BlcnR5UGF0aCkgfHwgaXNBbm5vdGF0aW9uUGF0aEV4cHJlc3Npb24ocHJvcGVydHlQYXRoKSkge1xuXHRcdG9UYXJnZXQgPSBwcm9wZXJ0eVBhdGguJHRhcmdldDtcblx0fSBlbHNlIGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGUpIHtcblx0XHRvVGFyZ2V0ID0gZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRFbnRpdHlUeXBlLnJlc29sdmVQYXRoKHNQcm9wZXJ0eVBhdGgpO1xuXHR9IGVsc2Uge1xuXHRcdG9UYXJnZXQgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdDtcblx0fVxuXHRjb25zdCBhUGF0aFNwbGl0ID0gc1Byb3BlcnR5UGF0aC5zcGxpdChcIi9cIik7XG5cdGxldCBjdXJyZW50RW50aXR5U2V0ID0gZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRFbnRpdHlTZXQ7XG5cdGxldCBjdXJyZW50RW50aXR5VHlwZSA9IGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0RW50aXR5VHlwZTtcblx0Y29uc3QgbmF2aWdhdGlvblByb3BlcnRpZXMgPSBkYXRhTW9kZWxPYmplY3RQYXRoLm5hdmlnYXRpb25Qcm9wZXJ0aWVzLmNvbmNhdCgpO1xuXHQvLyBQcm9jZXNzIG9ubHkgaWYgd2UgaGF2ZSB0byBnbyB0aHJvdWdoIG5hdmlnYXRpb24gcHJvcGVydGllc1xuXG5cdGxldCByZWR1Y2VkRW50aXR5VHlwZTogRW50aXR5VHlwZSB8IHVuZGVmaW5lZCA9IGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0RW50aXR5VHlwZTtcblx0YVBhdGhTcGxpdC5mb3JFYWNoKChwYXRoUGFydDogc3RyaW5nKSA9PiB7XG5cdFx0aWYgKCFyZWR1Y2VkRW50aXR5VHlwZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCBwb3RlbnRpYWxOYXZQcm9wID0gcmVkdWNlZEVudGl0eVR5cGUubmF2aWdhdGlvblByb3BlcnRpZXMuZmluZCgobmF2UHJvcCkgPT4gbmF2UHJvcC5uYW1lID09PSBwYXRoUGFydCk7XG5cdFx0aWYgKHBvdGVudGlhbE5hdlByb3ApIHtcblx0XHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzLnB1c2gocG90ZW50aWFsTmF2UHJvcCk7XG5cdFx0XHRjdXJyZW50RW50aXR5VHlwZSA9IHBvdGVudGlhbE5hdlByb3AudGFyZ2V0VHlwZTtcblx0XHRcdGlmIChjdXJyZW50RW50aXR5U2V0ICYmIGN1cnJlbnRFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZy5oYXNPd25Qcm9wZXJ0eShwYXRoUGFydCkpIHtcblx0XHRcdFx0Y3VycmVudEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1twYXRoUGFydF0gYXMgRW50aXR5U2V0O1xuXHRcdFx0fVxuXHRcdFx0cmVkdWNlZEVudGl0eVR5cGUgPSBjdXJyZW50RW50aXR5VHlwZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmVkdWNlZEVudGl0eVR5cGUgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9KTtcblxuXHRyZXR1cm4ge1xuXHRcdHN0YXJ0aW5nRW50aXR5U2V0OiBkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0LFxuXHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzOiBuYXZpZ2F0aW9uUHJvcGVydGllcyxcblx0XHRjb250ZXh0TG9jYXRpb246IGRhdGFNb2RlbE9iamVjdFBhdGguY29udGV4dExvY2F0aW9uLFxuXHRcdHRhcmdldEVudGl0eVNldDogY3VycmVudEVudGl0eVNldCxcblx0XHR0YXJnZXRFbnRpdHlUeXBlOiBjdXJyZW50RW50aXR5VHlwZSxcblx0XHR0YXJnZXRPYmplY3Q6IG9UYXJnZXQsXG5cdFx0Y29udmVydGVkVHlwZXM6IGRhdGFNb2RlbE9iamVjdFBhdGguY29udmVydGVkVHlwZXNcblx0fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoID0gZnVuY3Rpb24gKGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpOiBzdHJpbmcge1xuXHRsZXQgdGFyZ2V0RW50aXR5U2V0UGF0aDogc3RyaW5nID0gYC8ke2RhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXQubmFtZX1gO1xuXHRsZXQgY3VycmVudEVudGl0eVNldCA9IGRhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXQ7XG5cdGxldCBuYXZpZ2F0ZWRQYXRoczogc3RyaW5nW10gPSBbXTtcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5mb3JFYWNoKChuYXZQcm9wKSA9PiB7XG5cdFx0bmF2aWdhdGVkUGF0aHMucHVzaChuYXZQcm9wLm5hbWUpO1xuXHRcdGlmIChjdXJyZW50RW50aXR5U2V0ICYmIGN1cnJlbnRFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZy5oYXNPd25Qcm9wZXJ0eShuYXZpZ2F0ZWRQYXRocy5qb2luKFwiL1wiKSkpIHtcblx0XHRcdHRhcmdldEVudGl0eVNldFBhdGggKz0gYC8kTmF2aWdhdGlvblByb3BlcnR5QmluZGluZy8ke25hdmlnYXRlZFBhdGhzLmpvaW4oXCIvXCIpfS8kYDtcblx0XHRcdGN1cnJlbnRFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmdbbmF2aWdhdGVkUGF0aHMuam9pbihcIi9cIildIGFzIEVudGl0eVNldDtcblx0XHRcdG5hdmlnYXRlZFBhdGhzID0gW107XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIHRhcmdldEVudGl0eVNldFBhdGg7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VGFyZ2V0T2JqZWN0UGF0aCA9IGZ1bmN0aW9uIChkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLCBiUmVsYXRpdmU6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XG5cdGxldCBwYXRoID0gXCJcIjtcblx0aWYgKCFkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0KSB7XG5cdFx0cmV0dXJuIFwiL1wiO1xuXHR9XG5cdGlmICghYlJlbGF0aXZlKSB7XG5cdFx0cGF0aCArPSBgLyR7ZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldC5uYW1lfWA7XG5cdH1cblx0aWYgKGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuXHRcdGlmIChwYXRoLmxlbmd0aCA+IDApIHtcblx0XHRcdHBhdGggKz0gXCIvXCI7XG5cdFx0fVxuXHRcdHBhdGggKz0gZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcy5tYXAoKG5hdlByb3ApID0+IG5hdlByb3AubmFtZSkuam9pbihcIi9cIik7XG5cdH1cblxuXHRpZiAoXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5uYW1lICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QuX3R5cGUgIT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5fdHlwZSAhPT0gXCJFbnRpdHlUeXBlXCIgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5fdHlwZSAhPT0gXCJFbnRpdHlTZXRcIiAmJlxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0ICE9PSBkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0XG5cdCkge1xuXHRcdGlmICghcGF0aC5lbmRzV2l0aChcIi9cIikpIHtcblx0XHRcdHBhdGggKz0gXCIvXCI7XG5cdFx0fVxuXHRcdHBhdGggKz0gYCR7ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QubmFtZX1gO1xuXHR9IGVsc2UgaWYgKGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0ICYmIGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Lmhhc093blByb3BlcnR5KFwidGVybVwiKSkge1xuXHRcdGlmIChwYXRoLmxlbmd0aCA+IDAgJiYgIXBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRwYXRoICs9IFwiL1wiO1xuXHRcdH1cblx0XHRwYXRoICs9IGBAJHtkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC50ZXJtfWA7XG5cdH1cblx0cmV0dXJuIHBhdGg7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udGV4dFJlbGF0aXZlVGFyZ2V0T2JqZWN0UGF0aCA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0Zm9yQmluZGluZ0V4cHJlc3Npb246IGJvb2xlYW4gPSBmYWxzZVxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0aWYgKGRhdGFNb2RlbE9iamVjdFBhdGguY29udGV4dExvY2F0aW9uPy5zdGFydGluZ0VudGl0eVNldCAhPT0gZGF0YU1vZGVsT2JqZWN0UGF0aC5zdGFydGluZ0VudGl0eVNldCkge1xuXHRcdHJldHVybiBnZXRUYXJnZXRPYmplY3RQYXRoKGRhdGFNb2RlbE9iamVjdFBhdGgpO1xuXHR9XG5cdGNvbnN0IG5hdlByb3BlcnRpZXMgPSBnZXRQYXRoUmVsYXRpdmVMb2NhdGlvbihkYXRhTW9kZWxPYmplY3RQYXRoLmNvbnRleHRMb2NhdGlvbiwgZGF0YU1vZGVsT2JqZWN0UGF0aC5uYXZpZ2F0aW9uUHJvcGVydGllcyk7XG5cdGlmIChmb3JCaW5kaW5nRXhwcmVzc2lvbikge1xuXHRcdGlmIChuYXZQcm9wZXJ0aWVzLmZpbmQoKG5wKSA9PiBucC5pc0NvbGxlY3Rpb24pKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXHRsZXQgcGF0aCA9IG5hdlByb3BlcnRpZXMubWFwKChucCkgPT4gbnAubmFtZSkuam9pbihcIi9cIik7XG5cdGlmIChcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCAmJlxuXHRcdChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5uYW1lIHx8XG5cdFx0XHQoZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QudHlwZSA9PT0gXCJQcm9wZXJ0eVBhdGhcIiAmJiBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC52YWx1ZSkpICYmXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QuX3R5cGUgIT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5fdHlwZSAhPT0gXCJFbnRpdHlUeXBlXCIgJiZcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5fdHlwZSAhPT0gXCJFbnRpdHlTZXRcIiAmJlxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0ICE9PSBkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0XG5cdCkge1xuXHRcdGlmIChwYXRoLmxlbmd0aCA+IDAgJiYgIXBhdGguZW5kc1dpdGgoXCIvXCIpKSB7XG5cdFx0XHRwYXRoICs9IFwiL1wiO1xuXHRcdH1cblx0XHRwYXRoICs9XG5cdFx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC50eXBlID09PSBcIlByb3BlcnR5UGF0aFwiXG5cdFx0XHRcdD8gYCR7ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QudmFsdWV9YFxuXHRcdFx0XHQ6IGAke2RhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0Lm5hbWV9YDtcblx0fSBlbHNlIGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCAmJiBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5oYXNPd25Qcm9wZXJ0eShcInRlcm1cIikpIHtcblx0XHRpZiAocGF0aC5sZW5ndGggPiAwICYmICFwYXRoLmVuZHNXaXRoKFwiL1wiKSkge1xuXHRcdFx0cGF0aCArPSBcIi9cIjtcblx0XHR9XG5cdFx0cGF0aCArPSBgQCR7ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QudGVybX1gO1xuXHRcdGlmIChkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdC5oYXNPd25Qcm9wZXJ0eShcInF1YWxpZmllclwiKSAmJiAhIWRhdGFNb2RlbE9iamVjdFBhdGgudGFyZ2V0T2JqZWN0LnF1YWxpZmllcikge1xuXHRcdFx0cGF0aCArPSBgIyR7ZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3QucXVhbGlmaWVyfWA7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKCFkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldE9iamVjdCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0cmV0dXJuIHBhdGg7XG59O1xuXG5leHBvcnQgY29uc3QgaXNQYXRoVXBkYXRhYmxlID0gZnVuY3Rpb24gKFxuXHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoIHwgdW5kZWZpbmVkLFxuXHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD86IEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRyZXR1cm4gY2hlY2tPblBhdGgoXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0XHQoYW5ub3RhdGlvbk9iamVjdDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb24gfCBFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpID0+IHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0Py5VcGRhdGVSZXN0cmljdGlvbnM/LlVwZGF0YWJsZTtcblx0XHR9LFxuXHRcdGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG5cdCk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNQYXRoU2VhcmNoYWJsZSA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCB8IHVuZGVmaW5lZCxcblx0ZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/OiBFeHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aFxuKTogQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0cmV0dXJuIGNoZWNrT25QYXRoKFxuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGgsXG5cdFx0KGFubm90YXRpb25PYmplY3Q6IE5hdmlnYXRpb25Qcm9wZXJ0eVJlc3RyaWN0aW9uIHwgRW50aXR5U2V0QW5ub3RhdGlvbnNfQ2FwYWJpbGl0aWVzKSA9PiB7XG5cdFx0XHRyZXR1cm4gYW5ub3RhdGlvbk9iamVjdD8uU2VhcmNoUmVzdHJpY3Rpb25zPy5TZWFyY2hhYmxlO1xuXHRcdH0sXG5cdFx0ZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcblx0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1BhdGhEZWxldGFibGUgPSBmdW5jdGlvbiAoXG5cdGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGggfCB1bmRlZmluZWQsXG5cdGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPzogRXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBjaGVja09uUGF0aChcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRcdChhbm5vdGF0aW9uT2JqZWN0OiBOYXZpZ2F0aW9uUHJvcGVydHlSZXN0cmljdGlvbiB8IEVudGl0eVNldEFubm90YXRpb25zX0NhcGFiaWxpdGllcykgPT4ge1xuXHRcdFx0cmV0dXJuIGFubm90YXRpb25PYmplY3Q/LkRlbGV0ZVJlc3RyaWN0aW9ucz8uRGVsZXRhYmxlO1xuXHRcdH0sXG5cdFx0ZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGhcblx0KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1BhdGhJbnNlcnRhYmxlID0gZnVuY3Rpb24gKFxuXHRkYXRhTW9kZWxPYmplY3RQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoIHwgdW5kZWZpbmVkLFxuXHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD86IEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRyZXR1cm4gY2hlY2tPblBhdGgoXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0XHQoYW5ub3RhdGlvbk9iamVjdDogTmF2aWdhdGlvblByb3BlcnR5UmVzdHJpY3Rpb24gfCBFbnRpdHlTZXRBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpID0+IHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0Py5JbnNlcnRSZXN0cmljdGlvbnM/Lkluc2VydGFibGU7XG5cdFx0fSxcblx0XHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aFxuXHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoZWNrRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyA9IGZ1bmN0aW9uIChcblx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0YWxsb3dlZEV4cHJlc3Npb246IChzdHJpbmcgfCB1bmRlZmluZWQpW11cbik6IEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdHJldHVybiBjaGVja09uUGF0aChcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRcdChhbm5vdGF0aW9uT2JqZWN0OiBOYXZpZ2F0aW9uUHJvcGVydHlSZXN0cmljdGlvbiB8IEVudGl0eVNldEFubm90YXRpb25zX0NhcGFiaWxpdGllcyB8IEVudGl0eVR5cGVBbm5vdGF0aW9uc19DYXBhYmlsaXRpZXMpID0+IHtcblx0XHRcdGlmIChhbm5vdGF0aW9uT2JqZWN0ICYmIFwiRmlsdGVyUmVzdHJpY3Rpb25zXCIgaW4gYW5ub3RhdGlvbk9iamVjdCkge1xuXHRcdFx0XHRjb25zdCBmaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25zOiBGaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25UeXBlVHlwZXNbXSA9XG5cdFx0XHRcdFx0KGFubm90YXRpb25PYmplY3Q/LkZpbHRlclJlc3RyaWN0aW9ucz8uRmlsdGVyRXhwcmVzc2lvblJlc3RyaWN0aW9ucyBhcyBGaWx0ZXJFeHByZXNzaW9uUmVzdHJpY3Rpb25UeXBlVHlwZXNbXSkgfHwgW107XG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRPYmplY3RSZXN0cmljdGlvbiA9IGZpbHRlckV4cHJlc3Npb25SZXN0cmljdGlvbnMuZmluZCgocmVzdHJpY3Rpb24pID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gKHJlc3RyaWN0aW9uLlByb3BlcnR5IGFzIFByb3BlcnR5UGF0aCkuJHRhcmdldCA9PT0gZGF0YU1vZGVsT2JqZWN0UGF0aC50YXJnZXRPYmplY3Q7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRpZiAoY3VycmVudE9iamVjdFJlc3RyaWN0aW9uKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGFsbG93ZWRFeHByZXNzaW9uLmluZGV4T2YoY3VycmVudE9iamVjdFJlc3RyaWN0aW9uPy5BbGxvd2VkRXhwcmVzc2lvbnM/LnRvU3RyaW5nKCkpICE9PSAtMTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cdCk7XG59O1xuXG5leHBvcnQgY29uc3QgY2hlY2tPblBhdGggPSBmdW5jdGlvbiAoXG5cdGRhdGFNb2RlbE9iamVjdFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGggfCB1bmRlZmluZWQsXG5cdGNoZWNrRnVuY3Rpb246IEZ1bmN0aW9uLFxuXHRleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD86IEV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoXG4pOiBCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb248Ym9vbGVhbj4ge1xuXHRpZiAoIWRhdGFNb2RlbE9iamVjdFBhdGggfHwgIWRhdGFNb2RlbE9iamVjdFBhdGguc3RhcnRpbmdFbnRpdHlTZXQpIHtcblx0XHRyZXR1cm4gY29uc3RhbnQodHJ1ZSk7XG5cdH1cblxuXHRkYXRhTW9kZWxPYmplY3RQYXRoID0gZW5oYW5jZURhdGFNb2RlbFBhdGgoZGF0YU1vZGVsT2JqZWN0UGF0aCwgZXh0cmFjdGlvblBhcmFtZXRlcnNPblBhdGg/LnByb3BlcnR5UGF0aCk7XG5cblx0bGV0IGN1cnJlbnRFbnRpdHlTZXQ6IEVudGl0eVNldCB8IFNpbmdsZXRvbiB8IG51bGwgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnN0YXJ0aW5nRW50aXR5U2V0O1xuXHRsZXQgcGFyZW50RW50aXR5U2V0OiBFbnRpdHlTZXQgfCBTaW5nbGV0b24gfCBudWxsID0gbnVsbDtcblx0bGV0IHZpc2l0ZWROYXZpZ2F0aW9uUHJvcHNOYW1lOiBzdHJpbmdbXSA9IFtdO1xuXHRjb25zdCBhbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzOiBOYXZpZ2F0aW9uUHJvcGVydHlbXSA9IFtdO1xuXHRsZXQgdGFyZ2V0RW50aXR5U2V0OiBFbnRpdHlTZXQgfCBTaW5nbGV0b24gfCBudWxsID0gY3VycmVudEVudGl0eVNldDtcblx0Y29uc3QgdGFyZ2V0RW50aXR5VHlwZTogRW50aXR5VHlwZSB8IG51bGwgPSBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGU7XG5cdGxldCByZXNldFZpc2l0ZWROYXZQcm9wcyA9IGZhbHNlO1xuXG5cdGRhdGFNb2RlbE9iamVjdFBhdGgubmF2aWdhdGlvblByb3BlcnRpZXMuZm9yRWFjaCgobmF2aWdhdGlvblByb3BlcnR5OiBOYXZpZ2F0aW9uUHJvcGVydHkpID0+IHtcblx0XHRpZiAocmVzZXRWaXNpdGVkTmF2UHJvcHMpIHtcblx0XHRcdHZpc2l0ZWROYXZpZ2F0aW9uUHJvcHNOYW1lID0gW107XG5cdFx0fVxuXHRcdHZpc2l0ZWROYXZpZ2F0aW9uUHJvcHNOYW1lLnB1c2gobmF2aWdhdGlvblByb3BlcnR5Lm5hbWUpO1xuXHRcdGFsbFZpc2l0ZWROYXZpZ2F0aW9uUHJvcHMucHVzaChuYXZpZ2F0aW9uUHJvcGVydHkpO1xuXHRcdGlmICghbmF2aWdhdGlvblByb3BlcnR5LmNvbnRhaW5zVGFyZ2V0KSB7XG5cdFx0XHQvLyBXZSBzaG91bGQgaGF2ZSBhIG5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBwYXRoIHNvIGZhciB3aGljaCBjYW4gY29uc2lzdCBvZiAoW0NvbnRhaW5tZW50TmF2UHJvcF0vKSpbTmF2UHJvcF1cblx0XHRcdGNvbnN0IGZ1bGxOYXZpZ2F0aW9uUGF0aCA9IHZpc2l0ZWROYXZpZ2F0aW9uUHJvcHNOYW1lLmpvaW4oXCIvXCIpO1xuXHRcdFx0aWYgKGN1cnJlbnRFbnRpdHlTZXQgJiYgY3VycmVudEVudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nLmhhc093blByb3BlcnR5KGZ1bGxOYXZpZ2F0aW9uUGF0aCkpIHtcblx0XHRcdFx0cGFyZW50RW50aXR5U2V0ID0gY3VycmVudEVudGl0eVNldDtcblx0XHRcdFx0Y3VycmVudEVudGl0eVNldCA9IGN1cnJlbnRFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1tmdWxsTmF2aWdhdGlvblBhdGhdO1xuXHRcdFx0XHR0YXJnZXRFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0O1xuXHRcdFx0XHQvLyBJZiB3ZSByZWFjaGVkIGEgbmF2aWdhdGlvbiBwcm9wZXJ0eSB3aXRoIGEgbmF2aWdhdGlvbnByb3BlcnR5YmluZGluZywgd2UgbmVlZCB0byByZXNldCB0aGUgdmlzaXRlZCBwYXRoIG9uIHRoZSBuZXh0IGl0ZXJhdGlvbiAoaWYgdGhlcmUgaXMgb25lKVxuXHRcdFx0XHRyZXNldFZpc2l0ZWROYXZQcm9wcyA9IHRydWU7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBXZSByZWFsbHkgc2hvdWxkIG5vdCBlbmQgdXAgaGVyZSBidXQgYXQgbGVhc3QgbGV0J3MgdHJ5IHRvIGF2b2lkIGluY29ycmVjdCBiZWhhdmlvclxuXHRcdFx0XHRwYXJlbnRFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0O1xuXHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gbnVsbDtcblx0XHRcdFx0cmVzZXRWaXNpdGVkTmF2UHJvcHMgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRwYXJlbnRFbnRpdHlTZXQgPSBjdXJyZW50RW50aXR5U2V0O1xuXHRcdFx0dGFyZ2V0RW50aXR5U2V0ID0gbnVsbDtcblx0XHR9XG5cdH0pO1xuXG5cdC8vIEF0IHRoaXMgcG9pbnQgd2UgaGF2ZSBuYXZpZ2F0ZWQgZG93biBhbGwgdGhlIG5hdiBwcm9wIGFuZCB3ZSBzaG91bGQgaGF2ZVxuXHQvLyBUaGUgdGFyZ2V0IGVudGl0eVNldCBwb2ludGluZyB0byBlaXRoZXIgbnVsbCAoaW4gY2FzZSBvZiBjb250YWlubWVudCBuYXZwcm9wIGEgbGFzdCBwYXJ0KSwgb3IgdGhlIGFjdHVhbCB0YXJnZXQgKG5vbiBjb250YWlubWVudCBhcyB0YXJnZXQpXG5cdC8vIFRoZSBwYXJlbnQgZW50aXR5U2V0IHBvaW50aW5nIHRvIHRoZSBwcmV2aW91cyBlbnRpdHlTZXQgdXNlZCBpbiB0aGUgcGF0aFxuXHQvLyBWaXNpdGVkTmF2aWdhdGlvblBhdGggc2hvdWxkIGNvbnRhaW4gdGhlIHBhdGggdXAgdG8gdGhpcyBwcm9wZXJ0eVxuXG5cdC8vIFJlc3RyaWN0aW9ucyBzaG91bGQgdGhlbiBiZSBldmFsdWF0ZWQgYXMgUGFyZW50RW50aXR5U2V0Lk5hdlJlc3RyaWN0aW9uc1tOYXZQcm9wZXJ0eVBhdGhdIHx8IFRhcmdldEVudGl0eVNldC5SZXN0cmljdGlvbnNcblx0Y29uc3QgZnVsbE5hdmlnYXRpb25QYXRoID0gdmlzaXRlZE5hdmlnYXRpb25Qcm9wc05hbWUuam9pbihcIi9cIik7XG5cdGxldCByZXN0cmljdGlvbnMsIHZpc2l0ZWROYXZQcm9wcztcblx0aWYgKHBhcmVudEVudGl0eVNldCAhPT0gbnVsbCkge1xuXHRcdGNvbnN0IF9wYXJlbnRFbnRpdHlTZXQ6IEVudGl0eVNldCA9IHBhcmVudEVudGl0eVNldDtcblx0XHRfcGFyZW50RW50aXR5U2V0LmFubm90YXRpb25zPy5DYXBhYmlsaXRpZXM/Lk5hdmlnYXRpb25SZXN0cmljdGlvbnM/LlJlc3RyaWN0ZWRQcm9wZXJ0aWVzLmZvckVhY2goXG5cdFx0XHQocmVzdHJpY3RlZE5hdlByb3A6IE5hdmlnYXRpb25Qcm9wZXJ0eVJlc3RyaWN0aW9uVHlwZXMpID0+IHtcblx0XHRcdFx0aWYgKHJlc3RyaWN0ZWROYXZQcm9wLk5hdmlnYXRpb25Qcm9wZXJ0eT8udHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCIpIHtcblx0XHRcdFx0XHRjb25zdCByZXN0cmljdGlvbkRlZmluaXRpb24gPSBjaGVja0Z1bmN0aW9uKHJlc3RyaWN0ZWROYXZQcm9wKTtcblx0XHRcdFx0XHRpZiAoZnVsbE5hdmlnYXRpb25QYXRoID09PSByZXN0cmljdGVkTmF2UHJvcC5OYXZpZ2F0aW9uUHJvcGVydHkudmFsdWUgJiYgcmVzdHJpY3Rpb25EZWZpbml0aW9uICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdGNvbnN0IF9hbGxWaXNpdGVkTmF2aWdhdGlvblByb3BzID0gYWxsVmlzaXRlZE5hdmlnYXRpb25Qcm9wcy5zbGljZSgwLCAtMSk7XG5cdFx0XHRcdFx0XHR2aXNpdGVkTmF2UHJvcHMgPSBfYWxsVmlzaXRlZE5hdmlnYXRpb25Qcm9wcztcblx0XHRcdFx0XHRcdGNvbnN0IHBhdGhSZWxhdGl2ZUxvY2F0aW9uID0gZ2V0UGF0aFJlbGF0aXZlTG9jYXRpb24oZGF0YU1vZGVsT2JqZWN0UGF0aD8uY29udGV4dExvY2F0aW9uLCB2aXNpdGVkTmF2UHJvcHMpLm1hcChcblx0XHRcdFx0XHRcdFx0KG5wKSA9PiBucC5uYW1lXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0Y29uc3QgcGF0aFZpc2l0b3JGdW5jdGlvbiA9IGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPy5wYXRoVmlzaXRvclxuXHRcdFx0XHRcdFx0XHQ/IGdldFBhdGhWaXNpdG9yRm9yU2luZ2xldG9uKGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoLnBhdGhWaXNpdG9yLCBwYXRoUmVsYXRpdmVMb2NhdGlvbilcblx0XHRcdFx0XHRcdFx0OiB1bmRlZmluZWQ7IC8vIHNlbmQgcGF0aFZpc2l0b3IgZnVuY3Rpb24gb25seSB3aGVuIGl0IGlzIGRlZmluZWQgYW5kIG9ubHkgc2VuZCBmdW5jdGlvbiBvciBkZWZpbmVkIGFzIGEgcGFyYW1ldGVyXG5cdFx0XHRcdFx0XHRyZXN0cmljdGlvbnMgPSBlcXVhbChcblx0XHRcdFx0XHRcdFx0Z2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKHJlc3RyaWN0aW9uRGVmaW5pdGlvbiwgcGF0aFJlbGF0aXZlTG9jYXRpb24sIHVuZGVmaW5lZCwgcGF0aFZpc2l0b3JGdW5jdGlvbiksXG5cdFx0XHRcdFx0XHRcdHRydWVcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0KTtcblx0fVxuXHRsZXQgdGFyZ2V0UmVzdHJpY3Rpb25zO1xuXHRpZiAoIWV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPy5pZ25vcmVUYXJnZXRDb2xsZWN0aW9uKSB7XG5cdFx0bGV0IHJlc3RyaWN0aW9uRGVmaW5pdGlvbiA9IGNoZWNrRnVuY3Rpb24odGFyZ2V0RW50aXR5U2V0Py5hbm5vdGF0aW9ucz8uQ2FwYWJpbGl0aWVzKTtcblx0XHRpZiAodGFyZ2V0RW50aXR5U2V0ID09PSBudWxsICYmIHJlc3RyaWN0aW9uRGVmaW5pdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRyZXN0cmljdGlvbkRlZmluaXRpb24gPSBjaGVja0Z1bmN0aW9uKHRhcmdldEVudGl0eVR5cGU/LmFubm90YXRpb25zPy5DYXBhYmlsaXRpZXMpO1xuXHRcdH1cblx0XHRpZiAocmVzdHJpY3Rpb25EZWZpbml0aW9uICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGNvbnN0IHBhdGhSZWxhdGl2ZUxvY2F0aW9uID0gZ2V0UGF0aFJlbGF0aXZlTG9jYXRpb24oZGF0YU1vZGVsT2JqZWN0UGF0aC5jb250ZXh0TG9jYXRpb24sIGFsbFZpc2l0ZWROYXZpZ2F0aW9uUHJvcHMpLm1hcChcblx0XHRcdFx0KG5wKSA9PiBucC5uYW1lXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3QgcGF0aFZpc2l0b3JGdW5jdGlvbiA9IGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoPy5wYXRoVmlzaXRvclxuXHRcdFx0XHQ/IGdldFBhdGhWaXNpdG9yRm9yU2luZ2xldG9uKGV4dHJhY3Rpb25QYXJhbWV0ZXJzT25QYXRoLnBhdGhWaXNpdG9yLCBwYXRoUmVsYXRpdmVMb2NhdGlvbilcblx0XHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0XHR0YXJnZXRSZXN0cmljdGlvbnMgPSBlcXVhbChcblx0XHRcdFx0Z2V0RXhwcmVzc2lvbkZyb21Bbm5vdGF0aW9uKHJlc3RyaWN0aW9uRGVmaW5pdGlvbiwgcGF0aFJlbGF0aXZlTG9jYXRpb24sIHVuZGVmaW5lZCwgcGF0aFZpc2l0b3JGdW5jdGlvbiksXG5cdFx0XHRcdHRydWVcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIChcblx0XHRyZXN0cmljdGlvbnMgfHwgdGFyZ2V0UmVzdHJpY3Rpb25zIHx8IChleHRyYWN0aW9uUGFyYW1ldGVyc09uUGF0aD8uYXV0aG9yaXplVW5yZXNvbHZhYmxlID8gdW5yZXNvbHZlYWJsZUV4cHJlc3Npb24gOiBjb25zdGFudCh0cnVlKSlcblx0KTtcbn07XG4vLyBUaGlzIGhlbHBlciBtZXRob2QgaXMgdXNlZCB0byBhZGQgcmVsYXRpdmUgcGF0aCBsb2NhdGlvbiBhcmd1bWVudCB0byBzaW5nbGV0b25QYXRoVmlzaXRvckZ1bmN0aW9uIGkuZS4gcGF0aFZpc2l0b3Jcbi8vIHBhdGhWaXNpdG9yIG1ldGhvZCBpcyB1c2VkIGxhdGVyIHRvIGdldCB0aGUgY29ycmVjdCBiaW5kaW5ncyBmb3Igc2luZ2xldG9uIGVudGl0eVxuLy8gbWV0aG9kIGlzIGludm9rZWQgbGF0ZXIgaW4gcGF0aEluTW9kZWwoKSBtZXRob2QgdG8gZ2V0IHRoZSBjb3JyZWN0IGJpbmRpbmcuXG5jb25zdCBnZXRQYXRoVmlzaXRvckZvclNpbmdsZXRvbiA9IGZ1bmN0aW9uIChwYXRoVmlzaXRvcjogRnVuY3Rpb24sIHBhdGhSZWxhdGl2ZUxvY2F0aW9uOiBzdHJpbmdbXSkge1xuXHRyZXR1cm4gZnVuY3Rpb24gKHBhdGg6IHN0cmluZykge1xuXHRcdHJldHVybiBwYXRoVmlzaXRvcihwYXRoLCBwYXRoUmVsYXRpdmVMb2NhdGlvbik7XG5cdH07XG59O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7RUF3Q08sSUFBTUEsdUJBQXVCLEdBQUcsVUFDdENDLFdBRHNDLEVBR2Y7SUFBQSxJQUR2QkMsZUFDdUIsdUVBRGlCLEVBQ2pCOztJQUN2QixJQUFJLENBQUNELFdBQUwsRUFBa0I7TUFDakIsT0FBT0MsZUFBUDtJQUNBLENBRkQsTUFFTyxJQUFJQSxlQUFlLENBQUNDLE1BQWhCLElBQTBCRixXQUFXLENBQUNHLG9CQUFaLENBQWlDRCxNQUEvRCxFQUF1RTtNQUM3RSxJQUFJRSxpQkFBdUMsR0FBRyxFQUE5QztNQUNBSixXQUFXLENBQUNHLG9CQUFaLENBQWlDRSxPQUFqQyxDQUF5QyxVQUFDQyxPQUFELEVBQVVDLFFBQVYsRUFBdUI7UUFDL0QsSUFBSU4sZUFBZSxDQUFDTSxRQUFELENBQWYsS0FBOEJELE9BQWxDLEVBQTJDO1VBQzFDRixpQkFBaUIsQ0FBQ0ksSUFBbEIsQ0FBdUJQLGVBQWUsQ0FBQ00sUUFBRCxDQUF0QztRQUNBO01BQ0QsQ0FKRDtNQUtBSCxpQkFBaUIsR0FBR0EsaUJBQWlCLENBQUNLLE1BQWxCLENBQXlCUixlQUFlLENBQUNTLEtBQWhCLENBQXNCVixXQUFXLENBQUNHLG9CQUFaLENBQWlDRCxNQUF2RCxDQUF6QixDQUFwQixDQVA2RSxDQVE3RTs7TUFDQSxJQUFJUyxVQUFVLEdBQUcsQ0FBakI7O01BQ0EsT0FBT1AsaUJBQWlCLENBQUNGLE1BQWxCLEdBQTJCLENBQTNC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
@@ -178,6 +178,7 @@ export const getTargetObjectPath = function (dataModelObjectPath: DataModelObjec
178
178
  dataModelObjectPath.targetObject.name &&
179
179
  dataModelObjectPath.targetObject._type !== "NavigationProperty" &&
180
180
  dataModelObjectPath.targetObject._type !== "EntityType" &&
181
+ dataModelObjectPath.targetObject._type !== "EntitySet" &&
181
182
  dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet
182
183
  ) {
183
184
  if (!path.endsWith("/")) {
@@ -212,6 +213,8 @@ export const getContextRelativeTargetObjectPath = function (
212
213
  (dataModelObjectPath.targetObject.name ||
213
214
  (dataModelObjectPath.targetObject.type === "PropertyPath" && dataModelObjectPath.targetObject.value)) &&
214
215
  dataModelObjectPath.targetObject._type !== "NavigationProperty" &&
216
+ dataModelObjectPath.targetObject._type !== "EntityType" &&
217
+ dataModelObjectPath.targetObject._type !== "EntitySet" &&
215
218
  dataModelObjectPath.targetObject !== dataModelObjectPath.startingEntitySet
216
219
  ) {
217
220
  if (path.length > 0 && !path.endsWith("/")) {