@coolon/angular-ui-powerups 0.0.106 → 0.0.107

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.
@@ -8,12 +8,10 @@ export class UrlSnapshot {
8
8
  /**
9
9
  * @param {?} urlSerializer
10
10
  * @param {?} url
11
- * @param {?} options
12
11
  */
13
- constructor(urlSerializer, url, options) {
12
+ constructor(urlSerializer, url) {
14
13
  this.urlSerializer = urlSerializer;
15
14
  this.url = url;
16
- this.options = options;
17
15
  this.urlTree = urlSerializer.parse(url);
18
16
  }
19
17
  /**
@@ -37,7 +35,7 @@ export class UrlSnapshot {
37
35
  // do not use the return value, it's the items that were removed!
38
36
  segments.splice(replaceAt, visitSegments.length, ...visitSegments);
39
37
  urlTree.root.children.primary.segments = segments;
40
- return new UrlSnapshot(this.urlSerializer, urlTree.toString(), this.options);
38
+ return new UrlSnapshot(this.urlSerializer, urlTree.toString());
41
39
  }
42
40
  /**
43
41
  * @private
@@ -110,7 +108,7 @@ export class UrlSnapshot {
110
108
  /** @type {?} */
111
109
  const urlTree = this.urlSerializer.parse(this.url);
112
110
  urlTree.queryParams[UrlSnapshot.INTERACTION_QUERY_PARAM] = UrlSnapshot.createPathIdFor(ids);
113
- return new UrlSnapshot(this.urlSerializer, urlTree.toString(), this.options);
111
+ return new UrlSnapshot(this.urlSerializer, urlTree.toString());
114
112
  }
115
113
  }
116
114
  // @Trace()
@@ -123,20 +121,7 @@ export class UrlSnapshot {
123
121
  if (urlTree.queryParams && urlTree.queryParams[UrlSnapshot.INTERACTION_QUERY_PARAM]) {
124
122
  urlTree.queryParams = {}; //[UrlSnapshot.INTERACTION_ROUTER_OUTLET]
125
123
  }
126
- return new UrlSnapshot(this.urlSerializer, urlTree.toString(), this.options);
127
- }
128
- /**
129
- * @param {?} options
130
- * @return {?}
131
- */
132
- withOptions(options) {
133
- return new UrlSnapshot(this.urlSerializer, this.url, options);
134
- }
135
- /**
136
- * @return {?}
137
- */
138
- getNavigationExtras() {
139
- return this.options;
124
+ return new UrlSnapshot(this.urlSerializer, urlTree.toString());
140
125
  }
141
126
  }
142
127
  if (false) {
@@ -146,11 +131,6 @@ if (false) {
146
131
  UrlSnapshot.prototype.urlSerializer;
147
132
  /** @type {?} */
148
133
  UrlSnapshot.prototype.url;
149
- /**
150
- * @type {?}
151
- * @private
152
- */
153
- UrlSnapshot.prototype.options;
154
134
  }
155
135
  (function (UrlSnapshot) {
156
136
  UrlSnapshot.INTERACTION_QUERY_PARAM = 'aup-interactions';
@@ -181,4 +161,4 @@ if (false) {
181
161
  NavigationOptions.prototype.replaceUrl;
182
162
  }
183
163
  })(UrlSnapshot || (UrlSnapshot = {}));
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3VybC1zbmFwc2hvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFvQixVQUFVLEVBQTBCLE1BQU0saUJBQWlCLENBQUM7QUFLdkYsTUFBTSxPQUFPLFdBQVc7Ozs7Ozs7SUFLdEIsWUFBcUIsYUFBNEIsRUFBVyxHQUFXLEVBQW1CLE9BQXlCO1FBQTlGLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVcsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFtQixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUNqSCxJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7Ozs7SUFFTSxtQkFBbUIsQ0FBQyxLQUFZOztjQUMvQixPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQzs7O2NBRTVDLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDOztjQUNoRCxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7O2NBQzFDLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUzs7OztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDO1FBQ3ZGLGlFQUFpRTtRQUNqRSxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7UUFDbkUsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDbEQsT0FB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Q0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBeUI7UUFDbkMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7OztJQUVELG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUVGOzs7SUF0RkMsOEJBQTBCOztJQUdkLG9DQUFxQzs7SUFBRSwwQkFBb0I7Ozs7O0lBQUUsOEJBQTBDOztBQXFGckgsV0FBaUIsV0FBVztJQUViLG1DQUF1QixHQUFHLGtCQUFrQjtJQUM1QyxvQ0FBd0IsR0FBRyxJQUFJOzs7OztJQUU1QyxTQUFnQixtQkFBbUIsQ0FBQyxJQUFZO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFBLHdCQUF3QixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUZlLCtCQUFtQixzQkFFbEMsQ0FBQTs7Ozs7SUFFRCxTQUFnQixlQUFlLENBQUMsY0FBd0I7UUFDdEQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQUEsd0JBQXdCLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRmUsMkJBQWUsa0JBRTlCLENBQUE7Ozs7SUFFRCxnQ0FFQzs7OztRQURDLHVDQUFxQjs7QUFFekIsQ0FBQyxFQWhCZ0IsV0FBVyxLQUFYLFdBQVcsUUFnQjNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF2aWdhdGlvbkV4dHJhcywgVXJsU2VnbWVudCwgVXJsU2VyaWFsaXplciwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBhc3NlcnQsIFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgUGxhY2VEZWZpbml0aW9uIH0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi92aXNpdCc7XG5cbmV4cG9ydCBjbGFzcyBVcmxTbmFwc2hvdCB7XG5cbiAgcmVhZG9ubHkgdXJsVHJlZTogVXJsVHJlZTtcblxuICAvLyBUT0RPOiBVcGRhdGUgdGhpcyBhY2NlcHQgYSB1cmwgUGFyc2VyIHNvIGl0IGNhbiBiZSBpbW11dGFibGUgYW5kIGdlbmVyYXRlIG5ldyB0cmVlcyBvbiBtdXRhdGlvbiB1c2luZyB0b1N0cmluZygpIGFyZSBwYXJzZVVybC5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgdXJsU2VyaWFsaXplcjogVXJsU2VyaWFsaXplciwgcmVhZG9ubHkgdXJsOiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogTmF2aWdhdGlvbkV4dHJhcykge1xuICAgIHRoaXMudXJsVHJlZSA9IHVybFNlcmlhbGl6ZXIucGFyc2UodXJsKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVWaXNpdFNlZ21lbnRzKHZpc2l0OiBWaXNpdCk6IFVybFNuYXBzaG90IHtcbiAgICBjb25zdCB1cmxUcmVlID0gdGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKHRoaXMudXJsKTtcbiAgICAvLyBVZ2x5LCBidXQgaXQgd29ya3MgZm9yIG5vdy5cbiAgICBjb25zdCBzZWdtZW50cyA9IFsuLi50aGlzLmdldFByaW1hcnlTZWdtZW50cyh1cmxUcmVlKV07XG4gICAgY29uc3QgdmlzaXRTZWdtZW50cyA9IHRoaXMuZ2V0U2VnbWVudHNGb3IodmlzaXQpO1xuICAgIGNvbnN0IHJlcGxhY2VBdCA9IHNlZ21lbnRzLmZpbmRJbmRleChzZWdtZW50ID0+IHNlZ21lbnQucGF0aCA9PT0gdmlzaXRTZWdtZW50c1swXS5wYXRoKTtcbiAgICAvLyBkbyBub3QgdXNlIHRoZSByZXR1cm4gdmFsdWUsIGl0J3MgdGhlIGl0ZW1zIHRoYXQgd2VyZSByZW1vdmVkIVxuICAgIHNlZ21lbnRzLnNwbGljZShyZXBsYWNlQXQsIHZpc2l0U2VnbWVudHMubGVuZ3RoLCAuLi52aXNpdFNlZ21lbnRzKTtcbiAgICB1cmxUcmVlLnJvb3QuY2hpbGRyZW4ucHJpbWFyeS5zZWdtZW50cyA9IHNlZ21lbnRzO1xuICAgIHJldHVybiBuZXcgVXJsU25hcHNob3QodGhpcy51cmxTZXJpYWxpemVyLCB1cmxUcmVlLnRvU3RyaW5nKCksIHRoaXMub3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGdldFByaW1hcnlTZWdtZW50cyh1cmxUcmVlOiBVcmxUcmVlKSB7XG4gICAgcmV0dXJuIHRoaXMudXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnkuc2VnbWVudHM7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHZpc2l0IGludG8gc2VnbWVudHMuICBQbGVhc2Ugbm90IHRoYXQgdGhlc2Ugc2VnbWVudHMgYXJlIG5vdCBlXG4gICAqIEBwYXJhbSB2aXNpdFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFNlZ21lbnRzRm9yKHZpc2l0OiBWaXNpdCk6IFVybFNlZ21lbnRbXSB7XG4gICAgcmV0dXJuIHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5oYXNSb3V0ZUlkKCkgP1xuICAgICAgW1xuICAgICAgICAvLyBOT1RFOlxuICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBhdHRhY2ggdGhlIHBhcmFtcyB0byB0aGUgcm9vdCBwYXRoIGFuZCBub3QgdGhlIGlkLiAgSWYgd2UgYXR0YWNoIHRoZW1cbiAgICAgICAgLy8gdG8gYW4gZW1wdHkgaWQgdGhlbiB0aGUgYW5ndWxhciByb3V0ZXIgd29uJ3QgbWF0Y2ggdGhlIHBhdHRlcm4uXG4gICAgICAgIG5ldyBVcmxTZWdtZW50KHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5wYXRoLCB2aXNpdC5wbGFjZURlZmluaXRpb24uZ2V0Rm9ybWF0dGVkUm91dGVQYXJhbWV0ZXJzKHZpc2l0KSksXG4gICAgICAgIG5ldyBVcmxTZWdtZW50KHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZUlkKHZpc2l0KSwge30pXVxuICAgICAgOlxuICAgICAgW1xuICAgICAgICBuZXcgVXJsU2VnbWVudCh2aXNpdC5wbGFjZURlZmluaXRpb24ucGF0aCwgdmlzaXQucGxhY2VEZWZpbml0aW9uLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdCkpXG4gICAgICBdO1xuICB9XG5cbiAgaW5jbHVkZXNQYXRoT2YocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiB0aGlzLmdldFByaW1hcnlTZWdtZW50cyh0aGlzLnVybFRyZWUpLmZpbmQocyA9PiBzLnBhdGggPT09IHBsYWNlRGVmLnBhdGgpO1xuICB9XG5cbiAgZ2V0SW50ZXJhY3Rpb25JZHMoKSB7XG4gICAgY29uc3QgcXVlcnlQYXJhbSA9IHRoaXMudXJsVHJlZS5xdWVyeVBhcmFtc1tVcmxTbmFwc2hvdC5JTlRFUkFDVElPTl9RVUVSWV9QQVJBTV07XG4gICAgaWYgKHF1ZXJ5UGFyYW0pIHtcbiAgICAgIHJldHVybiBVcmxTbmFwc2hvdC5wYXJzZUludGVyYWN0aW9uSWRzKHF1ZXJ5UGFyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgaGFzSW50ZXJhY3Rpb25JZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW50ZXJhY3Rpb25JZHMoKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgdXBkYXRlSW50ZXJhY3Rpb25JZHMoaWRzOiBzdHJpbmdbXSk6IFVybFNuYXBzaG90IHtcbiAgICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlSW50ZXJhY3Rpb25JZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMudXJsU2VyaWFsaXplci5wYXJzZSh0aGlzLnVybCk7XG4gICAgICB1cmxUcmVlLnF1ZXJ5UGFyYW1zW1VybFNuYXBzaG90LklOVEVSQUNUSU9OX1FVRVJZX1BBUkFNXSA9IFVybFNuYXBzaG90LmNyZWF0ZVBhdGhJZEZvcihpZHMpO1xuICAgICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIHVybFRyZWUudG9TdHJpbmcoKSwgdGhpcy5vcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICByZW1vdmVJbnRlcmFjdGlvbklkcygpOiBVcmxTbmFwc2hvdCB7XG4gICAgY29uc3QgdXJsVHJlZSA9IHRoaXMudXJsU2VyaWFsaXplci5wYXJzZSh0aGlzLnVybCk7XG4gICAgaWYgKHVybFRyZWUucXVlcnlQYXJhbXMgJiYgdXJsVHJlZS5xdWVyeVBhcmFtc1tVcmxTbmFwc2hvdC5JTlRFUkFDVElPTl9RVUVSWV9QQVJBTV0pIHtcbiAgICAgIHVybFRyZWUucXVlcnlQYXJhbXMgPSB7fTsvL1tVcmxTbmFwc2hvdC5JTlRFUkFDVElPTl9ST1VURVJfT1VUTEVUXVxuICAgIH1cbiAgICByZXR1cm4gbmV3IFVybFNuYXBzaG90KHRoaXMudXJsU2VyaWFsaXplciwgdXJsVHJlZS50b1N0cmluZygpLCB0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgd2l0aE9wdGlvbnMob3B0aW9uczogTmF2aWdhdGlvbkV4dHJhcykge1xuICAgIHJldHVybiBuZXcgVXJsU25hcHNob3QodGhpcy51cmxTZXJpYWxpemVyLCB0aGlzLnVybCwgb3B0aW9ucyk7XG4gIH1cblxuICBnZXROYXZpZ2F0aW9uRXh0cmFzKCk6IE5hdmlnYXRpb25FeHRyYXMge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFVybFNuYXBzaG90IHtcblxuICBleHBvcnQgY29uc3QgSU5URVJBQ1RJT05fUVVFUllfUEFSQU0gPSAnYXVwLWludGVyYWN0aW9ucyc7XG4gIGV4cG9ydCBjb25zdCBJTlRFUkFDVElPTl9JRF9TRVBBUkFUT1IgPSAnLS0nO1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBwYXJzZUludGVyYWN0aW9uSWRzKHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBwYXRoLnNwbGl0KElOVEVSQUNUSU9OX0lEX1NFUEFSQVRPUik7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlUGF0aElkRm9yKGludGVyYWN0aW9uSWRzOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBpbnRlcmFjdGlvbklkcy5qb2luKElOVEVSQUNUSU9OX0lEX1NFUEFSQVRPUik7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIE5hdmlnYXRpb25PcHRpb25zIHtcbiAgICByZXBsYWNlVXJsPzogYm9vbGVhbjtcbiAgfVxufVxuIl19
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL3VybC1zbmFwc2hvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFvQixVQUFVLEVBQTBCLE1BQU0saUJBQWlCLENBQUM7QUFLdkYsTUFBTSxPQUFPLFdBQVc7Ozs7OztJQUt0QixZQUFxQixhQUE0QixFQUFXLEdBQVc7UUFBbEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVyxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ3JFLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs7OztJQUVNLG1CQUFtQixDQUFDLEtBQVk7O2NBQy9CLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDOzs7Y0FFNUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7O2NBQ2hELGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQzs7Y0FDMUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTOzs7O1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUM7UUFDdkYsaUVBQWlFO1FBQ2pFLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQztRQUNuRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNsRCxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FB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b0NBQXdCLEdBQUcsSUFBSTs7Ozs7SUFFNUMsU0FBZ0IsbUJBQW1CLENBQUMsSUFBWTtRQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBQSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFGZSwrQkFBbUIsc0JBRWxDLENBQUE7Ozs7O0lBRUQsU0FBZ0IsZUFBZSxDQUFDLGNBQXdCO1FBQ3RELE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFBLHdCQUF3QixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUZlLDJCQUFlLGtCQUU5QixDQUFBOzs7O0lBRUQsZ0NBRUM7Ozs7UUFEQyx1Q0FBcUI7O0FBRXpCLENBQUMsRUFoQmdCLFdBQVcsS0FBWCxXQUFXLFFBZ0IzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdmlnYXRpb25FeHRyYXMsIFVybFNlZ21lbnQsIFVybFNlcmlhbGl6ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXNzZXJ0LCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IFBsYWNlRGVmaW5pdGlvbiB9IGZyb20gJy4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBWaXNpdCB9IGZyb20gJy4vdmlzaXQnO1xuXG5leHBvcnQgY2xhc3MgVXJsU25hcHNob3Qge1xuXG4gIHJlYWRvbmx5IHVybFRyZWU6IFVybFRyZWU7XG5cbiAgLy8gVE9ETzogVXBkYXRlIHRoaXMgYWNjZXB0IGEgdXJsIFBhcnNlciBzbyBpdCBjYW4gYmUgaW1tdXRhYmxlIGFuZCBnZW5lcmF0ZSBuZXcgdHJlZXMgb24gbXV0YXRpb24gdXNpbmcgdG9TdHJpbmcoKSBhcmUgcGFyc2VVcmwuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHVybFNlcmlhbGl6ZXI6IFVybFNlcmlhbGl6ZXIsIHJlYWRvbmx5IHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy51cmxUcmVlID0gdXJsU2VyaWFsaXplci5wYXJzZSh1cmwpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZpc2l0U2VnbWVudHModmlzaXQ6IFZpc2l0KTogVXJsU25hcHNob3Qge1xuICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UodGhpcy51cmwpO1xuICAgIC8vIFVnbHksIGJ1dCBpdCB3b3JrcyBmb3Igbm93LlxuICAgIGNvbnN0IHNlZ21lbnRzID0gWy4uLnRoaXMuZ2V0UHJpbWFyeVNlZ21lbnRzKHVybFRyZWUpXTtcbiAgICBjb25zdCB2aXNpdFNlZ21lbnRzID0gdGhpcy5nZXRTZWdtZW50c0Zvcih2aXNpdCk7XG4gICAgY29uc3QgcmVwbGFjZUF0ID0gc2VnbWVudHMuZmluZEluZGV4KHNlZ21lbnQgPT4gc2VnbWVudC5wYXRoID09PSB2aXNpdFNlZ21lbnRzWzBdLnBhdGgpO1xuICAgIC8vIGRvIG5vdCB1c2UgdGhlIHJldHVybiB2YWx1ZSwgaXQncyB0aGUgaXRlbXMgdGhhdCB3ZXJlIHJlbW92ZWQhXG4gICAgc2VnbWVudHMuc3BsaWNlKHJlcGxhY2VBdCwgdmlzaXRTZWdtZW50cy5sZW5ndGgsIC4uLnZpc2l0U2VnbWVudHMpO1xuICAgIHVybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5LnNlZ21lbnRzID0gc2VnbWVudHM7XG4gICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIHVybFRyZWUudG9TdHJpbmcoKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFByaW1hcnlTZWdtZW50cyh1cmxUcmVlOiBVcmxUcmVlKSB7XG4gICAgcmV0dXJuIHRoaXMudXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnkuc2VnbWVudHM7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHZpc2l0IGludG8gc2VnbWVudHMuICBQbGVhc2Ugbm90IHRoYXQgdGhlc2Ugc2VnbWVudHMgYXJlIG5vdCBlXG4gICAqIEBwYXJhbSB2aXNpdFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFNlZ21lbnRzRm9yKHZpc2l0OiBWaXNpdCk6IFVybFNlZ21lbnRbXSB7XG4gICAgcmV0dXJuIHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5oYXNSb3V0ZUlkKCkgP1xuICAgICAgW1xuICAgICAgICAvLyBOT1RFOlxuICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBhdHRhY2ggdGhlIHBhcmFtcyB0byB0aGUgcm9vdCBwYXRoIGFuZCBub3QgdGhlIGlkLiAgSWYgd2UgYXR0YWNoIHRoZW1cbiAgICAgICAgLy8gdG8gYW4gZW1wdHkgaWQgdGhlbiB0aGUgYW5ndWxhciByb3V0ZXIgd29uJ3QgbWF0Y2ggdGhlIHBhdHRlcm4uXG4gICAgICAgIG5ldyBVcmxTZWdtZW50KHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5wYXRoLCB2aXNpdC5wbGFjZURlZmluaXRpb24uZ2V0Rm9ybWF0dGVkUm91dGVQYXJhbWV0ZXJzKHZpc2l0KSksXG4gICAgICAgIG5ldyBVcmxTZWdtZW50KHZpc2l0LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZUlkKHZpc2l0KSwge30pXVxuICAgICAgOlxuICAgICAgW1xuICAgICAgICBuZXcgVXJsU2VnbWVudCh2aXNpdC5wbGFjZURlZmluaXRpb24ucGF0aCwgdmlzaXQucGxhY2VEZWZpbml0aW9uLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdCkpXG4gICAgICBdO1xuICB9XG5cbiAgaW5jbHVkZXNQYXRoT2YocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiB0aGlzLmdldFByaW1hcnlTZWdtZW50cyh0aGlzLnVybFRyZWUpLmZpbmQocyA9PiBzLnBhdGggPT09IHBsYWNlRGVmLnBhdGgpO1xuICB9XG5cbiAgZ2V0SW50ZXJhY3Rpb25JZHMoKSB7XG4gICAgY29uc3QgcXVlcnlQYXJhbSA9IHRoaXMudXJsVHJlZS5xdWVyeVBhcmFtc1tVcmxTbmFwc2hvdC5JTlRFUkFDVElPTl9RVUVSWV9QQVJBTV07XG4gICAgaWYgKHF1ZXJ5UGFyYW0pIHtcbiAgICAgIHJldHVybiBVcmxTbmFwc2hvdC5wYXJzZUludGVyYWN0aW9uSWRzKHF1ZXJ5UGFyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgaGFzSW50ZXJhY3Rpb25JZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW50ZXJhY3Rpb25JZHMoKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgdXBkYXRlSW50ZXJhY3Rpb25JZHMoaWRzOiBzdHJpbmdbXSk6IFVybFNuYXBzaG90IHtcbiAgICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlSW50ZXJhY3Rpb25JZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMudXJsU2VyaWFsaXplci5wYXJzZSh0aGlzLnVybCk7XG4gICAgICB1cmxUcmVlLnF1ZXJ5UGFyYW1zW1VybFNuYXBzaG90LklOVEVSQUNUSU9OX1FVRVJZX1BBUkFNXSA9IFVybFNuYXBzaG90LmNyZWF0ZVBhdGhJZEZvcihpZHMpO1xuICAgICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIHVybFRyZWUudG9TdHJpbmcoKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcmVtb3ZlSW50ZXJhY3Rpb25JZHMoKTogVXJsU25hcHNob3Qge1xuICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UodGhpcy51cmwpO1xuICAgIGlmICh1cmxUcmVlLnF1ZXJ5UGFyYW1zICYmIHVybFRyZWUucXVlcnlQYXJhbXNbVXJsU25hcHNob3QuSU5URVJBQ1RJT05fUVVFUllfUEFSQU1dKSB7XG4gICAgICB1cmxUcmVlLnF1ZXJ5UGFyYW1zID0ge307Ly9bVXJsU25hcHNob3QuSU5URVJBQ1RJT05fUk9VVEVSX09VVExFVF1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIHVybFRyZWUudG9TdHJpbmcoKSk7XG4gIH1cblxuICAvLyB3aXRoT3B0aW9ucyhvcHRpb25zOiBOYXZpZ2F0aW9uRXh0cmFzKSB7XG4gIC8vICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIHRoaXMudXJsLCBvcHRpb25zKTtcbiAgLy8gfVxuICAvL1xuICAvLyBAVHJhY2UoKVxuICAvLyBnZXROYXZpZ2F0aW9uRXh0cmFzKCk6IE5hdmlnYXRpb25FeHRyYXMge1xuICAvLyAgIHJldHVybiB0aGlzLm9wdGlvbnM7XG4gIC8vIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFVybFNuYXBzaG90IHtcblxuICBleHBvcnQgY29uc3QgSU5URVJBQ1RJT05fUVVFUllfUEFSQU0gPSAnYXVwLWludGVyYWN0aW9ucyc7XG4gIGV4cG9ydCBjb25zdCBJTlRFUkFDVElPTl9JRF9TRVBBUkFUT1IgPSAnLS0nO1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBwYXJzZUludGVyYWN0aW9uSWRzKHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBwYXRoLnNwbGl0KElOVEVSQUNUSU9OX0lEX1NFUEFSQVRPUik7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlUGF0aElkRm9yKGludGVyYWN0aW9uSWRzOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBpbnRlcmFjdGlvbklkcy5qb2luKElOVEVSQUNUSU9OX0lEX1NFUEFSQVRPUik7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIE5hdmlnYXRpb25PcHRpb25zIHtcbiAgICByZXBsYWNlVXJsPzogYm9vbGVhbjtcbiAgfVxufVxuIl19
@@ -3,7 +3,7 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import * as tslib_1 from "tslib";
6
- import { NavigationCancel, NavigationStart } from '@angular/router';
6
+ import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart } from '@angular/router';
7
7
  import { Dsl, GarbageCollector, lang, Logger, Trace } from '@coolon/pectin';
