for-modules 1.1.6 → 1.1.7

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.
@@ -36,7 +36,7 @@ var Player = exports.Player = /*#__PURE__*/function () {
36
36
  * @param options
37
37
  */
38
38
  function Player(options) {
39
- var _options$volume;
39
+ var _options$node, _options$volume;
40
40
  _classCallCheck(this, Player);
41
41
  /** The Queue for the Player. */
42
42
  _defineProperty(this, "queue", new (_Utils.Structure.get("Queue"))());
@@ -52,6 +52,10 @@ var Player = exports.Player = /*#__PURE__*/function () {
52
52
  _defineProperty(this, "playing", false);
53
53
  /** Whether the player is paused. */
54
54
  _defineProperty(this, "paused", false);
55
+ /** The volume for the player */
56
+ _defineProperty(this, "volume", 100);
57
+ /** The guild for the player. */
58
+ _defineProperty(this, "guild", "");
55
59
  /** The voice channel for the player. */
56
60
  _defineProperty(this, "voiceChannel", null);
57
61
  /** The text channel for the player. */
@@ -77,7 +81,7 @@ var Player = exports.Player = /*#__PURE__*/function () {
77
81
  });
78
82
  if (options.voiceChannel) this.voiceChannel = options.voiceChannel;
79
83
  if (options.textChannel) this.textChannel = options.textChannel;
80
- var node = this.manager.nodes.get(options.node);
84
+ var node = this.manager.nodes.get((_options$node = options.node) !== null && _options$node !== void 0 ? _options$node : "");
81
85
  this.node = node || this.manager.useableNodes;
82
86
  if (!this.node) throw new RangeError("No available nodes.");
83
87
  this.manager.players.set(options.guild, this);
@@ -149,46 +153,59 @@ var Player = exports.Player = /*#__PURE__*/function () {
149
153
  key: "moveNode",
150
154
  value: (function () {
151
155
  var _moveNode = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(node) {
152
- var _this = this,
156
+ var _this$manager$leastLo,
157
+ _this$manager$nodes$f,
158
+ _this = this,
159
+ _this$queue$current$t,
153
160
  _this$queue$current,
154
161
  _this$voiceState$sess,
155
- _this$voiceState;
156
- var destroyOldNode, currentNode, destinationNode, position, fetchedPlayer;
162
+ _this$voiceState,
163
+ _this$voiceChannel;
164
+ var destroyOldNode, currentNode, destinationNode, position, _fetchedPlayer$track, fetchedPlayer;
157
165
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
158
166
  while (1) switch (_context2.prev = _context2.next) {
159
167
  case 0:
160
- node = node || this.manager.leastLoadNode.first().options.identifier || this.manager.nodes.filter(function (n) {
168
+ node = node || ((_this$manager$leastLo = this.manager.leastLoadNode.first()) === null || _this$manager$leastLo === void 0 ? void 0 : _this$manager$leastLo.options.identifier) || ((_this$manager$nodes$f = this.manager.nodes.filter(function (n) {
161
169
  return n.connected;
162
- }).first().options.identifier;
163
- if (this.manager.nodes.has(node)) {
170
+ }).first()) === null || _this$manager$nodes$f === void 0 ? void 0 : _this$manager$nodes$f.options.identifier);
171
+ if (node) {
164
172
  _context2.next = 3;
165
173
  break;
166
174
  }
167
175
  throw new RangeError("No nodes available.");
168
176
  case 3:
169
- if (!(this.node.options.identifier === node)) {
177
+ if (this.manager.nodes.has(node)) {
170
178
  _context2.next = 5;
171
179
  break;
172
180
  }
173
- return _context2.abrupt("return", this);
181
+ throw new RangeError("No nodes available.");
174
182
  case 5:
183
+ if (!(this.node.options.identifier === node)) {
184
+ _context2.next = 7;
185
+ break;
186
+ }
187
+ return _context2.abrupt("return", this);
188
+ case 7:
175
189
  destroyOldNode = /*#__PURE__*/function () {
176
190
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(node) {
191
+ var _node$options$identif;
192
+ var existingNode;
177
193
  return _regeneratorRuntime().wrap(function _callee$(_context) {
178
194
  while (1) switch (_context.prev = _context.next) {
179
195
  case 0:
180
196
  _this.state = "MOVING";
181
- if (!(_this.manager.nodes.get(node.options.identifier) && _this.manager.nodes.get(node.options.identifier).connected)) {
182
- _context.next = 4;
197
+ existingNode = _this.manager.nodes.get((_node$options$identif = node.options.identifier) !== null && _node$options$identif !== void 0 ? _node$options$identif : "");
198
+ if (!(existingNode && existingNode.connected)) {
199
+ _context.next = 5;
183
200
  break;
184
201
  }
185
- _context.next = 4;
202
+ _context.next = 5;
186
203
  return node.rest.destroyPlayer(_this.guild);
187
- case 4:
204
+ case 5:
188
205
  setTimeout(function () {
189
206
  return _this.state = "CONNECTED";
190
207
  }, 5000);
191
- case 5:
208
+ case 6:
192
209
  case "end":
193
210
  return _context.stop();
194
211
  }
@@ -200,22 +217,30 @@ var Player = exports.Player = /*#__PURE__*/function () {
200
217
  }();
201
218
  currentNode = this.node;
202
219
  destinationNode = this.manager.nodes.get(node);
220
+ if (destinationNode) {
221
+ _context2.next = 12;
222
+ break;
223
+ }
224
+ throw new RangeError("Node \"".concat(node, "\" not found."));
225
+ case 12:
203
226
  position = this.position;
204
227
  if (!currentNode.connected) {
205
- _context2.next = 14;
228
+ _context2.next = 18;
206
229
  break;
207
230
  }
208
- _context2.next = 12;
231
+ _context2.next = 16;
209
232
  return currentNode.rest.get("/v4/sessions/".concat(currentNode.sessionId, "/players/").concat(this.guild));
210
- case 12:
233
+ case 16:
211
234
  fetchedPlayer = _context2.sent;
212
- position = fetchedPlayer.track.info.position;
213
- case 14:
214
- _context2.next = 16;
235
+ if (fetchedPlayer !== null && fetchedPlayer !== void 0 && (_fetchedPlayer$track = fetchedPlayer.track) !== null && _fetchedPlayer$track !== void 0 && _fetchedPlayer$track.info) {
236
+ position = fetchedPlayer.track.info.position;
237
+ }
238
+ case 18:
239
+ _context2.next = 20;
215
240
  return destinationNode.rest.updatePlayer({
216
241
  guildId: this.guild,
217
242
  data: {
218
- encodedTrack: (_this$queue$current = this.queue.current) === null || _this$queue$current === void 0 ? void 0 : _this$queue$current.track,
243
+ encodedTrack: (_this$queue$current$t = (_this$queue$current = this.queue.current) === null || _this$queue$current === void 0 ? void 0 : _this$queue$current.track) !== null && _this$queue$current$t !== void 0 ? _this$queue$current$t : undefined,
219
244
  position: position,
220
245
  volume: this.volume,
221
246
  paused: this.paused,
@@ -230,23 +255,24 @@ var Player = exports.Player = /*#__PURE__*/function () {
230
255
  }
231
256
  }
232
257
  });
233
- case 16:
234
- _context2.next = 18;
258
+ case 20:
259
+ _context2.next = 22;
235
260
  return destinationNode.rest.updatePlayer({
236
261
  guildId: this.guild,
237
262
  data: {
238
263
  voice: {
239
264
  token: this.voiceState.event.token,
240
265
  endpoint: this.voiceState.event.endpoint,
241
- sessionId: (_this$voiceState$sess = (_this$voiceState = this.voiceState) === null || _this$voiceState === void 0 ? void 0 : _this$voiceState.sessionId) !== null && _this$voiceState$sess !== void 0 ? _this$voiceState$sess : ""
266
+ sessionId: (_this$voiceState$sess = (_this$voiceState = this.voiceState) === null || _this$voiceState === void 0 ? void 0 : _this$voiceState.sessionId) !== null && _this$voiceState$sess !== void 0 ? _this$voiceState$sess : "",
267
+ channelId: (_this$voiceChannel = this.voiceChannel) !== null && _this$voiceChannel !== void 0 ? _this$voiceChannel : ""
242
268
  }
243
269
  }
244
270
  });
245
- case 18:
271
+ case 22:
246
272
  this.node = destinationNode;
247
273
  destroyOldNode(currentNode);
248
274
  return _context2.abrupt("return", this);
249
- case 21:
275
+ case 25:
250
276
  case "end":
251
277
  return _context2.stop();
252
278
  }
@@ -331,7 +357,7 @@ var Player = exports.Player = /*#__PURE__*/function () {
331
357
  key: "play",
332
358
  value: function () {
333
359
  var _play = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(optionsOrTrack, playOptions) {
334
- var _this$queue$current2;
360
+ var _this$queue$current$t2, _this$queue$current2;
335
361
  var finalOptions;
336
362
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
337
363
  while (1) switch (_context3.prev = _context3.next) {
@@ -376,7 +402,7 @@ var Player = exports.Player = /*#__PURE__*/function () {
376
402
  return this.node.rest.updatePlayer({
377
403
  guildId: this.guild,
378
404
  data: _objectSpread({
379
- encodedTrack: (_this$queue$current2 = this.queue.current) === null || _this$queue$current2 === void 0 ? void 0 : _this$queue$current2.track
405
+ encodedTrack: (_this$queue$current$t2 = (_this$queue$current2 = this.queue.current) === null || _this$queue$current2 === void 0 ? void 0 : _this$queue$current2.track) !== null && _this$queue$current$t2 !== void 0 ? _this$queue$current$t2 : undefined
380
406
  }, finalOptions)
381
407
  });
382
408
  case 19:
@@ -423,7 +449,7 @@ var Player = exports.Player = /*#__PURE__*/function () {
423
449
  key: "getRecommended",
424
450
  value: (function () {
425
451
  var _getRecommended = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(track, requester) {
426
- var node, hasSpotifyURL, hasYouTubeURL, _res, info, isSpotifyPluginEnabled, isSpotifySourceManagerEnabled, trackID, artistID, identifier, recommendedResult, playlistData, recommendedTracks, _tracks, videoID, _res2, searchURI, res, tracks, filteredTracks, _iterator, _step, _track, _track$title$split$ma, _track$title$split$ma2, author, title;
452
+ var node, hasSpotifyURL, hasYouTubeURL, _res, info, isSpotifyPluginEnabled, isSpotifySourceManagerEnabled, _track$pluginInfo$art, trackID, artistID, identifier, recommendedResult, playlistData, recommendedTracks, _tracks, videoID, _res2, searchURI, res, tracks, _res$playlist$tracks, _res$playlist, filteredTracks, _iterator, _step, _track, _track$title$split$ma, _track$title$split$ma2, author, title;
427
453
  return _regeneratorRuntime().wrap(function _callee4$(_context4) {
428
454
  while (1) switch (_context4.prev = _context4.next) {
429
455
  case 0:
@@ -458,7 +484,7 @@ var Player = exports.Player = /*#__PURE__*/function () {
458
484
  break;
459
485
  }
460
486
  trackID = node.extractSpotifyTrackID(track.uri);
461
- artistID = node.extractSpotifyArtistID(track.pluginInfo.artistUrl);
487
+ artistID = node.extractSpotifyArtistID((_track$pluginInfo$art = track.pluginInfo.artistUrl) !== null && _track$pluginInfo$art !== void 0 ? _track$pluginInfo$art : "");
462
488
  identifier = "";
463
489
  if (trackID && artistID) {
464
490
  identifier = "sprec:seed_artists=".concat(artistID, "&seed_tracks=").concat(trackID);
@@ -514,7 +540,7 @@ var Player = exports.Player = /*#__PURE__*/function () {
514
540
  case 39:
515
541
  tracks = res.tracks;
516
542
  if (res.loadType === "playlist") {
517
- tracks = res.playlist.tracks;
543
+ tracks = (_res$playlist$tracks = (_res$playlist = res.playlist) === null || _res$playlist === void 0 ? void 0 : _res$playlist.tracks) !== null && _res$playlist$tracks !== void 0 ? _res$playlist$tracks : tracks;
518
544
  }
519
545
  filteredTracks = tracks.filter(function (track) {
520
546
  return track.uri !== "https://www.youtube.com/watch?v=".concat(videoID);
@@ -682,7 +708,7 @@ var Player = exports.Player = /*#__PURE__*/function () {
682
708
  this.node.rest.updatePlayer({
683
709
  guildId: this.guild,
684
710
  data: {
685
- encodedTrack: null
711
+ encodedTrack: undefined
686
712
  }
687
713
  });
688
714
  return this;
@@ -714,7 +740,7 @@ var Player = exports.Player = /*#__PURE__*/function () {
714
740
  }, {
715
741
  key: "previous",
716
742
  value: function previous() {
717
- this.queue.unshift(this.queue.previous);
743
+ if (this.queue.previous) this.queue.unshift(this.queue.previous);
718
744
  this.stop();
719
745
  return this;
720
746
  }
@@ -726,10 +752,11 @@ var Player = exports.Player = /*#__PURE__*/function () {
726
752
  }, {
727
753
  key: "seek",
728
754
  value: function seek(position) {
729
- if (!this.queue.current) return undefined;
755
+ var _this$queue$current$d, _this$queue$current$d2;
756
+ if (!this.queue.current) return this;
730
757
  position = Number(position);
731
758
  if (isNaN(position)) throw new RangeError("Position must be a number.");
732
- if (position < 0 || position > this.queue.current.duration) position = Math.max(Math.min(position, this.queue.current.duration), 0);
759
+ if (position < 0 || position > ((_this$queue$current$d = this.queue.current.duration) !== null && _this$queue$current$d !== void 0 ? _this$queue$current$d : 0)) position = Math.max(Math.min(position, (_this$queue$current$d2 = this.queue.current.duration) !== null && _this$queue$current$d2 !== void 0 ? _this$queue$current$d2 : 0), 0);
733
760
  this.position = position;
734
761
  this.node.rest.updatePlayer({
735
762
  guildId: this.guild,
@@ -748,4 +775,4 @@ var Player = exports.Player = /*#__PURE__*/function () {
748
775
  }();
749
776
  /** If track partials are set some of these will be `undefined` as they were removed. */
750
777
  /** Unresolved tracks can't be played normally, they will resolve before playing into a Track. */
751
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRmlsdGVycyIsInJlcXVpcmUiLCJfVXRpbHMiLCJfIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfUGxheWVyQ2hlY2siLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZSIsIl9fZXNNb2R1bGUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJXZWFrTWFwIiwiciIsInQiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwibCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiZiIsIm8iLCJuZXh0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImxlbmd0aCIsIkFycmF5IiwiaXNBcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX24iLCJGIiwicyIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwicHJvdG90eXBlIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImMiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImgiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsIm1ldGhvZCIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwicmVzdWx0TmFtZSIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9uZXh0IiwiX3Rocm93IiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnRpZXMiLCJfdG9Qcm9wZXJ0eUtleSIsImtleSIsIl9jcmVhdGVDbGFzcyIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiUGxheWVyIiwiZXhwb3J0cyIsIm9wdGlvbnMiLCJfb3B0aW9ucyR2b2x1bWUiLCJTdHJ1Y3R1cmUiLCJmaWxsIiwibWFuYWdlciIsIl9tYW5hZ2VyIiwiUmFuZ2VFcnJvciIsInBsYXllcnMiLCJndWlsZCIsInBsYXllckNoZWNrIiwidm9pY2VTdGF0ZSIsImFzc2lnbiIsIm9wIiwiZ3VpbGRfaWQiLCJ2b2ljZUNoYW5uZWwiLCJ0ZXh0Q2hhbm5lbCIsIm5vZGUiLCJub2RlcyIsInVzZWFibGVOb2RlcyIsImVtaXQiLCJzZXRWb2x1bWUiLCJ2b2x1bWUiLCJmaWx0ZXJzIiwiRmlsdGVycyIsImRhdGEiLCJzZWFyY2giLCJxdWVyeSIsInJlcXVlc3RlciIsImNvbm5lY3QiLCJzdGF0ZSIsInNlbmQiLCJjaGFubmVsX2lkIiwic2VsZl9tdXRlIiwic2VsZk11dGUiLCJzZWxmX2RlYWYiLCJzZWxmRGVhZmVuIiwiX21vdmVOb2RlIiwiX2NhbGxlZTIiLCJfdGhpcyIsIl90aGlzJHF1ZXVlJGN1cnJlbnQiLCJfdGhpcyR2b2ljZVN0YXRlJHNlc3MiLCJfdGhpcyR2b2ljZVN0YXRlIiwiZGVzdHJveU9sZE5vZGUiLCJjdXJyZW50Tm9kZSIsImRlc3RpbmF0aW9uTm9kZSIsInBvc2l0aW9uIiwiZmV0Y2hlZFBsYXllciIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsImxlYXN0TG9hZE5vZGUiLCJmaXJzdCIsImlkZW50aWZpZXIiLCJjb25uZWN0ZWQiLCJfcmVmIiwiX2NhbGxlZSIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJyZXN0IiwiZGVzdHJveVBsYXllciIsInNldFRpbWVvdXQiLCJfeDIiLCJjb25jYXQiLCJzZXNzaW9uSWQiLCJ0cmFjayIsImluZm8iLCJ1cGRhdGVQbGF5ZXIiLCJndWlsZElkIiwiZW5jb2RlZFRyYWNrIiwicXVldWUiLCJjdXJyZW50IiwicGF1c2VkIiwiZGlzdG9ydGlvbiIsImVxdWFsaXplciIsImthcmFva2UiLCJyb3RhdGlvbiIsInRpbWVzY2FsZSIsInZpYnJhdG8iLCJ2b2ljZSIsInRva2VuIiwiZXZlbnQiLCJlbmRwb2ludCIsIm1vdmVOb2RlIiwiX3giLCJkaXNjb25uZWN0IiwicGF1c2UiLCJkZXN0cm95IiwidW5kZWZpbmVkIiwic2V0Vm9pY2VDaGFubmVsIiwiY2hhbm5lbCIsInNldFRleHRDaGFubmVsIiwic2V0Tm93UGxheWluZ01lc3NhZ2UiLCJtZXNzYWdlIiwibm93UGxheWluZ01lc3NhZ2UiLCJfcGxheSIsIl9jYWxsZWUzIiwib3B0aW9uc09yVHJhY2siLCJwbGF5T3B0aW9ucyIsIl90aGlzJHF1ZXVlJGN1cnJlbnQyIiwiZmluYWxPcHRpb25zIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQzIiwiVHJhY2tVdGlscyIsInZhbGlkYXRlIiwicHJldmlvdXMiLCJldmVyeSIsImluY2x1ZGVzIiwiaXNVbnJlc29sdmVkVHJhY2siLCJnZXRDbG9zZXN0VHJhY2siLCJ0MCIsInBsYXkiLCJwbGF5aW5nIiwiX3gzIiwiX3g0Iiwic2V0QXV0b3BsYXkiLCJhdXRvcGxheVN0YXRlIiwiYm90VXNlciIsImlzQXV0b3BsYXkiLCJfZ2V0UmVjb21tZW5kZWQiLCJfY2FsbGVlNCIsImhhc1Nwb3RpZnlVUkwiLCJoYXNZb3VUdWJlVVJMIiwiX3JlcyIsImlzU3BvdGlmeVBsdWdpbkVuYWJsZWQiLCJpc1Nwb3RpZnlTb3VyY2VNYW5hZ2VyRW5hYmxlZCIsInRyYWNrSUQiLCJhcnRpc3RJRCIsInJlY29tbWVuZGVkUmVzdWx0IiwicGxheWxpc3REYXRhIiwicmVjb21tZW5kZWRUcmFja3MiLCJfdHJhY2tzIiwidmlkZW9JRCIsIl9yZXMyIiwic2VhcmNoVVJJIiwicmVzIiwidHJhY2tzIiwiZmlsdGVyZWRUcmFja3MiLCJfaXRlcmF0b3IiLCJfc3RlcCIsIl90cmFjayIsIl90cmFjayR0aXRsZSRzcGxpdCRtYSIsIl90cmFjayR0aXRsZSRzcGxpdCRtYTIiLCJhdXRob3IiLCJ0aXRsZSIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NCIsInNvbWUiLCJ1cmwiLCJ1cmkiLCJwbHVnaW5zIiwicGx1Z2luIiwic291cmNlTWFuYWdlcnMiLCJleHRyYWN0U3BvdGlmeVRyYWNrSUQiLCJleHRyYWN0U3BvdGlmeUFydGlzdElEIiwicGx1Z2luSW5mbyIsImFydGlzdFVybCIsImVuY29kZVVSSUNvbXBvbmVudCIsImxvYWRUeXBlIiwibWFwIiwiYnVpbGQiLCJzdWJzdHJpbmciLCJpbmRleE9mIiwicGxheWxpc3QiLCJyZXBsYWNlWW91VHViZUNyZWRlbnRpYWxzIiwicmVwbGFjZSIsInNwbGl0Iiwic3RyIiwidHJpbSIsImVyciIsImdldFJlY29tbWVuZGVkIiwiX3g1IiwiX3g2Iiwic2V0VHJhY2tSZXBlYXQiLCJyZXBlYXQiLCJvbGRQbGF5ZXIiLCJ0cmFja1JlcGVhdCIsInF1ZXVlUmVwZWF0IiwiZHluYW1pY1JlcGVhdCIsInNldFF1ZXVlUmVwZWF0Iiwic2V0RHluYW1pY1JlcGVhdCIsIm1zIiwiX3RoaXMyIiwic2l6ZSIsImR5bmFtaWNMb29wSW50ZXJ2YWwiLCJzZXRJbnRlcnZhbCIsInNodWZmbGVkIiwic2h1ZmZsZSIsImNsZWFyIiwiYWRkIiwiY2xlYXJJbnRlcnZhbCIsInJlc3RhcnQiLCJfdGhpcyRxdWV1ZSRjdXJyZW50MyIsIl90aGlzJHF1ZXVlJGN1cnJlbnQ0IiwiYW1vdW50Iiwic3BsaWNlIiwidG90YWxTaXplIiwidW5zaGlmdCIsInNlZWsiLCJkdXJhdGlvbiIsIk1hdGgiLCJtYXgiLCJtaW4iLCJpbml0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0cnVjdHVyZXMvUGxheWVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlcnMgfSBmcm9tIFwiLi9GaWx0ZXJzXCI7XG5pbXBvcnQgeyBMYXZhbGlua1Jlc3BvbnNlLCBNYW5hZ2VyLCBQbGF5bGlzdFJhd0RhdGEsIFNlYXJjaFF1ZXJ5LCBTZWFyY2hSZXN1bHQgfSBmcm9tIFwiLi9NYW5hZ2VyXCI7XG5pbXBvcnQgeyBMYXZhbGlua0luZm8sIE5vZGUgfSBmcm9tIFwiLi9Ob2RlXCI7XG5pbXBvcnQgeyBRdWV1ZSB9IGZyb20gXCIuL1F1ZXVlXCI7XG5pbXBvcnQgeyBTaXplcywgU3RhdGUsIFN0cnVjdHVyZSwgVHJhY2tTb3VyY2VOYW1lLCBUcmFja1V0aWxzLCBWb2ljZVN0YXRlIH0gZnJvbSBcIi4vVXRpbHNcIjtcbmltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHBsYXllckNoZWNrIGZyb20gXCIuLi9VdGlscy9QbGF5ZXJDaGVja1wiO1xuaW1wb3J0IHsgQ2xpZW50VXNlciwgTWVzc2FnZSwgVXNlciB9IGZyb20gXCJkaXNjb3JkLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBQbGF5ZXIge1xuXHQvKiogVGhlIFF1ZXVlIGZvciB0aGUgUGxheWVyLiAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgcXVldWUgPSBuZXcgKFN0cnVjdHVyZS5nZXQoXCJRdWV1ZVwiKSkoKSBhcyBRdWV1ZTtcblx0LyoqIFRoZSBmaWx0ZXJzIGFwcGxpZWQgdG8gdGhlIGF1ZGlvLiAqL1xuXHRwdWJsaWMgZmlsdGVyczogRmlsdGVycztcblx0LyoqIFdoZXRoZXIgdGhlIHF1ZXVlIHJlcGVhdHMgdGhlIHRyYWNrLiAqL1xuXHRwdWJsaWMgdHJhY2tSZXBlYXQgPSBmYWxzZTtcblx0LyoqIFdoZXRoZXIgdGhlIHF1ZXVlIHJlcGVhdHMgdGhlIHF1ZXVlLiAqL1xuXHRwdWJsaWMgcXVldWVSZXBlYXQgPSBmYWxzZTtcblx0LyoqV2hldGhlciB0aGUgcXVldWUgcmVwZWF0cyBhbmQgc2h1ZmZsZXMgYWZ0ZXIgZWFjaCBzb25nLiAqL1xuXHRwdWJsaWMgZHluYW1pY1JlcGVhdCA9IGZhbHNlO1xuXHQvKiogVGhlIHRpbWUgdGhlIHBsYXllciBpcyBpbiB0aGUgdHJhY2suICovXG5cdHB1YmxpYyBwb3NpdGlvbiA9IDA7XG5cdC8qKiBXaGV0aGVyIHRoZSBwbGF5ZXIgaXMgcGxheWluZy4gKi9cblx0cHVibGljIHBsYXlpbmcgPSBmYWxzZTtcblx0LyoqIFdoZXRoZXIgdGhlIHBsYXllciBpcyBwYXVzZWQuICovXG5cdHB1YmxpYyBwYXVzZWQgPSBmYWxzZTtcblx0LyoqIFRoZSB2b2x1bWUgZm9yIHRoZSBwbGF5ZXIgKi9cblx0cHVibGljIHZvbHVtZTogbnVtYmVyO1xuXHQvKiogVGhlIE5vZGUgZm9yIHRoZSBQbGF5ZXIuICovXG5cdHB1YmxpYyBub2RlOiBOb2RlO1xuXHQvKiogVGhlIGd1aWxkIGZvciB0aGUgcGxheWVyLiAqL1xuXHRwdWJsaWMgZ3VpbGQ6IHN0cmluZztcblx0LyoqIFRoZSB2b2ljZSBjaGFubmVsIGZvciB0aGUgcGxheWVyLiAqL1xuXHRwdWJsaWMgdm9pY2VDaGFubmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblx0LyoqIFRoZSB0ZXh0IGNoYW5uZWwgZm9yIHRoZSBwbGF5ZXIuICovXG5cdHB1YmxpYyB0ZXh0Q2hhbm5lbDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cdC8qKlRoZSBub3cgcGxheWluZyBtZXNzYWdlLiAqL1xuXHRwdWJsaWMgbm93UGxheWluZ01lc3NhZ2U/OiBNZXNzYWdlO1xuXHQvKiogVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHBsYXllci4gKi9cblx0cHVibGljIHN0YXRlOiBTdGF0ZSA9IFwiRElTQ09OTkVDVEVEXCI7XG5cdC8qKiBUaGUgZXF1YWxpemVyIGJhbmRzIGFycmF5LiAqL1xuXHRwdWJsaWMgYmFuZHMgPSBuZXcgQXJyYXk8bnVtYmVyPigxNSkuZmlsbCgwLjApO1xuXHQvKiogVGhlIHZvaWNlIHN0YXRlIG9iamVjdCBmcm9tIERpc2NvcmQuICovXG5cdHB1YmxpYyB2b2ljZVN0YXRlOiBWb2ljZVN0YXRlO1xuXHQvKiogVGhlIE1hbmFnZXIuICovXG5cdHB1YmxpYyBtYW5hZ2VyOiBNYW5hZ2VyO1xuXHQvKiogVGhlIGF1dG9wbGF5IHN0YXRlIG9mIHRoZSBwbGF5ZXIuICovXG5cdHB1YmxpYyBpc0F1dG9wbGF5OiBib29sZWFuID0gZmFsc2U7XG5cblx0cHJpdmF0ZSBzdGF0aWMgX21hbmFnZXI6IE1hbmFnZXI7XG5cdHByaXZhdGUgcmVhZG9ubHkgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblx0cHJpdmF0ZSBkeW5hbWljTG9vcEludGVydmFsOiBOb2RlSlMuVGltZW91dDtcblxuXHQvKipcblx0ICogU2V0IGN1c3RvbSBkYXRhLlxuXHQgKiBAcGFyYW0ga2V5XG5cdCAqIEBwYXJhbSB2YWx1ZVxuXHQgKi9cblx0cHVibGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiB2b2lkIHtcblx0XHR0aGlzLmRhdGFba2V5XSA9IHZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBjdXN0b20gZGF0YS5cblx0ICogQHBhcmFtIGtleVxuXHQgKi9cblx0cHVibGljIGdldDxUPihrZXk6IHN0cmluZyk6IFQge1xuXHRcdHJldHVybiB0aGlzLmRhdGFba2V5XSBhcyBUO1xuXHR9XG5cblx0LyoqIEBoaWRkZW4gKi9cblx0cHVibGljIHN0YXRpYyBpbml0KG1hbmFnZXI6IE1hbmFnZXIpOiB2b2lkIHtcblx0XHR0aGlzLl9tYW5hZ2VyID0gbWFuYWdlcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgbmV3IHBsYXllciwgcmV0dXJucyBvbmUgaWYgaXQgYWxyZWFkeSBleGlzdHMuXG5cdCAqIEBwYXJhbSBvcHRpb25zXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihwdWJsaWMgb3B0aW9uczogUGxheWVyT3B0aW9ucykge1xuXHRcdGlmICghdGhpcy5tYW5hZ2VyKSB0aGlzLm1hbmFnZXIgPSBTdHJ1Y3R1cmUuZ2V0KFwiUGxheWVyXCIpLl9tYW5hZ2VyO1xuXHRcdGlmICghdGhpcy5tYW5hZ2VyKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIk1hbmFnZXIgaGFzIG5vdCBiZWVuIGluaXRpYXRlZC5cIik7XG5cblx0XHRpZiAodGhpcy5tYW5hZ2VyLnBsYXllcnMuaGFzKG9wdGlvbnMuZ3VpbGQpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5tYW5hZ2VyLnBsYXllcnMuZ2V0KG9wdGlvbnMuZ3VpbGQpO1xuXHRcdH1cblxuXHRcdHBsYXllckNoZWNrKG9wdGlvbnMpO1xuXG5cdFx0dGhpcy5ndWlsZCA9IG9wdGlvbnMuZ3VpbGQ7XG5cdFx0dGhpcy52b2ljZVN0YXRlID0gT2JqZWN0LmFzc2lnbih7XG5cdFx0XHRvcDogXCJ2b2ljZVVwZGF0ZVwiLFxuXHRcdFx0Z3VpbGRfaWQ6IG9wdGlvbnMuZ3VpbGQsXG5cdFx0fSk7XG5cblx0XHRpZiAob3B0aW9ucy52b2ljZUNoYW5uZWwpIHRoaXMudm9pY2VDaGFubmVsID0gb3B0aW9ucy52b2ljZUNoYW5uZWw7XG5cdFx0aWYgKG9wdGlvbnMudGV4dENoYW5uZWwpIHRoaXMudGV4dENoYW5uZWwgPSBvcHRpb25zLnRleHRDaGFubmVsO1xuXG5cdFx0Y29uc3Qgbm9kZSA9IHRoaXMubWFuYWdlci5ub2Rlcy5nZXQob3B0aW9ucy5ub2RlKTtcblx0XHR0aGlzLm5vZGUgPSBub2RlIHx8IHRoaXMubWFuYWdlci51c2VhYmxlTm9kZXM7XG5cblx0XHRpZiAoIXRoaXMubm9kZSkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJObyBhdmFpbGFibGUgbm9kZXMuXCIpO1xuXG5cdFx0dGhpcy5tYW5hZ2VyLnBsYXllcnMuc2V0KG9wdGlvbnMuZ3VpbGQsIHRoaXMpO1xuXHRcdHRoaXMubWFuYWdlci5lbWl0KFwiUGxheWVyQ3JlYXRlXCIsIHRoaXMpO1xuXHRcdHRoaXMuc2V0Vm9sdW1lKG9wdGlvbnMudm9sdW1lID8/IDEwMCk7XG5cdFx0dGhpcy5maWx0ZXJzID0gbmV3IEZpbHRlcnModGhpcyk7XG5cdH1cblxuXHQvKipcblx0ICogU2FtZSBhcyBNYW5hZ2VyI3NlYXJjaCgpIGJ1dCBhIHNob3J0Y3V0IG9uIHRoZSBwbGF5ZXIgaXRzZWxmLlxuXHQgKiBAcGFyYW0gcXVlcnlcblx0ICogQHBhcmFtIHJlcXVlc3RlclxuXHQgKi9cblx0cHVibGljIHNlYXJjaChxdWVyeTogc3RyaW5nIHwgU2VhcmNoUXVlcnksIHJlcXVlc3Rlcj86IFVzZXIgfCBDbGllbnRVc2VyKTogUHJvbWlzZTxTZWFyY2hSZXN1bHQ+IHtcblx0XHRyZXR1cm4gdGhpcy5tYW5hZ2VyLnNlYXJjaChxdWVyeSwgcmVxdWVzdGVyKTtcblx0fVxuXG5cblxuXHQvKiogQ29ubmVjdCB0byB0aGUgdm9pY2UgY2hhbm5lbC4gKi9cblx0cHVibGljIGNvbm5lY3QoKTogdGhpcyB7XG5cdFx0aWYgKCF0aGlzLnZvaWNlQ2hhbm5lbCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJObyB2b2ljZSBjaGFubmVsIGhhcyBiZWVuIHNldC5cIik7XG5cdFx0dGhpcy5zdGF0ZSA9IFwiQ09OTkVDVElOR1wiO1xuXG5cdFx0dGhpcy5tYW5hZ2VyLm9wdGlvbnMuc2VuZCh0aGlzLmd1aWxkLCB7XG5cdFx0XHRvcDogNCxcblx0XHRcdGQ6IHtcblx0XHRcdFx0Z3VpbGRfaWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRcdGNoYW5uZWxfaWQ6IHRoaXMudm9pY2VDaGFubmVsLFxuXHRcdFx0XHRzZWxmX211dGU6IHRoaXMub3B0aW9ucy5zZWxmTXV0ZSB8fCBmYWxzZSxcblx0XHRcdFx0c2VsZl9kZWFmOiB0aGlzLm9wdGlvbnMuc2VsZkRlYWZlbiB8fCBmYWxzZSxcblx0XHRcdH0sXG5cdFx0fSk7XG5cblx0XHR0aGlzLnN0YXRlID0gXCJDT05ORUNURURcIjtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBNb3ZlcyB0aGUgcGxheWVyIHRvIGEgZGlmZmVyZW50IG5vZGUuXG5cdCAqXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBbbm9kZV0gLSBUaGUgSUQgb2YgdGhlIG5vZGUgdG8gbW92ZSB0by5cblx0ICogQHJldHVybnMge3RoaXN9IC0gVGhlIHBsYXllciBpbnN0YW5jZS5cblx0ICovXG5cdHB1YmxpYyBhc3luYyBtb3ZlTm9kZShub2RlPzogc3RyaW5nKTogUHJvbWlzZTx0aGlzPiB7XG5cdFx0bm9kZSA9IG5vZGUgfHwgdGhpcy5tYW5hZ2VyLmxlYXN0TG9hZE5vZGUuZmlyc3QoKS5vcHRpb25zLmlkZW50aWZpZXIgfHwgdGhpcy5tYW5hZ2VyLm5vZGVzLmZpbHRlcigobikgPT4gbi5jb25uZWN0ZWQpLmZpcnN0KCkub3B0aW9ucy5pZGVudGlmaWVyO1xuXHRcdGlmICghdGhpcy5tYW5hZ2VyLm5vZGVzLmhhcyhub2RlKSkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJObyBub2RlcyBhdmFpbGFibGUuXCIpO1xuXHRcdGlmICh0aGlzLm5vZGUub3B0aW9ucy5pZGVudGlmaWVyID09PSBub2RlKSByZXR1cm4gdGhpcztcblxuXHRcdGNvbnN0IGRlc3Ryb3lPbGROb2RlID0gYXN5bmMgKG5vZGU6IE5vZGUpID0+IHtcblx0XHRcdHRoaXMuc3RhdGUgPSBcIk1PVklOR1wiO1xuXG5cdFx0XHRpZiAodGhpcy5tYW5hZ2VyLm5vZGVzLmdldChub2RlLm9wdGlvbnMuaWRlbnRpZmllcikgJiYgdGhpcy5tYW5hZ2VyLm5vZGVzLmdldChub2RlLm9wdGlvbnMuaWRlbnRpZmllcikuY29ubmVjdGVkKSBhd2FpdCBub2RlLnJlc3QuZGVzdHJveVBsYXllcih0aGlzLmd1aWxkKTtcblxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiAodGhpcy5zdGF0ZSA9IFwiQ09OTkVDVEVEXCIpLCA1MDAwKTtcblx0XHR9O1xuXG5cdFx0Y29uc3QgY3VycmVudE5vZGUgPSB0aGlzLm5vZGU7XG5cdFx0Y29uc3QgZGVzdGluYXRpb25Ob2RlID0gdGhpcy5tYW5hZ2VyLm5vZGVzLmdldChub2RlKTtcblx0XHRsZXQgcG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uO1xuXG5cdFx0aWYgKGN1cnJlbnROb2RlLmNvbm5lY3RlZCkge1xuXHRcdFx0Y29uc3QgZmV0Y2hlZFBsYXllciA9IGF3YWl0IGN1cnJlbnROb2RlLnJlc3QuZ2V0KGAvdjQvc2Vzc2lvbnMvJHtjdXJyZW50Tm9kZS5zZXNzaW9uSWR9L3BsYXllcnMvJHt0aGlzLmd1aWxkfWApIGFzIHsgdHJhY2s/OiB7IGluZm86IHsgcG9zaXRpb246IG51bWJlciB9IH0gfTtcblx0XHRcdHBvc2l0aW9uID0gZmV0Y2hlZFBsYXllci50cmFjay5pbmZvLnBvc2l0aW9uO1xuXHRcdH1cblxuXHRcdGF3YWl0IGRlc3RpbmF0aW9uTm9kZS5yZXN0LnVwZGF0ZVBsYXllcih7XG5cdFx0XHRndWlsZElkOiB0aGlzLmd1aWxkLFxuXHRcdFx0ZGF0YToge1xuXHRcdFx0XHRlbmNvZGVkVHJhY2s6IHRoaXMucXVldWUuY3VycmVudD8udHJhY2ssXG5cdFx0XHRcdHBvc2l0aW9uOiBwb3NpdGlvbixcblx0XHRcdFx0dm9sdW1lOiB0aGlzLnZvbHVtZSxcblx0XHRcdFx0cGF1c2VkOiB0aGlzLnBhdXNlZCxcblx0XHRcdFx0ZmlsdGVyczoge1xuXHRcdFx0XHRcdGRpc3RvcnRpb246IHRoaXMuZmlsdGVycy5kaXN0b3J0aW9uLFxuXHRcdFx0XHRcdGVxdWFsaXplcjogdGhpcy5maWx0ZXJzLmVxdWFsaXplcixcblx0XHRcdFx0XHRrYXJhb2tlOiB0aGlzLmZpbHRlcnMua2FyYW9rZSxcblx0XHRcdFx0XHRyb3RhdGlvbjogdGhpcy5maWx0ZXJzLnJvdGF0aW9uLFxuXHRcdFx0XHRcdHRpbWVzY2FsZTogdGhpcy5maWx0ZXJzLnRpbWVzY2FsZSxcblx0XHRcdFx0XHR2aWJyYXRvOiB0aGlzLmZpbHRlcnMudmlicmF0byxcblx0XHRcdFx0XHR2b2x1bWU6IHRoaXMuZmlsdGVycy52b2x1bWUsXG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdH0pO1xuXG5cdFx0YXdhaXQgZGVzdGluYXRpb25Ob2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRkYXRhOiB7XG5cdFx0XHRcdHZvaWNlOiB7XG5cdFx0XHRcdFx0dG9rZW46IHRoaXMudm9pY2VTdGF0ZS5ldmVudC50b2tlbixcblx0XHRcdFx0XHRlbmRwb2ludDogdGhpcy52b2ljZVN0YXRlLmV2ZW50LmVuZHBvaW50LFxuXHRcdFx0XHRcdHNlc3Npb25JZDogdGhpcy52b2ljZVN0YXRlPy5zZXNzaW9uSWQgPz8gXCJcIixcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0fSk7XG5cblx0XHR0aGlzLm5vZGUgPSBkZXN0aW5hdGlvbk5vZGU7XG5cdFx0ZGVzdHJveU9sZE5vZGUoY3VycmVudE5vZGUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqIERpc2Nvbm5lY3QgZnJvbSB0aGUgdm9pY2UgY2hhbm5lbC4gKi9cblx0cHVibGljIGRpc2Nvbm5lY3QoKTogdGhpcyB7XG5cdFx0aWYgKHRoaXMudm9pY2VDaGFubmVsID09PSBudWxsKSByZXR1cm4gdGhpcztcblx0XHR0aGlzLnN0YXRlID0gXCJESVNDT05ORUNUSU5HXCI7XG5cblx0XHR0aGlzLnBhdXNlKHRydWUpO1xuXHRcdHRoaXMubWFuYWdlci5vcHRpb25zLnNlbmQodGhpcy5ndWlsZCwge1xuXHRcdFx0b3A6IDQsXG5cdFx0XHRkOiB7XG5cdFx0XHRcdGd1aWxkX2lkOiB0aGlzLmd1aWxkLFxuXHRcdFx0XHRjaGFubmVsX2lkOiBudWxsLFxuXHRcdFx0XHRzZWxmX211dGU6IGZhbHNlLFxuXHRcdFx0XHRzZWxmX2RlYWY6IGZhbHNlLFxuXHRcdFx0fSxcblx0XHR9KTtcblxuXHRcdHRoaXMudm9pY2VDaGFubmVsID0gbnVsbDtcblx0XHR0aGlzLnN0YXRlID0gXCJESVNDT05ORUNURURcIjtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKiBEZXN0cm95cyB0aGUgcGxheWVyLiAqL1xuXHRwdWJsaWMgZGVzdHJveShkaXNjb25uZWN0ID0gdHJ1ZSk6IHZvaWQge1xuXHRcdHRoaXMuc3RhdGUgPSBcIkRFU1RST1lJTkdcIjtcblxuXHRcdGlmIChkaXNjb25uZWN0KSB7XG5cdFx0XHR0aGlzLmRpc2Nvbm5lY3QoKTtcblx0XHR9XG5cblx0XHR0aGlzLm5vZGUucmVzdC5kZXN0cm95UGxheWVyKHRoaXMuZ3VpbGQpO1xuXHRcdHRoaXMubWFuYWdlci5lbWl0KFwiUGxheWVyRGVzdHJveVwiLCB0aGlzKTtcblx0XHR0aGlzLm1hbmFnZXIucGxheWVycy5kZWxldGUodGhpcy5ndWlsZCk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgcGxheWVyIHZvaWNlIGNoYW5uZWwuXG5cdCAqIEBwYXJhbSBjaGFubmVsXG5cdCAqL1xuXHRwdWJsaWMgc2V0Vm9pY2VDaGFubmVsKGNoYW5uZWw6IHN0cmluZyk6IHRoaXMge1xuXHRcdGlmICh0eXBlb2YgY2hhbm5lbCAhPT0gXCJzdHJpbmdcIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNoYW5uZWwgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcuXCIpO1xuXG5cdFx0dGhpcy52b2ljZUNoYW5uZWwgPSBjaGFubmVsO1xuXHRcdHRoaXMuY29ubmVjdCgpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIHBsYXllciB0ZXh0IGNoYW5uZWwuXG5cdCAqIEBwYXJhbSBjaGFubmVsXG5cdCAqL1xuXHRwdWJsaWMgc2V0VGV4dENoYW5uZWwoY2hhbm5lbDogc3RyaW5nKTogdGhpcyB7XG5cdFx0aWYgKHR5cGVvZiBjaGFubmVsICE9PSBcInN0cmluZ1wiKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2hhbm5lbCBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZy5cIik7XG5cblx0XHR0aGlzLnRleHRDaGFubmVsID0gY2hhbm5lbDtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKiBTZXRzIHRoZSBub3cgcGxheWluZyBtZXNzYWdlLiAqL1xuXHRwdWJsaWMgc2V0Tm93UGxheWluZ01lc3NhZ2UobWVzc2FnZTogTWVzc2FnZSk6IE1lc3NhZ2Uge1xuXHRcdGlmICghbWVzc2FnZSkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcIllvdSBtdXN0IHByb3ZpZGUgdGhlIG1lc3NhZ2Ugb2YgdGhlIG5vdyBwbGF5aW5nIG1lc3NhZ2UuXCIpO1xuXHRcdH1cblx0XHRyZXR1cm4gKHRoaXMubm93UGxheWluZ01lc3NhZ2UgPSBtZXNzYWdlKTtcblx0fVxuXG5cdC8qKiBQbGF5cyB0aGUgbmV4dCB0cmFjay4gKi9cblx0cHVibGljIGFzeW5jIHBsYXkoKTogUHJvbWlzZTx2b2lkPjtcblxuXHQvKipcblx0ICogUGxheXMgdGhlIHNwZWNpZmllZCB0cmFjay5cblx0ICogQHBhcmFtIHRyYWNrXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgcGxheSh0cmFjazogVHJhY2sgfCBVbnJlc29sdmVkVHJhY2spOiBQcm9taXNlPHZvaWQ+O1xuXG5cdC8qKlxuXHQgKiBQbGF5cyB0aGUgbmV4dCB0cmFjayB3aXRoIHNvbWUgb3B0aW9ucy5cblx0ICogQHBhcmFtIG9wdGlvbnNcblx0ICovXG5cdHB1YmxpYyBhc3luYyBwbGF5KG9wdGlvbnM6IFBsYXlPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcblxuXG5cdC8qKlxuXHQgKiBQbGF5cyB0aGUgc3BlY2lmaWVkIHRyYWNrIHdpdGggc29tZSBvcHRpb25zLlxuXHQgKiBAcGFyYW0gdHJhY2tcblx0ICogQHBhcmFtIG9wdGlvbnNcblx0ICovXG5cdHB1YmxpYyBhc3luYyBwbGF5KHRyYWNrOiBUcmFjayB8IFVucmVzb2x2ZWRUcmFjaywgb3B0aW9uczogUGxheU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuXHRwdWJsaWMgYXN5bmMgcGxheShvcHRpb25zT3JUcmFjaz86IFBsYXlPcHRpb25zIHwgVHJhY2sgfCBVbnJlc29sdmVkVHJhY2ssIHBsYXlPcHRpb25zPzogUGxheU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAodHlwZW9mIG9wdGlvbnNPclRyYWNrICE9PSBcInVuZGVmaW5lZFwiICYmIFRyYWNrVXRpbHMudmFsaWRhdGUob3B0aW9uc09yVHJhY2spKSB7XG5cdFx0XHRpZiAodGhpcy5xdWV1ZS5jdXJyZW50KSB0aGlzLnF1ZXVlLnByZXZpb3VzID0gdGhpcy5xdWV1ZS5jdXJyZW50O1xuXHRcdFx0dGhpcy5xdWV1ZS5jdXJyZW50ID0gb3B0aW9uc09yVHJhY2sgYXMgVHJhY2s7XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLnF1ZXVlLmN1cnJlbnQpIHRocm93IG5ldyBSYW5nZUVycm9yKFwiTm8gY3VycmVudCB0cmFjay5cIik7XG5cblx0XHRjb25zdCBmaW5hbE9wdGlvbnMgPSBwbGF5T3B0aW9uc1xuXHRcdFx0PyBwbGF5T3B0aW9uc1xuXHRcdFx0OiBbXCJzdGFydFRpbWVcIiwgXCJlbmRUaW1lXCIsIFwibm9SZXBsYWNlXCJdLmV2ZXJ5KCh2KSA9PiBPYmplY3Qua2V5cyhvcHRpb25zT3JUcmFjayB8fCB7fSkuaW5jbHVkZXModikpXG5cdFx0XHQ/IChvcHRpb25zT3JUcmFjayBhcyBQbGF5T3B0aW9ucylcblx0XHRcdDoge307XG5cblx0XHRpZiAoVHJhY2tVdGlscy5pc1VucmVzb2x2ZWRUcmFjayh0aGlzLnF1ZXVlLmN1cnJlbnQpKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHR0aGlzLnF1ZXVlLmN1cnJlbnQgPSBhd2FpdCBUcmFja1V0aWxzLmdldENsb3Nlc3RUcmFjayh0aGlzLnF1ZXVlLmN1cnJlbnQgYXMgVW5yZXNvbHZlZFRyYWNrKTtcblx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdHRoaXMubWFuYWdlci5lbWl0KFwiVHJhY2tFcnJvclwiLCB0aGlzLCB0aGlzLnF1ZXVlLmN1cnJlbnQsIGVycm9yKTtcblx0XHRcdFx0aWYgKHRoaXMucXVldWVbMF0pIHJldHVybiB0aGlzLnBsYXkodGhpcy5xdWV1ZVswXSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRhd2FpdCB0aGlzLm5vZGUucmVzdC51cGRhdGVQbGF5ZXIoe1xuXHRcdFx0Z3VpbGRJZDogdGhpcy5ndWlsZCxcblx0XHRcdGRhdGE6IHtcblx0XHRcdFx0ZW5jb2RlZFRyYWNrOiB0aGlzLnF1ZXVlLmN1cnJlbnQ/LnRyYWNrLFxuXHRcdFx0XHQuLi5maW5hbE9wdGlvbnMsXG5cdFx0XHR9LFxuXHRcdH0pO1xuXG5cdFx0T2JqZWN0LmFzc2lnbih0aGlzLCB7IHBvc2l0aW9uOiAwLCBwbGF5aW5nOiB0cnVlIH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGF1dG9wbGF5LXN0YXRlIG9mIHRoZSBwbGF5ZXIuXG5cdCAqIEBwYXJhbSBhdXRvcGxheVN0YXRlXG5cdCAqIEBwYXJhbSBib3RVc2VyXG5cdCAqL1xuXHRwdWJsaWMgc2V0QXV0b3BsYXkoYXV0b3BsYXlTdGF0ZTogYm9vbGVhbiwgYm90VXNlcjogb2JqZWN0KSB7XG5cdFx0aWYgKHR5cGVvZiBhdXRvcGxheVN0YXRlICE9PSBcImJvb2xlYW5cIikge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcImF1dG9wbGF5U3RhdGUgbXVzdCBiZSBhIGJvb2xlYW4uXCIpO1xuXHRcdH1cblxuXHRcdGlmICh0eXBlb2YgYm90VXNlciAhPT0gXCJvYmplY3RcIikge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcImJvdFVzZXIgbXVzdCBiZSBhIHVzZXItb2JqZWN0LlwiKTtcblx0XHR9XG5cblx0XHR0aGlzLmlzQXV0b3BsYXkgPSBhdXRvcGxheVN0YXRlO1xuXHRcdHRoaXMuc2V0KFwiSW50ZXJuYWxfQm90VXNlclwiLCBib3RVc2VyKTtcblxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cdFxuXG5cdC8qKlxuXHQgKiBHZXRzIHJlY29tbWVuZGVkIHRyYWNrcyBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiB0cmFja3MuXG5cdCAqIEBwYXJhbSB0cmFja1xuXHQgKiBAcGFyYW0gcmVxdWVzdGVyXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgZ2V0UmVjb21tZW5kZWQodHJhY2s6IFRyYWNrLCByZXF1ZXN0ZXI/OiBVc2VyIHwgQ2xpZW50VXNlcikge1xuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLm1hbmFnZXIudXNlYWJsZU5vZGVzO1xuXG5cdFx0aWYgKCFub2RlKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJObyBhdmFpbGFibGUgbm9kZXMuXCIpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGhhc1Nwb3RpZnlVUkwgPSBbXCJzcG90aWZ5LmNvbVwiLCBcIm9wZW4uc3BvdGlmeS5jb21cIl0uc29tZSgodXJsKSA9PiB0cmFjay51cmkuaW5jbHVkZXModXJsKSk7XG5cdFx0Y29uc3QgaGFzWW91VHViZVVSTCA9IFtcInlvdXR1YmUuY29tXCIsIFwieW91dHUuYmVcIl0uc29tZSgodXJsKSA9PiB0cmFjay51cmkuaW5jbHVkZXModXJsKSk7XG5cblx0XHRpZiAoaGFzU3BvdGlmeVVSTCkge1xuXHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgbm9kZS5yZXN0LmdldChgL3Y0L2luZm9gKTtcblx0XHRcdGNvbnN0IGluZm8gPSByZXMgYXMgTGF2YWxpbmtJbmZvO1xuXG5cdFx0XHRjb25zdCBpc1Nwb3RpZnlQbHVnaW5FbmFibGVkID0gaW5mby5wbHVnaW5zLnNvbWUoKHBsdWdpbjogeyBuYW1lOiBzdHJpbmcgfSkgPT4gcGx1Z2luLm5hbWUgPT09IFwibGF2YXNyYy1wbHVnaW5cIik7XG5cdFx0XHRjb25zdCBpc1Nwb3RpZnlTb3VyY2VNYW5hZ2VyRW5hYmxlZCA9IGluZm8uc291cmNlTWFuYWdlcnMuaW5jbHVkZXMoXCJzcG90aWZ5XCIpO1xuXG5cdFx0XHRpZiAoaXNTcG90aWZ5UGx1Z2luRW5hYmxlZCAmJiBpc1Nwb3RpZnlTb3VyY2VNYW5hZ2VyRW5hYmxlZCkge1xuXHRcdFx0XHRjb25zdCB0cmFja0lEID0gbm9kZS5leHRyYWN0U3BvdGlmeVRyYWNrSUQodHJhY2sudXJpKTtcblx0XHRcdFx0Y29uc3QgYXJ0aXN0SUQgPSBub2RlLmV4dHJhY3RTcG90aWZ5QXJ0aXN0SUQodHJhY2sucGx1Z2luSW5mby5hcnRpc3RVcmwpO1xuXG5cdFx0XHRcdGxldCBpZGVudGlmaWVyID0gXCJcIjtcblx0XHRcdFx0aWYgKHRyYWNrSUQgJiYgYXJ0aXN0SUQpIHtcblx0XHRcdFx0XHRpZGVudGlmaWVyID0gYHNwcmVjOnNlZWRfYXJ0aXN0cz0ke2FydGlzdElEfSZzZWVkX3RyYWNrcz0ke3RyYWNrSUR9YDtcblx0XHRcdFx0fSBlbHNlIGlmICh0cmFja0lEKSB7XG5cdFx0XHRcdFx0aWRlbnRpZmllciA9IGBzcHJlYzpzZWVkX3RyYWNrcz0ke3RyYWNrSUR9YDtcblx0XHRcdFx0fSBlbHNlIGlmIChhcnRpc3RJRCkge1xuXHRcdFx0XHRcdGlkZW50aWZpZXIgPSBgc3ByZWM6c2VlZF9hcnRpc3RzPSR7YXJ0aXN0SUR9YDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChpZGVudGlmaWVyKSB7XG5cdFx0XHRcdFx0Y29uc3QgcmVjb21tZW5kZWRSZXN1bHQgPSAoYXdhaXQgbm9kZS5yZXN0LmdldChgL3Y0L2xvYWR0cmFja3M/aWRlbnRpZmllcj0ke2VuY29kZVVSSUNvbXBvbmVudChpZGVudGlmaWVyKX1gKSkgYXMgTGF2YWxpbmtSZXNwb25zZTtcblxuXHRcdFx0XHRcdGlmIChyZWNvbW1lbmRlZFJlc3VsdC5sb2FkVHlwZSA9PT0gXCJwbGF5bGlzdFwiKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBwbGF5bGlzdERhdGEgPSByZWNvbW1lbmRlZFJlc3VsdC5kYXRhIGFzIFBsYXlsaXN0UmF3RGF0YTtcblx0XHRcdFx0XHRcdGNvbnN0IHJlY29tbWVuZGVkVHJhY2tzID0gcGxheWxpc3REYXRhLnRyYWNrcztcblxuXHRcdFx0XHRcdFx0aWYgKHJlY29tbWVuZGVkVHJhY2tzKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHRyYWNrcyA9IHJlY29tbWVuZGVkVHJhY2tzLm1hcCgodHJhY2spID0+IFRyYWNrVXRpbHMuYnVpbGQodHJhY2ssIHJlcXVlc3RlcikpO1xuXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cmFja3M7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bGV0IHZpZGVvSUQgPSB0cmFjay51cmkuc3Vic3RyaW5nKHRyYWNrLnVyaS5pbmRleE9mKFwiPVwiKSArIDEpO1xuXG5cdFx0aWYgKCFoYXNZb3VUdWJlVVJMKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCB0aGlzLm1hbmFnZXIuc2VhcmNoKGAke3RyYWNrLmF1dGhvcn0gLSAke3RyYWNrLnRpdGxlfWApO1xuXG5cdFx0XHR2aWRlb0lEID0gcmVzLnRyYWNrc1swXS51cmkuc3Vic3RyaW5nKHJlcy50cmFja3NbMF0udXJpLmluZGV4T2YoXCI9XCIpICsgMSk7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgc2VhcmNoVVJJID0gYGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9JHt2aWRlb0lEfSZsaXN0PVJEJHt2aWRlb0lEfWA7XG5cblx0XHRjb25zdCByZXMgPSBhd2FpdCB0aGlzLm1hbmFnZXIuc2VhcmNoKHNlYXJjaFVSSSk7XG5cblx0XHRpZiAocmVzLmxvYWRUeXBlID09PSBcImVtcHR5XCIgfHwgcmVzLmxvYWRUeXBlID09PSBcImVycm9yXCIpIHJldHVybjtcblxuXHRcdGxldCB0cmFja3MgPSByZXMudHJhY2tzO1xuXG5cdFx0aWYgKHJlcy5sb2FkVHlwZSA9PT0gXCJwbGF5bGlzdFwiKSB7XG5cdFx0XHR0cmFja3MgPSByZXMucGxheWxpc3QudHJhY2tzO1xuXHRcdH1cblxuXHRcdGNvbnN0IGZpbHRlcmVkVHJhY2tzID0gdHJhY2tzLmZpbHRlcigodHJhY2spID0+IHRyYWNrLnVyaSAhPT0gYGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9JHt2aWRlb0lEfWApO1xuXG5cdFx0aWYgKHRoaXMubWFuYWdlci5vcHRpb25zLnJlcGxhY2VZb3VUdWJlQ3JlZGVudGlhbHMpIHtcblx0XHRcdGZvciAoY29uc3QgdHJhY2sgb2YgZmlsdGVyZWRUcmFja3MpIHtcblx0XHRcdFx0dHJhY2suYXV0aG9yID0gdHJhY2suYXV0aG9yLnJlcGxhY2UoXCItIFRvcGljXCIsIFwiXCIpO1xuXHRcdFx0XHR0cmFjay50aXRsZSA9IHRyYWNrLnRpdGxlLnJlcGxhY2UoXCJUb3BpYyAtXCIsIFwiXCIpO1xuXG5cdFx0XHRcdGlmICh0cmFjay50aXRsZS5pbmNsdWRlcyhcIi1cIikpIHtcblx0XHRcdFx0XHRjb25zdCBbYXV0aG9yLCB0aXRsZV0gPSB0cmFjay50aXRsZS5zcGxpdChcIi1cIikubWFwKChzdHI6IHN0cmluZykgPT4gc3RyLnRyaW0oKSk7XG5cdFx0XHRcdFx0dHJhY2suYXV0aG9yID0gYXV0aG9yO1xuXHRcdFx0XHRcdHRyYWNrLnRpdGxlID0gdGl0bGU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmlsdGVyZWRUcmFja3M7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgcGxheWVyIHZvbHVtZS5cblx0ICogQHBhcmFtIHZvbHVtZVxuXHQgKi9cblx0cHVibGljIHNldFZvbHVtZSh2b2x1bWU6IG51bWJlcik6IHRoaXMge1xuXHRcdGlmIChpc05hTih2b2x1bWUpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiVm9sdW1lIG11c3QgYmUgYSBudW1iZXIuXCIpO1xuXG5cdFx0dGhpcy5ub2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMub3B0aW9ucy5ndWlsZCxcblx0XHRcdGRhdGE6IHtcblx0XHRcdFx0dm9sdW1lLFxuXHRcdFx0fSxcblx0XHR9KTtcblxuXHRcdHRoaXMudm9sdW1lID0gdm9sdW1lO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgdHJhY2sgcmVwZWF0LlxuXHQgKiBAcGFyYW0gcmVwZWF0XG5cdCAqL1xuXHRwdWJsaWMgc2V0VHJhY2tSZXBlYXQocmVwZWF0OiBib29sZWFuKTogdGhpcyB7XG5cdFx0aWYgKHR5cGVvZiByZXBlYXQgIT09IFwiYm9vbGVhblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdSZXBlYXQgY2FuIG9ubHkgYmUgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLicpO1xuXG5cdFx0Y29uc3Qgb2xkUGxheWVyID0geyAuLi50aGlzIH07XG5cblx0XHRpZiAocmVwZWF0KSB7XG5cdFx0XHR0aGlzLnRyYWNrUmVwZWF0ID0gdHJ1ZTtcblx0XHRcdHRoaXMucXVldWVSZXBlYXQgPSBmYWxzZTtcblx0XHRcdHRoaXMuZHluYW1pY1JlcGVhdCA9IGZhbHNlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnRyYWNrUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnF1ZXVlUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLmR5bmFtaWNSZXBlYXQgPSBmYWxzZTtcblx0XHR9XG5cblx0XHR0aGlzLm1hbmFnZXIuZW1pdChcIlBsYXllclN0YXRlVXBkYXRlXCIsIG9sZFBsYXllciwgdGhpcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgcXVldWUgcmVwZWF0LlxuXHQgKiBAcGFyYW0gcmVwZWF0XG5cdCAqL1xuXHRwdWJsaWMgc2V0UXVldWVSZXBlYXQocmVwZWF0OiBib29sZWFuKTogdGhpcyB7XG5cdFx0aWYgKHR5cGVvZiByZXBlYXQgIT09IFwiYm9vbGVhblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdSZXBlYXQgY2FuIG9ubHkgYmUgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLicpO1xuXG5cdFx0Y29uc3Qgb2xkUGxheWVyID0geyAuLi50aGlzIH07XG5cblx0XHRpZiAocmVwZWF0KSB7XG5cdFx0XHR0aGlzLnRyYWNrUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnF1ZXVlUmVwZWF0ID0gdHJ1ZTtcblx0XHRcdHRoaXMuZHluYW1pY1JlcGVhdCA9IGZhbHNlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnRyYWNrUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnF1ZXVlUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLmR5bmFtaWNSZXBlYXQgPSBmYWxzZTtcblx0XHR9XG5cblx0XHR0aGlzLm1hbmFnZXIuZW1pdChcIlBsYXllclN0YXRlVXBkYXRlXCIsIG9sZFBsYXllciwgdGhpcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgcXVldWUgdG8gcmVwZWF0IGFuZCBzaHVmZmxlcyB0aGUgcXVldWUgYWZ0ZXIgZWFjaCBzb25nLlxuXHQgKiBAcGFyYW0gcmVwZWF0IFwidHJ1ZVwiIG9yIFwiZmFsc2VcIi5cblx0ICogQHBhcmFtIG1zIEFmdGVyIGhvdyBtYW55IG1pbGxpc2Vjb25kcyB0byB0cmlnZ2VyIGR5bmFtaWMgcmVwZWF0LlxuXHQgKi9cblx0cHVibGljIHNldER5bmFtaWNSZXBlYXQocmVwZWF0OiBib29sZWFuLCBtczogbnVtYmVyKTogdGhpcyB7XG5cdFx0aWYgKHR5cGVvZiByZXBlYXQgIT09IFwiYm9vbGVhblwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdSZXBlYXQgY2FuIG9ubHkgYmUgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLicpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnF1ZXVlLnNpemUgPD0gMSkge1xuXHRcdFx0dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJUaGUgcXVldWUgc2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiKTtcblx0XHR9XG5cblx0XHRjb25zdCBvbGRQbGF5ZXIgPSB7IC4uLnRoaXMgfTtcblxuXHRcdGlmIChyZXBlYXQpIHtcblx0XHRcdHRoaXMudHJhY2tSZXBlYXQgPSBmYWxzZTtcblx0XHRcdHRoaXMucXVldWVSZXBlYXQgPSBmYWxzZTtcblx0XHRcdHRoaXMuZHluYW1pY1JlcGVhdCA9IHRydWU7XG5cblx0XHRcdHRoaXMuZHluYW1pY0xvb3BJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0aWYgKCF0aGlzLmR5bmFtaWNSZXBlYXQpIHJldHVybjtcblx0XHRcdFx0Y29uc3Qgc2h1ZmZsZWQgPSBfLnNodWZmbGUodGhpcy5xdWV1ZSk7XG5cdFx0XHRcdHRoaXMucXVldWUuY2xlYXIoKTtcblx0XHRcdFx0c2h1ZmZsZWQuZm9yRWFjaCgodHJhY2spID0+IHtcblx0XHRcdFx0XHR0aGlzLnF1ZXVlLmFkZCh0cmFjayk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSwgbXMpIGFzIE5vZGVKUy5UaW1lb3V0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjbGVhckludGVydmFsKHRoaXMuZHluYW1pY0xvb3BJbnRlcnZhbCk7XG5cdFx0XHR0aGlzLnRyYWNrUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnF1ZXVlUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLmR5bmFtaWNSZXBlYXQgPSBmYWxzZTtcblx0XHR9XG5cblx0XHR0aGlzLm1hbmFnZXIuZW1pdChcIlBsYXllclN0YXRlVXBkYXRlXCIsIG9sZFBsYXllciwgdGhpcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKiogUmVzdGFydHMgdGhlIGN1cnJlbnQgdHJhY2sgdG8gdGhlIHN0YXJ0LiAqL1xuXHRwdWJsaWMgcmVzdGFydCgpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMucXVldWUuY3VycmVudD8udHJhY2spIHtcblx0XHRcdGlmICh0aGlzLnF1ZXVlLmxlbmd0aCkgdGhpcy5wbGF5KCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5ub2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRkYXRhOiB7XG5cdFx0XHRcdHBvc2l0aW9uOiAwLFxuXHRcdFx0XHRlbmNvZGVkVHJhY2s6IHRoaXMucXVldWUuY3VycmVudD8udHJhY2ssXG5cdFx0XHR9LFxuXHRcdH0pO1xuXHR9XG5cblx0LyoqIFN0b3BzIHRoZSBjdXJyZW50IHRyYWNrLCBvcHRpb25hbGx5IGdpdmUgYW4gYW1vdW50IHRvIHNraXAgdG8sIGUuZyA1IHdvdWxkIHBsYXkgdGhlIDV0aCBzb25nLiAqL1xuXHRwdWJsaWMgc3RvcChhbW91bnQ/OiBudW1iZXIpOiB0aGlzIHtcblx0XHRpZiAodHlwZW9mIGFtb3VudCA9PT0gXCJudW1iZXJcIiAmJiBhbW91bnQgPiAxKSB7XG5cdFx0XHRpZiAoYW1vdW50ID4gdGhpcy5xdWV1ZS5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKFwiQ2Fubm90IHNraXAgbW9yZSB0aGFuIHRoZSBxdWV1ZSBsZW5ndGguXCIpO1xuXHRcdFx0dGhpcy5xdWV1ZS5zcGxpY2UoMCwgYW1vdW50IC0gMSk7XG5cdFx0fVxuXG5cdFx0dGhpcy5ub2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRkYXRhOiB7XG5cdFx0XHRcdGVuY29kZWRUcmFjazogbnVsbCxcblx0XHRcdH0sXG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXVzZXMgdGhlIGN1cnJlbnQgdHJhY2suXG5cdCAqIEBwYXJhbSBwYXVzZVxuXHQgKi9cblx0cHVibGljIHBhdXNlKHBhdXNlOiBib29sZWFuKTogdGhpcyB7XG5cdFx0aWYgKHR5cGVvZiBwYXVzZSAhPT0gXCJib29sZWFuXCIpIHRocm93IG5ldyBSYW5nZUVycm9yKCdQYXVzZSBjYW4gb25seSBiZSBcInRydWVcIiBvciBcImZhbHNlXCIuJyk7XG5cblx0XHRpZiAodGhpcy5wYXVzZWQgPT09IHBhdXNlIHx8ICF0aGlzLnF1ZXVlLnRvdGFsU2l6ZSkgcmV0dXJuIHRoaXM7XG5cblx0XHRjb25zdCBvbGRQbGF5ZXIgPSB7IC4uLnRoaXMgfTtcblxuXHRcdHRoaXMucGxheWluZyA9ICFwYXVzZTtcblx0XHR0aGlzLnBhdXNlZCA9IHBhdXNlO1xuXG5cdFx0dGhpcy5ub2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRkYXRhOiB7XG5cdFx0XHRcdHBhdXNlZDogcGF1c2UsXG5cdFx0XHR9LFxuXHRcdH0pO1xuXG5cdFx0dGhpcy5tYW5hZ2VyLmVtaXQoXCJQbGF5ZXJTdGF0ZVVwZGF0ZVwiLCBvbGRQbGF5ZXIsIHRoaXMpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqIEdvIGJhY2sgdG8gdGhlIHByZXZpb3VzIHNvbmcuICovXG5cdHB1YmxpYyBwcmV2aW91cygpOiB0aGlzIHtcblx0XHR0aGlzLnF1ZXVlLnVuc2hpZnQodGhpcy5xdWV1ZS5wcmV2aW91cyk7XG5cdFx0dGhpcy5zdG9wKCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBTZWVrcyB0byB0aGUgcG9zaXRpb24gaW4gdGhlIGN1cnJlbnQgdHJhY2suXG5cdCAqIEBwYXJhbSBwb3NpdGlvblxuXHQgKi9cblx0cHVibGljIHNlZWsocG9zaXRpb246IG51bWJlcik6IHRoaXMge1xuXHRcdGlmICghdGhpcy5xdWV1ZS5jdXJyZW50KSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdHBvc2l0aW9uID0gTnVtYmVyKHBvc2l0aW9uKTtcblxuXHRcdGlmIChpc05hTihwb3NpdGlvbikpIHRocm93IG5ldyBSYW5nZUVycm9yKFwiUG9zaXRpb24gbXVzdCBiZSBhIG51bWJlci5cIik7XG5cdFx0aWYgKHBvc2l0aW9uIDwgMCB8fCBwb3NpdGlvbiA+IHRoaXMucXVldWUuY3VycmVudC5kdXJhdGlvbikgcG9zaXRpb24gPSBNYXRoLm1heChNYXRoLm1pbihwb3NpdGlvbiwgdGhpcy5xdWV1ZS5jdXJyZW50LmR1cmF0aW9uKSwgMCk7XG5cblx0XHR0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247XG5cblx0XHR0aGlzLm5vZGUucmVzdC51cGRhdGVQbGF5ZXIoe1xuXHRcdFx0Z3VpbGRJZDogdGhpcy5ndWlsZCxcblx0XHRcdGRhdGE6IHtcblx0XHRcdFx0cG9zaXRpb246IHBvc2l0aW9uLFxuXHRcdFx0fSxcblx0XHR9KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxheWVyT3B0aW9ucyB7XG5cdC8qKiBUaGUgZ3VpbGQgdGhlIFBsYXllciBiZWxvbmdzIHRvLiAqL1xuXHRndWlsZDogc3RyaW5nO1xuXHQvKiogVGhlIHRleHQgY2hhbm5lbCB0aGUgUGxheWVyIGJlbG9uZ3MgdG8uICovXG5cdHRleHRDaGFubmVsOiBzdHJpbmc7XG5cdC8qKiBUaGUgdm9pY2UgY2hhbm5lbCB0aGUgUGxheWVyIGJlbG9uZ3MgdG8uICovXG5cdHZvaWNlQ2hhbm5lbD86IHN0cmluZztcblx0LyoqIFRoZSBub2RlIHRoZSBQbGF5ZXIgdXNlcy4gKi9cblx0bm9kZT86IHN0cmluZztcblx0LyoqIFRoZSBpbml0aWFsIHZvbHVtZSB0aGUgUGxheWVyIHdpbGwgdXNlLiAqL1xuXHR2b2x1bWU/OiBudW1iZXI7XG5cdC8qKiBJZiB0aGUgcGxheWVyIHNob3VsZCBtdXRlIGl0c2VsZi4gKi9cblx0c2VsZk11dGU/OiBib29sZWFuO1xuXHQvKiogSWYgdGhlIHBsYXllciBzaG91bGQgZGVhZiBpdHNlbGYuICovXG5cdHNlbGZEZWFmZW4/OiBib29sZWFuO1xufVxuXG4vKiogSWYgdHJhY2sgcGFydGlhbHMgYXJlIHNldCBzb21lIG9mIHRoZXNlIHdpbGwgYmUgYHVuZGVmaW5lZGAgYXMgdGhleSB3ZXJlIHJlbW92ZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYWNrIHtcblx0LyoqIFRoZSBiYXNlNjQgZW5jb2RlZCB0cmFjay4gKi9cblx0cmVhZG9ubHkgdHJhY2s6IHN0cmluZztcblx0LyoqIFRoZSBhcnR3b3JrIHVybCBvZiB0aGUgdHJhY2suICovXG5cdHJlYWRvbmx5IGFydHdvcmtVcmw6IHN0cmluZztcblx0LyoqIFRoZSB0cmFjayBzb3VyY2UgbmFtZS4gKi9cblx0cmVhZG9ubHkgc291cmNlTmFtZTogVHJhY2tTb3VyY2VOYW1lO1xuXHQvKiogVGhlIHRpdGxlIG9mIHRoZSB0cmFjay4gKi9cblx0dGl0bGU6IHN0cmluZztcblx0LyoqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSB0cmFjay4gKi9cblx0cmVhZG9ubHkgaWRlbnRpZmllcjogc3RyaW5nO1xuXHQvKiogVGhlIGF1dGhvciBvZiB0aGUgdHJhY2suICovXG5cdGF1dGhvcjogc3RyaW5nO1xuXHQvKiogVGhlIGR1cmF0aW9uIG9mIHRoZSB0cmFjay4gKi9cblx0cmVhZG9ubHkgZHVyYXRpb246IG51bWJlcjtcblx0LyoqIFRoZSBJU1JDIG9mIHRoZSB0cmFjay4gKi9cblx0cmVhZG9ubHkgaXNyYzogc3RyaW5nO1xuXHQvKiogSWYgdGhlIHRyYWNrIGlzIHNlZWthYmxlLiAqL1xuXHRyZWFkb25seSBpc1NlZWthYmxlOiBib29sZWFuO1xuXHQvKiogSWYgdGhlIHRyYWNrIGlzIGEgc3RyZWFtLi4gKi9cblx0cmVhZG9ubHkgaXNTdHJlYW06IGJvb2xlYW47XG5cdC8qKiBUaGUgdXJpIG9mIHRoZSB0cmFjay4gKi9cblx0cmVhZG9ubHkgdXJpOiBzdHJpbmc7XG5cdC8qKiBUaGUgdGh1bWJuYWlsIG9mIHRoZSB0cmFjayBvciBudWxsIGlmIGl0J3MgYSB1bnN1cHBvcnRlZCBzb3VyY2UuICovXG5cdHJlYWRvbmx5IHRodW1ibmFpbDogc3RyaW5nIHwgbnVsbDtcblx0LyoqIFRoZSB1c2VyIHRoYXQgcmVxdWVzdGVkIHRoZSB0cmFjay4gKi9cblx0cmVhZG9ubHkgcmVxdWVzdGVyOiBVc2VyIHwgQ2xpZW50VXNlciB8IG51bGw7XG5cdC8qKiBEaXNwbGF5cyB0aGUgdHJhY2sgdGh1bWJuYWlsIHdpdGggb3B0aW9uYWwgc2l6ZSBvciBudWxsIGlmIGl0J3MgYSB1bnN1cHBvcnRlZCBzb3VyY2UuICovXG5cdGRpc3BsYXlUaHVtYm5haWwoc2l6ZT86IFNpemVzKTogc3RyaW5nO1xuXHQvKiogQWRkaXRpb25hbCB0cmFjayBpbmZvIHByb3ZpZGVkIGJ5IHBsdWdpbnMuICovXG5cdHBsdWdpbkluZm86IFRyYWNrUGx1Z2luSW5mbztcblx0LyoqIEFkZCB5b3VyIG93biBkYXRhIHRvIHRoZSB0cmFjay4gKi9cblx0Y3VzdG9tRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2tQbHVnaW5JbmZvIHtcblx0YWxidW1OYW1lPzogc3RyaW5nO1xuXHRhbGJ1bVVybD86IHN0cmluZztcblx0YXJ0aXN0QXJ0d29ya1VybD86IHN0cmluZztcblx0YXJ0aXN0VXJsPzogc3RyaW5nO1xuXHRpc1ByZXZpZXc/OiBzdHJpbmc7XG5cdHByZXZpZXdVcmw/OiBzdHJpbmc7XG59XG5cbi8qKiBVbnJlc29sdmVkIHRyYWNrcyBjYW4ndCBiZSBwbGF5ZWQgbm9ybWFsbHksIHRoZXkgd2lsbCByZXNvbHZlIGJlZm9yZSBwbGF5aW5nIGludG8gYSBUcmFjay4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5yZXNvbHZlZFRyYWNrIGV4dGVuZHMgUGFydGlhbDxUcmFjaz4ge1xuXHQvKiogVGhlIHRpdGxlIHRvIHNlYXJjaCBhZ2FpbnN0LiAqL1xuXHR0aXRsZTogc3RyaW5nO1xuXHQvKiogVGhlIGF1dGhvciB0byBzZWFyY2ggYWdhaW5zdC4gKi9cblx0YXV0aG9yPzogc3RyaW5nO1xuXHQvKiogVGhlIGR1cmF0aW9uIHRvIHNlYXJjaCB3aXRoaW4gMTUwMCBtaWxsaXNlY29uZHMgb2YgdGhlIHJlc3VsdHMgZnJvbSBZb3VUdWJlLiAqL1xuXHRkdXJhdGlvbj86IG51bWJlcjtcblx0LyoqIFJlc29sdmVzIGludG8gYSBUcmFjay4gKi9cblx0cmVzb2x2ZSgpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYXlPcHRpb25zIHtcblx0LyoqIFRoZSBwb3NpdGlvbiB0byBzdGFydCB0aGUgdHJhY2suICovXG5cdHJlYWRvbmx5IHN0YXJ0VGltZT86IG51bWJlcjtcblx0LyoqIFRoZSBwb3NpdGlvbiB0byBlbmQgdGhlIHRyYWNrLiAqL1xuXHRyZWFkb25seSBlbmRUaW1lPzogbnVtYmVyO1xuXHQvKiogV2hldGhlciB0byBub3QgcmVwbGFjZSB0aGUgdHJhY2sgaWYgYSBwbGF5IHBheWxvYWQgaXMgc2VudC4gKi9cblx0cmVhZG9ubHkgbm9SZXBsYWNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcXVhbGl6ZXJCYW5kIHtcblx0LyoqIFRoZSBiYW5kIG51bWJlciBiZWluZyAwIHRvIDE0LiAqL1xuXHRiYW5kOiBudW1iZXI7XG5cdC8qKiBUaGUgZ2FpbiBhbW91bnQgYmVpbmcgLTAuMjUgdG8gMS4wMCwgMC4yNSBiZWluZyBkb3VibGUuICovXG5cdGdhaW46IG51bWJlcjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBSUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsQ0FBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksWUFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBQStDLFNBQUFLLHVCQUFBQyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBRSx5QkFBQUYsQ0FBQSw2QkFBQUcsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRCx3QkFBQSxZQUFBQSx5QkFBQUYsQ0FBQSxXQUFBQSxDQUFBLEdBQUFLLENBQUEsR0FBQUQsQ0FBQSxLQUFBSixDQUFBO0FBQUEsU0FBQUgsd0JBQUFHLENBQUEsRUFBQUksQ0FBQSxTQUFBQSxDQUFBLElBQUFKLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLFNBQUFELENBQUEsZUFBQUEsQ0FBQSxnQkFBQU0sT0FBQSxDQUFBTixDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFLLENBQUEsR0FBQUgsd0JBQUEsQ0FBQUUsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUUsR0FBQSxDQUFBUCxDQUFBLFVBQUFLLENBQUEsQ0FBQUcsR0FBQSxDQUFBUixDQUFBLE9BQUFTLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWYsQ0FBQSxvQkFBQWUsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWpCLENBQUEsRUFBQWUsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxD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
778
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRmlsdGVycyIsInJlcXVpcmUiLCJfVXRpbHMiLCJfIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfUGxheWVyQ2hlY2siLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZSIsIl9fZXNNb2R1bGUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJXZWFrTWFwIiwiciIsInQiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwibCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiZiIsIm8iLCJuZXh0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImxlbmd0aCIsIkFycmF5IiwiaXNBcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX24iLCJGIiwicyIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwicHJvdG90eXBlIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImMiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImgiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsIm1ldGhvZCIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwicmVzdWx0TmFtZSIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9uZXh0IiwiX3Rocm93IiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnRpZXMiLCJfdG9Qcm9wZXJ0eUtleSIsImtleSIsIl9jcmVhdGVDbGFzcyIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiUGxheWVyIiwiZXhwb3J0cyIsIm9wdGlvbnMiLCJfb3B0aW9ucyRub2RlIiwiX29wdGlvbnMkdm9sdW1lIiwiU3RydWN0dXJlIiwiZmlsbCIsIm1hbmFnZXIiLCJfbWFuYWdlciIsIlJhbmdlRXJyb3IiLCJwbGF5ZXJzIiwiZ3VpbGQiLCJwbGF5ZXJDaGVjayIsInZvaWNlU3RhdGUiLCJhc3NpZ24iLCJvcCIsImd1aWxkX2lkIiwidm9pY2VDaGFubmVsIiwidGV4dENoYW5uZWwiLCJub2RlIiwibm9kZXMiLCJ1c2VhYmxlTm9kZXMiLCJlbWl0Iiwic2V0Vm9sdW1lIiwidm9sdW1lIiwiZmlsdGVycyIsIkZpbHRlcnMiLCJkYXRhIiwic2VhcmNoIiwicXVlcnkiLCJyZXF1ZXN0ZXIiLCJjb25uZWN0Iiwic3RhdGUiLCJzZW5kIiwiY2hhbm5lbF9pZCIsInNlbGZfbXV0ZSIsInNlbGZNdXRlIiwic2VsZl9kZWFmIiwic2VsZkRlYWZlbiIsIl9tb3ZlTm9kZSIsIl9jYWxsZWUyIiwiX3RoaXMkbWFuYWdlciRsZWFzdExvIiwiX3RoaXMkbWFuYWdlciRub2RlcyRmIiwiX3RoaXMiLCJfdGhpcyRxdWV1ZSRjdXJyZW50JHQiLCJfdGhpcyRxdWV1ZSRjdXJyZW50IiwiX3RoaXMkdm9pY2VTdGF0ZSRzZXNzIiwiX3RoaXMkdm9pY2VTdGF0ZSIsIl90aGlzJHZvaWNlQ2hhbm5lbCIsImRlc3Ryb3lPbGROb2RlIiwiY3VycmVudE5vZGUiLCJkZXN0aW5hdGlvbk5vZGUiLCJwb3NpdGlvbiIsIl9mZXRjaGVkUGxheWVyJHRyYWNrIiwiZmV0Y2hlZFBsYXllciIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsImxlYXN0TG9hZE5vZGUiLCJmaXJzdCIsImlkZW50aWZpZXIiLCJjb25uZWN0ZWQiLCJfcmVmIiwiX2NhbGxlZSIsIl9ub2RlJG9wdGlvbnMkaWRlbnRpZiIsImV4aXN0aW5nTm9kZSIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJyZXN0IiwiZGVzdHJveVBsYXllciIsInNldFRpbWVvdXQiLCJfeDIiLCJjb25jYXQiLCJzZXNzaW9uSWQiLCJ0cmFjayIsImluZm8iLCJ1cGRhdGVQbGF5ZXIiLCJndWlsZElkIiwiZW5jb2RlZFRyYWNrIiwicXVldWUiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwicGF1c2VkIiwiZGlzdG9ydGlvbiIsImVxdWFsaXplciIsImthcmFva2UiLCJyb3RhdGlvbiIsInRpbWVzY2FsZSIsInZpYnJhdG8iLCJ2b2ljZSIsInRva2VuIiwiZXZlbnQiLCJlbmRwb2ludCIsImNoYW5uZWxJZCIsIm1vdmVOb2RlIiwiX3giLCJkaXNjb25uZWN0IiwicGF1c2UiLCJkZXN0cm95Iiwic2V0Vm9pY2VDaGFubmVsIiwiY2hhbm5lbCIsInNldFRleHRDaGFubmVsIiwic2V0Tm93UGxheWluZ01lc3NhZ2UiLCJtZXNzYWdlIiwibm93UGxheWluZ01lc3NhZ2UiLCJfcGxheSIsIl9jYWxsZWUzIiwib3B0aW9uc09yVHJhY2siLCJwbGF5T3B0aW9ucyIsIl90aGlzJHF1ZXVlJGN1cnJlbnQkdDIiLCJfdGhpcyRxdWV1ZSRjdXJyZW50MiIsImZpbmFsT3B0aW9ucyIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsIlRyYWNrVXRpbHMiLCJ2YWxpZGF0ZSIsInByZXZpb3VzIiwiZXZlcnkiLCJpbmNsdWRlcyIsImlzVW5yZXNvbHZlZFRyYWNrIiwiZ2V0Q2xvc2VzdFRyYWNrIiwidDAiLCJwbGF5IiwicGxheWluZyIsIl94MyIsIl94NCIsInNldEF1dG9wbGF5IiwiYXV0b3BsYXlTdGF0ZSIsImJvdFVzZXIiLCJpc0F1dG9wbGF5IiwiX2dldFJlY29tbWVuZGVkIiwiX2NhbGxlZTQiLCJoYXNTcG90aWZ5VVJMIiwiaGFzWW91VHViZVVSTCIsIl9yZXMiLCJpc1Nwb3RpZnlQbHVnaW5FbmFibGVkIiwiaXNTcG90aWZ5U291cmNlTWFuYWdlckVuYWJsZWQiLCJfdHJhY2skcGx1Z2luSW5mbyRhcnQiLCJ0cmFja0lEIiwiYXJ0aXN0SUQiLCJyZWNvbW1lbmRlZFJlc3VsdCIsInBsYXlsaXN0RGF0YSIsInJlY29tbWVuZGVkVHJhY2tzIiwiX3RyYWNrcyIsInZpZGVvSUQiLCJfcmVzMiIsInNlYXJjaFVSSSIsInJlcyIsInRyYWNrcyIsIl9yZXMkcGxheWxpc3QkdHJhY2tzIiwiX3JlcyRwbGF5bGlzdCIsImZpbHRlcmVkVHJhY2tzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJfdHJhY2siLCJfdHJhY2skdGl0bGUkc3BsaXQkbWEiLCJfdHJhY2skdGl0bGUkc3BsaXQkbWEyIiwiYXV0aG9yIiwidGl0bGUiLCJfY2FsbGVlNCQiLCJfY29udGV4dDQiLCJzb21lIiwidXJsIiwidXJpIiwicGx1Z2lucyIsInBsdWdpbiIsInNvdXJjZU1hbmFnZXJzIiwiZXh0cmFjdFNwb3RpZnlUcmFja0lEIiwiZXh0cmFjdFNwb3RpZnlBcnRpc3RJRCIsInBsdWdpbkluZm8iLCJhcnRpc3RVcmwiLCJlbmNvZGVVUklDb21wb25lbnQiLCJsb2FkVHlwZSIsIm1hcCIsImJ1aWxkIiwic3Vic3RyaW5nIiwiaW5kZXhPZiIsInBsYXlsaXN0IiwicmVwbGFjZVlvdVR1YmVDcmVkZW50aWFscyIsInJlcGxhY2UiLCJzcGxpdCIsInN0ciIsInRyaW0iLCJlcnIiLCJnZXRSZWNvbW1lbmRlZCIsIl94NSIsIl94NiIsInNldFRyYWNrUmVwZWF0IiwicmVwZWF0Iiwib2xkUGxheWVyIiwidHJhY2tSZXBlYXQiLCJxdWV1ZVJlcGVhdCIsImR5bmFtaWNSZXBlYXQiLCJzZXRRdWV1ZVJlcGVhdCIsInNldER5bmFtaWNSZXBlYXQiLCJtcyIsIl90aGlzMiIsInNpemUiLCJkeW5hbWljTG9vcEludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJzaHVmZmxlZCIsInNodWZmbGUiLCJjbGVhciIsImFkZCIsImNsZWFySW50ZXJ2YWwiLCJyZXN0YXJ0IiwiX3RoaXMkcXVldWUkY3VycmVudDMiLCJfdGhpcyRxdWV1ZSRjdXJyZW50NCIsImFtb3VudCIsInNwbGljZSIsInRvdGFsU2l6ZSIsInVuc2hpZnQiLCJzZWVrIiwiX3RoaXMkcXVldWUkY3VycmVudCRkIiwiX3RoaXMkcXVldWUkY3VycmVudCRkMiIsImR1cmF0aW9uIiwiTWF0aCIsIm1heCIsIm1pbiIsImluaXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvU3RydWN0dXJlcy9QbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVycyB9IGZyb20gXCIuL0ZpbHRlcnNcIjtcbmltcG9ydCB7IExhdmFsaW5rUmVzcG9uc2UsIE1hbmFnZXIsIFBsYXlsaXN0UmF3RGF0YSwgU2VhcmNoUXVlcnksIFNlYXJjaFJlc3VsdCB9IGZyb20gXCIuL01hbmFnZXJcIjtcbmltcG9ydCB7IExhdmFsaW5rSW5mbywgTm9kZSB9IGZyb20gXCIuL05vZGVcIjtcbmltcG9ydCB7IFF1ZXVlIH0gZnJvbSBcIi4vUXVldWVcIjtcbmltcG9ydCB7IFNpemVzLCBTdGF0ZSwgU3RydWN0dXJlLCBUcmFja1NvdXJjZU5hbWUsIFRyYWNrVXRpbHMsIFZvaWNlU3RhdGUgfSBmcm9tIFwiLi9VdGlsc1wiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgcGxheWVyQ2hlY2sgZnJvbSBcIi4uL1V0aWxzL1BsYXllckNoZWNrXCI7XG5pbXBvcnQgeyBDbGllbnRVc2VyLCBNZXNzYWdlLCBVc2VyIH0gZnJvbSBcImRpc2NvcmQuanNcIjtcblxuZXhwb3J0IGNsYXNzIFBsYXllciB7XG5cdC8qKiBUaGUgUXVldWUgZm9yIHRoZSBQbGF5ZXIuICovXG5cdHB1YmxpYyByZWFkb25seSBxdWV1ZSA9IG5ldyAoU3RydWN0dXJlLmdldChcIlF1ZXVlXCIpKSgpIGFzIFF1ZXVlO1xuXHQvKiogVGhlIGZpbHRlcnMgYXBwbGllZCB0byB0aGUgYXVkaW8uICovXG5cdHB1YmxpYyBmaWx0ZXJzITogRmlsdGVycztcblx0LyoqIFdoZXRoZXIgdGhlIHF1ZXVlIHJlcGVhdHMgdGhlIHRyYWNrLiAqL1xuXHRwdWJsaWMgdHJhY2tSZXBlYXQgPSBmYWxzZTtcblx0LyoqIFdoZXRoZXIgdGhlIHF1ZXVlIHJlcGVhdHMgdGhlIHF1ZXVlLiAqL1xuXHRwdWJsaWMgcXVldWVSZXBlYXQgPSBmYWxzZTtcblx0LyoqV2hldGhlciB0aGUgcXVldWUgcmVwZWF0cyBhbmQgc2h1ZmZsZXMgYWZ0ZXIgZWFjaCBzb25nLiAqL1xuXHRwdWJsaWMgZHluYW1pY1JlcGVhdCA9IGZhbHNlO1xuXHQvKiogVGhlIHRpbWUgdGhlIHBsYXllciBpcyBpbiB0aGUgdHJhY2suICovXG5cdHB1YmxpYyBwb3NpdGlvbiA9IDA7XG5cdC8qKiBXaGV0aGVyIHRoZSBwbGF5ZXIgaXMgcGxheWluZy4gKi9cblx0cHVibGljIHBsYXlpbmcgPSBmYWxzZTtcblx0LyoqIFdoZXRoZXIgdGhlIHBsYXllciBpcyBwYXVzZWQuICovXG5cdHB1YmxpYyBwYXVzZWQgPSBmYWxzZTtcblx0LyoqIFRoZSB2b2x1bWUgZm9yIHRoZSBwbGF5ZXIgKi9cblx0cHVibGljIHZvbHVtZTogbnVtYmVyID0gMTAwO1xuXHQvKiogVGhlIE5vZGUgZm9yIHRoZSBQbGF5ZXIuICovXG5cdHB1YmxpYyBub2RlITogTm9kZTtcblx0LyoqIFRoZSBndWlsZCBmb3IgdGhlIHBsYXllci4gKi9cblx0cHVibGljIGd1aWxkOiBzdHJpbmcgPSBcIlwiO1xuXHQvKiogVGhlIHZvaWNlIGNoYW5uZWwgZm9yIHRoZSBwbGF5ZXIuICovXG5cdHB1YmxpYyB2b2ljZUNoYW5uZWw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXHQvKiogVGhlIHRleHQgY2hhbm5lbCBmb3IgdGhlIHBsYXllci4gKi9cblx0cHVibGljIHRleHRDaGFubmVsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblx0LyoqVGhlIG5vdyBwbGF5aW5nIG1lc3NhZ2UuICovXG5cdHB1YmxpYyBub3dQbGF5aW5nTWVzc2FnZT86IE1lc3NhZ2U7XG5cdC8qKiBUaGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgcGxheWVyLiAqL1xuXHRwdWJsaWMgc3RhdGU6IFN0YXRlID0gXCJESVNDT05ORUNURURcIjtcblx0LyoqIFRoZSBlcXVhbGl6ZXIgYmFuZHMgYXJyYXkuICovXG5cdHB1YmxpYyBiYW5kcyA9IG5ldyBBcnJheTxudW1iZXI+KDE1KS5maWxsKDAuMCk7XG5cdC8qKiBUaGUgdm9pY2Ugc3RhdGUgb2JqZWN0IGZyb20gRGlzY29yZC4gKi9cblx0cHVibGljIHZvaWNlU3RhdGUhOiBWb2ljZVN0YXRlO1xuXHQvKiogVGhlIE1hbmFnZXIuICovXG5cdHB1YmxpYyBtYW5hZ2VyITogTWFuYWdlcjtcblx0LyoqIFRoZSBhdXRvcGxheSBzdGF0ZSBvZiB0aGUgcGxheWVyLiAqL1xuXHRwdWJsaWMgaXNBdXRvcGxheTogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdHByaXZhdGUgc3RhdGljIF9tYW5hZ2VyOiBNYW5hZ2VyO1xuXHRwcml2YXRlIHJlYWRvbmx5IGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cdHByaXZhdGUgZHluYW1pY0xvb3BJbnRlcnZhbD86IE5vZGVKUy5UaW1lb3V0O1xuXG5cdC8qKlxuXHQgKiBTZXQgY3VzdG9tIGRhdGEuXG5cdCAqIEBwYXJhbSBrZXlcblx0ICogQHBhcmFtIHZhbHVlXG5cdCAqL1xuXHRwdWJsaWMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuXHRcdHRoaXMuZGF0YVtrZXldID0gdmFsdWU7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGN1c3RvbSBkYXRhLlxuXHQgKiBAcGFyYW0ga2V5XG5cdCAqL1xuXHRwdWJsaWMgZ2V0PFQ+KGtleTogc3RyaW5nKTogVCB7XG5cdFx0cmV0dXJuIHRoaXMuZGF0YVtrZXldIGFzIFQ7XG5cdH1cblxuXHQvKiogQGhpZGRlbiAqL1xuXHRwdWJsaWMgc3RhdGljIGluaXQobWFuYWdlcjogTWFuYWdlcik6IHZvaWQge1xuXHRcdHRoaXMuX21hbmFnZXIgPSBtYW5hZ2VyO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBuZXcgcGxheWVyLCByZXR1cm5zIG9uZSBpZiBpdCBhbHJlYWR5IGV4aXN0cy5cblx0ICogQHBhcmFtIG9wdGlvbnNcblx0ICovXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBvcHRpb25zOiBQbGF5ZXJPcHRpb25zKSB7XG5cdFx0aWYgKCF0aGlzLm1hbmFnZXIpIHRoaXMubWFuYWdlciA9IFN0cnVjdHVyZS5nZXQoXCJQbGF5ZXJcIikuX21hbmFnZXI7XG5cdFx0aWYgKCF0aGlzLm1hbmFnZXIpIHRocm93IG5ldyBSYW5nZUVycm9yKFwiTWFuYWdlciBoYXMgbm90IGJlZW4gaW5pdGlhdGVkLlwiKTtcblxuXHRcdGlmICh0aGlzLm1hbmFnZXIucGxheWVycy5oYXMob3B0aW9ucy5ndWlsZCkpIHtcblx0XHRcdHJldHVybiB0aGlzLm1hbmFnZXIucGxheWVycy5nZXQob3B0aW9ucy5ndWlsZCkgYXMgdGhpcztcblx0XHR9XG5cblx0XHRwbGF5ZXJDaGVjayhvcHRpb25zKTtcblxuXHRcdHRoaXMuZ3VpbGQgPSBvcHRpb25zLmd1aWxkO1xuXHRcdHRoaXMudm9pY2VTdGF0ZSA9IE9iamVjdC5hc3NpZ24oe1xuXHRcdFx0b3A6IFwidm9pY2VVcGRhdGVcIixcblx0XHRcdGd1aWxkX2lkOiBvcHRpb25zLmd1aWxkLFxuXHRcdH0pO1xuXG5cdFx0aWYgKG9wdGlvbnMudm9pY2VDaGFubmVsKSB0aGlzLnZvaWNlQ2hhbm5lbCA9IG9wdGlvbnMudm9pY2VDaGFubmVsO1xuXHRcdGlmIChvcHRpb25zLnRleHRDaGFubmVsKSB0aGlzLnRleHRDaGFubmVsID0gb3B0aW9ucy50ZXh0Q2hhbm5lbDtcblxuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLm1hbmFnZXIubm9kZXMuZ2V0KG9wdGlvbnMubm9kZSA/PyBcIlwiKTtcblx0XHR0aGlzLm5vZGUgPSBub2RlIHx8IHRoaXMubWFuYWdlci51c2VhYmxlTm9kZXM7XG5cblx0XHRpZiAoIXRoaXMubm9kZSkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJObyBhdmFpbGFibGUgbm9kZXMuXCIpO1xuXG5cdFx0dGhpcy5tYW5hZ2VyLnBsYXllcnMuc2V0KG9wdGlvbnMuZ3VpbGQsIHRoaXMpO1xuXHRcdHRoaXMubWFuYWdlci5lbWl0KFwiUGxheWVyQ3JlYXRlXCIsIHRoaXMpO1xuXHRcdHRoaXMuc2V0Vm9sdW1lKG9wdGlvbnMudm9sdW1lID8/IDEwMCk7XG5cdFx0dGhpcy5maWx0ZXJzID0gbmV3IEZpbHRlcnModGhpcyk7XG5cdH1cblxuXHQvKipcblx0ICogU2FtZSBhcyBNYW5hZ2VyI3NlYXJjaCgpIGJ1dCBhIHNob3J0Y3V0IG9uIHRoZSBwbGF5ZXIgaXRzZWxmLlxuXHQgKiBAcGFyYW0gcXVlcnlcblx0ICogQHBhcmFtIHJlcXVlc3RlclxuXHQgKi9cblx0cHVibGljIHNlYXJjaChxdWVyeTogc3RyaW5nIHwgU2VhcmNoUXVlcnksIHJlcXVlc3Rlcj86IFVzZXIgfCBDbGllbnRVc2VyKTogUHJvbWlzZTxTZWFyY2hSZXN1bHQ+IHtcblx0XHRyZXR1cm4gdGhpcy5tYW5hZ2VyLnNlYXJjaChxdWVyeSwgcmVxdWVzdGVyKTtcblx0fVxuXG5cblxuXHQvKiogQ29ubmVjdCB0byB0aGUgdm9pY2UgY2hhbm5lbC4gKi9cblx0cHVibGljIGNvbm5lY3QoKTogdGhpcyB7XG5cdFx0aWYgKCF0aGlzLnZvaWNlQ2hhbm5lbCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJObyB2b2ljZSBjaGFubmVsIGhhcyBiZWVuIHNldC5cIik7XG5cdFx0dGhpcy5zdGF0ZSA9IFwiQ09OTkVDVElOR1wiO1xuXG5cdFx0dGhpcy5tYW5hZ2VyLm9wdGlvbnMuc2VuZCh0aGlzLmd1aWxkLCB7XG5cdFx0XHRvcDogNCxcblx0XHRcdGQ6IHtcblx0XHRcdFx0Z3VpbGRfaWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRcdGNoYW5uZWxfaWQ6IHRoaXMudm9pY2VDaGFubmVsLFxuXHRcdFx0XHRzZWxmX211dGU6IHRoaXMub3B0aW9ucy5zZWxmTXV0ZSB8fCBmYWxzZSxcblx0XHRcdFx0c2VsZl9kZWFmOiB0aGlzLm9wdGlvbnMuc2VsZkRlYWZlbiB8fCBmYWxzZSxcblx0XHRcdH0sXG5cdFx0fSk7XG5cblx0XHR0aGlzLnN0YXRlID0gXCJDT05ORUNURURcIjtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBNb3ZlcyB0aGUgcGxheWVyIHRvIGEgZGlmZmVyZW50IG5vZGUuXG5cdCAqXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBbbm9kZV0gLSBUaGUgSUQgb2YgdGhlIG5vZGUgdG8gbW92ZSB0by5cblx0ICogQHJldHVybnMge3RoaXN9IC0gVGhlIHBsYXllciBpbnN0YW5jZS5cblx0ICovXG5cdHB1YmxpYyBhc3luYyBtb3ZlTm9kZShub2RlPzogc3RyaW5nKTogUHJvbWlzZTx0aGlzPiB7XG5cdFx0bm9kZSA9IG5vZGUgfHwgdGhpcy5tYW5hZ2VyLmxlYXN0TG9hZE5vZGUuZmlyc3QoKT8ub3B0aW9ucy5pZGVudGlmaWVyIHx8IHRoaXMubWFuYWdlci5ub2Rlcy5maWx0ZXIoKG4pID0+IG4uY29ubmVjdGVkKS5maXJzdCgpPy5vcHRpb25zLmlkZW50aWZpZXI7XG5cdFx0aWYgKCFub2RlKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIk5vIG5vZGVzIGF2YWlsYWJsZS5cIik7XG5cdFx0aWYgKCF0aGlzLm1hbmFnZXIubm9kZXMuaGFzKG5vZGUpKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIk5vIG5vZGVzIGF2YWlsYWJsZS5cIik7XG5cdFx0aWYgKHRoaXMubm9kZS5vcHRpb25zLmlkZW50aWZpZXIgPT09IG5vZGUpIHJldHVybiB0aGlzO1xuXG5cdFx0Y29uc3QgZGVzdHJveU9sZE5vZGUgPSBhc3luYyAobm9kZTogTm9kZSkgPT4ge1xuXHRcdFx0dGhpcy5zdGF0ZSA9IFwiTU9WSU5HXCI7XG5cblx0XHRcdGNvbnN0IGV4aXN0aW5nTm9kZSA9IHRoaXMubWFuYWdlci5ub2Rlcy5nZXQobm9kZS5vcHRpb25zLmlkZW50aWZpZXIgPz8gXCJcIik7XG5cdFx0XHRpZiAoZXhpc3RpbmdOb2RlICYmIGV4aXN0aW5nTm9kZS5jb25uZWN0ZWQpIGF3YWl0IG5vZGUucmVzdC5kZXN0cm95UGxheWVyKHRoaXMuZ3VpbGQpO1xuXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+ICh0aGlzLnN0YXRlID0gXCJDT05ORUNURURcIiksIDUwMDApO1xuXHRcdH07XG5cblx0XHRjb25zdCBjdXJyZW50Tm9kZSA9IHRoaXMubm9kZTtcblx0XHRjb25zdCBkZXN0aW5hdGlvbk5vZGUgPSB0aGlzLm1hbmFnZXIubm9kZXMuZ2V0KG5vZGUpO1xuXHRcdGlmICghZGVzdGluYXRpb25Ob2RlKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcihgTm9kZSBcIiR7bm9kZX1cIiBub3QgZm91bmQuYCk7XG5cdFx0bGV0IHBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbjtcblxuXHRcdGlmIChjdXJyZW50Tm9kZS5jb25uZWN0ZWQpIHtcblx0XHRcdGNvbnN0IGZldGNoZWRQbGF5ZXIgPSBhd2FpdCBjdXJyZW50Tm9kZS5yZXN0LmdldChgL3Y0L3Nlc3Npb25zLyR7Y3VycmVudE5vZGUuc2Vzc2lvbklkfS9wbGF5ZXJzLyR7dGhpcy5ndWlsZH1gKSBhcyB7IHRyYWNrPzogeyBpbmZvOiB7IHBvc2l0aW9uOiBudW1iZXIgfSB9IH07XG5cdFx0XHRpZiAoZmV0Y2hlZFBsYXllcj8udHJhY2s/LmluZm8pIHtcblx0XHRcdFx0cG9zaXRpb24gPSBmZXRjaGVkUGxheWVyLnRyYWNrLmluZm8ucG9zaXRpb247XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0YXdhaXQgZGVzdGluYXRpb25Ob2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRkYXRhOiB7XG5cdFx0XHRcdGVuY29kZWRUcmFjazogdGhpcy5xdWV1ZS5jdXJyZW50Py50cmFjayA/PyB1bmRlZmluZWQsXG5cdFx0XHRcdHBvc2l0aW9uOiBwb3NpdGlvbixcblx0XHRcdFx0dm9sdW1lOiB0aGlzLnZvbHVtZSxcblx0XHRcdFx0cGF1c2VkOiB0aGlzLnBhdXNlZCxcblx0XHRcdFx0ZmlsdGVyczoge1xuXHRcdFx0XHRcdGRpc3RvcnRpb246IHRoaXMuZmlsdGVycy5kaXN0b3J0aW9uLFxuXHRcdFx0XHRcdGVxdWFsaXplcjogdGhpcy5maWx0ZXJzLmVxdWFsaXplcixcblx0XHRcdFx0XHRrYXJhb2tlOiB0aGlzLmZpbHRlcnMua2FyYW9rZSxcblx0XHRcdFx0XHRyb3RhdGlvbjogdGhpcy5maWx0ZXJzLnJvdGF0aW9uLFxuXHRcdFx0XHRcdHRpbWVzY2FsZTogdGhpcy5maWx0ZXJzLnRpbWVzY2FsZSxcblx0XHRcdFx0XHR2aWJyYXRvOiB0aGlzLmZpbHRlcnMudmlicmF0byxcblx0XHRcdFx0XHR2b2x1bWU6IHRoaXMuZmlsdGVycy52b2x1bWUsXG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdH0pO1xuXG5cdFx0YXdhaXQgZGVzdGluYXRpb25Ob2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRkYXRhOiB7XG5cdFx0XHRcdHZvaWNlOiB7XG5cdFx0XHRcdFx0dG9rZW46IHRoaXMudm9pY2VTdGF0ZS5ldmVudC50b2tlbixcblx0XHRcdFx0XHRlbmRwb2ludDogdGhpcy52b2ljZVN0YXRlLmV2ZW50LmVuZHBvaW50LFxuXHRcdFx0XHRcdHNlc3Npb25JZDogdGhpcy52b2ljZVN0YXRlPy5zZXNzaW9uSWQgPz8gXCJcIixcblx0XHRcdFx0XHRjaGFubmVsSWQ6IHRoaXMudm9pY2VDaGFubmVsID8/IFwiXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdH0pO1xuXG5cdFx0dGhpcy5ub2RlID0gZGVzdGluYXRpb25Ob2RlO1xuXHRcdGRlc3Ryb3lPbGROb2RlKGN1cnJlbnROb2RlKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKiBEaXNjb25uZWN0IGZyb20gdGhlIHZvaWNlIGNoYW5uZWwuICovXG5cdHB1YmxpYyBkaXNjb25uZWN0KCk6IHRoaXMge1xuXHRcdGlmICh0aGlzLnZvaWNlQ2hhbm5lbCA9PT0gbnVsbCkgcmV0dXJuIHRoaXM7XG5cdFx0dGhpcy5zdGF0ZSA9IFwiRElTQ09OTkVDVElOR1wiO1xuXG5cdFx0dGhpcy5wYXVzZSh0cnVlKTtcblx0XHR0aGlzLm1hbmFnZXIub3B0aW9ucy5zZW5kKHRoaXMuZ3VpbGQsIHtcblx0XHRcdG9wOiA0LFxuXHRcdFx0ZDoge1xuXHRcdFx0XHRndWlsZF9pZDogdGhpcy5ndWlsZCxcblx0XHRcdFx0Y2hhbm5lbF9pZDogbnVsbCxcblx0XHRcdFx0c2VsZl9tdXRlOiBmYWxzZSxcblx0XHRcdFx0c2VsZl9kZWFmOiBmYWxzZSxcblx0XHRcdH0sXG5cdFx0fSk7XG5cblx0XHR0aGlzLnZvaWNlQ2hhbm5lbCA9IG51bGw7XG5cdFx0dGhpcy5zdGF0ZSA9IFwiRElTQ09OTkVDVEVEXCI7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKiogRGVzdHJveXMgdGhlIHBsYXllci4gKi9cblx0cHVibGljIGRlc3Ryb3koZGlzY29ubmVjdCA9IHRydWUpOiB2b2lkIHtcblx0XHR0aGlzLnN0YXRlID0gXCJERVNUUk9ZSU5HXCI7XG5cblx0XHRpZiAoZGlzY29ubmVjdCkge1xuXHRcdFx0dGhpcy5kaXNjb25uZWN0KCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5ub2RlLnJlc3QuZGVzdHJveVBsYXllcih0aGlzLmd1aWxkKTtcblx0XHR0aGlzLm1hbmFnZXIuZW1pdChcIlBsYXllckRlc3Ryb3lcIiwgdGhpcyk7XG5cdFx0dGhpcy5tYW5hZ2VyLnBsYXllcnMuZGVsZXRlKHRoaXMuZ3VpbGQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIHBsYXllciB2b2ljZSBjaGFubmVsLlxuXHQgKiBAcGFyYW0gY2hhbm5lbFxuXHQgKi9cblx0cHVibGljIHNldFZvaWNlQ2hhbm5lbChjaGFubmVsOiBzdHJpbmcpOiB0aGlzIHtcblx0XHRpZiAodHlwZW9mIGNoYW5uZWwgIT09IFwic3RyaW5nXCIpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDaGFubmVsIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nLlwiKTtcblxuXHRcdHRoaXMudm9pY2VDaGFubmVsID0gY2hhbm5lbDtcblx0XHR0aGlzLmNvbm5lY3QoKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBwbGF5ZXIgdGV4dCBjaGFubmVsLlxuXHQgKiBAcGFyYW0gY2hhbm5lbFxuXHQgKi9cblx0cHVibGljIHNldFRleHRDaGFubmVsKGNoYW5uZWw6IHN0cmluZyk6IHRoaXMge1xuXHRcdGlmICh0eXBlb2YgY2hhbm5lbCAhPT0gXCJzdHJpbmdcIikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNoYW5uZWwgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcuXCIpO1xuXG5cdFx0dGhpcy50ZXh0Q2hhbm5lbCA9IGNoYW5uZWw7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKiogU2V0cyB0aGUgbm93IHBsYXlpbmcgbWVzc2FnZS4gKi9cblx0cHVibGljIHNldE5vd1BsYXlpbmdNZXNzYWdlKG1lc3NhZ2U6IE1lc3NhZ2UpOiBNZXNzYWdlIHtcblx0XHRpZiAoIW1lc3NhZ2UpIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXCJZb3UgbXVzdCBwcm92aWRlIHRoZSBtZXNzYWdlIG9mIHRoZSBub3cgcGxheWluZyBtZXNzYWdlLlwiKTtcblx0XHR9XG5cdFx0cmV0dXJuICh0aGlzLm5vd1BsYXlpbmdNZXNzYWdlID0gbWVzc2FnZSk7XG5cdH1cblxuXHQvKiogUGxheXMgdGhlIG5leHQgdHJhY2suICovXG5cdHB1YmxpYyBhc3luYyBwbGF5KCk6IFByb21pc2U8dm9pZD47XG5cblx0LyoqXG5cdCAqIFBsYXlzIHRoZSBzcGVjaWZpZWQgdHJhY2suXG5cdCAqIEBwYXJhbSB0cmFja1xuXHQgKi9cblx0cHVibGljIGFzeW5jIHBsYXkodHJhY2s6IFRyYWNrIHwgVW5yZXNvbHZlZFRyYWNrKTogUHJvbWlzZTx2b2lkPjtcblxuXHQvKipcblx0ICogUGxheXMgdGhlIG5leHQgdHJhY2sgd2l0aCBzb21lIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSBvcHRpb25zXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgcGxheShvcHRpb25zOiBQbGF5T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG5cblxuXHQvKipcblx0ICogUGxheXMgdGhlIHNwZWNpZmllZCB0cmFjayB3aXRoIHNvbWUgb3B0aW9ucy5cblx0ICogQHBhcmFtIHRyYWNrXG5cdCAqIEBwYXJhbSBvcHRpb25zXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgcGxheSh0cmFjazogVHJhY2sgfCBVbnJlc29sdmVkVHJhY2ssIG9wdGlvbnM6IFBsYXlPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcblx0cHVibGljIGFzeW5jIHBsYXkob3B0aW9uc09yVHJhY2s/OiBQbGF5T3B0aW9ucyB8IFRyYWNrIHwgVW5yZXNvbHZlZFRyYWNrLCBwbGF5T3B0aW9ucz86IFBsYXlPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKHR5cGVvZiBvcHRpb25zT3JUcmFjayAhPT0gXCJ1bmRlZmluZWRcIiAmJiBUcmFja1V0aWxzLnZhbGlkYXRlKG9wdGlvbnNPclRyYWNrKSkge1xuXHRcdFx0aWYgKHRoaXMucXVldWUuY3VycmVudCkgdGhpcy5xdWV1ZS5wcmV2aW91cyA9IHRoaXMucXVldWUuY3VycmVudDtcblx0XHRcdHRoaXMucXVldWUuY3VycmVudCA9IG9wdGlvbnNPclRyYWNrIGFzIFRyYWNrO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5xdWV1ZS5jdXJyZW50KSB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIk5vIGN1cnJlbnQgdHJhY2suXCIpO1xuXG5cdFx0Y29uc3QgZmluYWxPcHRpb25zID0gcGxheU9wdGlvbnNcblx0XHRcdD8gcGxheU9wdGlvbnNcblx0XHRcdDogW1wic3RhcnRUaW1lXCIsIFwiZW5kVGltZVwiLCBcIm5vUmVwbGFjZVwiXS5ldmVyeSgodikgPT4gT2JqZWN0LmtleXMob3B0aW9uc09yVHJhY2sgfHwge30pLmluY2x1ZGVzKHYpKVxuXHRcdFx0PyAob3B0aW9uc09yVHJhY2sgYXMgUGxheU9wdGlvbnMpXG5cdFx0XHQ6IHt9O1xuXG5cdFx0aWYgKFRyYWNrVXRpbHMuaXNVbnJlc29sdmVkVHJhY2sodGhpcy5xdWV1ZS5jdXJyZW50KSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0dGhpcy5xdWV1ZS5jdXJyZW50ID0gYXdhaXQgVHJhY2tVdGlscy5nZXRDbG9zZXN0VHJhY2sodGhpcy5xdWV1ZS5jdXJyZW50IGFzIFVucmVzb2x2ZWRUcmFjayk7XG5cdFx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0XHR0aGlzLm1hbmFnZXIuZW1pdChcIlRyYWNrRXJyb3JcIiwgdGhpcywgdGhpcy5xdWV1ZS5jdXJyZW50LCBlcnJvcik7XG5cdFx0XHRcdGlmICh0aGlzLnF1ZXVlWzBdKSByZXR1cm4gdGhpcy5wbGF5KHRoaXMucXVldWVbMF0pO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0YXdhaXQgdGhpcy5ub2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRkYXRhOiB7XG5cdFx0XHRcdGVuY29kZWRUcmFjazogdGhpcy5xdWV1ZS5jdXJyZW50Py50cmFjayA/PyB1bmRlZmluZWQsXG5cdFx0XHRcdC4uLmZpbmFsT3B0aW9ucyxcblx0XHRcdH0sXG5cdFx0fSk7XG5cblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIHsgcG9zaXRpb246IDAsIHBsYXlpbmc6IHRydWUgfSk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgYXV0b3BsYXktc3RhdGUgb2YgdGhlIHBsYXllci5cblx0ICogQHBhcmFtIGF1dG9wbGF5U3RhdGVcblx0ICogQHBhcmFtIGJvdFVzZXJcblx0ICovXG5cdHB1YmxpYyBzZXRBdXRvcGxheShhdXRvcGxheVN0YXRlOiBib29sZWFuLCBib3RVc2VyOiBvYmplY3QpIHtcblx0XHRpZiAodHlwZW9mIGF1dG9wbGF5U3RhdGUgIT09IFwiYm9vbGVhblwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXV0b3BsYXlTdGF0ZSBtdXN0IGJlIGEgYm9vbGVhbi5cIik7XG5cdFx0fVxuXG5cdFx0aWYgKHR5cGVvZiBib3RVc2VyICE9PSBcIm9iamVjdFwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFwiYm90VXNlciBtdXN0IGJlIGEgdXNlci1vYmplY3QuXCIpO1xuXHRcdH1cblxuXHRcdHRoaXMuaXNBdXRvcGxheSA9IGF1dG9wbGF5U3RhdGU7XG5cdFx0dGhpcy5zZXQoXCJJbnRlcm5hbF9Cb3RVc2VyXCIsIGJvdFVzZXIpO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblx0XG5cblx0LyoqXG5cdCAqIEdldHMgcmVjb21tZW5kZWQgdHJhY2tzIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHRyYWNrcy5cblx0ICogQHBhcmFtIHRyYWNrXG5cdCAqIEBwYXJhbSByZXF1ZXN0ZXJcblx0ICovXG5cdHB1YmxpYyBhc3luYyBnZXRSZWNvbW1lbmRlZCh0cmFjazogVHJhY2ssIHJlcXVlc3Rlcj86IFVzZXIgfCBDbGllbnRVc2VyKSB7XG5cdFx0Y29uc3Qgbm9kZSA9IHRoaXMubWFuYWdlci51c2VhYmxlTm9kZXM7XG5cblx0XHRpZiAoIW5vZGUpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIk5vIGF2YWlsYWJsZSBub2Rlcy5cIik7XG5cdFx0fVxuXG5cdFx0Y29uc3QgaGFzU3BvdGlmeVVSTCA9IFtcInNwb3RpZnkuY29tXCIsIFwib3Blbi5zcG90aWZ5LmNvbVwiXS5zb21lKCh1cmwpID0+IHRyYWNrLnVyaS5pbmNsdWRlcyh1cmwpKTtcblx0XHRjb25zdCBoYXNZb3VUdWJlVVJMID0gW1wieW91dHViZS5jb21cIiwgXCJ5b3V0dS5iZVwiXS5zb21lKCh1cmwpID0+IHRyYWNrLnVyaS5pbmNsdWRlcyh1cmwpKTtcblxuXHRcdGlmIChoYXNTcG90aWZ5VVJMKSB7XG5cdFx0XHRjb25zdCByZXMgPSBhd2FpdCBub2RlLnJlc3QuZ2V0KGAvdjQvaW5mb2ApO1xuXHRcdFx0Y29uc3QgaW5mbyA9IHJlcyBhcyBMYXZhbGlua0luZm87XG5cblx0XHRcdGNvbnN0IGlzU3BvdGlmeVBsdWdpbkVuYWJsZWQgPSBpbmZvLnBsdWdpbnMuc29tZSgocGx1Z2luOiB7IG5hbWU6IHN0cmluZyB9KSA9PiBwbHVnaW4ubmFtZSA9PT0gXCJsYXZhc3JjLXBsdWdpblwiKTtcblx0XHRcdGNvbnN0IGlzU3BvdGlmeVNvdXJjZU1hbmFnZXJFbmFibGVkID0gaW5mby5zb3VyY2VNYW5hZ2Vycy5pbmNsdWRlcyhcInNwb3RpZnlcIik7XG5cblx0XHRcdGlmIChpc1Nwb3RpZnlQbHVnaW5FbmFibGVkICYmIGlzU3BvdGlmeVNvdXJjZU1hbmFnZXJFbmFibGVkKSB7XG5cdFx0XHRcdGNvbnN0IHRyYWNrSUQgPSBub2RlLmV4dHJhY3RTcG90aWZ5VHJhY2tJRCh0cmFjay51cmkpO1xuXHRcdFx0XHRjb25zdCBhcnRpc3RJRCA9IG5vZGUuZXh0cmFjdFNwb3RpZnlBcnRpc3RJRCh0cmFjay5wbHVnaW5JbmZvLmFydGlzdFVybCA/PyBcIlwiKTtcblxuXHRcdFx0XHRsZXQgaWRlbnRpZmllciA9IFwiXCI7XG5cdFx0XHRcdGlmICh0cmFja0lEICYmIGFydGlzdElEKSB7XG5cdFx0XHRcdFx0aWRlbnRpZmllciA9IGBzcHJlYzpzZWVkX2FydGlzdHM9JHthcnRpc3RJRH0mc2VlZF90cmFja3M9JHt0cmFja0lEfWA7XG5cdFx0XHRcdH0gZWxzZSBpZiAodHJhY2tJRCkge1xuXHRcdFx0XHRcdGlkZW50aWZpZXIgPSBgc3ByZWM6c2VlZF90cmFja3M9JHt0cmFja0lEfWA7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYXJ0aXN0SUQpIHtcblx0XHRcdFx0XHRpZGVudGlmaWVyID0gYHNwcmVjOnNlZWRfYXJ0aXN0cz0ke2FydGlzdElEfWA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoaWRlbnRpZmllcikge1xuXHRcdFx0XHRcdGNvbnN0IHJlY29tbWVuZGVkUmVzdWx0ID0gKGF3YWl0IG5vZGUucmVzdC5nZXQoYC92NC9sb2FkdHJhY2tzP2lkZW50aWZpZXI9JHtlbmNvZGVVUklDb21wb25lbnQoaWRlbnRpZmllcil9YCkpIGFzIExhdmFsaW5rUmVzcG9uc2U7XG5cblx0XHRcdFx0XHRpZiAocmVjb21tZW5kZWRSZXN1bHQubG9hZFR5cGUgPT09IFwicGxheWxpc3RcIikge1xuXHRcdFx0XHRcdFx0Y29uc3QgcGxheWxpc3REYXRhID0gcmVjb21tZW5kZWRSZXN1bHQuZGF0YSBhcyBQbGF5bGlzdFJhd0RhdGE7XG5cdFx0XHRcdFx0XHRjb25zdCByZWNvbW1lbmRlZFRyYWNrcyA9IHBsYXlsaXN0RGF0YS50cmFja3M7XG5cblx0XHRcdFx0XHRcdGlmIChyZWNvbW1lbmRlZFRyYWNrcykge1xuXHRcdFx0XHRcdFx0XHRjb25zdCB0cmFja3MgPSByZWNvbW1lbmRlZFRyYWNrcy5tYXAoKHRyYWNrKSA9PiBUcmFja1V0aWxzLmJ1aWxkKHRyYWNrLCByZXF1ZXN0ZXIpKTtcblxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJhY2tzO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGxldCB2aWRlb0lEID0gdHJhY2sudXJpLnN1YnN0cmluZyh0cmFjay51cmkuaW5kZXhPZihcIj1cIikgKyAxKTtcblxuXHRcdGlmICghaGFzWW91VHViZVVSTCkge1xuXHRcdFx0Y29uc3QgcmVzID0gYXdhaXQgdGhpcy5tYW5hZ2VyLnNlYXJjaChgJHt0cmFjay5hdXRob3J9IC0gJHt0cmFjay50aXRsZX1gKTtcblxuXHRcdFx0dmlkZW9JRCA9IHJlcy50cmFja3NbMF0udXJpLnN1YnN0cmluZyhyZXMudHJhY2tzWzBdLnVyaS5pbmRleE9mKFwiPVwiKSArIDEpO1xuXHRcdH1cblxuXHRcdGNvbnN0IHNlYXJjaFVSSSA9IGBodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PSR7dmlkZW9JRH0mbGlzdD1SRCR7dmlkZW9JRH1gO1xuXG5cdFx0Y29uc3QgcmVzID0gYXdhaXQgdGhpcy5tYW5hZ2VyLnNlYXJjaChzZWFyY2hVUkkpO1xuXG5cdFx0aWYgKHJlcy5sb2FkVHlwZSA9PT0gXCJlbXB0eVwiIHx8IHJlcy5sb2FkVHlwZSA9PT0gXCJlcnJvclwiKSByZXR1cm47XG5cblx0XHRsZXQgdHJhY2tzID0gcmVzLnRyYWNrcztcblxuXHRcdGlmIChyZXMubG9hZFR5cGUgPT09IFwicGxheWxpc3RcIikge1xuXHRcdFx0dHJhY2tzID0gcmVzLnBsYXlsaXN0Py50cmFja3MgPz8gdHJhY2tzO1xuXHRcdH1cblxuXHRcdGNvbnN0IGZpbHRlcmVkVHJhY2tzID0gdHJhY2tzLmZpbHRlcigodHJhY2spID0+IHRyYWNrLnVyaSAhPT0gYGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9JHt2aWRlb0lEfWApO1xuXG5cdFx0aWYgKHRoaXMubWFuYWdlci5vcHRpb25zLnJlcGxhY2VZb3VUdWJlQ3JlZGVudGlhbHMpIHtcblx0XHRcdGZvciAoY29uc3QgdHJhY2sgb2YgZmlsdGVyZWRUcmFja3MpIHtcblx0XHRcdFx0dHJhY2suYXV0aG9yID0gdHJhY2suYXV0aG9yLnJlcGxhY2UoXCItIFRvcGljXCIsIFwiXCIpO1xuXHRcdFx0XHR0cmFjay50aXRsZSA9IHRyYWNrLnRpdGxlLnJlcGxhY2UoXCJUb3BpYyAtXCIsIFwiXCIpO1xuXG5cdFx0XHRcdGlmICh0cmFjay50aXRsZS5pbmNsdWRlcyhcIi1cIikpIHtcblx0XHRcdFx0XHRjb25zdCBbYXV0aG9yLCB0aXRsZV0gPSB0cmFjay50aXRsZS5zcGxpdChcIi1cIikubWFwKChzdHI6IHN0cmluZykgPT4gc3RyLnRyaW0oKSk7XG5cdFx0XHRcdFx0dHJhY2suYXV0aG9yID0gYXV0aG9yO1xuXHRcdFx0XHRcdHRyYWNrLnRpdGxlID0gdGl0bGU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmlsdGVyZWRUcmFja3M7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgcGxheWVyIHZvbHVtZS5cblx0ICogQHBhcmFtIHZvbHVtZVxuXHQgKi9cblx0cHVibGljIHNldFZvbHVtZSh2b2x1bWU6IG51bWJlcik6IHRoaXMge1xuXHRcdGlmIChpc05hTih2b2x1bWUpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiVm9sdW1lIG11c3QgYmUgYSBudW1iZXIuXCIpO1xuXG5cdFx0dGhpcy5ub2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMub3B0aW9ucy5ndWlsZCxcblx0XHRcdGRhdGE6IHtcblx0XHRcdFx0dm9sdW1lLFxuXHRcdFx0fSxcblx0XHR9KTtcblxuXHRcdHRoaXMudm9sdW1lID0gdm9sdW1lO1xuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgdHJhY2sgcmVwZWF0LlxuXHQgKiBAcGFyYW0gcmVwZWF0XG5cdCAqL1xuXHRwdWJsaWMgc2V0VHJhY2tSZXBlYXQocmVwZWF0OiBib29sZWFuKTogdGhpcyB7XG5cdFx0aWYgKHR5cGVvZiByZXBlYXQgIT09IFwiYm9vbGVhblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdSZXBlYXQgY2FuIG9ubHkgYmUgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLicpO1xuXG5cdFx0Y29uc3Qgb2xkUGxheWVyID0geyAuLi50aGlzIH07XG5cblx0XHRpZiAocmVwZWF0KSB7XG5cdFx0XHR0aGlzLnRyYWNrUmVwZWF0ID0gdHJ1ZTtcblx0XHRcdHRoaXMucXVldWVSZXBlYXQgPSBmYWxzZTtcblx0XHRcdHRoaXMuZHluYW1pY1JlcGVhdCA9IGZhbHNlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnRyYWNrUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnF1ZXVlUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLmR5bmFtaWNSZXBlYXQgPSBmYWxzZTtcblx0XHR9XG5cblx0XHR0aGlzLm1hbmFnZXIuZW1pdChcIlBsYXllclN0YXRlVXBkYXRlXCIsIG9sZFBsYXllciwgdGhpcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgcXVldWUgcmVwZWF0LlxuXHQgKiBAcGFyYW0gcmVwZWF0XG5cdCAqL1xuXHRwdWJsaWMgc2V0UXVldWVSZXBlYXQocmVwZWF0OiBib29sZWFuKTogdGhpcyB7XG5cdFx0aWYgKHR5cGVvZiByZXBlYXQgIT09IFwiYm9vbGVhblwiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdSZXBlYXQgY2FuIG9ubHkgYmUgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLicpO1xuXG5cdFx0Y29uc3Qgb2xkUGxheWVyID0geyAuLi50aGlzIH07XG5cblx0XHRpZiAocmVwZWF0KSB7XG5cdFx0XHR0aGlzLnRyYWNrUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnF1ZXVlUmVwZWF0ID0gdHJ1ZTtcblx0XHRcdHRoaXMuZHluYW1pY1JlcGVhdCA9IGZhbHNlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnRyYWNrUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnF1ZXVlUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLmR5bmFtaWNSZXBlYXQgPSBmYWxzZTtcblx0XHR9XG5cblx0XHR0aGlzLm1hbmFnZXIuZW1pdChcIlBsYXllclN0YXRlVXBkYXRlXCIsIG9sZFBsYXllciwgdGhpcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgcXVldWUgdG8gcmVwZWF0IGFuZCBzaHVmZmxlcyB0aGUgcXVldWUgYWZ0ZXIgZWFjaCBzb25nLlxuXHQgKiBAcGFyYW0gcmVwZWF0IFwidHJ1ZVwiIG9yIFwiZmFsc2VcIi5cblx0ICogQHBhcmFtIG1zIEFmdGVyIGhvdyBtYW55IG1pbGxpc2Vjb25kcyB0byB0cmlnZ2VyIGR5bmFtaWMgcmVwZWF0LlxuXHQgKi9cblx0cHVibGljIHNldER5bmFtaWNSZXBlYXQocmVwZWF0OiBib29sZWFuLCBtczogbnVtYmVyKTogdGhpcyB7XG5cdFx0aWYgKHR5cGVvZiByZXBlYXQgIT09IFwiYm9vbGVhblwiKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCdSZXBlYXQgY2FuIG9ubHkgYmUgXCJ0cnVlXCIgb3IgXCJmYWxzZVwiLicpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnF1ZXVlLnNpemUgPD0gMSkge1xuXHRcdFx0dGhyb3cgbmV3IFJhbmdlRXJyb3IoXCJUaGUgcXVldWUgc2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiKTtcblx0XHR9XG5cblx0XHRjb25zdCBvbGRQbGF5ZXIgPSB7IC4uLnRoaXMgfTtcblxuXHRcdGlmIChyZXBlYXQpIHtcblx0XHRcdHRoaXMudHJhY2tSZXBlYXQgPSBmYWxzZTtcblx0XHRcdHRoaXMucXVldWVSZXBlYXQgPSBmYWxzZTtcblx0XHRcdHRoaXMuZHluYW1pY1JlcGVhdCA9IHRydWU7XG5cblx0XHRcdHRoaXMuZHluYW1pY0xvb3BJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdFx0aWYgKCF0aGlzLmR5bmFtaWNSZXBlYXQpIHJldHVybjtcblx0XHRcdFx0Y29uc3Qgc2h1ZmZsZWQgPSBfLnNodWZmbGUodGhpcy5xdWV1ZSk7XG5cdFx0XHRcdHRoaXMucXVldWUuY2xlYXIoKTtcblx0XHRcdFx0c2h1ZmZsZWQuZm9yRWFjaCgodHJhY2spID0+IHtcblx0XHRcdFx0XHR0aGlzLnF1ZXVlLmFkZCh0cmFjayk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSwgbXMpIGFzIE5vZGVKUy5UaW1lb3V0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjbGVhckludGVydmFsKHRoaXMuZHluYW1pY0xvb3BJbnRlcnZhbCk7XG5cdFx0XHR0aGlzLnRyYWNrUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnF1ZXVlUmVwZWF0ID0gZmFsc2U7XG5cdFx0XHR0aGlzLmR5bmFtaWNSZXBlYXQgPSBmYWxzZTtcblx0XHR9XG5cblx0XHR0aGlzLm1hbmFnZXIuZW1pdChcIlBsYXllclN0YXRlVXBkYXRlXCIsIG9sZFBsYXllciwgdGhpcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKiogUmVzdGFydHMgdGhlIGN1cnJlbnQgdHJhY2sgdG8gdGhlIHN0YXJ0LiAqL1xuXHRwdWJsaWMgcmVzdGFydCgpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMucXVldWUuY3VycmVudD8udHJhY2spIHtcblx0XHRcdGlmICh0aGlzLnF1ZXVlLmxlbmd0aCkgdGhpcy5wbGF5KCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5ub2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRkYXRhOiB7XG5cdFx0XHRcdHBvc2l0aW9uOiAwLFxuXHRcdFx0XHRlbmNvZGVkVHJhY2s6IHRoaXMucXVldWUuY3VycmVudD8udHJhY2ssXG5cdFx0XHR9LFxuXHRcdH0pO1xuXHR9XG5cblx0LyoqIFN0b3BzIHRoZSBjdXJyZW50IHRyYWNrLCBvcHRpb25hbGx5IGdpdmUgYW4gYW1vdW50IHRvIHNraXAgdG8sIGUuZyA1IHdvdWxkIHBsYXkgdGhlIDV0aCBzb25nLiAqL1xuXHRwdWJsaWMgc3RvcChhbW91bnQ/OiBudW1iZXIpOiB0aGlzIHtcblx0XHRpZiAodHlwZW9mIGFtb3VudCA9PT0gXCJudW1iZXJcIiAmJiBhbW91bnQgPiAxKSB7XG5cdFx0XHRpZiAoYW1vdW50ID4gdGhpcy5xdWV1ZS5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKFwiQ2Fubm90IHNraXAgbW9yZSB0aGFuIHRoZSBxdWV1ZSBsZW5ndGguXCIpO1xuXHRcdFx0dGhpcy5xdWV1ZS5zcGxpY2UoMCwgYW1vdW50IC0gMSk7XG5cdFx0fVxuXG5cdFx0dGhpcy5ub2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRkYXRhOiB7XG5cdFx0XHRcdGVuY29kZWRUcmFjazogdW5kZWZpbmVkLFxuXHRcdFx0fSxcblx0XHR9KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhdXNlcyB0aGUgY3VycmVudCB0cmFjay5cblx0ICogQHBhcmFtIHBhdXNlXG5cdCAqL1xuXHRwdWJsaWMgcGF1c2UocGF1c2U6IGJvb2xlYW4pOiB0aGlzIHtcblx0XHRpZiAodHlwZW9mIHBhdXNlICE9PSBcImJvb2xlYW5cIikgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1BhdXNlIGNhbiBvbmx5IGJlIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIi4nKTtcblxuXHRcdGlmICh0aGlzLnBhdXNlZCA9PT0gcGF1c2UgfHwgIXRoaXMucXVldWUudG90YWxTaXplKSByZXR1cm4gdGhpcztcblxuXHRcdGNvbnN0IG9sZFBsYXllciA9IHsgLi4udGhpcyB9O1xuXG5cdFx0dGhpcy5wbGF5aW5nID0gIXBhdXNlO1xuXHRcdHRoaXMucGF1c2VkID0gcGF1c2U7XG5cblx0XHR0aGlzLm5vZGUucmVzdC51cGRhdGVQbGF5ZXIoe1xuXHRcdFx0Z3VpbGRJZDogdGhpcy5ndWlsZCxcblx0XHRcdGRhdGE6IHtcblx0XHRcdFx0cGF1c2VkOiBwYXVzZSxcblx0XHRcdH0sXG5cdFx0fSk7XG5cblx0XHR0aGlzLm1hbmFnZXIuZW1pdChcIlBsYXllclN0YXRlVXBkYXRlXCIsIG9sZFBsYXllciwgdGhpcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKiogR28gYmFjayB0byB0aGUgcHJldmlvdXMgc29uZy4gKi9cblx0cHVibGljIHByZXZpb3VzKCk6IHRoaXMge1xuXHRcdGlmICh0aGlzLnF1ZXVlLnByZXZpb3VzKSB0aGlzLnF1ZXVlLnVuc2hpZnQodGhpcy5xdWV1ZS5wcmV2aW91cyk7XG5cdFx0dGhpcy5zdG9wKCk7XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBTZWVrcyB0byB0aGUgcG9zaXRpb24gaW4gdGhlIGN1cnJlbnQgdHJhY2suXG5cdCAqIEBwYXJhbSBwb3NpdGlvblxuXHQgKi9cblx0cHVibGljIHNlZWsocG9zaXRpb246IG51bWJlcik6IHRoaXMge1xuXHRcdGlmICghdGhpcy5xdWV1ZS5jdXJyZW50KSByZXR1cm4gdGhpcztcblx0XHRwb3NpdGlvbiA9IE51bWJlcihwb3NpdGlvbik7XG5cblx0XHRpZiAoaXNOYU4ocG9zaXRpb24pKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIlBvc2l0aW9uIG11c3QgYmUgYSBudW1iZXIuXCIpO1xuXHRcdGlmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24gPiAodGhpcy5xdWV1ZS5jdXJyZW50LmR1cmF0aW9uID8/IDApKSBwb3NpdGlvbiA9IE1hdGgubWF4KE1hdGgubWluKHBvc2l0aW9uLCB0aGlzLnF1ZXVlLmN1cnJlbnQuZHVyYXRpb24gPz8gMCksIDApO1xuXG5cdFx0dGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuXG5cdFx0dGhpcy5ub2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdGd1aWxkSWQ6IHRoaXMuZ3VpbGQsXG5cdFx0XHRkYXRhOiB7XG5cdFx0XHRcdHBvc2l0aW9uOiBwb3NpdGlvbixcblx0XHRcdH0sXG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYXllck9wdGlvbnMge1xuXHQvKiogVGhlIGd1aWxkIHRoZSBQbGF5ZXIgYmVsb25ncyB0by4gKi9cblx0Z3VpbGQ6IHN0cmluZztcblx0LyoqIFRoZSB0ZXh0IGNoYW5uZWwgdGhlIFBsYXllciBiZWxvbmdzIHRvLiAqL1xuXHR0ZXh0Q2hhbm5lbDogc3RyaW5nO1xuXHQvKiogVGhlIHZvaWNlIGNoYW5uZWwgdGhlIFBsYXllciBiZWxvbmdzIHRvLiAqL1xuXHR2b2ljZUNoYW5uZWw/OiBzdHJpbmc7XG5cdC8qKiBUaGUgbm9kZSB0aGUgUGxheWVyIHVzZXMuICovXG5cdG5vZGU/OiBzdHJpbmc7XG5cdC8qKiBUaGUgaW5pdGlhbCB2b2x1bWUgdGhlIFBsYXllciB3aWxsIHVzZS4gKi9cblx0dm9sdW1lPzogbnVtYmVyO1xuXHQvKiogSWYgdGhlIHBsYXllciBzaG91bGQgbXV0ZSBpdHNlbGYuICovXG5cdHNlbGZNdXRlPzogYm9vbGVhbjtcblx0LyoqIElmIHRoZSBwbGF5ZXIgc2hvdWxkIGRlYWYgaXRzZWxmLiAqL1xuXHRzZWxmRGVhZmVuPzogYm9vbGVhbjtcbn1cblxuLyoqIElmIHRyYWNrIHBhcnRpYWxzIGFyZSBzZXQgc29tZSBvZiB0aGVzZSB3aWxsIGJlIGB1bmRlZmluZWRgIGFzIHRoZXkgd2VyZSByZW1vdmVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFjayB7XG5cdC8qKiBUaGUgYmFzZTY0IGVuY29kZWQgdHJhY2suICovXG5cdHJlYWRvbmx5IHRyYWNrOiBzdHJpbmc7XG5cdC8qKiBUaGUgYXJ0d29yayB1cmwgb2YgdGhlIHRyYWNrLiAqL1xuXHRyZWFkb25seSBhcnR3b3JrVXJsOiBzdHJpbmc7XG5cdC8qKiBUaGUgdHJhY2sgc291cmNlIG5hbWUuICovXG5cdHJlYWRvbmx5IHNvdXJjZU5hbWU6IFRyYWNrU291cmNlTmFtZTtcblx0LyoqIFRoZSB0aXRsZSBvZiB0aGUgdHJhY2suICovXG5cdHRpdGxlOiBzdHJpbmc7XG5cdC8qKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgdHJhY2suICovXG5cdHJlYWRvbmx5IGlkZW50aWZpZXI6IHN0cmluZztcblx0LyoqIFRoZSBhdXRob3Igb2YgdGhlIHRyYWNrLiAqL1xuXHRhdXRob3I6IHN0cmluZztcblx0LyoqIFRoZSBkdXJhdGlvbiBvZiB0aGUgdHJhY2suICovXG5cdHJlYWRvbmx5IGR1cmF0aW9uOiBudW1iZXI7XG5cdC8qKiBUaGUgSVNSQyBvZiB0aGUgdHJhY2suICovXG5cdHJlYWRvbmx5IGlzcmM6IHN0cmluZztcblx0LyoqIElmIHRoZSB0cmFjayBpcyBzZWVrYWJsZS4gKi9cblx0cmVhZG9ubHkgaXNTZWVrYWJsZTogYm9vbGVhbjtcblx0LyoqIElmIHRoZSB0cmFjayBpcyBhIHN0cmVhbS4uICovXG5cdHJlYWRvbmx5IGlzU3RyZWFtOiBib29sZWFuO1xuXHQvKiogVGhlIHVyaSBvZiB0aGUgdHJhY2suICovXG5cdHJlYWRvbmx5IHVyaTogc3RyaW5nO1xuXHQvKiogVGhlIHRodW1ibmFpbCBvZiB0aGUgdHJhY2sgb3IgbnVsbCBpZiBpdCdzIGEgdW5zdXBwb3J0ZWQgc291cmNlLiAqL1xuXHRyZWFkb25seSB0aHVtYm5haWw6IHN0cmluZyB8IG51bGw7XG5cdC8qKiBUaGUgdXNlciB0aGF0IHJlcXVlc3RlZCB0aGUgdHJhY2suICovXG5cdHJlYWRvbmx5IHJlcXVlc3RlcjogVXNlciB8IENsaWVudFVzZXIgfCBudWxsO1xuXHQvKiogRGlzcGxheXMgdGhlIHRyYWNrIHRodW1ibmFpbCB3aXRoIG9wdGlvbmFsIHNpemUgb3IgbnVsbCBpZiBpdCdzIGEgdW5zdXBwb3J0ZWQgc291cmNlLiAqL1xuXHRkaXNwbGF5VGh1bWJuYWlsKHNpemU/OiBTaXplcyk6IHN0cmluZztcblx0LyoqIEFkZGl0aW9uYWwgdHJhY2sgaW5mbyBwcm92aWRlZCBieSBwbHVnaW5zLiAqL1xuXHRwbHVnaW5JbmZvOiBUcmFja1BsdWdpbkluZm87XG5cdC8qKiBBZGQgeW91ciBvd24gZGF0YSB0byB0aGUgdHJhY2suICovXG5cdGN1c3RvbURhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYWNrUGx1Z2luSW5mbyB7XG5cdGFsYnVtTmFtZT86IHN0cmluZztcblx0YWxidW1Vcmw/OiBzdHJpbmc7XG5cdGFydGlzdEFydHdvcmtVcmw/OiBzdHJpbmc7XG5cdGFydGlzdFVybD86IHN0cmluZztcblx0aXNQcmV2aWV3Pzogc3RyaW5nO1xuXHRwcmV2aWV3VXJsPzogc3RyaW5nO1xufVxuXG4vKiogVW5yZXNvbHZlZCB0cmFja3MgY2FuJ3QgYmUgcGxheWVkIG5vcm1hbGx5LCB0aGV5IHdpbGwgcmVzb2x2ZSBiZWZvcmUgcGxheWluZyBpbnRvIGEgVHJhY2suICovXG5leHBvcnQgaW50ZXJmYWNlIFVucmVzb2x2ZWRUcmFjayBleHRlbmRzIFBhcnRpYWw8VHJhY2s+IHtcblx0LyoqIFRoZSB0aXRsZSB0byBzZWFyY2ggYWdhaW5zdC4gKi9cblx0dGl0bGU6IHN0cmluZztcblx0LyoqIFRoZSBhdXRob3IgdG8gc2VhcmNoIGFnYWluc3QuICovXG5cdGF1dGhvcj86IHN0cmluZztcblx0LyoqIFRoZSBkdXJhdGlvbiB0byBzZWFyY2ggd2l0aGluIDE1MDAgbWlsbGlzZWNvbmRzIG9mIHRoZSByZXN1bHRzIGZyb20gWW91VHViZS4gKi9cblx0ZHVyYXRpb24/OiBudW1iZXI7XG5cdC8qKiBSZXNvbHZlcyBpbnRvIGEgVHJhY2suICovXG5cdHJlc29sdmUoKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGF5T3B0aW9ucyB7XG5cdC8qKiBUaGUgcG9zaXRpb24gdG8gc3RhcnQgdGhlIHRyYWNrLiAqL1xuXHRyZWFkb25seSBzdGFydFRpbWU/OiBudW1iZXI7XG5cdC8qKiBUaGUgcG9zaXRpb24gdG8gZW5kIHRoZSB0cmFjay4gKi9cblx0cmVhZG9ubHkgZW5kVGltZT86IG51bWJlcjtcblx0LyoqIFdoZXRoZXIgdG8gbm90IHJlcGxhY2UgdGhlIHRyYWNrIGlmIGEgcGxheSBwYXlsb2FkIGlzIHNlbnQuICovXG5cdHJlYWRvbmx5IG5vUmVwbGFjZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXF1YWxpemVyQmFuZCB7XG5cdC8qKiBUaGUgYmFuZCBudW1iZXIgYmVpbmcgMCB0byAxNC4gKi9cblx0YmFuZDogbnVtYmVyO1xuXHQvKiogVGhlIGdhaW4gYW1vdW50IGJlaW5nIC0wLjI1IHRvIDEuMDAsIDAuMjUgYmVpbmcgZG91YmxlLiAqL1xuXHRnYWluOiBudW1iZXI7XG59Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFJQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxDQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxZQUFBLEdBQUFDLHNCQUFB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