8
8
  import { PlaceComponentDeactivationHandler } from './place-component-deactivation-handler';
9
9
  /**
@@ -661,11 +661,15 @@ if (false) {
661
661
  navigationTransition.storeVisit(visit);
662
662
  return navigationTransition;
663
663
  };
664
+ // @Trace()
665
+ // @Trace()
664
666
  /**
665
667
  * @param {?} event
666
668
  * @return {?}
667
669
  */
668
- IdleDuringInteraction.prototype.onRouterStarted = /**
670
+ IdleDuringInteraction.prototype.onRouterStarted =
671
+ // @Trace()
672
+ /**
669
673
  * @param {?} event
670
674
  * @return {?}
671
675
  */
@@ -683,12 +687,6 @@ if (false) {
683
687
  function (event) {
684
688
  return new InteractionPopStateTransition(this.context, event.url);
685
689
  };
686
- tslib_1.__decorate([
687
- Trace(),
688
- tslib_1.__metadata("design:type", Function),
689
- tslib_1.__metadata("design:paramtypes", [NavigationStart]),
690
- tslib_1.__metadata("design:returntype", NavigationState)
691
- ], IdleDuringInteraction.prototype, "onRouterStarted", null);
692
690
  tslib_1.__decorate([
693
691
  Trace(),
694
692
  tslib_1.__metadata("design:type", Function),
@@ -733,11 +731,7 @@ if (false) {
733
731
  * This state exists to handle all events while any kind of navigation is in progress. That way all other states can
734
732
  * happily ignore interaction contexts.
735
733
  */
736
- var /**
737
- * This state exists to handle all events while any kind of navigation is in progress. That way all other states can
738
- * happily ignore interaction contexts.
739
- */
740
- InteractionTransition = /** @class */ (function (_super) {
734
+ var InteractionTransition = /** @class */ (function (_super) {
741
735
  tslib_1.__extends(InteractionTransition, _super);
742
736
  function InteractionTransition() {
743
737
  var _this = _super !== null && _super.apply(this, arguments) || this;
@@ -791,6 +785,24 @@ if (false) {
791
785
  return new Idle(this.context);
792
786
  }
793
787
  };
788
+ tslib_1.__decorate([
789
+ Trace(),
790
+ tslib_1.__metadata("design:type", Function),
791
+ tslib_1.__metadata("design:paramtypes", [NavigationCancel]),
792
+ tslib_1.__metadata("design:returntype", NavigationState)
793
+ ], InteractionTransition.prototype, "onRouterCancelled", null);
794
+ tslib_1.__decorate([
795
+ Trace(),
796
+ tslib_1.__metadata("design:type", Function),
797
+ tslib_1.__metadata("design:paramtypes", [NavigationError]),
798
+ tslib_1.__metadata("design:returntype", NavigationState)
799
+ ], InteractionTransition.prototype, "onRouterError", null);
800
+ tslib_1.__decorate([
801
+ Trace(),
802
+ tslib_1.__metadata("design:type", Function),
803
+ tslib_1.__metadata("design:paramtypes", [NavigationEnd]),
804
+ tslib_1.__metadata("design:returntype", NavigationState)
805
+ ], InteractionTransition.prototype, "onRouterEnd", null);
794
806
  return InteractionTransition;
795
807
  }(AbstractInteractionTransition));
796
808
  NavigationState.InteractionTransition = InteractionTransition;
@@ -802,11 +814,7 @@ if (false) {
802
814
  * This state exists to handle all events while any kind of navigation is in progress. That way all other states can
803
815
  * happily ignore interaction contexts.
804
816
  */
805
- var /**
806
- * This state exists to handle all events while any kind of navigation is in progress. That way all other states can
807
- * happily ignore interaction contexts.
808
- */
809
- InteractionPopStateTransition = /** @class */ (function (_super) {
817
+ var InteractionPopStateTransition = /** @class */ (function (_super) {
810
818
  tslib_1.__extends(InteractionPopStateTransition, _super);
811
819
  function InteractionPopStateTransition() {
812
820
  var _this = _super !== null && _super.apply(this, arguments) || this;
@@ -848,6 +856,18 @@ if (false) {
848
856
  return new Idle(this.context);
849
857
  }
850
858
  };
859
+ tslib_1.__decorate([
860
+ Trace(),
861
+ tslib_1.__metadata("design:type", Function),
862
+ tslib_1.__metadata("design:paramtypes", [NavigationCancel]),
863
+ tslib_1.__metadata("design:returntype", NavigationState)
864
+ ], InteractionPopStateTransition.prototype, "onRouterCancelled", null);
865
+ tslib_1.__decorate([
866
+ Trace(),
867
+ tslib_1.__metadata("design:type", Function),
868
+ tslib_1.__metadata("design:paramtypes", [NavigationEnd]),
869
+ tslib_1.__metadata("design:returntype", NavigationState)
870
+ ], InteractionPopStateTransition.prototype, "onRouterEnd", null);
851
871
  return InteractionPopStateTransition;
852
872
  }(AbstractInteractionTransition));
853
873
  NavigationState.InteractionPopStateTransition = InteractionPopStateTransition;
@@ -1009,4 +1029,4 @@ if (false) {
1009
1029
  CancelledDuringNavigationInteraction.prototype.locationChangeTriggerUrl;
1010
1030
  }
1011
1031
  })(NavigationState || (NavigationState = {}));
1012
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9ndWFyZHMvbmF2aWdhdGlvbi1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBa0MsZUFBZSxFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDakgsT0FBTyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUTVFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBRTNGOzs7O0lBQThDLDJDQUFnQjtJQVE1RCx5QkFBK0IsT0FBZ0M7UUFBL0QsWUFDRSxpQkFBTyxTQUNSO1FBRjhCLGFBQU8sR0FBUCxPQUFPLENBQXlCO1FBTnZELGFBQU8sR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQzs7SUFRcEQsQ0FBQztJQUVELHNCQUFJLGlDQUFJOzs7O1FBQVI7WUFDRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQy9CLENBQUM7OztPQUFBO0lBRUQsc0JBQUksaUNBQUk7Ozs7UUFBUjtZQUNFLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzlCLENBQUM7OztPQUFBO0lBRUQsc0JBQUksd0NBQVc7Ozs7UUFBZjtZQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDbEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwrQ0FBa0I7Ozs7UUFBdEI7WUFDRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7UUFDekMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwrQ0FBa0I7Ozs7UUFBdEI7WUFDRSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7OztPQUFBOzs7OztJQUVE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Ozs7OztRQUNMLGlFQUFrQjs7Ozs7Ozs7UUFBeEIsVUFBeUIsU0FBeUIsRUFBRSxVQUF1QixFQUFFLE9BQW9COzs7b0JBQy9GLHNCQUFPLEtBQUssRUFBQzs7O1NBQ2Q7Ozs7OztRQUVELHFEQUFNOzs7OztRQUFOLFVBQU8sS0FBa0IsRUFBRSxNQUFlO1lBQ3hDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQU8sTUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQXdCLE1BQU0sVUFBSyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksWUFBTyxLQUFLLENBQUMsR0FBSyxDQUFDLENBQUM7WUFDbkcsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDOzs7O1FBRUQsdURBQVE7OztRQUFSO1lBQ0UsT0FBVSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksZ0JBQVcsSUFBSSxDQUFDLElBQUksdUJBQWtCLElBQUksQ0FBQyxXQUFXLG1DQUE4QixJQUFJLENBQUMsd0JBQXdCLE1BQUcsQ0FBQztRQUN0SixDQUFDO1FBbkNEO1lBREMsS0FBSyxFQUFFOztxREFDaUIsZ0JBQWdCO29EQUFHLGVBQWU7cUZBTzFEO1FBOEJILDJDQUFDO0tBQUEsQUExREQsQ0FBMEQsZUFBZSxHQTBEeEU7SUExRFksb0RBQW9DLHVDQTBEaEQsQ0FBQTs7O1FBeERDLDBEQUE0Qjs7Ozs7UUFDNUIseUVBQTBDOztRQUc5QiwyREFBNEI7O1FBQzVCLHlFQUEyQzs7UUFDM0Msd0VBQXlDOztBQW1EekQsQ0FBQyxFQXJUZ0IsZUFBZSxLQUFmLGVBQWUsUUFxVC9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF2aWdhdGlvbkNhbmNlbCwgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkVycm9yLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlckV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERzbCwgR2FyYmFnZUNvbGxlY3RvciwgbGFuZywgTG9nZ2VyLCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4uLy4uL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJhY3Rpb24vc2VydmljZXMvaW50ZXJhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFjZURlZmluaXRpb24gfSBmcm9tICcuLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IFBsYWNlUm91dGVyIH0gZnJvbSAnLi4vcGxhY2Utcm91dGVyJztcbmltcG9ydCB7IFVybFNuYXBzaG90IH0gZnJvbSAnLi4vdXJsLXNuYXBzaG90JztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi4vdmlzaXQnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyIH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXInO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmF2aWdhdGlvblN0YXRlIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgcHJpdmF0ZSBfdmlzaXRzID0gbmV3IE1hcDxQbGFjZURlZmluaXRpb24sIFZpc2l0PigpO1xuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzVHJhbnNpdGlvbmFsOiBib29sZWFuO1xuICBhYnN0cmFjdCByZWFkb25seSBzdGFydGluZ1VybDogc3RyaW5nO1xuICBhYnN0cmFjdCByZWFkb25seSBpc1BvcFN0YXRlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBjb250ZXh0OiBOYXZpZ2F0aW9uU3RhdGUuQ29udGV4dCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XG4gIH1cblxuICBnZXQgaWRsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMuaXNUcmFuc2l0aW9uYWw7XG4gIH1cblxuICBnZXQgcGxhY2VSb3V0ZXIoKTogUGxhY2VSb3V0ZXIge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQucGxhY2VSb3V0ZXI7XG4gIH1cblxuICBnZXQgaW50ZXJhY3Rpb25TZXJ2aWNlKCk6IEludGVyYWN0aW9uU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5pbnRlcmFjdGlvblNlcnZpY2U7XG4gIH1cblxuICBnZXQgaW50ZXJhY3Rpb25Db250ZXh0KCk6IEludGVyYWN0aW9uQ29udGV4dCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdG9yZVZpc2l0KHZpc2l0OiBWaXNpdCkge1xuICAgIHRoaXMuX3Zpc2l0cy5zZXQodmlzaXQucGxhY2VEZWZpbml0aW9uLCB2aXNpdCk7XG4gIH1cblxuICBnZXRWaXNpdEZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2l0cy5nZXQocGxhY2VEZWYpO1xuICB9XG5cbiAgb25QbGFjZU5hdmlnYXRpb25TdGFydCh2aXNpdDogVmlzaXQsIGluaXRpYWxVcmw6IHN0cmluZyk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oJ29uUGxhY2VOYXZpZ2F0aW9uU3RhcnQnKTtcbiAgfVxuXG4gIG9uUG9wU3RhdGUoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJTdGFydGVkKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvbkJhY2tDbGlja2VkRHVyaW5nTmF2aWdhdGlvbkludGVyYWN0aW9uKG5ld1VybDogc3RyaW5nKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbignb25CYWNrQ2xpY2tlZER1cmluZ05hdmlnYXRpb25JbnRlcmFjdGlvbicpO1xuICB9XG5cbiAgYXN5bmMgY2FuRGVhY3RpdmF0ZVBsYWNlKGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIGN1cnJlbnRVcmw6IFVybFNuYXBzaG90LCBuZXh0VXJsOiBVcmxTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbiB8IFVybFNuYXBzaG90PiB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oJ2NhbkRlYWN0aXZhdGVQbGFjZScpO1xuICB9XG5cbiAgZ2V0VmlzaXRzKCk6IFZpc2l0W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3Zpc2l0cy52YWx1ZXMoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaWxsZWdhbFRyYW5zaXRpb248Uj4obWVzc2FnZTogc3RyaW5nIHwgUm91dGVyRXZlbnQpOiBSIHtcbiAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYCR7bWVzc2FnZS50b1N0cmluZygpfSBub3Qgc3VwcG9ydGVkIGJ5ICR7dGhpcy50b1N0cmluZygpfWApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRSb3V0ZXJVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZVJvdXRlci5nZXRDdXJyZW50Um91dGVyVXJsKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlVHJhbnNpdGlvblN0YXRlRm9yKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICBjb25zdCBwb3BzdGF0ZSA9IGV2ZW50Lm5hdmlnYXRpb25UcmlnZ2VyID09PSAncG9wc3RhdGUnO1xuICAgIHJldHVybiBwb3BzdGF0ZSA/XG4gICAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZS5pc0FjdGl2ZSgpID9cbiAgICAgICAgbmV3IE5hdmlnYXRpb25TdGF0ZS5JbnRlcmFjdGlvblBvcFN0YXRlVHJhbnNpdGlvbih0aGlzLmNvbnRleHQsIHRoaXMuY3VycmVudFJvdXRlclVybCgpKSA6XG4gICAgICAgIG5ldyBOYXZpZ2F0aW9uU3RhdGUuUG9wU3RhdGVUcmFuc2l0aW9uKHRoaXMuY29udGV4dCwgdGhpcy5jdXJyZW50Um91dGVyVXJsKCkpXG4gICAgICA6XG4gICAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZS5pc0FjdGl2ZSgpID9cbiAgICAgICAgbmV3IE5hdmlnYXRpb25TdGF0ZS5JbnRlcmFjdGlvblRyYW5zaXRpb24odGhpcy5jb250ZXh0LCB0aGlzLmN1cnJlbnRSb3V0ZXJVcmwoKSkgOlxuICAgICAgICBuZXcgTmF2aWdhdGlvblN0YXRlLk5hdmlnYXRpb25UcmFuc2l0aW9uKHRoaXMuY29udGV4dCwgdGhpcy5jdXJyZW50Um91dGVyVXJsKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUlkbGVTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2UuaXNBY3RpdmUoKSA/XG4gICAgICBuZXcgTmF2aWdhdGlvblN0YXRlLklkbGVEdXJpbmdJbnRlcmFjdGlvbih0aGlzLmNvbnRleHQsIHRoaXMuY3VycmVudFJvdXRlclVybCgpKSA6XG4gICAgICBuZXcgTmF2aWdhdGlvblN0YXRlLklkbGUodGhpcy5jb250ZXh0KTtcbiAgfVxuXG4gIHJlc2V0QnJvd3NlckxvY2F0aW9uKHVybCkge1xuICAgIHRoaXMucGxhY2VSb3V0ZXIucmVzZXRCcm93c2VyTG9jYXRpb24odXJsKTtcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIE5hdmlnYXRpb25TdGF0ZSB7XG5cbiAgZXhwb3J0IGNsYXNzIENvbnRleHQge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgcmVhZG9ubHkgcGxhY2VSb3V0ZXI6IFBsYWNlUm91dGVyLFxuICAgICAgcmVhZG9ubHkgaW50ZXJhY3Rpb25TZXJ2aWNlOiBJbnRlcmFjdGlvblNlcnZpY2UsXG4gICAgICByZWFkb25seSBub3RpZnlTdWNjZXNzOiAoc3VjY2VzczogTmF2aWdhdGlvblN0YXRlKSA9PiB2b2lkKSB7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIElkbGUgZXh0ZW5kcyBOYXZpZ2F0aW9uU3RhdGUge1xuICAgIHJlYWRvbmx5IGlzVHJhbnNpdGlvbmFsID0gZmFsc2U7XG4gICAgcmVhZG9ubHkgc3RhcnRpbmdVcmwgPSBudWxsO1xuICAgIHJlYWRvbmx5IGlzUG9wU3RhdGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGNvbnRleHQ6IENvbnRleHQpIHtcbiAgICAgIHN1cGVyKGNvbnRleHQpO1xuICAgIH1cblxuICAgIG9uUGxhY2VOYXZpZ2F0aW9uU3RhcnQodmlzaXQ6IFZpc2l0LCBpbml0aWFsVXJsOiBzdHJpbmcpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgY29uc3QgbmF2aWdhdGlvblRyYW5zaXRpb24gPSBuZXcgTmF2aWdhdGlvblRyYW5zaXRpb24odGhpcy5jb250ZXh0LCBpbml0aWFsVXJsKTtcbiAgICAgIG5hdmlnYXRpb25UcmFuc2l0aW9uLnN0b3JlVmlzaXQodmlzaXQpO1xuICAgICAgcmV0dXJuIG5hdmlnYXRpb25UcmFuc2l0aW9uO1xuICAgIH1cblxuICAgIG9uUm91dGVyU3RhcnRlZChldmVudDogTmF2aWdhdGlvblN0YXJ0KTogTmF2aWdhdGlvblN0YXRlIHtcblxuICAgICAgLy8gY2FsbGluZyBhbmd1bGFyTG9jYXRpb24uZ28oKSB0byBjbGVhciBiYWNrIHN0YXRlIGNhbiB0cmlnZ2VyIHJvdXRlciBjeWNsZXMgdG8gdGhlIGN1cnJlbnQgdXJsIGlmIHdlIGRvbid0IGlnbm9yZSB0aGVtXG4gICAgICBpZiAoZXZlbnQudXJsID09PSB0aGlzLmN1cnJlbnRSb3V0ZXJVcmwoKSkge1xuICAgICAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYG5hdmlnYXRpb24gc3RhcnRlZCB0byBzYW1lIHVybCAtPiAke2V2ZW50LnVybH1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnBsYWNlUm91dGVyLmhhc0FjdGl2ZUludGVyYWN0aW9uSWRzKGV2ZW50LnVybCkpIHtcbiAgICAgICAgTG9nZ2VyLmdldCh0aGlzKS5pbmZvKGBuYXZpZ2F0aW9uIHN0YXJ0ZWQgd2l0aCBpbnRlcmFjdGlvbiBvdXRsZXQgLT4gJHtldmVudC51cmx9YCk7XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJhY3Rpb25UcmFuc2l0aW9uKHRoaXMuY29udGV4dCwgZXZlbnQudXJsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRyYW5zaXRpb25TdGF0ZUZvcihldmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgb25Qb3BTdGF0ZShldmVudDogTmF2aWdhdGlvblN0YXJ0KTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRyYW5zaXRpb25TdGF0ZUZvcihldmVudCk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TmF2aWdhdGlvblRyYW5zaXRpb24gZXh0ZW5kcyBOYXZpZ2F0aW9uU3RhdGUge1xuICAgIHJlYWRvbmx5IGlzVHJhbnNpdGlvbmFsID0gdHJ1ZTtcbiAgICBwcml2YXRlIGNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzID0gbmV3IE1hcDxQbGFjZUNvbXBvbmVudCwgUGxhY2VDb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyPigpO1xuICAgIHByaXZhdGUgX2ludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0O1xuXG4gICAgY29uc3RydWN0b3IoY29udGV4dDogQ29udGV4dCwgcmVhZG9ubHkgc3RhcnRpbmdVcmw6IHN0cmluZykge1xuICAgICAgc3VwZXIoY29udGV4dCk7XG4gICAgICB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQgPSB0aGlzLmludGVyYWN0aW9uU2VydmljZS5fY3JlYXRlRXhjbHVzaXZlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHQoKTtcbiAgICAgIHRoaXMub25EaXNwb3NlKCgpID0+IHtcbiAgICAgICAgLy8gdGhlIGludGVyYWN0aW9uIGNvbnRleHQgY2FuIGJlIGRldGFjaGVkIGR1cmluZyB0aGUgYmFjayBidXR0b24gY2FuY2VsbGF0aW9uIHN0YXRlIHRyYW5zaXRpb25cbiAgICAgICAgLy8gYXMgdGhlIHRyYW5zaXRpb24gaXMgc3luY2hyb25vdXMgYW5kIGFjdGl2aXR5Q2FuY2VsbGF0aW9uIGlzbid0LiAgT3RoZXJ3aXNlIGRpc3Bvc2Ugd2lsbCBiZVxuICAgICAgICAvLyBjYWxsZWQgYmVmb3JlIHRoZSBjb250ZXh0IGhhcyBiZWVuIGNhbmNlbGxlZC4gIEl0IG1pZ2h0IGJlIHdvcmsgaGF2aW5nIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0XG4gICAgICAgIC8vIGF1dG9tYXRpY2FsbHkgY2FuY2VsIGlmIHRoZSBjb250ZXh0IGlzIGRpc3Bvc2VkIHNvIHdlIGRvbid0IGhhdmUgd29ycnkgYWJvdXQgZGV0YWNoaW5nIGV0Yy5cbiAgICAgICAgaWYgKHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dC5kaXNwb3NlKCk7IC8vIG9yIGRvIHNvbWV0aGluZyBsaWtlIGNhbmNlbEFuZERpc3Bvc2U/XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBpbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQ7XG4gICAgfVxuXG4gICAgb25Sb3V0ZXJTdGFydGVkKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgLy8gYWN0aXZlIHNlc3Npb25zIGNhbiBoYXZlIG1hbnkgY2FuY2VsIHN0YXJ0IGN5Y2xlcyBkdWVcbiAgICAgIC8vIHRvIHBsYWNlIGd1YXJkIHJlZGlyZWN0c1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgb25Sb3V0ZXJFbmQoZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgLy8gbmF2aWdhdGlvbiBzdWNjZWVkZWRcbiAgICAgIHRoaXMuY29udGV4dC5ub3RpZnlTdWNjZXNzKHRoaXMpO1xuICAgICAgcmV0dXJuIG5ldyBJZGxlKHRoaXMuY29udGV4dCk7XG4gICAgfVxuXG4gICAgb25CYWNrQ2xpY2tlZER1cmluZ05hdmlnYXRpb25JbnRlcmFjdGlvbihsb2NhdGlvblRyaWdnZXJVcmw6IHN0cmluZyk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYGJhY2sgYnV0dG9uIHByZXNzZWQgZHVyaW5nIG5hdmlnYXRpb24gc2Vzc2lvbiBpbnRlcmFjdGlvbiBwcm9taXNlYCk7XG4gICAgICAvLyBkZXRhY2ggdGhlIGludGVyYWN0aW9uIGZyb20gdGhlIHNlc3Npb24gc28gaXQgZG9lc24ndCBnZXQgZGlzcG9zZWQgdW50aWwgdGhlIGFjdGl2aXR5IGhhcyBjb21wbGV0ZWQuXG4gICAgICBjb25zdCBuYXZpZ2F0aW9uSW50ZXJhY3Rpb24gPSB0aGlzLmRldGFjaEludGVyYWN0aW9uQ29udGV4dCgpO1xuICAgICAgY29uc3QgeyB3aGVuIH0gPSBEc2wuZGlzcG9zZVdpdGgobmF2aWdhdGlvbkludGVyYWN0aW9uKTtcbiAgICAgIC8vIFRPRE86IEkgbmVlZCB0byBtYWtlIHRoZSBleGNsdXNpdmUgaW50ZXJhY3Rpb24gY29udGV4dCBkaXNhbGxvdyBuZXN0ZWQgYWN0aXZpdGllcyBvclxuICAgICAgLy8gICAgICAgdGhhdCB3b3VsZCBtZXNzIHRoaW5ncyB1cCBlbnRpcmVseS4gT3IsIGNhbiBJIGRvIGEgY29udGV4dC5hYm9ydEFsbCgpLnRoZW4oLi4pXG4gICAgICBuYXZpZ2F0aW9uSW50ZXJhY3Rpb24uY2FuY2VsQWN0aXZlQWN0aXZpdHkoKS50aGVuKCgpID0+IHtcbiAgICAgICAgbmF2aWdhdGlvbkludGVyYWN0aW9uLmRpc3Bvc2UoKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBDYW5jZWxsZWREdXJpbmdOYXZpZ2F0aW9uSW50ZXJhY3Rpb24odGhpcy5jb250ZXh0LFxuICAgICAgICB0aGlzLnN0YXJ0aW5nVXJsLFxuICAgICAgICB0aGlzLmlzUG9wU3RhdGUsXG4gICAgICAgIGxvY2F0aW9uVHJpZ2dlclVybCk7XG4gICAgfVxuXG4gICAgLy8gQFRyYWNlKClcbiAgICBhc3luYyBjYW5EZWFjdGl2YXRlUGxhY2UoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFVybDogVXJsU25hcHNob3QsIG5leHRVcmw6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICAgIC8vIGxvb2t1cCB0aGUgaGFuZGxlciBhbmQgY3JlYXRlIGl0IGlmIHdlJ3ZlIG5vdCBzZWVuIGl0IHlldFxuICAgICAgbGV0IGhhbmRsZXIgPSB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLmdldChjb21wb25lbnQpO1xuICAgICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICAgIGNvbnN0IGlzUHJpbWFyeUhhbmRsZXIgPSB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNpemUgPT09IDA7IC8vIG9ubHkgcHJpbWFyeSBoYW5kbGVyIGNhbmNlbHMgdGhlIGFwcCBtb2RlbCBpbnRlcmF0aW9uc1xuICAgICAgICBoYW5kbGVyID0gbmV3IFBsYWNlQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcihjb21wb25lbnQsIHRoaXMsIGlzUHJpbWFyeUhhbmRsZXIpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNldChjb21wb25lbnQsIGhhbmRsZXIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhhbmRsZXIuY2FuRGVhY3RpdmF0ZShjdXJyZW50VXJsLCBuZXh0VXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRldGFjaEludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dDtcbiAgICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCA9IG51bGw7XG4gICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgTmF2aWdhdGlvblRyYW5zaXRpb24gZXh0ZW5kcyBBYnN0cmFjdE5hdmlnYXRpb25UcmFuc2l0aW9uIHtcbiAgICByZWFkb25seSBpc1BvcFN0YXRlID0gZmFsc2U7XG5cbiAgICBvblJvdXRlckNhbmNlbGxlZChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBvblJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgLy8gbmF2aWdhdGlvbiB3YXMgYWJvcnRlZC5cbiAgICAgIHJldHVybiBuZXcgSWRsZSh0aGlzLmNvbnRleHQpO1xuICAgIH1cblxuICAgIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfShzdGFydGluZ1VybDogJHt0aGlzLnN0YXJ0aW5nVXJsfSlgO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBQb3BTdGF0ZVRyYW5zaXRpb24gZXh0ZW5kcyBBYnN0cmFjdE5hdmlnYXRpb25UcmFuc2l0aW9uIHtcbiAgICByZWFkb25seSBpc1BvcFN0YXRlID0gdHJ1ZTtcblxuICAgIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIC8vIEFuZ3VsYXIgZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdXJsIHdoZW4gYSBndWFyZCBjYW5jZWxzIHRoZSBiYWNrIGJ1dHRvbi5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzU4NiNpc3N1ZWNvbW1lbnQtNDMyNzk1NzIwXG4gICAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oJ1dPUkstQVJPVU5EOiBVcGRhdGluZyBicm93c2VyIGxvY2F0aW9uIGFmdGVyIHBvcCBzdGF0ZSAtIHNlZSBhbmd1bGFyIGlzc3VlICMxMzU4NicpO1xuICAgICAgdGhpcy5yZXNldEJyb3dzZXJMb2NhdGlvbih0aGlzLnN0YXJ0aW5nVXJsKTtcbiAgICAgIHJldHVybiBuZXcgSWRsZSh0aGlzLmNvbnRleHQpO1xuICAgIH1cblxuICAgIG9uUm91dGVyRXJyb3IoZXZlbnQ6IE5hdmlnYXRpb25FcnJvcik6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICAvLyBuYXZpZ2F0aW9uIHdhcyBhYm9ydGVkLlxuICAgICAgaWYgKHRoaXMuY3VycmVudFJvdXRlclVybCgpICE9PSB0aGlzLnN0YXJ0aW5nVXJsKSB7XG4gICAgICAgIC8vIEFuZ3VsYXIgZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdXJsIHdoZW4gYSBndWFyZCBjYW5jZWxzIHRoZSBiYWNrIGJ1dHRvbi5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzNTg2I2lzc3VlY29tbWVudC00MzI3OTU3MjBcbiAgICAgICAgTG9nZ2VyLmdldCh0aGlzKS5pbmZvKCdXT1JLLUFST1VORDogVXBkYXRpbmcgYnJvd3NlciBsb2NhdGlvbiBhZnRlciBwb3Agc3RhdGUgLSBzZWUgYW5ndWxhciBpc3N1ZSAjMTM1ODYnKTtcbiAgICAgICAgdGhpcy5yZXNldEJyb3dzZXJMb2NhdGlvbih0aGlzLnN0YXJ0aW5nVXJsKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgSWRsZSh0aGlzLmNvbnRleHQpO1xuICAgIH1cblxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIElkbGVEdXJpbmdJbnRlcmFjdGlvbiBleHRlbmRzIE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgcmVhZG9ubHkgaXNUcmFuc2l0aW9uYWwgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc1BvcFN0YXRlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb250ZXh0OiBDb250ZXh0LCByZWFkb25seSBzdGFydGluZ1VybDogc3RyaW5nKSB7XG4gICAgICBzdXBlcihjb250ZXh0KTtcbiAgICB9XG5cbiAgICBvblBsYWNlTmF2aWdhdGlvblN0YXJ0KHZpc2l0OiBWaXNpdCwgaW5pdGlhbFVybDogc3RyaW5nKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIGNvbnN0IG5hdmlnYXRpb25UcmFuc2l0aW9uID0gbmV3IEludGVyYWN0aW9uVHJhbnNpdGlvbih0aGlzLmNvbnRleHQsIGluaXRpYWxVcmwpO1xuICAgICAgbmF2aWdhdGlvblRyYW5zaXRpb24uc3RvcmVWaXNpdCh2aXNpdCk7XG4gICAgICByZXR1cm4gbmF2aWdhdGlvblRyYW5zaXRpb247XG4gICAgfVxuXG4gICAgQFRyYWNlKClcbiAgICBvblJvdXRlclN0YXJ0ZWQoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICByZXR1cm4gbmV3IEludGVyYWN0aW9uVHJhbnNpdGlvbih0aGlzLmNvbnRleHQsIGV2ZW50LnVybCk7XG4gICAgfVxuXG4gICAgQFRyYWNlKClcbiAgICBvblBvcFN0YXRlKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgcmV0dXJuIG5ldyBJbnRlcmFjdGlvblBvcFN0YXRlVHJhbnNpdGlvbih0aGlzLmNvbnRleHQsIGV2ZW50LnVybCk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0SW50ZXJhY3Rpb25UcmFuc2l0aW9uIGV4dGVuZHMgQWJzdHJhY3ROYXZpZ2F0aW9uVHJhbnNpdGlvbiB7XG4gICAgcmVhZG9ubHkgaXNUcmFuc2l0aW9uYWwgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoY29udGV4dDogQ29udGV4dCwgcmVhZG9ubHkgc3RhcnRpbmdVcmw6IHN0cmluZykge1xuICAgICAgc3VwZXIoY29udGV4dCwgc3RhcnRpbmdVcmwpO1xuICAgIH1cblxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgc3RhdGUgZXhpc3RzIHRvIGhhbmRsZSBhbGwgZXZlbnRzIHdoaWxlIGFueSBraW5kIG9mIG5hdmlnYXRpb24gaXMgaW4gcHJvZ3Jlc3MuICBUaGF0IHdheSBhbGwgb3RoZXIgc3RhdGVzIGNhblxuICAgKiBoYXBwaWx5IGlnbm9yZSBpbnRlcmFjdGlvbiBjb250ZXh0cy5cbiAgICovXG4gIGV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvblRyYW5zaXRpb24gZXh0ZW5kcyBBYnN0cmFjdEludGVyYWN0aW9uVHJhbnNpdGlvbiB7XG4gICAgcmVhZG9ubHkgaXNQb3BTdGF0ZSA9IGZhbHNlO1xuXG4gICAgb25Sb3V0ZXJDYW5jZWxsZWQoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgaWYgKHRoaXMuY29udGV4dC5pbnRlcmFjdGlvblNlcnZpY2UuaXNBY3RpdmUoKSkge1xuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbklkcyA9IHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcy52YWx1ZTtcbiAgICAgICAgdGhpcy5yZXNldEJyb3dzZXJMb2NhdGlvbih0aGlzLnBsYWNlUm91dGVyLnBhcnNlVXJsKHRoaXMuc3RhcnRpbmdVcmwpLnVwZGF0ZUludGVyYWN0aW9uSWRzKGludGVyYWN0aW9uSWRzKS51cmwpO1xuICAgICAgICByZXR1cm4gbmV3IElkbGVEdXJpbmdJbnRlcmFjdGlvbih0aGlzLmNvbnRleHQsIHRoaXMuc3RhcnRpbmdVcmwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJZGxlKHRoaXMuY29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgb25Sb3V0ZXJFcnJvcihldmVudDogTmF2aWdhdGlvbkVycm9yKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIC8vIG5hdmlnYXRpb24gd2FzIGFib3J0ZWQuXG4gICAgICByZXR1cm4gbmV3IElkbGVEdXJpbmdJbnRlcmFjdGlvbih0aGlzLmNvbnRleHQsIHRoaXMuc3RhcnRpbmdVcmwpO1xuICAgIH1cblxuICAgIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIGlmICh0aGlzLmNvbnRleHQuaW50ZXJhY3Rpb25TZXJ2aWNlLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJZGxlRHVyaW5nSW50ZXJhY3Rpb24odGhpcy5jb250ZXh0LCB0aGlzLnN0YXJ0aW5nVXJsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgSWRsZSh0aGlzLmNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHN0YXRlIGV4aXN0cyB0byBoYW5kbGUgYWxsIGV2ZW50cyB3aGlsZSBhbnkga2luZCBvZiBuYXZpZ2F0aW9uIGlzIGluIHByb2dyZXNzLiAgVGhhdCB3YXkgYWxsIG90aGVyIHN0YXRlcyBjYW5cbiAgICogaGFwcGlseSBpZ25vcmUgaW50ZXJhY3Rpb24gY29udGV4dHMuXG4gICAqL1xuICBleHBvcnQgY2xhc3MgSW50ZXJhY3Rpb25Qb3BTdGF0ZVRyYW5zaXRpb24gZXh0ZW5kcyBBYnN0cmFjdEludGVyYWN0aW9uVHJhbnNpdGlvbiB7XG4gICAgcmVhZG9ubHkgaXNQb3BTdGF0ZSA9IHRydWU7XG5cbiAgICBvblJvdXRlckNhbmNlbGxlZChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICBpZiAodGhpcy5pbnRlcmFjdGlvblNlcnZpY2UuaXNBY3RpdmUoKSkge1xuICAgICAgICBjb25zdCBpbnRlcmFjdGlvbklkcyA9IHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcy52YWx1ZTtcbiAgICAgICAgdGhpcy5yZXNldEJyb3dzZXJMb2NhdGlvbih0aGlzLnBsYWNlUm91dGVyLnBhcnNlVXJsKHRoaXMuc3RhcnRpbmdVcmwpLnVwZGF0ZUludGVyYWN0aW9uSWRzKGludGVyYWN0aW9uSWRzKS51cmwpO1xuICAgICAgICByZXR1cm4gbmV3IElkbGVEdXJpbmdJbnRlcmFjdGlvbih0aGlzLmNvbnRleHQsIHRoaXMuc3RhcnRpbmdVcmwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJZGxlKHRoaXMuY29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgb25Sb3V0ZXJFbmQoZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgaWYgKHRoaXMuY29udGV4dC5pbnRlcmFjdGlvblNlcnZpY2UuaXNBY3RpdmUoKSkge1xuICAgICAgICByZXR1cm4gbmV3IElkbGVEdXJpbmdJbnRlcmFjdGlvbih0aGlzLmNvbnRleHQsIHRoaXMuc3RhcnRpbmdVcmwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJZGxlKHRoaXMuY29udGV4dCk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuXG4gIGV4cG9ydCBjbGFzcyBDYW5jZWxsZWREdXJpbmdOYXZpZ2F0aW9uSW50ZXJhY3Rpb24gZXh0ZW5kcyBOYXZpZ2F0aW9uU3RhdGUge1xuXG4gICAgcmVhZG9ubHkgaXNQb3BTdGF0ZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgZ290UG9wU3RhdGVXaXRoTGVhdmluZ1VybCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoY29udGV4dDogQ29udGV4dCxcbiAgICAgICAgICAgICAgICByZWFkb25seSBzdGFydGluZ1VybDogc3RyaW5nLFxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IHN0YXJ0aW5nRXZlbnRXYXNBUG9wU3RhdGU6IGJvb2xlYW4sXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgbG9jYXRpb25DaGFuZ2VUcmlnZ2VyVXJsOiBzdHJpbmcpIHtcbiAgICAgIHN1cGVyKGNvbnRleHQpO1xuICAgIH1cblxuICAgIGdldCBpc1RyYW5zaXRpb25hbCgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIG9uUm91dGVyU3RhcnRlZChldmVudDogTmF2aWdhdGlvblN0YXJ0KTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIHJldHVybiB0aGlzLmlnbm9yZShldmVudCk7XG4gICAgfVxuXG4gICAgQFRyYWNlKClcbiAgICBvblJvdXRlckNhbmNlbGxlZChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICAvLyBEZXBlbmRpbmcgb24gdGhlIHN0YXRlIG9mIHRoZSByb3V0ZXIgYW5kIHdoYXQgd2FzIGRvbmUgd2UgZ2V0IGEgZGlmZmVyZW50XG4gICAgICAvLyBzZXF1ZW5jZSBvZiBldmVudHMuICBJLmUuICBJZiB0aGV5IGp1c3QgY2xpY2tlZCBhIGxpbmsgd2UnbGwgZ2V0IGEgY2FuY2VsXG4gICAgICAvLyB3aXRoIHRoZSBsb2NhdGlvbkNoYW5nZVRyaWdnZXJVcmwgYXMgdGhlIGZpbmFsIGV2ZW50LiBIb3dldmVyIHRoZSB1c2VyXG4gICAgICAvLyBzdGFydGVkIHRoZSBpbml0aWFsIG5hdmlnYXRpb24gd2l0aCBhIHBvcCBzdGF0ZSB0aGVuIHdlJ2xsIGdldCBvbmUgb2ZcbiAgICAgIC8vIHRob3NlIHdpdGggdGhlIGxvY2F0aW9uQ2hhbmdlVHJpZ2dlclVybCBidXQgbm8gY2FuY2VsIGV2ZW50IHdpdGggaXQuXG4gICAgICByZXR1cm4gdGhpcy5nb3RQb3BTdGF0ZVdpdGhMZWF2aW5nVXJsIHx8IHRoaXMubG9jYXRpb25DaGFuZ2VUcmlnZ2VyVXJsID09PSBldmVudC51cmwgPyB0aGlzLmNyZWF0ZUlkbGVTdGF0ZSgpIDogdGhpcy5pZ25vcmUoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIHJldHVybiB0aGlzLmlnbm9yZShldmVudCk7XG4gICAgfVxuXG4gICAgb25Sb3V0ZXJFcnJvcihldmVudDogTmF2aWdhdGlvbkVycm9yKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIHJldHVybiB0aGlzLmlnbm9yZShldmVudCk7XG4gICAgfVxuXG4gICAgb25Qb3BTdGF0ZShldmVudDogTmF2aWdhdGlvblN0YXJ0KTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIHRoaXMuZ290UG9wU3RhdGVXaXRoTGVhdmluZ1VybCA9IHRoaXMuZ290UG9wU3RhdGVXaXRoTGVhdmluZ1VybCB8fCBldmVudC51cmwgPT09IHRoaXMubG9jYXRpb25DaGFuZ2VUcmlnZ2VyVXJsO1xuICAgICAgcmV0dXJuIHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgICB9XG5cbiAgICAvLyBAVHJhY2UoKVxuICAgIGFzeW5jIGNhbkRlYWN0aXZhdGVQbGFjZShjb21wb25lbnQ6IFBsYWNlQ29tcG9uZW50LCBjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFVybDogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4gfCBVcmxTbmFwc2hvdD4ge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlnbm9yZShldmVudDogUm91dGVyRXZlbnQsIHJlYXNvbj86IHN0cmluZyk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICByZWFzb24gPSByZWFzb24gPyBgIC0+ICR7cmVhc29ufWAgOiAnJztcbiAgICAgIExvZ2dlci5nZXQodGhpcykuaW5mbyhgaWdub3Jpbmcgcm91dGVyIGV2ZW50JHtyZWFzb259OiAke2V2ZW50LmNvbnN0cnVjdG9yLm5hbWV9IC0+ICR7ZXZlbnQudXJsfWApO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9KGlzSWRsOiAke3RoaXMuaWRsZX0sIHN0YXJ0aW5nVXJsOiAke3RoaXMuc3RhcnRpbmdVcmx9LCBsb2NhdGlvbkNoYW5nZVRyaWdnZXJVcmw6JHt0aGlzLmxvY2F0aW9uQ2hhbmdlVHJpZ2dlclVybH0pYDtcbiAgICB9XG5cbiAgfVxufVxuIl19
1032
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjb29sb24vYW5ndWxhci11aS1wb3dlcnVwcy8iLCJzb3VyY2VzIjpbImxpYi9wbGFjZS9ndWFyZHMvbmF2aWdhdGlvbi1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBZSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pILE9BQU8sRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVE1RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQUUzRjs7OztJQUE4QywyQ0FBZ0I7SUFRNUQseUJBQStCLE9BQWdDO1FBQS9ELFlBQ0UsaUJBQU8sU0FDUjtRQUY4QixhQUFPLEdBQVAsT0FBTyxDQUF5QjtRQU52RCxhQUFPLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7O0lBUXBELENBQUM7SUFFRCxzQkFBSSxpQ0FBSTs7OztRQUFSO1lBQ0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQUVELHNCQUFJLGlDQUFJOzs7O1FBQVI7WUFDRSxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM5QixDQUFDOzs7T0FBQTtJQUVELHNCQUFJLHdDQUFXOzs7O1FBQWY7WUFDRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ2xDLENBQUM7OztPQUFBO0lBRUQsc0JBQUksK0NBQWtCOzs7O1FBQXRCO1lBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1FBQ3pDLENBQUM7OztPQUFBO0lBRUQsc0JBQUksK0NBQWtCOzs7O1FBQXRCO1lBQ0UsT0FBTyxJQUFJLENBQUM7UUFDZCxD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O1FBQzVCLHlFQUEyQzs7UUFDM0Msd0VBQXlDOztBQW1EekQsQ0FBQyxFQTFUZ0IsZUFBZSxLQUFmLGVBQWUsUUEwVC9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF2aWdhdGlvbkNhbmNlbCwgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkVycm9yLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlckV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IERzbCwgR2FyYmFnZUNvbGxlY3RvciwgbGFuZywgTG9nZ2VyLCBUcmFjZSB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IEludGVyYWN0aW9uQ29udGV4dCB9IGZyb20gJy4uLy4uL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHsgSW50ZXJhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJhY3Rpb24vc2VydmljZXMvaW50ZXJhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBQbGFjZUNvbXBvbmVudCB9IGZyb20gJy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbGFjZURlZmluaXRpb24gfSBmcm9tICcuLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7IFBsYWNlUm91dGVyIH0gZnJvbSAnLi4vcGxhY2Utcm91dGVyJztcbmltcG9ydCB7IFVybFNuYXBzaG90IH0gZnJvbSAnLi4vdXJsLXNuYXBzaG90JztcbmltcG9ydCB7IFZpc2l0IH0gZnJvbSAnLi4vdmlzaXQnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyIH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXInO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmF2aWdhdGlvblN0YXRlIGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgcHJpdmF0ZSBfdmlzaXRzID0gbmV3IE1hcDxQbGFjZURlZmluaXRpb24sIFZpc2l0PigpO1xuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzVHJhbnNpdGlvbmFsOiBib29sZWFuO1xuICBhYnN0cmFjdCByZWFkb25seSBzdGFydGluZ1VybDogc3RyaW5nO1xuICBhYnN0cmFjdCByZWFkb25seSBpc1BvcFN0YXRlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBjb250ZXh0OiBOYXZpZ2F0aW9uU3RhdGUuQ29udGV4dCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XG4gIH1cblxuICBnZXQgaWRsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMuaXNUcmFuc2l0aW9uYWw7XG4gIH1cblxuICBnZXQgcGxhY2VSb3V0ZXIoKTogUGxhY2VSb3V0ZXIge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQucGxhY2VSb3V0ZXI7XG4gIH1cblxuICBnZXQgaW50ZXJhY3Rpb25TZXJ2aWNlKCk6IEludGVyYWN0aW9uU2VydmljZSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5pbnRlcmFjdGlvblNlcnZpY2U7XG4gIH1cblxuICBnZXQgaW50ZXJhY3Rpb25Db250ZXh0KCk6IEludGVyYWN0aW9uQ29udGV4dCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdG9yZVZpc2l0KHZpc2l0OiBWaXNpdCkge1xuICAgIHRoaXMuX3Zpc2l0cy5zZXQodmlzaXQucGxhY2VEZWZpbml0aW9uLCB2aXNpdCk7XG4gIH1cblxuICBnZXRWaXNpdEZvcihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2l0cy5nZXQocGxhY2VEZWYpO1xuICB9XG5cbiAgb25QbGFjZU5hdmlnYXRpb25TdGFydCh2aXNpdDogVmlzaXQsIGluaXRpYWxVcmw6IHN0cmluZyk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oJ29uUGxhY2VOYXZpZ2F0aW9uU3RhcnQnKTtcbiAgfVxuXG4gIG9uUG9wU3RhdGUoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25Sb3V0ZXJTdGFydGVkKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvblJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgIHJldHVybiB0aGlzLmlsbGVnYWxUcmFuc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbihldmVudCk7XG4gIH1cblxuICBvbkJhY2tDbGlja2VkRHVyaW5nTmF2aWdhdGlvbkludGVyYWN0aW9uKG5ld1VybDogc3RyaW5nKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5pbGxlZ2FsVHJhbnNpdGlvbignb25CYWNrQ2xpY2tlZER1cmluZ05hdmlnYXRpb25JbnRlcmFjdGlvbicpO1xuICB9XG5cbiAgYXN5bmMgY2FuRGVhY3RpdmF0ZVBsYWNlKGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIGN1cnJlbnRVcmw6IFVybFNuYXBzaG90LCBuZXh0VXJsOiBVcmxTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbiB8IFVybFNuYXBzaG90PiB7XG4gICAgcmV0dXJuIHRoaXMuaWxsZWdhbFRyYW5zaXRpb24oJ2NhbkRlYWN0aXZhdGVQbGFjZScpO1xuICB9XG5cbiAgZ2V0VmlzaXRzKCk6IFZpc2l0W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuX3Zpc2l0cy52YWx1ZXMoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaWxsZWdhbFRyYW5zaXRpb248Uj4obWVzc2FnZTogc3RyaW5nIHwgUm91dGVyRXZlbnQpOiBSIHtcbiAgICByZXR1cm4gbGFuZy5pbGxlZ2FsU3RhdGUoYCR7bWVzc2FnZS50b1N0cmluZygpfSBub3Qgc3VwcG9ydGVkIGJ5ICR7dGhpcy50b1N0cmluZygpfWApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRSb3V0ZXJVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZVJvdXRlci5nZXRDdXJyZW50Um91dGVyVXJsKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlVHJhbnNpdGlvblN0YXRlRm9yKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICBjb25zdCBwb3BzdGF0ZSA9IGV2ZW50Lm5hdmlnYXRpb25UcmlnZ2VyID09PSAncG9wc3RhdGUnO1xuICAgIHJldHVybiBwb3BzdGF0ZSA/XG4gICAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZS5pc0FjdGl2ZSgpID9cbiAgICAgICAgbmV3IE5hdmlnYXRpb25TdGF0ZS5JbnRlcmFjdGlvblBvcFN0YXRlVHJhbnNpdGlvbih0aGlzLmNvbnRleHQsIHRoaXMuY3VycmVudFJvdXRlclVybCgpKSA6XG4gICAgICAgIG5ldyBOYXZpZ2F0aW9uU3RhdGUuUG9wU3RhdGVUcmFuc2l0aW9uKHRoaXMuY29udGV4dCwgdGhpcy5jdXJyZW50Um91dGVyVXJsKCkpXG4gICAgICA6XG4gICAgICB0aGlzLmludGVyYWN0aW9uU2VydmljZS5pc0FjdGl2ZSgpID9cbiAgICAgICAgbmV3IE5hdmlnYXRpb25TdGF0ZS5JbnRlcmFjdGlvblRyYW5zaXRpb24odGhpcy5jb250ZXh0LCB0aGlzLmN1cnJlbnRSb3V0ZXJVcmwoKSkgOlxuICAgICAgICBuZXcgTmF2aWdhdGlvblN0YXRlLk5hdmlnYXRpb25UcmFuc2l0aW9uKHRoaXMuY29udGV4dCwgdGhpcy5jdXJyZW50Um91dGVyVXJsKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUlkbGVTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2UuaXNBY3RpdmUoKSA/XG4gICAgICBuZXcgTmF2aWdhdGlvblN0YXRlLklkbGVEdXJpbmdJbnRlcmFjdGlvbih0aGlzLmNvbnRleHQsIHRoaXMuY3VycmVudFJvdXRlclVybCgpKSA6XG4gICAgICBuZXcgTmF2aWdhdGlvblN0YXRlLklkbGUodGhpcy5jb250ZXh0KTtcbiAgfVxuXG4gIHJlc2V0QnJvd3NlckxvY2F0aW9uKHVybCkge1xuICAgIHRoaXMucGxhY2VSb3V0ZXIucmVzZXRCcm93c2VyTG9jYXRpb24odXJsKTtcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZTtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIE5hdmlnYXRpb25TdGF0ZSB7XG5cbiAgZXhwb3J0IGNsYXNzIENvbnRleHQge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgcmVhZG9ubHkgcGxhY2VSb3V0ZXI6IFBsYWNlUm91dGVyLFxuICAgICAgcmVhZG9ubHkgaW50ZXJhY3Rpb25TZXJ2aWNlOiBJbnRlcmFjdGlvblNlcnZpY2UsXG4gICAgICByZWFkb25seSBub3RpZnlTdWNjZXNzOiAoc3VjY2VzczogTmF2aWdhdGlvblN0YXRlKSA9PiB2b2lkKSB7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIElkbGUgZXh0ZW5kcyBOYXZpZ2F0aW9uU3RhdGUge1xuICAgIHJlYWRvbmx5IGlzVHJhbnNpdGlvbmFsID0gZmFsc2U7XG4gICAgcmVhZG9ubHkgc3RhcnRpbmdVcmwgPSBudWxsO1xuICAgIHJlYWRvbmx5IGlzUG9wU3RhdGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGNvbnRleHQ6IENvbnRleHQpIHtcbiAgICAgIHN1cGVyKGNvbnRleHQpO1xuICAgIH1cblxuICAgIG9uUGxhY2VOYXZpZ2F0aW9uU3RhcnQodmlzaXQ6IFZpc2l0LCBpbml0aWFsVXJsOiBzdHJpbmcpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgY29uc3QgbmF2aWdhdGlvblRyYW5zaXRpb24gPSBuZXcgTmF2aWdhdGlvblRyYW5zaXRpb24odGhpcy5jb250ZXh0LCBpbml0aWFsVXJsKTtcbiAgICAgIG5hdmlnYXRpb25UcmFuc2l0aW9uLnN0b3JlVmlzaXQodmlzaXQpO1xuICAgICAgcmV0dXJuIG5hdmlnYXRpb25UcmFuc2l0aW9uO1xuICAgIH1cblxuICAgIG9uUm91dGVyU3RhcnRlZChldmVudDogTmF2aWdhdGlvblN0YXJ0KTogTmF2aWdhdGlvblN0YXRlIHtcblxuICAgICAgLy8gY2FsbGluZyBhbmd1bGFyTG9jYXRpb24uZ28oKSB0byBjbGVhciBiYWNrIHN0YXRlIGNhbiB0cmlnZ2VyIHJvdXRlciBjeWNsZXMgdG8gdGhlIGN1cnJlbnQgdXJsIGlmIHdlIGRvbid0IGlnbm9yZSB0aGVtXG4gICAgICBpZiAoZXZlbnQudXJsID09PSB0aGlzLmN1cnJlbnRSb3V0ZXJVcmwoKSkge1xuICAgICAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYG5hdmlnYXRpb24gc3RhcnRlZCB0byBzYW1lIHVybCAtPiAke2V2ZW50LnVybH1gKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnBsYWNlUm91dGVyLmhhc0FjdGl2ZUludGVyYWN0aW9uSWRzKGV2ZW50LnVybCkpIHtcbiAgICAgICAgTG9nZ2VyLmdldCh0aGlzKS5pbmZvKGBuYXZpZ2F0aW9uIHN0YXJ0ZWQgd2l0aCBpbnRlcmFjdGlvbiBvdXRsZXQgLT4gJHtldmVudC51cmx9YCk7XG4gICAgICAgIHJldHVybiBuZXcgSW50ZXJhY3Rpb25UcmFuc2l0aW9uKHRoaXMuY29udGV4dCwgZXZlbnQudXJsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRyYW5zaXRpb25TdGF0ZUZvcihldmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgb25Qb3BTdGF0ZShldmVudDogTmF2aWdhdGlvblN0YXJ0KTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRyYW5zaXRpb25TdGF0ZUZvcihldmVudCk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TmF2aWdhdGlvblRyYW5zaXRpb24gZXh0ZW5kcyBOYXZpZ2F0aW9uU3RhdGUge1xuICAgIHJlYWRvbmx5IGlzVHJhbnNpdGlvbmFsID0gdHJ1ZTtcbiAgICBwcml2YXRlIGNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzID0gbmV3IE1hcDxQbGFjZUNvbXBvbmVudCwgUGxhY2VDb21wb25lbnREZWFjdGl2YXRpb25IYW5kbGVyPigpO1xuICAgIHByaXZhdGUgX2ludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0O1xuXG4gICAgY29uc3RydWN0b3IoY29udGV4dDogQ29udGV4dCwgcmVhZG9ubHkgc3RhcnRpbmdVcmw6IHN0cmluZykge1xuICAgICAgc3VwZXIoY29udGV4dCk7XG4gICAgICB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQgPSB0aGlzLmludGVyYWN0aW9uU2VydmljZS5fY3JlYXRlRXhjbHVzaXZlTW9kYWxJbnRlcmFjdGlvbkNvbnRleHQoKTtcbiAgICAgIHRoaXMub25EaXNwb3NlKCgpID0+IHtcbiAgICAgICAgLy8gdGhlIGludGVyYWN0aW9uIGNvbnRleHQgY2FuIGJlIGRldGFjaGVkIGR1cmluZyB0aGUgYmFjayBidXR0b24gY2FuY2VsbGF0aW9uIHN0YXRlIHRyYW5zaXRpb25cbiAgICAgICAgLy8gYXMgdGhlIHRyYW5zaXRpb24gaXMgc3luY2hyb25vdXMgYW5kIGFjdGl2aXR5Q2FuY2VsbGF0aW9uIGlzbid0LiAgT3RoZXJ3aXNlIGRpc3Bvc2Ugd2lsbCBiZVxuICAgICAgICAvLyBjYWxsZWQgYmVmb3JlIHRoZSBjb250ZXh0IGhhcyBiZWVuIGNhbmNlbGxlZC4gIEl0IG1pZ2h0IGJlIHdvcmsgaGF2aW5nIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0XG4gICAgICAgIC8vIGF1dG9tYXRpY2FsbHkgY2FuY2VsIGlmIHRoZSBjb250ZXh0IGlzIGRpc3Bvc2VkIHNvIHdlIGRvbid0IGhhdmUgd29ycnkgYWJvdXQgZGV0YWNoaW5nIGV0Yy5cbiAgICAgICAgaWYgKHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCkge1xuICAgICAgICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dC5kaXNwb3NlKCk7IC8vIG9yIGRvIHNvbWV0aGluZyBsaWtlIGNhbmNlbEFuZERpc3Bvc2U/XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBpbnRlcmFjdGlvbkNvbnRleHQoKTogSW50ZXJhY3Rpb25Db250ZXh0IHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGlvbkNvbnRleHQ7XG4gICAgfVxuXG4gICAgb25Sb3V0ZXJTdGFydGVkKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgLy8gYWN0aXZlIHNlc3Npb25zIGNhbiBoYXZlIG1hbnkgY2FuY2VsIHN0YXJ0IGN5Y2xlcyBkdWVcbiAgICAgIC8vIHRvIHBsYWNlIGd1YXJkIHJlZGlyZWN0c1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgb25Sb3V0ZXJFbmQoZXZlbnQ6IE5hdmlnYXRpb25FbmQpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgLy8gbmF2aWdhdGlvbiBzdWNjZWVkZWRcbiAgICAgIHRoaXMuY29udGV4dC5ub3RpZnlTdWNjZXNzKHRoaXMpO1xuICAgICAgcmV0dXJuIG5ldyBJZGxlKHRoaXMuY29udGV4dCk7XG4gICAgfVxuXG4gICAgb25CYWNrQ2xpY2tlZER1cmluZ05hdmlnYXRpb25JbnRlcmFjdGlvbihsb2NhdGlvblRyaWdnZXJVcmw6IHN0cmluZyk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYGJhY2sgYnV0dG9uIHByZXNzZWQgZHVyaW5nIG5hdmlnYXRpb24gc2Vzc2lvbiBpbnRlcmFjdGlvbiBwcm9taXNlYCk7XG4gICAgICAvLyBkZXRhY2ggdGhlIGludGVyYWN0aW9uIGZyb20gdGhlIHNlc3Npb24gc28gaXQgZG9lc24ndCBnZXQgZGlzcG9zZWQgdW50aWwgdGhlIGFjdGl2aXR5IGhhcyBjb21wbGV0ZWQuXG4gICAgICBjb25zdCBuYXZpZ2F0aW9uSW50ZXJhY3Rpb24gPSB0aGlzLmRldGFjaEludGVyYWN0aW9uQ29udGV4dCgpO1xuICAgICAgY29uc3QgeyB3aGVuIH0gPSBEc2wuZGlzcG9zZVdpdGgobmF2aWdhdGlvbkludGVyYWN0aW9uKTtcbiAgICAgIC8vIFRPRE86IEkgbmVlZCB0byBtYWtlIHRoZSBleGNsdXNpdmUgaW50ZXJhY3Rpb24gY29udGV4dCBkaXNhbGxvdyBuZXN0ZWQgYWN0aXZpdGllcyBvclxuICAgICAgLy8gICAgICAgdGhhdCB3b3VsZCBtZXNzIHRoaW5ncyB1cCBlbnRpcmVseS4gT3IsIGNhbiBJIGRvIGEgY29udGV4dC5hYm9ydEFsbCgpLnRoZW4oLi4pXG4gICAgICBuYXZpZ2F0aW9uSW50ZXJhY3Rpb24uY2FuY2VsQWN0aXZlQWN0aXZpdHkoKS50aGVuKCgpID0+IHtcbiAgICAgICAgbmF2aWdhdGlvbkludGVyYWN0aW9uLmRpc3Bvc2UoKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBDYW5jZWxsZWREdXJpbmdOYXZpZ2F0aW9uSW50ZXJhY3Rpb24odGhpcy5jb250ZXh0LFxuICAgICAgICB0aGlzLnN0YXJ0aW5nVXJsLFxuICAgICAgICB0aGlzLmlzUG9wU3RhdGUsXG4gICAgICAgIGxvY2F0aW9uVHJpZ2dlclVybCk7XG4gICAgfVxuXG4gICAgLy8gQFRyYWNlKClcbiAgICBhc3luYyBjYW5EZWFjdGl2YXRlUGxhY2UoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFVybDogVXJsU25hcHNob3QsIG5leHRVcmw6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICAgIC8vIGxvb2t1cCB0aGUgaGFuZGxlciBhbmQgY3JlYXRlIGl0IGlmIHdlJ3ZlIG5vdCBzZWVuIGl0IHlldFxuICAgICAgbGV0IGhhbmRsZXIgPSB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLmdldChjb21wb25lbnQpO1xuICAgICAgaWYgKCFoYW5kbGVyKSB7XG4gICAgICAgIGNvbnN0IGlzUHJpbWFyeUhhbmRsZXIgPSB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNpemUgPT09IDA7IC8vIG9ubHkgcHJpbWFyeSBoYW5kbGVyIGNhbmNlbHMgdGhlIGFwcCBtb2RlbCBpbnRlcmF0aW9uc1xuICAgICAgICBoYW5kbGVyID0gbmV3IFBsYWNlQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlcihjb21wb25lbnQsIHRoaXMsIGlzUHJpbWFyeUhhbmRsZXIpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudERlYWN0aXZhdGlvbkhhbmRsZXJzLnNldChjb21wb25lbnQsIGhhbmRsZXIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhhbmRsZXIuY2FuRGVhY3RpdmF0ZShjdXJyZW50VXJsLCBuZXh0VXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRldGFjaEludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dDtcbiAgICAgIHRoaXMuX2ludGVyYWN0aW9uQ29udGV4dCA9IG51bGw7XG4gICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgTmF2aWdhdGlvblRyYW5zaXRpb24gZXh0ZW5kcyBBYnN0cmFjdE5hdmlnYXRpb25UcmFuc2l0aW9uIHtcbiAgICByZWFkb25seSBpc1BvcFN0YXRlID0gZmFsc2U7XG5cbiAgICBvblJvdXRlckNhbmNlbGxlZChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBvblJvdXRlckVycm9yKGV2ZW50OiBOYXZpZ2F0aW9uRXJyb3IpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgLy8gbmF2aWdhdGlvbiB3YXMgYWJvcnRlZC5cbiAgICAgIHJldHVybiBuZXcgSWRsZSh0aGlzLmNvbnRleHQpO1xuICAgIH1cblxuICAgIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfShzdGFydGluZ1VybDogJHt0aGlzLnN0YXJ0aW5nVXJsfSlgO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBjbGFzcyBQb3BTdGF0ZVRyYW5zaXRpb24gZXh0ZW5kcyBBYnN0cmFjdE5hdmlnYXRpb25UcmFuc2l0aW9uIHtcbiAgICByZWFkb25seSBpc1BvcFN0YXRlID0gdHJ1ZTtcblxuICAgIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIC8vIEFuZ3VsYXIgZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdXJsIHdoZW4gYSBndWFyZCBjYW5jZWxzIHRoZSBiYWNrIGJ1dHRvbi5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzU4NiNpc3N1ZWNvbW1lbnQtNDMyNzk1NzIwXG4gICAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oJ1dPUkstQVJPVU5EOiBVcGRhdGluZyBicm93c2VyIGxvY2F0aW9uIGFmdGVyIHBvcCBzdGF0ZSAtIHNlZSBhbmd1bGFyIGlzc3VlICMxMzU4NicpO1xuICAgICAgdGhpcy5yZXNldEJyb3dzZXJMb2NhdGlvbih0aGlzLnN0YXJ0aW5nVXJsKTtcbiAgICAgIHJldHVybiBuZXcgSWRsZSh0aGlzLmNvbnRleHQpO1xuICAgIH1cblxuICAgIG9uUm91dGVyRXJyb3IoZXZlbnQ6IE5hdmlnYXRpb25FcnJvcik6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICAvLyBuYXZpZ2F0aW9uIHdhcyBhYm9ydGVkLlxuICAgICAgaWYgKHRoaXMuY3VycmVudFJvdXRlclVybCgpICE9PSB0aGlzLnN0YXJ0aW5nVXJsKSB7XG4gICAgICAgIC8vIEFuZ3VsYXIgZG9lc24ndCBwcmVzZXJ2ZSB0aGUgdXJsIHdoZW4gYSBndWFyZCBjYW5jZWxzIHRoZSBiYWNrIGJ1dHRvbi5cbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzNTg2I2lzc3VlY29tbWVudC00MzI3OTU3MjBcbiAgICAgICAgTG9nZ2VyLmdldCh0aGlzKS5pbmZvKCdXT1JLLUFST1VORDogVXBkYXRpbmcgYnJvd3NlciBsb2NhdGlvbiBhZnRlciBwb3Agc3RhdGUgLSBzZWUgYW5ndWxhciBpc3N1ZSAjMTM1ODYnKTtcbiAgICAgICAgdGhpcy5yZXNldEJyb3dzZXJMb2NhdGlvbih0aGlzLnN0YXJ0aW5nVXJsKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgSWRsZSh0aGlzLmNvbnRleHQpO1xuICAgIH1cblxuICB9XG5cbiAgZXhwb3J0IGNsYXNzIElkbGVEdXJpbmdJbnRlcmFjdGlvbiBleHRlbmRzIE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgcmVhZG9ubHkgaXNUcmFuc2l0aW9uYWwgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc1BvcFN0YXRlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihjb250ZXh0OiBDb250ZXh0LCByZWFkb25seSBzdGFydGluZ1VybDogc3RyaW5nKSB7XG4gICAgICBzdXBlcihjb250ZXh0KTtcbiAgICB9XG5cbiAgICBvblBsYWNlTmF2aWdhdGlvblN0YXJ0KHZpc2l0OiBWaXNpdCwgaW5pdGlhbFVybDogc3RyaW5nKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIGNvbnN0IG5hdmlnYXRpb25UcmFuc2l0aW9uID0gbmV3IEludGVyYWN0aW9uVHJhbnNpdGlvbih0aGlzLmNvbnRleHQsIGluaXRpYWxVcmwpO1xuICAgICAgbmF2aWdhdGlvblRyYW5zaXRpb24uc3RvcmVWaXNpdCh2aXNpdCk7XG4gICAgICByZXR1cm4gbmF2aWdhdGlvblRyYW5zaXRpb247XG4gICAgfVxuXG4gICAgLy8gQFRyYWNlKClcbiAgICBvblJvdXRlclN0YXJ0ZWQoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICByZXR1cm4gbmV3IEludGVyYWN0aW9uVHJhbnNpdGlvbih0aGlzLmNvbnRleHQsIGV2ZW50LnVybCk7XG4gICAgfVxuXG4gICAgQFRyYWNlKClcbiAgICBvblBvcFN0YXRlKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgcmV0dXJuIG5ldyBJbnRlcmFjdGlvblBvcFN0YXRlVHJhbnNpdGlvbih0aGlzLmNvbnRleHQsIGV2ZW50LnVybCk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0SW50ZXJhY3Rpb25UcmFuc2l0aW9uIGV4dGVuZHMgQWJzdHJhY3ROYXZpZ2F0aW9uVHJhbnNpdGlvbiB7XG4gICAgcmVhZG9ubHkgaXNUcmFuc2l0aW9uYWwgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IoY29udGV4dDogQ29udGV4dCwgcmVhZG9ubHkgc3RhcnRpbmdVcmw6IHN0cmluZykge1xuICAgICAgc3VwZXIoY29udGV4dCwgc3RhcnRpbmdVcmwpO1xuICAgIH1cblxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgc3RhdGUgZXhpc3RzIHRvIGhhbmRsZSBhbGwgZXZlbnRzIHdoaWxlIGFueSBraW5kIG9mIG5hdmlnYXRpb24gaXMgaW4gcHJvZ3Jlc3MuICBUaGF0IHdheSBhbGwgb3RoZXIgc3RhdGVzIGNhblxuICAgKiBoYXBwaWx5IGlnbm9yZSBpbnRlcmFjdGlvbiBjb250ZXh0cy5cbiAgICovXG4gIGV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvblRyYW5zaXRpb24gZXh0ZW5kcyBBYnN0cmFjdEludGVyYWN0aW9uVHJhbnNpdGlvbiB7XG4gICAgcmVhZG9ubHkgaXNQb3BTdGF0ZSA9IGZhbHNlO1xuXG4gICAgQFRyYWNlKClcbiAgICBvblJvdXRlckNhbmNlbGxlZChldmVudDogTmF2aWdhdGlvbkNhbmNlbCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICBpZiAodGhpcy5jb250ZXh0LmludGVyYWN0aW9uU2VydmljZS5pc0FjdGl2ZSgpKSB7XG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uSWRzID0gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2UuYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzLnZhbHVlO1xuICAgICAgICB0aGlzLnJlc2V0QnJvd3NlckxvY2F0aW9uKHRoaXMucGxhY2VSb3V0ZXIucGFyc2VVcmwodGhpcy5zdGFydGluZ1VybCkudXBkYXRlSW50ZXJhY3Rpb25JZHMoaW50ZXJhY3Rpb25JZHMpLnVybCk7XG4gICAgICAgIHJldHVybiBuZXcgSWRsZUR1cmluZ0ludGVyYWN0aW9uKHRoaXMuY29udGV4dCwgdGhpcy5zdGFydGluZ1VybCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IElkbGUodGhpcy5jb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAVHJhY2UoKVxuICAgIG9uUm91dGVyRXJyb3IoZXZlbnQ6IE5hdmlnYXRpb25FcnJvcik6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICAvLyBuYXZpZ2F0aW9uIHdhcyBhYm9ydGVkLlxuICAgICAgcmV0dXJuIG5ldyBJZGxlRHVyaW5nSW50ZXJhY3Rpb24odGhpcy5jb250ZXh0LCB0aGlzLnN0YXJ0aW5nVXJsKTtcbiAgICB9XG5cbiAgICBAVHJhY2UoKVxuICAgIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIGlmICh0aGlzLmNvbnRleHQuaW50ZXJhY3Rpb25TZXJ2aWNlLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJZGxlRHVyaW5nSW50ZXJhY3Rpb24odGhpcy5jb250ZXh0LCB0aGlzLnN0YXJ0aW5nVXJsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgSWRsZSh0aGlzLmNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHN0YXRlIGV4aXN0cyB0byBoYW5kbGUgYWxsIGV2ZW50cyB3aGlsZSBhbnkga2luZCBvZiBuYXZpZ2F0aW9uIGlzIGluIHByb2dyZXNzLiAgVGhhdCB3YXkgYWxsIG90aGVyIHN0YXRlcyBjYW5cbiAgICogaGFwcGlseSBpZ25vcmUgaW50ZXJhY3Rpb24gY29udGV4dHMuXG4gICAqL1xuICBleHBvcnQgY2xhc3MgSW50ZXJhY3Rpb25Qb3BTdGF0ZVRyYW5zaXRpb24gZXh0ZW5kcyBBYnN0cmFjdEludGVyYWN0aW9uVHJhbnNpdGlvbiB7XG4gICAgcmVhZG9ubHkgaXNQb3BTdGF0ZSA9IHRydWU7XG5cbiAgICBAVHJhY2UoKVxuICAgIG9uUm91dGVyQ2FuY2VsbGVkKGV2ZW50OiBOYXZpZ2F0aW9uQ2FuY2VsKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIGlmICh0aGlzLmludGVyYWN0aW9uU2VydmljZS5pc0FjdGl2ZSgpKSB7XG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uSWRzID0gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2UuYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzLnZhbHVlO1xuICAgICAgICB0aGlzLnJlc2V0QnJvd3NlckxvY2F0aW9uKHRoaXMucGxhY2VSb3V0ZXIucGFyc2VVcmwodGhpcy5zdGFydGluZ1VybCkudXBkYXRlSW50ZXJhY3Rpb25JZHMoaW50ZXJhY3Rpb25JZHMpLnVybCk7XG4gICAgICAgIHJldHVybiBuZXcgSWRsZUR1cmluZ0ludGVyYWN0aW9uKHRoaXMuY29udGV4dCwgdGhpcy5zdGFydGluZ1VybCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IElkbGUodGhpcy5jb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAVHJhY2UoKVxuICAgIG9uUm91dGVyRW5kKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKTogTmF2aWdhdGlvblN0YXRlIHtcbiAgICAgIGlmICh0aGlzLmNvbnRleHQuaW50ZXJhY3Rpb25TZXJ2aWNlLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBJZGxlRHVyaW5nSW50ZXJhY3Rpb24odGhpcy5jb250ZXh0LCB0aGlzLnN0YXJ0aW5nVXJsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgSWRsZSh0aGlzLmNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cblxuICBleHBvcnQgY2xhc3MgQ2FuY2VsbGVkRHVyaW5nTmF2aWdhdGlvbkludGVyYWN0aW9uIGV4dGVuZHMgTmF2aWdhdGlvblN0YXRlIHtcblxuICAgIHJlYWRvbmx5IGlzUG9wU3RhdGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIGdvdFBvcFN0YXRlV2l0aExlYXZpbmdVcmwgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGNvbnRleHQ6IENvbnRleHQsXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgc3RhcnRpbmdVcmw6IHN0cmluZyxcbiAgICAgICAgICAgICAgICByZWFkb25seSBzdGFydGluZ0V2ZW50V2FzQVBvcFN0YXRlOiBib29sZWFuLFxuICAgICAgICAgICAgICAgIHJlYWRvbmx5IGxvY2F0aW9uQ2hhbmdlVHJpZ2dlclVybDogc3RyaW5nKSB7XG4gICAgICBzdXBlcihjb250ZXh0KTtcbiAgICB9XG5cbiAgICBnZXQgaXNUcmFuc2l0aW9uYWwoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBvblJvdXRlclN0YXJ0ZWQoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICByZXR1cm4gdGhpcy5pZ25vcmUoZXZlbnQpO1xuICAgIH1cblxuICAgIEBUcmFjZSgpXG4gICAgb25Sb3V0ZXJDYW5jZWxsZWQoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgLy8gRGVwZW5kaW5nIG9uIHRoZSBzdGF0ZSBvZiB0aGUgcm91dGVyIGFuZCB3aGF0IHdhcyBkb25lIHdlIGdldCBhIGRpZmZlcmVudFxuICAgICAgLy8gc2VxdWVuY2Ugb2YgZXZlbnRzLiAgSS5lLiAgSWYgdGhleSBqdXN0IGNsaWNrZWQgYSBsaW5rIHdlJ2xsIGdldCBhIGNhbmNlbFxuICAgICAgLy8gd2l0aCB0aGUgbG9jYXRpb25DaGFuZ2VUcmlnZ2VyVXJsIGFzIHRoZSBmaW5hbCBldmVudC4gSG93ZXZlciB0aGUgdXNlclxuICAgICAgLy8gc3RhcnRlZCB0aGUgaW5pdGlhbCBuYXZpZ2F0aW9uIHdpdGggYSBwb3Agc3RhdGUgdGhlbiB3ZSdsbCBnZXQgb25lIG9mXG4gICAgICAvLyB0aG9zZSB3aXRoIHRoZSBsb2NhdGlvbkNoYW5nZVRyaWdnZXJVcmwgYnV0IG5vIGNhbmNlbCBldmVudCB3aXRoIGl0LlxuICAgICAgcmV0dXJuIHRoaXMuZ290UG9wU3RhdGVXaXRoTGVhdmluZ1VybCB8fCB0aGlzLmxvY2F0aW9uQ2hhbmdlVHJpZ2dlclVybCA9PT0gZXZlbnQudXJsID8gdGhpcy5jcmVhdGVJZGxlU3RhdGUoKSA6IHRoaXMuaWdub3JlKGV2ZW50KTtcbiAgICB9XG5cbiAgICBvblJvdXRlckVuZChldmVudDogTmF2aWdhdGlvbkVuZCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICByZXR1cm4gdGhpcy5pZ25vcmUoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uUm91dGVyRXJyb3IoZXZlbnQ6IE5hdmlnYXRpb25FcnJvcik6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICByZXR1cm4gdGhpcy5pZ25vcmUoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uUG9wU3RhdGUoZXZlbnQ6IE5hdmlnYXRpb25TdGFydCk6IE5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICB0aGlzLmdvdFBvcFN0YXRlV2l0aExlYXZpbmdVcmwgPSB0aGlzLmdvdFBvcFN0YXRlV2l0aExlYXZpbmdVcmwgfHwgZXZlbnQudXJsID09PSB0aGlzLmxvY2F0aW9uQ2hhbmdlVHJpZ2dlclVybDtcbiAgICAgIHJldHVybiB0aGlzLmlnbm9yZShldmVudCk7XG4gICAgfVxuXG4gICAgLy8gQFRyYWNlKClcbiAgICBhc3luYyBjYW5EZWFjdGl2YXRlUGxhY2UoY29tcG9uZW50OiBQbGFjZUNvbXBvbmVudCwgY3VycmVudFVybDogVXJsU25hcHNob3QsIG5leHRVcmw6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZ25vcmUoZXZlbnQ6IFJvdXRlckV2ZW50LCByZWFzb24/OiBzdHJpbmcpOiBOYXZpZ2F0aW9uU3RhdGUge1xuICAgICAgcmVhc29uID0gcmVhc29uID8gYCAtPiAke3JlYXNvbn1gIDogJyc7XG4gICAgICBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYGlnbm9yaW5nIHJvdXRlciBldmVudCR7cmVhc29ufTogJHtldmVudC5jb25zdHJ1Y3Rvci5uYW1lfSAtPiAke2V2ZW50LnVybH1gKTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfShpc0lkbDogJHt0aGlzLmlkbGV9LCBzdGFydGluZ1VybDogJHt0aGlzLnN0YXJ0aW5nVXJsfSwgbG9jYXRpb25DaGFuZ2VUcmlnZ2VyVXJsOiR7dGhpcy5sb2NhdGlvbkNoYW5nZVRyaWdnZXJVcmx9KWA7XG4gICAgfVxuXG4gIH1cbn1cbiJdfQ==
@@ -47,7 +47,7 @@ var PlaceComponentDeactivationHandler = /** @class */ (function () {
47
47
  // we always return true if we accepted promise from a previous cycle of the current
48
48
  // navigation session.
49
49
  if (!this.canDeactivatePromise) {
50
- console.log("creating deactivate promise for -> " + this.component.constructor.name);
50
+ // console.log(`creating deactivate promise for -> ${this.component.constructor.name}`);
51
51
  this.canDeactivatePromise = this.canDeactivateComponent(currentUrl, nextState);
52
52
  }
53
53
  return [2 /*return*/, this.canDeactivatePromise];
@@ -76,7 +76,6 @@ var PlaceComponentDeactivationHandler = /** @class */ (function () {
76
76
  return tslib_1.__generator(this, function (_a) {
77
77
  switch (_a.label) {
78
78
  case 0:
79
- console.log(this.navigationState.toString());
80
79
  if (!this.navigationState.isPopState) return [3 /*break*/, 5];
81
80
  if (!(this.isPrimaryComponent && this.interactionService.isModalActive())) return [3 /*break*/, 3];
82
81
  routeIds = this.placeRouter.getActiveInteractionIdsFromUrl(nextState.url);
@@ -147,4 +146,4 @@ if (false) {
147
146
  /** @type {?} */
148
147
  PlaceComponentDeactivationHandler.prototype.isPrimaryComponent;
149
148
  }
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LWRlYWN0aXZhdGlvbi1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL2d1YXJkcy9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUs1QjtJQUlFLDJDQUFxQixTQUF5QixFQUFXLGVBQWdDLEVBQVcsa0JBQTJCO1FBQTFHLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQVcsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVcsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFTO0lBQy9ILENBQUM7SUFFRCxzQkFBSSxpRUFBa0I7Ozs7UUFBdEI7WUFDRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUM7UUFDakQsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwwREFBVzs7OztRQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxDQUFDOzs7T0FBQTs7Ozs7O0lBRUsseURBQWE7Ozs7O0lBQW5CLFVBQW9CLFVBQXVCLEVBQUUsU0FBc0I7OztnQkFDakUsMkVBQTJFO2dCQUMzRSxvRkFBb0Y7Z0JBQ3BGLHNCQUFzQjtnQkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3Q0FBc0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBTSxDQUFDLENBQUM7b0JBQ3JGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2lCQUNoRjtnQkFDRCxzQkFBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUM7OztLQUNsQztJQUdELFdBQVc7Ozs7Ozs7O0lBQ0ssa0VBQXNCOzs7Ozs7OztJQUF0QyxVQUF1QyxVQUF1QixFQUFFLFNBQXNCOzs7Ozs7d0JBQ3BGLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDOzZCQUd6QyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBL0Isd0JBQStCOzZCQUM3QixDQUFBLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUEsRUFBbEUsd0JBQWtFO3dCQUM5RCxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO3dCQUN6RSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLEtBQUs7NkJBRXhFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQWhDLHdCQUFnQzt3QkFDbEMscUJBQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLENBQUMsb0JBQW9CLEVBQUUsRUFBQTs7d0JBQXZFLFNBQXVFLENBQUM7d0JBQ3hFLHNCQUFPLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLEVBQUM7Ozs2QkFJaEcsQ0FBQSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUEsRUFBakYsd0JBQWlGO3dCQUNuRixxQkFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLEVBQUE7O3dCQUE5RCxTQUE4RCxDQUFDO3dCQUMvRCxzQkFBTyxVQUFVO2lDQUNkLG9CQUFvQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsRUFBQTs7d0JBS3hGLDBFQUEwRTt3QkFDMUUsSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxDQUFDLEVBQUU7NEJBRTdDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7Z0NBQ2hDLHFEQUFxRDtnQ0FDckQsOEhBQThIO2dDQUM5SCwrR0FBK0c7Z0NBQy9HLHNCQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBQzs2QkFDOUU7NEJBRUQscUdBQXFHOzRCQUNyRyx3REFBd0Q7NEJBQ3hELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxFQUFFO2dDQUNyRixPQUFPLENBQUMsSUFBSSxDQUFDLDZFQUE2RSxDQUFDLENBQUM7Z0NBQzVGLHNCQUFPLEtBQUssRUFBQzs2QkFDZDt5QkFFRjt3QkFDRCxzQkFBTyxJQUFJLEVBQUM7Ozs7S0FDYjs7Ozs7O0lBRVMscUVBQXlCOzs7OztJQUFuQyxVQUFvQyxTQUFzQjtRQUN4RCxxRkFBcUY7UUFDckYsZ0ZBQWdGO1FBQ2hGLDBDQUEwQztRQUMxQyxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDSCx3Q0FBQztBQUFELENBQUMsQUE5RUQsSUE4RUM7Ozs7Ozs7SUE1RUMsaUVBQTZEOztJQUVqRCxzREFBa0M7O0lBQUUsNERBQXlDOztJQUFFLCtEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVXJsU25hcHNob3QgfSBmcm9tICcuLi91cmwtc25hcHNob3QnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXRlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXN0YXRlJztcblxuZXhwb3J0IGNsYXNzIFBsYWNlQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlciB7XG5cbiAgcHJpdmF0ZSBjYW5EZWFjdGl2YXRlUHJvbWlzZTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIHJlYWRvbmx5IG5hdmlnYXRpb25TdGF0ZTogTmF2aWdhdGlvblN0YXRlLCByZWFkb25seSBpc1ByaW1hcnlDb21wb25lbnQ6IGJvb2xlYW4pIHtcbiAgfVxuXG4gIGdldCBpbnRlcmFjdGlvblNlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMubmF2aWdhdGlvblN0YXRlLmludGVyYWN0aW9uU2VydmljZTtcbiAgfVxuXG4gIGdldCBwbGFjZVJvdXRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU3RhdGUucGxhY2VSb3V0ZXI7XG4gIH1cblxuICBhc3luYyBjYW5EZWFjdGl2YXRlKGN1cnJlbnRVcmw6IFVybFNuYXBzaG90LCBuZXh0U3RhdGU6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICAvLyBXZSdsbCBnZXQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGlmIHRoZXJlJ3MgYW55IHBhcmFtZXRlciBzYW5pdGlzYXRpb24gc29cbiAgICAvLyB3ZSBhbHdheXMgcmV0dXJuIHRydWUgaWYgd2UgYWNjZXB0ZWQgcHJvbWlzZSBmcm9tIGEgcHJldmlvdXMgY3ljbGUgb2YgdGhlIGN1cnJlbnRcbiAgICAvLyBuYXZpZ2F0aW9uIHNlc3Npb24uXG4gICAgaWYgKCF0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlKSB7XG4gICAgICBjb25zb2xlLmxvZyhgY3JlYXRpbmcgZGVhY3RpdmF0ZSBwcm9taXNlIGZvciAtPiAke3RoaXMuY29tcG9uZW50LmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gICAgICB0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlID0gdGhpcy5jYW5EZWFjdGl2YXRlQ29tcG9uZW50KGN1cnJlbnRVcmwsIG5leHRTdGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlO1xuICB9XG5cblxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgYXN5bmMgY2FuRGVhY3RpdmF0ZUNvbXBvbmVudChjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFN0YXRlOiBVcmxTbmFwc2hvdCk6IFByb21pc2U8VXJsU25hcHNob3QgfCBib29sZWFuPiB7XG4gICAgY29uc29sZS5sb2codGhpcy5uYXZpZ2F0aW9uU3RhdGUudG9TdHJpbmcoKSk7XG4gICAgLy8gQXV0b21hdGljYWxseSBjYW5jZWwgYW55IGFjdGl2ZSBhY3Rpdml0aWVzIGlmIHRoZSBuYXZpZ2F0aW9uIHNlc3Npb24gd2FzIHRyaWdnZXJlZCBieSB0aGUgYmFjayBidXR0b24uXG4gICAgLy8gSWYgd2UgaGFuZGxlZCBtb3JlIHRoYW4ganVzdCB0aGUgcG9wIHN0YXRlIHRoZW4gaXQgbGVhZHMgdG8gdGhlIFVJIGlnbm9yaW5nIGNsaWNrcyBhbmQganVzdCBjYW5jZWxsaW5nIHRoaW5ncyB3aGljaCBpcyBkZWVwbHkgZGlzY29uY2VydGluZy5cbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9uU3RhdGUuaXNQb3BTdGF0ZSkge1xuICAgICAgaWYgKHRoaXMuaXNQcmltYXJ5Q29tcG9uZW50ICYmIHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmlzTW9kYWxBY3RpdmUoKSkge1xuICAgICAgICBjb25zdCByb3V0ZUlkcyA9IHRoaXMucGxhY2VSb3V0ZXIuZ2V0QWN0aXZlSW50ZXJhY3Rpb25JZHNGcm9tVXJsKG5leHRTdGF0ZS51cmwpO1xuICAgICAgICBjb25zdCBjdXJyZW50SWRzID0gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2UuYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzLnZhbHVlO1xuXG4gICAgICAgIGlmICghXy5pc0VxdWFsKGN1cnJlbnRJZHMsIHJvdXRlSWRzKSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmdldEFjdGl2ZUNvbnRleHQoKS5jYW5jZWxBY3RpdmVBY3Rpdml0eSgpO1xuICAgICAgICAgIHJldHVybiBjdXJyZW50VXJsLnVwZGF0ZUludGVyYWN0aW9uSWRzKHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGNoZWNrIGlmIHRoZSBjb21wb25lbnQgaGFzIGFuIGluIHBsYWNlIGludGVyYWN0aW9uXG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQgJiYgdGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQuY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTtcbiAgICAgICAgICByZXR1cm4gY3VycmVudFVybFxuICAgICAgICAgICAgLnVwZGF0ZUludGVyYWN0aW9uSWRzKHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcy52YWx1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9rLCBzbyBub3cgd2UncmUgcmVhbGx5IGxlYXZpbmcsIHNvIHdlIGFzayB0aGUgY29tcG9uZW50IGlmIHdlIHNob3VsZC47XG4gICAgaWYgKHRoaXMuaXNOb3RKdXN0QUNoYW5nZUluUm91dGVJZChuZXh0U3RhdGUpKSB7XG5cbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudC5jYW5EZWFjdGl2YXRlKSB7XG4gICAgICAgIC8vIE5vIGludGVyYWN0aW9uIGluIHByb2dyZXNzLCBzbyBhc2sgdGhlIGNvbXBvbmVudCAuXG4gICAgICAgIC8vIFRoaXMgbWF5IHN0YXJ0IGFuIGludGVyYWN0aW9uLCBoZW5jZSBjaGVja2luZyB0aGUgaW50ZXJhY3Rpb24gY29udGV4dCBiZWZvcmUgbm93LiBJLmUuIGlmIHRoZSBwbGFjZSBwb3BzIHVwIHRoZSBkaWFsb2csIGFuZFxuICAgICAgICAvLyB0aGUgdXNlciBjbGlja3MgYmFjayBhZ2Fpbiwgd2UnbGwgcmUtZW50ZXIgaGVyZSBhbmQgZ28gYmFuZyB3aGVuIHRoZSBjb21wb25lbnQgdHJpZXMgdG8gb3BlbiBhbm90aGVyIGRpYWxvZy5cbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcG9uZW50LmNhbkRlYWN0aXZhdGUodGhpcy5uYXZpZ2F0aW9uU3RhdGUuaW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgICAgIH1cblxuICAgICAgLy8gVGhlIGNvbXBvbmVudCBoYXMgYW4gYWN0aXZlIGludGVyYWN0aW9uIGJ1dCBubyBkZWFjdGl2YXRpb24gaG9vay4gIFJhdGhlciB0aGFuIGd1ZXNzaW5nIHdoYXQgdG8gZG9cbiAgICAgIC8vIHdlJ2xsIGp1c3QgY2FuY2VsIHRoZSBuYXZpZ2F0aW9uIGFuZCBwcmludCBhIHdhcm5pbmcuXG4gICAgICBpZiAodGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0ICYmIHRoaXMuY29tcG9uZW50LmludGVyYWN0aW9uQ29udGV4dC5pc0FjdGl2ZSgpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignUm91dGUgY2hhbmdlZCB3aGlsZSBjb21wb25lbnQgaGFzIGFjdGl2ZSBpbnRlcmFjdGlvbiwgY2FuY2VsbGluZyBuYXZpZ2F0aW9uJyk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc05vdEp1c3RBQ2hhbmdlSW5Sb3V0ZUlkKG5leHRTdGF0ZTogVXJsU25hcHNob3QpIHtcbiAgICAvLyBCZWNhdXNlIHBsYWNlcyB3aXRoIGEgcm91dGUtaWQgY292ZXIgdHdvIHJvdXRlIHNlZ21lbnRzIHdlIGdldCBhc2tlZCB0byBkZWFjdGl2YXRlXG4gICAgLy8gaWYgdGhlIHJvdXRlIGlkIGlzIGFkZGVkIG9yIHJlbW92ZWQuICBTbyBpZiBvdXIgcGF0aCBpcyBzdGlsbCBwcmVzZW50IHRoZSB1cmxcbiAgICAvLyB0aGVuIHdlIHNob3VsZG4ndCBkZWFjdGl2YXRlIHRoZSBwbGFjZS5cbiAgICByZXR1cm4gIW5leHRTdGF0ZS5pbmNsdWRlc1BhdGhPZih0aGlzLmNvbXBvbmVudC5wbGFjZURlZmluaXRpb24pO1xuICB9XG59XG4iXX0=
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LWRlYWN0aXZhdGlvbi1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvb2xvbi9hbmd1bGFyLXVpLXBvd2VydXBzLyIsInNvdXJjZXMiOlsibGliL3BsYWNlL2d1YXJkcy9wbGFjZS1jb21wb25lbnQtZGVhY3RpdmF0aW9uLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUs1QjtJQUlFLDJDQUFxQixTQUF5QixFQUFXLGVBQWdDLEVBQVcsa0JBQTJCO1FBQTFHLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQVcsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQVcsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFTO0lBQy9ILENBQUM7SUFFRCxzQkFBSSxpRUFBa0I7Ozs7UUFBdEI7WUFDRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUM7UUFDakQsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSwwREFBVzs7OztRQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxDQUFDOzs7T0FBQTs7Ozs7O0lBRUsseURBQWE7Ozs7O0lBQW5CLFVBQW9CLFVBQXVCLEVBQUUsU0FBc0I7OztnQkFDakUsMkVBQTJFO2dCQUMzRSxvRkFBb0Y7Z0JBQ3BGLHNCQUFzQjtnQkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDOUIsd0ZBQXdGO29CQUN4RixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztpQkFDaEY7Z0JBQ0Qsc0JBQU8sSUFBSSxDQUFDLG9CQUFvQixFQUFDOzs7S0FDbEM7SUFHRCxXQUFXOzs7Ozs7OztJQUNLLGtFQUFzQjs7Ozs7Ozs7SUFBdEMsVUFBdUMsVUFBdUIsRUFBRSxTQUFzQjs7Ozs7OzZCQUloRixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBL0Isd0JBQStCOzZCQUM3QixDQUFBLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUEsRUFBbEUsd0JBQWtFO3dCQUM5RCxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO3dCQUN6RSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLEtBQUs7NkJBRXhFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQWhDLHdCQUFnQzt3QkFDbEMscUJBQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLENBQUMsb0JBQW9CLEVBQUUsRUFBQTs7d0JBQXZFLFNBQXVFLENBQUM7d0JBQ3hFLHNCQUFPLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLEVBQUM7Ozs2QkFJaEcsQ0FBQSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUEsRUFBakYsd0JBQWlGO3dCQUNuRixxQkFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLEVBQUE7O3dCQUE5RCxTQUE4RCxDQUFDO3dCQUMvRCxzQkFBTyxVQUFVO2lDQUNkLG9CQUFvQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsRUFBQTs7d0JBTXhGLDBFQUEwRTt3QkFDMUUsSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxDQUFDLEVBQUU7NEJBRTdDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7Z0NBQ2hDLHFEQUFxRDtnQ0FDckQsOEhBQThIO2dDQUM5SCwrR0FBK0c7Z0NBQy9HLHNCQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsRUFBQzs2QkFDOUU7NEJBRUQscUdBQXFHOzRCQUNyRyx3REFBd0Q7NEJBQ3hELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxFQUFFO2dDQUNyRixPQUFPLENBQUMsSUFBSSxDQUFDLDZFQUE2RSxDQUFDLENBQUM7Z0NBQzVGLHNCQUFPLEtBQUssRUFBQzs2QkFDZDt5QkFFRjt3QkFDRCxzQkFBTyxJQUFJLEVBQUM7Ozs7S0FDYjs7Ozs7O0lBRVMscUVBQXlCOzs7OztJQUFuQyxVQUFvQyxTQUFzQjtRQUN4RCxxRkFBcUY7UUFDckYsZ0ZBQWdGO1FBQ2hGLDBDQUEwQztRQUMxQyxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDSCx3Q0FBQztBQUFELENBQUMsQUEvRUQsSUErRUM7Ozs7Ozs7SUE3RUMsaUVBQTZEOztJQUVqRCxzREFBa0M7O0lBQUUsNERBQXlDOztJQUFFLCtEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYWNlIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUGxhY2VDb21wb25lbnQgfSBmcm9tICcuLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgVXJsU25hcHNob3QgfSBmcm9tICcuLi91cmwtc25hcHNob3QnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXRlIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXN0YXRlJztcblxuZXhwb3J0IGNsYXNzIFBsYWNlQ29tcG9uZW50RGVhY3RpdmF0aW9uSGFuZGxlciB7XG5cbiAgcHJpdmF0ZSBjYW5EZWFjdGl2YXRlUHJvbWlzZTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogUGxhY2VDb21wb25lbnQsIHJlYWRvbmx5IG5hdmlnYXRpb25TdGF0ZTogTmF2aWdhdGlvblN0YXRlLCByZWFkb25seSBpc1ByaW1hcnlDb21wb25lbnQ6IGJvb2xlYW4pIHtcbiAgfVxuXG4gIGdldCBpbnRlcmFjdGlvblNlcnZpY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMubmF2aWdhdGlvblN0YXRlLmludGVyYWN0aW9uU2VydmljZTtcbiAgfVxuXG4gIGdldCBwbGFjZVJvdXRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0aW9uU3RhdGUucGxhY2VSb3V0ZXI7XG4gIH1cblxuICBhc3luYyBjYW5EZWFjdGl2YXRlKGN1cnJlbnRVcmw6IFVybFNuYXBzaG90LCBuZXh0U3RhdGU6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuIHwgVXJsU25hcHNob3Q+IHtcbiAgICAvLyBXZSdsbCBnZXQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGlmIHRoZXJlJ3MgYW55IHBhcmFtZXRlciBzYW5pdGlzYXRpb24gc29cbiAgICAvLyB3ZSBhbHdheXMgcmV0dXJuIHRydWUgaWYgd2UgYWNjZXB0ZWQgcHJvbWlzZSBmcm9tIGEgcHJldmlvdXMgY3ljbGUgb2YgdGhlIGN1cnJlbnRcbiAgICAvLyBuYXZpZ2F0aW9uIHNlc3Npb24uXG4gICAgaWYgKCF0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZyhgY3JlYXRpbmcgZGVhY3RpdmF0ZSBwcm9taXNlIGZvciAtPiAke3RoaXMuY29tcG9uZW50LmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gICAgICB0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlID0gdGhpcy5jYW5EZWFjdGl2YXRlQ29tcG9uZW50KGN1cnJlbnRVcmwsIG5leHRTdGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhbkRlYWN0aXZhdGVQcm9taXNlO1xuICB9XG5cblxuICAvLyBAVHJhY2UoKVxuICBwcm90ZWN0ZWQgYXN5bmMgY2FuRGVhY3RpdmF0ZUNvbXBvbmVudChjdXJyZW50VXJsOiBVcmxTbmFwc2hvdCwgbmV4dFN0YXRlOiBVcmxTbmFwc2hvdCk6IFByb21pc2U8VXJsU25hcHNob3QgfCBib29sZWFuPiB7XG4gICAgLy8gY29uc29sZS5sb2codGhpcy5uYXZpZ2F0aW9uU3RhdGUudG9TdHJpbmcoKSk7XG4gICAgLy8gQXV0b21hdGljYWxseSBjYW5jZWwgYW55IGFjdGl2ZSBhY3Rpdml0aWVzIGlmIHRoZSBuYXZpZ2F0aW9uIHNlc3Npb24gd2FzIHRyaWdnZXJlZCBieSB0aGUgYmFjayBidXR0b24uXG4gICAgLy8gSWYgd2UgaGFuZGxlZCBtb3JlIHRoYW4ganVzdCB0aGUgcG9wIHN0YXRlIHRoZW4gaXQgbGVhZHMgdG8gdGhlIFVJIGlnbm9yaW5nIGNsaWNrcyBhbmQganVzdCBjYW5jZWxsaW5nIHRoaW5ncyB3aGljaCBpcyBkZWVwbHkgZGlzY29uY2VydGluZy5cbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9uU3RhdGUuaXNQb3BTdGF0ZSkge1xuICAgICAgaWYgKHRoaXMuaXNQcmltYXJ5Q29tcG9uZW50ICYmIHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmlzTW9kYWxBY3RpdmUoKSkge1xuICAgICAgICBjb25zdCByb3V0ZUlkcyA9IHRoaXMucGxhY2VSb3V0ZXIuZ2V0QWN0aXZlSW50ZXJhY3Rpb25JZHNGcm9tVXJsKG5leHRTdGF0ZS51cmwpO1xuICAgICAgICBjb25zdCBjdXJyZW50SWRzID0gdGhpcy5pbnRlcmFjdGlvblNlcnZpY2UuYWN0aXZlSW50ZXJhY3Rpb25Db250ZXh0SWRzLnZhbHVlO1xuXG4gICAgICAgIGlmICghXy5pc0VxdWFsKGN1cnJlbnRJZHMsIHJvdXRlSWRzKSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmdldEFjdGl2ZUNvbnRleHQoKS5jYW5jZWxBY3RpdmVBY3Rpdml0eSgpO1xuICAgICAgICAgIHJldHVybiBjdXJyZW50VXJsLnVwZGF0ZUludGVyYWN0aW9uSWRzKHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGNoZWNrIGlmIHRoZSBjb21wb25lbnQgaGFzIGFuIGluIHBsYWNlIGludGVyYWN0aW9uXG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQgJiYgdGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQuY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTtcbiAgICAgICAgICByZXR1cm4gY3VycmVudFVybFxuICAgICAgICAgICAgLnVwZGF0ZUludGVyYWN0aW9uSWRzKHRoaXMuaW50ZXJhY3Rpb25TZXJ2aWNlLmFjdGl2ZUludGVyYWN0aW9uQ29udGV4dElkcy52YWx1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gT2ssIHNvIG5vdyB3ZSdyZSByZWFsbHkgbGVhdmluZywgc28gd2UgYXNrIHRoZSBjb21wb25lbnQgaWYgd2Ugc2hvdWxkLjtcbiAgICBpZiAodGhpcy5pc05vdEp1c3RBQ2hhbmdlSW5Sb3V0ZUlkKG5leHRTdGF0ZSkpIHtcblxuICAgICAgaWYgKHRoaXMuY29tcG9uZW50LmNhbkRlYWN0aXZhdGUpIHtcbiAgICAgICAgLy8gTm8gaW50ZXJhY3Rpb24gaW4gcHJvZ3Jlc3MsIHNvIGFzayB0aGUgY29tcG9uZW50IC5cbiAgICAgICAgLy8gVGhpcyBtYXkgc3RhcnQgYW4gaW50ZXJhY3Rpb24sIGhlbmNlIGNoZWNraW5nIHRoZSBpbnRlcmFjdGlvbiBjb250ZXh0IGJlZm9yZSBub3cuIEkuZS4gaWYgdGhlIHBsYWNlIHBvcHMgdXAgdGhlIGRpYWxvZywgYW5kXG4gICAgICAgIC8vIHRoZSB1c2VyIGNsaWNrcyBiYWNrIGFnYWluLCB3ZSdsbCByZS1lbnRlciBoZXJlIGFuZCBnbyBiYW5nIHdoZW4gdGhlIGNvbXBvbmVudCB0cmllcyB0byBvcGVuIGFub3RoZXIgZGlhbG9nLlxuICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnQuY2FuRGVhY3RpdmF0ZSh0aGlzLm5hdmlnYXRpb25TdGF0ZS5pbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgICAgfVxuXG4gICAgICAvLyBUaGUgY29tcG9uZW50IGhhcyBhbiBhY3RpdmUgaW50ZXJhY3Rpb24gYnV0IG5vIGRlYWN0aXZhdGlvbiBob29rLiAgUmF0aGVyIHRoYW4gZ3Vlc3Npbmcgd2hhdCB0byBkb1xuICAgICAgLy8gd2UnbGwganVzdCBjYW5jZWwgdGhlIG5hdmlnYXRpb24gYW5kIHByaW50IGEgd2FybmluZy5cbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudC5pbnRlcmFjdGlvbkNvbnRleHQgJiYgdGhpcy5jb21wb25lbnQuaW50ZXJhY3Rpb25Db250ZXh0LmlzQWN0aXZlKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdSb3V0ZSBjaGFuZ2VkIHdoaWxlIGNvbXBvbmVudCBoYXMgYWN0aXZlIGludGVyYWN0aW9uLCBjYW5jZWxsaW5nIG5hdmlnYXRpb24nKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzTm90SnVzdEFDaGFuZ2VJblJvdXRlSWQobmV4dFN0YXRlOiBVcmxTbmFwc2hvdCkge1xuICAgIC8vIEJlY2F1c2UgcGxhY2VzIHdpdGggYSByb3V0ZS1pZCBjb3ZlciB0d28gcm91dGUgc2VnbWVudHMgd2UgZ2V0IGFza2VkIHRvIGRlYWN0aXZhdGVcbiAgICAvLyBpZiB0aGUgcm91dGUgaWQgaXMgYWRkZWQgb3IgcmVtb3ZlZC4gIFNvIGlmIG91ciBwYXRoIGlzIHN0aWxsIHByZXNlbnQgdGhlIHVybFxuICAgIC8vIHRoZW4gd2Ugc2hvdWxkbid0IGRlYWN0aXZhdGUgdGhlIHBsYWNlLlxuICAgIHJldHVybiAhbmV4dFN0YXRlLmluY2x1ZGVzUGF0aE9mKHRoaXMuY29tcG9uZW50LnBsYWNlRGVmaW5pdGlvbik7XG4gIH1cbn1cbiJdfQ==