single-scripture-rcl 3.4.15-beta.17 → 3.4.15-beta.26

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.
@@ -19,8 +19,6 @@ import "core-js/modules/es.array.concat.js";
19
19
  import "core-js/modules/es.function.name.js";
20
20
  import "core-js/modules/es.array.includes.js";
21
21
  import "core-js/modules/es.string.includes.js";
22
- import "core-js/modules/es.date.to-json.js";
23
- import "core-js/modules/web.url.to-json.js";
24
22
  import "core-js/modules/es.array.is-array.js";
25
23
  import "core-js/modules/es.symbol.js";
26
24
  import "core-js/modules/es.symbol.description.js";
@@ -57,15 +55,14 @@ import "core-js/modules/es.array.reverse.js";
57
55
  // @ts-ignore
58
56
  import { useEffect, useState } from 'react';
59
57
  import { core } from 'scripture-resources-rcl';
60
- import usfmjs from 'usfm-js';
61
58
  import { CONTENT_NOT_FOUND_ERROR, ERROR_STATE, INITIALIZED_STATE, INVALID_MANIFEST_ERROR, LOADING_STATE, MANIFEST_NOT_LOADED_ERROR, SCRIPTURE_NOT_LOADED_ERROR } from 'translation-helps-rcl';
62
59
  import useDeepCompareEffect from 'use-deep-compare-effect';
63
60
  import { getVerses } from 'bible-reference-range';
64
61
  import { isEqual } from '@react-hookz/deep-equal';
65
62
  import { AlignmentHelpers, UsfmFileConversionHelpers } from 'word-aligner-rcl';
66
- import { delay, verseObjectsHaveWords } from '../utils';
63
+ import { delay, fetchBibleBookCore, verseObjectsHaveWords } from '../utils';
67
64
  import { cleanupVerseObjects, getBookNameFromUsfmFileName, getResourceLink, parseResourceLink } from '../utils/ScriptureSettings';
68
- import { BookObjectsType, ScriptureResource, ScriptureReference, ServerConfig, VerseObjectsType, VerseReferencesType } from '../types';
65
+ import { BookFetchParams, BookObjectsType, ScriptureResource, ScriptureReference, ServerConfig, VerseObjectsType, VerseReferencesType } from '../types';
69
66
  import { parseResourceManifest } from './parseResourceManifest';
70
67
  /**
71
68
  * extract branch from resource link
@@ -138,11 +135,7 @@ export function useScripture(_ref2) {
138
135
  fetchCount: 0,
139
136
  fetched: false,
140
137
  fetchedBook: '',
141
- fetchParams: {
142
- config: {},
143
- reference: {},
144
- resourceLink: ''
145
- },
138
+ fetchParams: null,
146
139
  ignoreSha: null,
147
140
  initialized: false,
148
141
  resourceState: {
@@ -242,23 +235,12 @@ export function useScripture(_ref2) {
242
235
  _fetchBook = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fetchParams) {
243
236
  var ignoreSha,
244
237
  _fetchParams$referenc2,
245
- _resource$project,
246
- _resource$project2,
247
238
  fetchLink,
248
239
  _resourceState$resour,
249
240
  fetchedShaMatchesIgnoreSha,
250
241
  _resourceState$resour2,
251
242
  _fetchCount,
252
- _resource,
253
- errorMsg,
254
243
  response,
255
- _bibleUsfm,
256
- _bookObjects3,
257
- _errorMsg,
258
- _ref5,
259
- name,
260
- sha,
261
- url,
262
244
  _args = arguments;
263
245
  return _regeneratorRuntime().wrap(function _callee$(_context) {
264
246
  while (1) switch (_context.prev = _context.next) {
@@ -289,77 +271,37 @@ export function useScripture(_ref2) {
289
271
  loadingResource: true
290
272
  }
291
273
  });
292
-
293
- // fetch manifest data
294
274
  _context.next = 13;
295
- return delay(100);
275
+ return fetchBibleBookCore(fetchParams);
296
276
  case 13:
297
- _context.next = 15;
298
- return core.resourceFromResourceLink(fetchParams);
299
- case 15:
300
- _resource = _context.sent;
301
- if (!(!(_resource !== null && _resource !== void 0 && _resource.manifest) || !(_resource !== null && _resource !== void 0 && (_resource$project = _resource.project) !== null && _resource$project !== void 0 && _resource$project.file))) {
302
- _context.next = 21;
303
- break;
304
- }
305
- errorMsg = _resource !== null && _resource !== void 0 && _resource.manifest ? 'parsing resource manifest' : 'loading resource manifest';
306
- console.warn("useScripture.fetchBook() - error ".concat(errorMsg), fetchParams);
307
- setState({
308
- resourceState: {
309
- loadingResource: false,
310
- resource: _resource
311
- }
312
- });
313
- return _context.abrupt("return");
314
- case 21:
315
- console.log("useScripture.fetchBook() - LOADED bible manifest, fetching book ".concat(resource_ === null || resource_ === void 0 ? void 0 : resource_.projectId, " resourceLink is now ").concat(fetchParams === null || fetchParams === void 0 ? void 0 : fetchParams.resourceLink, " and resourceLink_=").concat(fetchParams === null || fetchParams === void 0 ? void 0 : fetchParams.resourceLink_), fetchParams);
316
- _context.next = 24;
317
- return delay(100);
318
- case 24:
319
- _context.next = 26;
320
- return _resource === null || _resource === void 0 || (_resource$project2 = _resource.project) === null || _resource$project2 === void 0 ? void 0 : _resource$project2.file();
321
- case 26:
322
277
  response = _context.sent;
323
- // parse book usfm
324
- _bibleUsfm = response && core.getResponseData(response);
325
- _context.next = 30;
326
- return delay(100);
327
- case 30:
328
- _bookObjects3 = _bibleUsfm && usfmjs.toJSON(_bibleUsfm); // convert to bible objects
329
- if (_bookObjects3) {
330
- _context.next = 36;
278
+ if (!(!response || response !== null && response !== void 0 && response.error)) {
279
+ _context.next = 18;
331
280
  break;
332
281
  }
333
- _errorMsg = _bibleUsfm ? 'fetching book of the bible' : 'parsing book of the bible';
334
- console.warn("useScripture.fetchBook() - error ".concat(_errorMsg), fetchParams);
282
+ console.log("useScripture.warn() -Error FETCHING bible ".concat(resource_ === null || resource_ === void 0 ? void 0 : resource_.projectId), response);
335
283
  setState({
336
284
  resourceState: {
337
285
  loadingResource: false,
338
- resource: _resource
286
+ response: response
339
287
  }
340
288
  });
341
289
  return _context.abrupt("return");
342
- case 36:
343
- _ref5 = (response === null || response === void 0 ? void 0 : response.data) || {}, name = _ref5.name, sha = _ref5.sha, url = _ref5.url;
344
- console.log("useScripture.fetchBook() - LOADED bible book ".concat(resource_ === null || resource_ === void 0 ? void 0 : resource_.projectId, " resourceLink is now ").concat(fetchParams === null || fetchParams === void 0 ? void 0 : fetchParams.resourceLink, " and resourceLink_=").concat(fetchParams === null || fetchParams === void 0 ? void 0 : fetchParams.resourceLink_), fetchParams);
290
+ case 18:
291
+ console.log("useScripture.fetchBook() - LOADED bible book ".concat(resource_ === null || resource_ === void 0 ? void 0 : resource_.projectId, " resourceLink is now ").concat(fetchParams === null || fetchParams === void 0 ? void 0 : fetchParams.resourceLink, "}"), fetchParams);
345
292
  setState({
346
293
  resourceState: {
347
294
  loadingResource: false,
348
- fetchedResources: _objectSpread(_objectSpread({}, _resource), {}, {
349
- bibleUsfm: _bibleUsfm,
350
- bookObjects: _bookObjects3,
295
+ fetchedResources: _objectSpread(_objectSpread({}, response), {}, {
351
296
  fetchCount: _fetchCount,
352
- name: name,
353
- reference: fetchParams === null || fetchParams === void 0 ? void 0 : fetchParams.reference,
354
- sha: sha,
355
- url: url
297
+ reference: fetchParams === null || fetchParams === void 0 ? void 0 : fetchParams.reference
356
298
  })
357
299
  }
358
300
  });
359
- _context.next = 45;
301
+ _context.next = 26;
360
302
  break;
361
- case 41:
362
- _context.prev = 41;
303
+ case 22:
304
+ _context.prev = 22;
363
305
  _context.t0 = _context["catch"](1);
364
306
  console.error("useScripture.fetchBook() - hard error loading resource", fetchParams, _context.t0);
365
307
  setState({
@@ -368,11 +310,11 @@ export function useScripture(_ref2) {
368
310
  resource: null
369
311
  }
370
312
  });
371
- case 45:
313
+ case 26:
372
314
  case "end":
373
315
  return _context.stop();
374
316
  }
375
- }, _callee, null, [[1, 41]]);
317
+ }, _callee, null, [[1, 22]]);
376
318
  }));
377
319
  return _fetchBook.apply(this, arguments);
378
320
  }
@@ -654,4 +596,4 @@ export function useScripture(_ref2) {
654
596
  versesForRef: versesForRef
655
597
  };
656
598
  }
657
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsInN0ZXAiLCJfZTIiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwidW5kZWZpbmVkIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiY29yZSIsInVzZm1qcyIsIkNPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SIiwiRVJST1JfU1RBVEUiLCJJTklUSUFMSVpFRF9TVEFURSIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwidXNlRGVlcENvbXBhcmVFZmZlY3QiLCJnZXRWZXJzZXMiLCJpc0VxdWFsIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJkZWxheSIsInZlcnNlT2JqZWN0c0hhdmVXb3JkcyIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUiLCJnZXRSZXNvdXJjZUxpbmsiLCJwYXJzZVJlc291cmNlTGluayIsIkJvb2tPYmplY3RzVHlwZSIsIlNjcmlwdHVyZVJlc291cmNlIiwiU2NyaXB0dXJlUmVmZXJlbmNlIiwiU2VydmVyQ29uZmlnIiwiVmVyc2VPYmplY3RzVHlwZSIsIlZlcnNlUmVmZXJlbmNlc1R5cGUiLCJwYXJzZVJlc291cmNlTWFuaWZlc3QiLCJnZXRCcmFuY2hOYW1lIiwicmVzb3VyY2VMaW5rIiwiYnJhbmNoIiwicGFydHMiLCJzcGxpdCIsIl9wYXJ0cyIsImdldFZlcnNlc0ZvclJlZlN0ciIsInJlZlN0ciIsImJvb2tPYmplY3RzIiwibGFuZ3VhZ2VJZCIsInZlcnNlcyIsImNoYXB0ZXJzIiwibWFwIiwidmVyc2UiLCJfdmVyc2UkdmVyc2VEYXRhIiwidmVyc2VEYXRhIiwidmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzXyIsIm9jY3VycmVuY2VJbmplY3RWZXJzZU9iamVjdHMiLCJnZXRWZXJzZXNGb3JSZWYiLCJyZWZlcmVuY2UiLCJjb25jYXQiLCJjaGFwdGVyIiwidXNlU2NyaXB0dXJlIiwiX3JlZjIiLCJfcmVzb3VyY2VTdGF0dXMiLCJfZmV0Y2hQYXJhbXMkcmVmZXJlbmMiLCJjb25maWciLCJyZWFkeUZvckZldGNoIiwicmVzb3VyY2VfIiwicmVzb3VyY2UiLCJyZXNvdXJjZUxpbmtfIiwiX3JlZjIkd2hvbGVCb29rIiwid2hvbGVCb29rIiwiX3VzZVN0YXRlIiwiYmlibGVVc2ZtIiwiZmV0Y2hDb3VudCIsImZldGNoZWQiLCJmZXRjaGVkQm9vayIsImZldGNoUGFyYW1zIiwiaWdub3JlU2hhIiwiaW5pdGlhbGl6ZWQiLCJyZXNvdXJjZVN0YXRlIiwiY29udGVudCIsImZldGNoUmVzcG9uc2UiLCJmZXRjaGVkUmVzb3VyY2VzIiwibG9hZGluZ1Jlc291cmNlIiwibG9hZGluZ0NvbnRlbnQiLCJzaGEiLCJ1cmwiLCJ2ZXJzZXNGb3JSZWYiLCJfdXNlU3RhdGUyIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJfcmVmMyIsIm93bmVyIiwiX3JlZjMkYnJhbmNoIiwiX3JlZjMkcmVmIiwicmVmIiwiX3JlZjQiLCJib29rSWQiLCJwcm9qZWN0SWQiLCJfc3RhdGUiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiaW5pdGlhdGVCb29rRmV0Y2giLCJjb25zb2xlIiwibG9nIiwicmVmXyIsInJlc291cmNlSWQiLCJib29rUmVmIiwibmV3RmV0Y2hQYXJhbXMiLCJmZXRjaEJvb2siLCJfeCIsIl9mZXRjaEJvb2siLCJfY2FsbGVlIiwiX2ZldGNoUGFyYW1zJHJlZmVyZW5jMiIsIl9yZXNvdXJjZSRwcm9qZWN0IiwiX3Jlc291cmNlJHByb2plY3QyIiwiZmV0Y2hMaW5rIiwiX3Jlc291cmNlU3RhdGUkcmVzb3VyIiwiZmV0Y2hlZFNoYU1hdGNoZXNJZ25vcmVTaGEiLCJfcmVzb3VyY2VTdGF0ZSRyZXNvdXIyIiwiX2ZldGNoQ291bnQiLCJfcmVzb3VyY2UiLCJlcnJvck1zZyIsInJlc3BvbnNlIiwiX2JpYmxlVXNmbSIsIl9ib29rT2JqZWN0czMiLCJfZXJyb3JNc2ciLCJfcmVmNSIsIl9hcmdzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInJlc291cmNlRnJvbVJlc291cmNlTGluayIsIm1hbmlmZXN0IiwicHJvamVjdCIsImZpbGUiLCJ3YXJuIiwiZ2V0UmVzcG9uc2VEYXRhIiwidG9KU09OIiwiZGF0YSIsInQwIiwidmFsaWRhdGVSZXNwb25zZSIsIl9mZXRjaGVkQm9vayR0b0xvd2VyQyIsImlzU2FtZUJvb2siLCJleHBlY3RlZEJvb2tJZCIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJmZXRjaGVkQnJhbmNoIiwiZmV0Y2hpbmdCcmFuY2giLCJiaWJsZVVzZm1fIiwiZmV0Y2hWZXJzZXNGb3JSZWYiLCJfcGFyc2VSZXNvdXJjZU1hbmlmZXMiLCJ0aXRsZSIsInZlcnNpb24iLCJsb2FkaW5nIiwiY29udGVudE5vdEZvdW5kRXJyb3IiLCJzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciIsIm1hbmlmZXN0Tm90Rm91bmRFcnJvciIsImludmFsaWRNYW5pZmVzdEVycm9yIiwicmVzb3VyY2VTdGF0dXMiLCJpbnRpYWxpemVkIiwiX2dldFZlcnNlc0ZvclJlZiIsImNvbnRlbnRfIiwidXBkYXRlVmVyc2UiLCJib29rT2JqZWN0c18iLCJfYm9va09iamVjdHMiLCJuZXdWZXJzZXNGb3JSZWYiLCJfbmV3VmVyc2VzRm9yUmVmIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsIl9pdGVyYXRvciIsIl9zdGVwIiwidm8iLCJ2ZXJzZVRleHQiLCJnZXRVc2ZtRm9yVmVyc2VDb250ZW50IiwiX0FsaWdubWVudEhlbHBlcnMkdXBkIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ0YXJnZXRWZXJzZU9iamVjdHMiLCJyZWxvYWRSZXNvdXJjZSIsIl9mZXRjaFBhcmFtcyIsIl9wYXJzZVJlc291cmNlTGluayIsIl9yZWYiLCJfcmVzb3VyY2VMaW5rIiwiY3VycmVudEJvb2tSZWYiLCJmZXRjaGVkQm9va1NhbWUiLCJfdmVyc2VzRm9yUmVmIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNjcmlwdHVyZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHtcbiAgdXNlRWZmZWN0LFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjb3JlIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgdXNmbWpzIGZyb20gJ3VzZm0tanMnXG5pbXBvcnQge1xuICBDT05URU5UX05PVF9GT1VORF9FUlJPUixcbiAgRVJST1JfU1RBVEUsXG4gIElOSVRJQUxJWkVEX1NUQVRFLFxuICBJTlZBTElEX01BTklGRVNUX0VSUk9SLFxuICBMT0FESU5HX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUixcbn0gZnJvbSAndHJhbnNsYXRpb24taGVscHMtcmNsJ1xuaW1wb3J0IHVzZURlZXBDb21wYXJlRWZmZWN0IGZyb20gJ3VzZS1kZWVwLWNvbXBhcmUtZWZmZWN0J1xuaW1wb3J0IHsgZ2V0VmVyc2VzIH0gZnJvbSAnYmlibGUtcmVmZXJlbmNlLXJhbmdlJ1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ0ByZWFjdC1ob29rei9kZWVwLWVxdWFsJ1xuaW1wb3J0IHsgQWxpZ25tZW50SGVscGVycywgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBkZWxheSwgdmVyc2VPYmplY3RzSGF2ZVdvcmRzIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQge1xuICBjbGVhbnVwVmVyc2VPYmplY3RzLFxuICBnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUsXG4gIGdldFJlc291cmNlTGluayxcbiAgcGFyc2VSZXNvdXJjZUxpbmssXG59IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHtcbiAgQm9va09iamVjdHNUeXBlLFxuICBTY3JpcHR1cmVSZXNvdXJjZSxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlLFxuICBTZXJ2ZXJDb25maWcsXG4gIFZlcnNlT2JqZWN0c1R5cGUsXG4gIFZlcnNlUmVmZXJlbmNlc1R5cGUsXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgcGFyc2VSZXNvdXJjZU1hbmlmZXN0IH0gZnJvbSAnLi9wYXJzZVJlc291cmNlTWFuaWZlc3QnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiByZWZlcmVuY2UgZm9yIHNjcmlwdHVyZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiB3aGVyZSB0byBnZXQgZGF0YSAqKi9cbiAgY29uZmlnOiBTZXJ2ZXJDb25maWc7XG4gIC8qKiBvcHRpb25hbCBkaXJlY3QgcGF0aCB0byBiaWJsZSByZXNvdXJjZSwgaW4gZm9ybWF0ICR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH0vJHtwcm9qZWN0SWR9LyR7YnJhbmNofSAqKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogb3B0aW9uYWwgcmVzb3VyY2Ugb2JqZWN0IHRvIHVzZSB0byBidWlsZCByZXNvdXJjZUxpbmsgKiovXG4gIHJlc291cmNlOiBTY3JpcHR1cmVSZXNvdXJjZXx1bmRlZmluZWQ7XG4gIC8qKiBpZiB0cnVlIHRoZW4gZmV0Y2ggdGhlIGVudGlyZSBib29rICovXG4gIHdob2xlQm9vazogYm9vbGVhbjtcbiAgLyoqIGlmIHRydWUgdGhlbiBzZXR0aW5ncyBhcmUgcmVhZHkgZm9yIGZldGNoaW5nIGRhdGEgKi9cbiAgcmVhZHlGb3JGZXRjaDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBleHRyYWN0IGJyYW5jaCBmcm9tIHJlc291cmNlIGxpbmtcbiAqIEBwYXJhbSByZXNvdXJjZUxpbmtcbiAqL1xuZnVuY3Rpb24gZ2V0QnJhbmNoTmFtZShyZXNvdXJjZUxpbms6IHN0cmluZykge1xuICBsZXQgYnJhbmNoID0gbnVsbFxuICByZXNvdXJjZUxpbmsgPSByZXNvdXJjZUxpbmsgfHwgJydcbiAgY29uc3QgcGFydHMgPSByZXNvdXJjZUxpbmsuc3BsaXQoJz9yZWY9JylcblxuICBpZiAocGFydHMubGVuZ3RoID4gMSkgeyAvLyBpZiByZWYgcGFyYW1ldGVyIGZvdW5kLCBnZXQgYnJhbmNoIG5hbWUgYWZ0ZXJcbiAgICBicmFuY2ggPSBwYXJ0cz8uWzFdXG4gIH0gZWxzZSB7IC8vIGZhbGwgYmFjayB0byB1c2luZyB1c2VSc3JjIGZvcm1hdCBzdWNoIGFzIFwidW5mb2xkaW5nV29yZC9lbi91c3QvbWFzdGVyXCJcbiAgICBjb25zdCBfcGFydHMgPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuICAgIGJyYW5jaCA9IF9wYXJ0cz8uWzNdXG4gIH1cbiAgcmV0dXJuIGJyYW5jaFxufVxuXG4vKipcbiAqIGdldCB0aGUgdmVyc2Ugb2JqZWN0cyBmb3IgdGhlIHJlZmVyZW5jZSBzdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWZTdHIgLSBpbiBmb3JtYXQgPGNoYXB0ZXI+Ojx2ZXJzZT5cbiAqIEBwYXJhbSB7b2JqZWN0fSBib29rT2JqZWN0cyAtIHBhcnNlZCB1c2ZtIGZvciBib29rXG4gKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2VJZFxuICogQHJldHVybiB7YXJyYXl8bnVsbH0gLSBvZiB2ZXJzZU9iamVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGJvb2tPYmplY3RzLCBsYW5ndWFnZUlkKTogVmVyc2VSZWZlcmVuY2VzVHlwZSB7XG4gIGlmIChib29rT2JqZWN0cykge1xuICAgIGxldCB2ZXJzZXMgPSBnZXRWZXJzZXMoYm9va09iamVjdHMuY2hhcHRlcnMsIHJlZlN0cilcblxuICAgIGlmIChsYW5ndWFnZUlkID09PSAnZWwteC1rb2luZScgfHwgbGFuZ3VhZ2VJZCA9PT0gJ2hibycpIHtcbiAgICAgIHZlcnNlcyA9IHZlcnNlcy5tYXAodmVyc2UgPT4ge1xuICAgICAgICBpZiAoIHZlcnNlPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cykge1xuICAgICAgICAgIGxldCB2ZXJzZU9iamVjdHNfID0gY29yZS5vY2N1cnJlbmNlSW5qZWN0VmVyc2VPYmplY3RzKCB2ZXJzZS52ZXJzZURhdGEudmVyc2VPYmplY3RzKVxuICAgICAgICAgIHZlcnNlT2JqZWN0c18gPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0c18pXG4gICAgICAgICAgdmVyc2UudmVyc2VEYXRhLnZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0c19cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmVyc2VcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcnNlc1xuICB9XG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZ2V0IHRoZSB2ZXJzZSBvYmplY3RzIGZvciB0aGUgcmVmZXJlbmNlIG9iamVjdFxuICogQHBhcmFtIHtvYmplY3R9IHJlZmVyZW5jZVxuICogQHBhcmFtIHtvYmplY3R9IGJvb2tPYmplY3RzIC0gcGFyc2VkIHVzZm0gZm9yIGJvb2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZUlkXG4gKiBAcmV0dXJuIHthcnJheXxudWxsfSAtIG9mIHZlcnNlT2JqZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VzRm9yUmVmKHJlZmVyZW5jZSwgYm9va09iamVjdHMsIGxhbmd1YWdlSWQpOiBWZXJzZVJlZmVyZW5jZXNUeXBlIHtcbiAgY29uc3QgcmVmU3RyID0gYCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWBcbiAgcmV0dXJuIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGJvb2tPYmplY3RzLCBsYW5ndWFnZUlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2NyaXB0dXJlKHsgLy8gaG9vayBmb3IgZmV0Y2hpbmcgc2NyaXB0dXJlXG4gIGNvbmZpZyxcbiAgcmVhZHlGb3JGZXRjaCxcbiAgcmVmZXJlbmNlLFxuICByZXNvdXJjZTogcmVzb3VyY2VfLFxuICByZXNvdXJjZUxpbms6IHJlc291cmNlTGlua18sXG4gIHdob2xlQm9vayA9IGZhbHNlLFxufSA6IFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBiaWJsZVVzZm06IHN0cmluZyxcbiAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgIGZldGNoQ291bnQ6IG51bWJlcixcbiAgICBmZXRjaGVkOiBib29sZWFuLFxuICAgIGZldGNoZWRCb29rOiBzdHJpbmcsXG4gICAgZmV0Y2hQYXJhbXM6IHtcbiAgICAgIGNvbmZpZzoge30sXG4gICAgICByZWZlcmVuY2U6IHt9LFxuICAgICAgcmVzb3VyY2VMaW5rOiBzdHJpbmcsXG4gICAgfSxcbiAgICBpZ25vcmVTaGE6IHN0cmluZ3xudWxsLFxuICAgIGluaXRpYWxpemVkOiBib29sZWFuLFxuICAgIHJlc291cmNlU3RhdGU6IHtcbiAgICAgIGJpYmxlVXNmbTogc3RyaW5nLFxuICAgICAgYm9va09iamVjdHM6IEJvb2tPYmplY3RzVHlwZSxcbiAgICAgIGNvbnRlbnQ6IHt9LFxuICAgICAgZmV0Y2hSZXNwb25zZToge30sXG4gICAgICBmZXRjaGVkUmVzb3VyY2VzOiB7XG4gICAgICAgIGJpYmxlVXNmbTogc3RyaW5nLFxuICAgICAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgICAgICBmZXRjaENvdW50OiBudW1iZXIsXG4gICAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgICAgc2hhOiBzdHJpbmcsXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdSZXNvdXJjZTogYm9vbGVhbixcbiAgICAgIGxvYWRpbmdDb250ZW50OiBib29sZWFuLFxuICAgICAgcmVzb3VyY2U6IHtcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBtYW5pZmVzdDoge30sXG4gICAgICAgIHJlc291cmNlTGluazoge31cbiAgICAgIH0sXG4gICAgICBzaGE6IHN0cmluZyxcbiAgICAgIHVybDogc3RyaW5nLFxuICAgIH0sXG4gICAgdmVyc2VzRm9yUmVmOiBhbnlbXSxcbiAgfVxuXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IHVzZVN0YXRlKHtcbiAgICBiaWJsZVVzZm06IG51bGwsXG4gICAgYm9va09iamVjdHM6IG51bGwsXG4gICAgZmV0Y2hDb3VudDogMCxcbiAgICBmZXRjaGVkOiBmYWxzZSxcbiAgICBmZXRjaGVkQm9vazogJycsXG4gICAgZmV0Y2hQYXJhbXM6IHtcbiAgICAgIGNvbmZpZzoge30sXG4gICAgICByZWZlcmVuY2U6IHt9LFxuICAgICAgcmVzb3VyY2VMaW5rOiAnJyxcbiAgICB9LFxuICAgIGlnbm9yZVNoYTogbnVsbCxcbiAgICBpbml0aWFsaXplZDogZmFsc2UsXG4gICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgYm9va09iamVjdHM6IG51bGwsXG4gICAgICBiaWJsZVVzZm06IG51bGwsXG4gICAgICBjb250ZW50OiBudWxsLFxuICAgICAgZmV0Y2hSZXNwb25zZTogbnVsbCxcbiAgICAgIGZldGNoZWRSZXNvdXJjZXM6IG51bGwsXG4gICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgbG9hZGluZ0NvbnRlbnQ6IGZhbHNlLFxuICAgICAgcmVzb3VyY2U6IG51bGwsXG4gICAgICBzaGE6IG51bGwsXG4gICAgICB1cmw6IG51bGwsXG4gICAgfSxcbiAgICB2ZXJzZXNGb3JSZWY6IFtdLFxuICB9KVxuXG4gIGNvbnN0IHtcbiAgICBvd25lcixcbiAgICBsYW5ndWFnZUlkLFxuICAgIGJyYW5jaCA9ICdtYXN0ZXInLFxuICAgIHJlZiA9IG51bGwsXG4gIH0gPSByZXNvdXJjZV8gfHwge31cblxuICBjb25zdCB7IHByb2plY3RJZDogYm9va0lkfSA9IHJlZmVyZW5jZSB8fCB7fVxuXG4gIGNvbnN0IF9zdGF0ZTogU3RhdGVUeXBlcyA9IHN0YXRlIC8vIFRyaWNreTogd29yay1hcm91bmQgZm9yIGJ1ZyB0aGF0IHN0YW5kYXJkIHR5cGVzY3JpcHQgdHlwZSBjYXN0aW5nIGRvZXMgbm90IHdvcmsgaW4gLnRzeCBmaWxlc1xuICBjb25zdCB7XG4gICAgYmlibGVVc2ZtLFxuICAgIGJvb2tPYmplY3RzLFxuICAgIGZldGNoQ291bnQsXG4gICAgZmV0Y2hlZCxcbiAgICBmZXRjaGVkQm9vayxcbiAgICBmZXRjaFBhcmFtcyxcbiAgICBpZ25vcmVTaGEsXG4gICAgaW5pdGlhbGl6ZWQsXG4gICAgcmVzb3VyY2VTdGF0ZSxcbiAgICB2ZXJzZXNGb3JSZWYsXG4gIH0gPSBfc3RhdGVcbiAgY29uc3QgZmV0Y2hlZFJlc291cmNlcyA9IHJlc291cmNlU3RhdGU/LmZldGNoZWRSZXNvdXJjZXNcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlYWR5Rm9yRmV0Y2gpIHtcbiAgICAgIGluaXRpYXRlQm9va0ZldGNoKClcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbml0aWF0ZUJvb2tGZXRjaCgpIHtcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgLSByZWFkeUZvckZldGNoIHRydWUsIGluaXRpYWxpemluZ2ApXG4gICAgICBsZXQgcmVzb3VyY2VMaW5rID0gcmVhZHlGb3JGZXRjaCAmJiByZXNvdXJjZUxpbmtfXG5cbiAgICAgIGlmICghcmVzb3VyY2VMaW5rXyAmJiByZXNvdXJjZV8pIHtcbiAgICAgICAgY29uc3QgcmVmXyA9IHJlZiB8fCBicmFuY2hcblxuICAgICAgICByZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgICAgICAgIG93bmVyLFxuICAgICAgICAgIGxhbmd1YWdlSWQsXG4gICAgICAgICAgcmVzb3VyY2VJZDogYm9va0lkLFxuICAgICAgICAgIHJlZjogcmVmXyxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgYm9va1JlZiA9IHsgLi4ucmVmZXJlbmNlIH1cblxuICAgICAgaWYgKHdob2xlQm9vaykge1xuICAgICAgICBkZWxldGUgYm9va1JlZi5jaGFwdGVyIC8vIHJlbW92ZSB0aGUgY2hhcHRlciBhbmQgdmVyc2Ugc28gdGhlIHdob2xlIGJvb2sgaXMgZmV0Y2hlZFxuICAgICAgICBkZWxldGUgYm9va1JlZi52ZXJzZVxuICAgICAgfVxuXG4gICAgICBpZiAocmVzb3VyY2VMaW5rICE9PSBmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgLSBmb3IgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVzb3VyY2VMaW5rIGlzIG5vdyAke3Jlc291cmNlTGlua30gYW5kIHJlc291cmNlTGlua189JHtyZXNvdXJjZUxpbmtffWApXG4gICAgICB9IGVsc2UgaWYgKGJvb2tSZWYgIT09IGZldGNoUGFyYW1zPy5yZWZlcmVuY2UpIHtcbiAgICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSAtIGJvb2sgY2hhbmdlZCB0byAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZXNvdXJjZUxpbmsgaXMgbm93ICR7cmVzb3VyY2VMaW5rfWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld0ZldGNoUGFyYW1zID0ge1xuICAgICAgICBjb25maWcsXG4gICAgICAgIHJlZmVyZW5jZTogYm9va1JlZixcbiAgICAgICAgcmVzb3VyY2VMaW5rLFxuICAgICAgfVxuXG4gICAgICBpZiAoIWlzRXF1YWwobmV3RmV0Y2hQYXJhbXMsIGZldGNoUGFyYW1zKSkge1xuICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgZmV0Y2hQYXJhbXM6IG5ld0ZldGNoUGFyYW1zLFxuICAgICAgICAgIGZldGNoZWQ6IGZhbHNlLFxuICAgICAgICAgIGluaXRpYWxpemVkOiB0cnVlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGZldGNoQm9vayhuZXdGZXRjaFBhcmFtcylcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtcbiAgICByZWFkeUZvckZldGNoLFxuICAgIG93bmVyLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgYm9va0lkLFxuICAgIGJyYW5jaCxcbiAgICByZWYsXG4gIF0pXG5cbiAgLyoqXG4gICAqIGRvIGEgZmV0Y2ggb2YgbWFuaWZlc3QgYW5kIGJvb2sgb2YgdGhlIGJpYmxlIHNwZWNpZmllZCBpbiBmZXRjaFBhcmFtc1xuICAgKiBAcGFyYW0ge29iamVjdH0gZmV0Y2hQYXJhbXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlnbm9yZVNoYSAtIG9wdGlvbmFsIHByZXZpb3VzIHNoYSAtIGlnbm9yZSByZXNwb25zZXMgdGhhdCBjYW1lIGJhY2sgZm9yIHRoaXMgcHJldmlvdXMgYm9vayBjb21taXRcbiAgICovXG4gIGFzeW5jIGZ1bmN0aW9uIGZldGNoQm9vayhmZXRjaFBhcmFtcywgaWdub3JlU2hhID0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBmZXRjaExpbmsgPSBgJHtmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rfS8ke2ZldGNoUGFyYW1zPy5yZWZlcmVuY2U/LnByb2plY3RJZH1gXG5cbiAgICAgIGlmIChpZ25vcmVTaGEpIHtcbiAgICAgICAgY29uc3QgZmV0Y2hlZFNoYU1hdGNoZXNJZ25vcmVTaGEgPSBpZ25vcmVTaGEgPT09IHJlc291cmNlU3RhdGU/LnNoYSAvLyB3ZSB3aWxsIHJlbG9hZCBpZiBpZ25vcmVTaGEgZ2l2ZW4gYW5kIGl0IG1hdGNoZXMgY3VycmVudCBzaGFcbiAgICAgICAgaWYgKChmZXRjaExpbmsgPT09IHJlc291cmNlU3RhdGU/LnJlc291cmNlPy5yZXNvdXJjZUxpbmspICYmICFmZXRjaGVkU2hhTWF0Y2hlc0lnbm9yZVNoYSkgeyAvLyBzZWUgaWYgd2UgYWxyZWFkeSBmZXRjaGVkIHRoaXNcbiAgICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gQWxyZWFkeSBmZXRjaGluZyByZXNvdXJjZUxpbmsgJHtyZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ucmVzb3VyY2VMaW5rfSBhbmQgaWdub3JlU2hhPSR7aWdub3JlU2hhfWAsIGZldGNoUGFyYW1zKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IF9mZXRjaENvdW50ID0gZmV0Y2hDb3VudCArIDFcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUuZmV0Y2hCb29rKCkgLSBGRVRDSElORyBiaWJsZSAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZXNvdXJjZUxpbmsgaXMgbm93ICR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua30gYW5kIGlnbm9yZVNoYT0ke2lnbm9yZVNoYX1gLCBmZXRjaFBhcmFtcylcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgZmV0Y2hDb3VudDogX2ZldGNoQ291bnQsXG4gICAgICAgIGZldGNoZWQ6IGZhbHNlLFxuICAgICAgICBpZ25vcmVTaGEsXG4gICAgICAgIHJlc291cmNlU3RhdGU6IHsgbG9hZGluZ1Jlc291cmNlOiB0cnVlIH0sXG4gICAgICB9KVxuXG4gICAgICAvLyBmZXRjaCBtYW5pZmVzdCBkYXRhXG4gICAgICBhd2FpdCBkZWxheSgxMDApXG4gICAgICBjb25zdCBfcmVzb3VyY2UgPSBhd2FpdCBjb3JlLnJlc291cmNlRnJvbVJlc291cmNlTGluayhmZXRjaFBhcmFtcylcblxuICAgICAgaWYgKCFfcmVzb3VyY2U/Lm1hbmlmZXN0IHx8ICFfcmVzb3VyY2U/LnByb2plY3Q/LmZpbGUpIHtcbiAgICAgICAgY29uc3QgZXJyb3JNc2cgPSBfcmVzb3VyY2U/Lm1hbmlmZXN0ID8gJ3BhcnNpbmcgcmVzb3VyY2UgbWFuaWZlc3QnIDogJ2xvYWRpbmcgcmVzb3VyY2UgbWFuaWZlc3QnXG4gICAgICAgIGNvbnNvbGUud2FybihgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gZXJyb3IgJHtlcnJvck1zZ31gLCBmZXRjaFBhcmFtcyApXG4gICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgICAgcmVzb3VyY2U6IF9yZXNvdXJjZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIExPQURFRCBiaWJsZSBtYW5pZmVzdCwgZmV0Y2hpbmcgYm9vayAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZXNvdXJjZUxpbmsgaXMgbm93ICR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua30gYW5kIHJlc291cmNlTGlua189JHtmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rX31gLCBmZXRjaFBhcmFtcylcbiAgICAgIGF3YWl0IGRlbGF5KDEwMClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgX3Jlc291cmNlPy5wcm9qZWN0Py5maWxlKClcbiAgICAgIC8vIHBhcnNlIGJvb2sgdXNmbVxuICAgICAgY29uc3QgYmlibGVVc2ZtID0gcmVzcG9uc2UgJiYgY29yZS5nZXRSZXNwb25zZURhdGEocmVzcG9uc2UpXG4gICAgICBhd2FpdCBkZWxheSgxMDApXG4gICAgICBjb25zdCBib29rT2JqZWN0cyA9IGJpYmxlVXNmbSAmJiB1c2ZtanMudG9KU09OKGJpYmxlVXNmbSkgLy8gY29udmVydCB0byBiaWJsZSBvYmplY3RzXG5cbiAgICAgIGlmICghYm9va09iamVjdHMpIHtcbiAgICAgICAgY29uc3QgZXJyb3JNc2cgPSBiaWJsZVVzZm0gPyAnZmV0Y2hpbmcgYm9vayBvZiB0aGUgYmlibGUnIDogJ3BhcnNpbmcgYm9vayBvZiB0aGUgYmlibGUnXG4gICAgICAgIGNvbnNvbGUud2FybihgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gZXJyb3IgJHtlcnJvck1zZ31gLCBmZXRjaFBhcmFtcyApXG4gICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgICAgcmVzb3VyY2U6IF9yZXNvdXJjZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBuYW1lLCBzaGEsIHVybCB9ID0gcmVzcG9uc2U/LmRhdGEgfHwge31cblxuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIExPQURFRCBiaWJsZSBib29rICR7cmVzb3VyY2VfPy5wcm9qZWN0SWR9IHJlc291cmNlTGluayBpcyBub3cgJHtmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rfSBhbmQgcmVzb3VyY2VMaW5rXz0ke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmtffWAsIGZldGNoUGFyYW1zKVxuICAgICAgc2V0U3RhdGUoXG4gICAgICAgIHtcbiAgICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgICAgZmV0Y2hlZFJlc291cmNlczoge1xuICAgICAgICAgICAgICAuLi5fcmVzb3VyY2UsXG4gICAgICAgICAgICAgIGJpYmxlVXNmbSxcbiAgICAgICAgICAgICAgYm9va09iamVjdHMsXG4gICAgICAgICAgICAgIGZldGNoQ291bnQ6IF9mZXRjaENvdW50LFxuICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICByZWZlcmVuY2U6IGZldGNoUGFyYW1zPy5yZWZlcmVuY2UsXG4gICAgICAgICAgICAgIHNoYSxcbiAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIGhhcmQgZXJyb3IgbG9hZGluZyByZXNvdXJjZWAsIGZldGNoUGFyYW1zLCBlIClcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgICAgIGxvYWRpbmdSZXNvdXJjZTogZmFsc2UsXG4gICAgICAgICAgcmVzb3VyY2U6IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSAtIGZvciAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZWFkeUZvckZldGNoIGlzIG5vdyAke3JlYWR5Rm9yRmV0Y2h9YClcbiAgfSwgW3JlYWR5Rm9yRmV0Y2hdKVxuXG4gIC8qKlxuICAgKiBtYWtlIHN1cmUgbGFzdCBmZXRjaCByZXNwb25zZSBpcyBmb3IgY3VycmVudCBib29rL2JyYW5jaFxuICAgKi9cbiAgZnVuY3Rpb24gdmFsaWRhdGVSZXNwb25zZSgpIHtcbiAgICBsZXQgaXNTYW1lQm9vayA9IGZhbHNlXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGV4cGVjdGVkQm9va0lkID0gYm9va0lkIHx8ICd6enonXG4gICAgY29uc3QgZmV0Y2hlZEJvb2sgPSBnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUoZmV0Y2hlZFJlc291cmNlcz8ubmFtZSlcbiAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnZhbGlkYXRlUmVzcG9uc2UoKSAtIEN1cnJlbnQgYm9va0lkIGlzICR7Ym9va0lkfSBhbmQgc2VlaW5nICR7ZmV0Y2hlZEJvb2t9IGluIFVTRk1gKVxuICAgIGlzU2FtZUJvb2sgPSBmZXRjaGVkQm9vaz8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoYm9va0lkKVxuXG4gICAgY29uc3Qgc2hhID0gZmV0Y2hlZFJlc291cmNlcz8uc2hhIHx8IG51bGxcbiAgICBjb25zdCB1cmwgPSBmZXRjaGVkUmVzb3VyY2VzPy51cmwgfHwgbnVsbFxuXG4gICAgaWYgKGlzU2FtZUJvb2spIHsgLy8gYWxzbyBtYWtlIHN1cmUgaXQgaXMgdGhlIHNhbWUgYnJhbmNoXG4gICAgICBjb25zdCBmZXRjaGVkQnJhbmNoID0gZ2V0QnJhbmNoTmFtZSh1cmwpXG4gICAgICBjb25zdCBmZXRjaGluZ0JyYW5jaCA9IGdldEJyYW5jaE5hbWUoZmV0Y2hQYXJhbXM/LnJlc291cmNlTGluaylcblxuICAgICAgaWYgKGZldGNoZWRCcmFuY2ggIT09IGZldGNoaW5nQnJhbmNoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUudmFsaWRhdGVSZXNwb25zZSgpIGludmFsaWQgYnJhbmNoLCBleHBlY3RlZCBicmFuY2ggaXMgJHtmZXRjaGluZ0JyYW5jaH0sIGJ1dCBmZXRjaGVkQnJhbmNoIGlzICR7ZmV0Y2hlZEJyYW5jaH1gLCB7IHNoYSwgdXJsIH0pXG4gICAgICAgIGlzU2FtZUJvb2sgPSBmYWxzZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnZhbGlkYXRlUmVzcG9uc2UoKSAtICBpbnZhbGlkIGJvb2ssIGV4cGVjdGVkQm9va0lkIGlzICR7ZXhwZWN0ZWRCb29rSWR9LCBidXQgcmVjZWl2ZWQgYm9vayBuYW1lICR7ZmV0Y2hlZEJvb2t9YCwgeyBzaGEsIHVybCB9KVxuICAgIH1cblxuICAgIGlmIChpZ25vcmVTaGEgPT09IHNoYSkge1xuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSB0aGUgc2hhIGlzIHRoZSBzYW1lIGFzIHRoZSBpZ25vcmUgc2hhICR7c2hhfWAsIHsgc2hhLCB1cmwgfSlcbiAgICAgIGlzU2FtZUJvb2sgPSBmYWxzZVxuICAgIH1cblxuICAgIGlmIChpc1NhbWVCb29rKSB7XG4gICAgICBjb25zdCBiaWJsZVVzZm1fID0gZmV0Y2hlZFJlc291cmNlcz8uYmlibGVVc2ZtXG4gICAgICBjb25zdCBib29rT2JqZWN0cyA9IGZldGNoZWRSZXNvdXJjZXM/LmJvb2tPYmplY3RzXG4gICAgICBjb25zdCB2ZXJzZXNGb3JSZWYgPSBmZXRjaFZlcnNlc0ZvclJlZihib29rT2JqZWN0cylcblxuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSBjb3JyZWN0IGJvb2ssIGV4cGVjdGVkQm9va0lkIGlzICR7ZXhwZWN0ZWRCb29rSWR9YCwgeyBzaGEsIHVybCB9KVxuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGJpYmxlVXNmbTogYmlibGVVc2ZtXyxcbiAgICAgICAgYm9va09iamVjdHMsXG4gICAgICAgIGZldGNoZWQ6IHRydWUsXG4gICAgICAgIGZldGNoZWRCb29rOiBleHBlY3RlZEJvb2tJZCxcbiAgICAgICAgaWdub3JlU2hhOiBudWxsLFxuICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgYm9va09iamVjdHMsXG4gICAgICAgICAgYmlibGVVc2ZtOiBiaWJsZVVzZm1fLFxuICAgICAgICAgIGxvYWRpbmdSZXNvdXJjZTogZmFsc2UsXG4gICAgICAgICAgbG9hZGluZ0NvbnRlbnQ6IGZhbHNlLFxuICAgICAgICAgIHJlc291cmNlOiBmZXRjaGVkUmVzb3VyY2VzLFxuICAgICAgICAgIHNoYSxcbiAgICAgICAgICB1cmwsXG4gICAgICAgIH0sXG4gICAgICAgIHZlcnNlc0ZvclJlZixcbiAgICAgIH1cblxuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpXG4gICAgfVxuICB9XG5cbiAgdXNlRGVlcENvbXBhcmVFZmZlY3QoKCkgPT4geyAvLyB2YWxpZGF0ZSByZXNwb25zZSB0byBtYWtlIHN1cmUgZnJvbSBsYXRlc3QgcmVxdWVzdFxuICAgIGlmIChyZWFkeUZvckZldGNoICYmIGZldGNoZWRSZXNvdXJjZXMpIHtcbiAgICAgIGlmICghZmV0Y2hlZCAmJiBmZXRjaGVkUmVzb3VyY2VzPy5mZXRjaENvdW50ID09PSBmZXRjaENvdW50KSB7XG4gICAgICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdmFsaWRhdGVSZXNwb25zZSgpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbeyByZWFkeUZvckZldGNoLCBmZXRjaGVkUmVzb3VyY2VzIH1dKVxuXG4gIGNvbnN0IHJlc291cmNlID0gcmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2VcbiAgY29uc3QgeyB0aXRsZSwgdmVyc2lvbiB9ID0gcGFyc2VSZXNvdXJjZU1hbmlmZXN0KHJlc291cmNlKVxuICBjb25zdCBsb2FkaW5nID0gcmVzb3VyY2VTdGF0ZT8ubG9hZGluZ1Jlc291cmNlIHx8IHJlc291cmNlU3RhdGU/LmxvYWRpbmdDb250ZW50IHx8ICFyZWFkeUZvckZldGNoXG4gIGNvbnN0IGNvbnRlbnROb3RGb3VuZEVycm9yID0gIXJlc291cmNlU3RhdGU/LmJpYmxlVXNmbVxuICBjb25zdCBzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciA9ICFyZXNvdXJjZVN0YXRlPy5ib29rT2JqZWN0c1xuICBjb25zdCBtYW5pZmVzdE5vdEZvdW5kRXJyb3IgPSAhcmVzb3VyY2U/Lm1hbmlmZXN0XG4gIGNvbnN0IGludmFsaWRNYW5pZmVzdEVycm9yID0gIXRpdGxlIHx8ICF2ZXJzaW9uIHx8ICFsYW5ndWFnZUlkXG4gIGNvbnN0IGVycm9yID0gcmVhZHlGb3JGZXRjaCAmJiBpbml0aWFsaXplZCAmJiAhbG9hZGluZyAmJlxuICAgIChjb250ZW50Tm90Rm91bmRFcnJvciB8fCBzY3JpcHR1cmVOb3RMb2FkZWRFcnJvciB8fCBtYW5pZmVzdE5vdEZvdW5kRXJyb3IgfHwgaW52YWxpZE1hbmlmZXN0RXJyb3IpXG4gIGNvbnN0IHJlc291cmNlU3RhdHVzID0ge1xuICAgIFtMT0FESU5HX1NUQVRFXTogbG9hZGluZyxcbiAgICBbQ09OVEVOVF9OT1RfRk9VTkRfRVJST1JdOiBjb250ZW50Tm90Rm91bmRFcnJvcixcbiAgICBbU0NSSVBUVVJFX05PVF9MT0FERURfRVJST1JdOiBzY3JpcHR1cmVOb3RMb2FkZWRFcnJvcixcbiAgICBbTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUl06IG1hbmlmZXN0Tm90Rm91bmRFcnJvcixcbiAgICBbSU5WQUxJRF9NQU5JRkVTVF9FUlJPUl06IGludmFsaWRNYW5pZmVzdEVycm9yLFxuICAgIFtFUlJPUl9TVEFURV06IGVycm9yLFxuICAgIFtJTklUSUFMSVpFRF9TVEFURV06IGluaXRpYWxpemVkLFxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXJlYWR5Rm9yRmV0Y2gpIHtcbiAgICAgIGlmIChpbml0aWFsaXplZCkge1xuICAgICAgICBzZXRTdGF0ZSh7IGludGlhbGl6ZWQ6IGZhbHNlIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGlmIChsb2FkaW5nKSB7IC8vIG9uY2UgZmlyc3QgbG9hZCBoYXMgYmVndW4sIHdlIGFyZSBpbml0aWFsaXplZFxuICAgICAgICBzZXRTdGF0ZSh7IGludGlhbGl6ZWQ6IHRydWUgfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtsb2FkaW5nLCByZWFkeUZvckZldGNoXSlcblxuICAvKipcbiAgICogZ2V0IHZlcnNlcyBmb3IgcmVmXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByZWZTdHJcbiAgICogQHBhcmFtIHtvYmplY3R9IGNvbnRlbnRfXG4gICAqL1xuICBmdW5jdGlvbiBfZ2V0VmVyc2VzRm9yUmVmKHJlZlN0ciwgY29udGVudF8gPSBib29rT2JqZWN0cyk6IFZlcnNlUmVmZXJlbmNlc1R5cGUge1xuICAgIGlmIChjb250ZW50Xykge1xuICAgICAgcmV0dXJuIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGNvbnRlbnRfLCBsYW5ndWFnZUlkKVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIHVwZGF0ZSB2ZXJzZSBkYXRhIGZvciBjdXJyZW50IGJvb2tcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNoYXB0ZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlXG4gICAqIEBwYXJhbSB7b2JqZWN0fSB2ZXJzZURhdGFcbiAgICovXG4gIGZ1bmN0aW9uIHVwZGF0ZVZlcnNlKGNoYXB0ZXIsIHZlcnNlLCB2ZXJzZURhdGEpIHtcbiAgICBpZiAoYm9va09iamVjdHMpIHtcbiAgICAgIGNvbnN0IGJvb2tPYmplY3RzXyA9IHsgLi4uYm9va09iamVjdHMgfSAvLyBzaGFsbG93IGNvcHlcblxuICAgICAgaWYgKGJvb2tPYmplY3RzXz8uY2hhcHRlcnMpIHtcbiAgICAgICAgYm9va09iamVjdHNfLmNoYXB0ZXJzID0geyAuLi5ib29rT2JqZWN0c18uY2hhcHRlcnMgfSAvLyBzaGFsbG93IGNvcHkgY2hhcHRlcnNcblxuICAgICAgICBpZiAoYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdKSB7XG4gICAgICAgICAgYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdID0geyAuLi5ib29rT2JqZWN0c18uY2hhcHRlcnNbY2hhcHRlcl0gfSAvLyBzaGFsbG93IGNvcHkgdmVyc2VzXG4gICAgICAgICAgYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdW3ZlcnNlXSA9IHZlcnNlRGF0YVxuICAgICAgICAgIHNldFN0YXRlKHsgYm9va09iamVjdHM6IGJvb2tPYmplY3RzXyB9KVxuICAgICAgICAgIHJldHVybiBib29rT2JqZWN0c19cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0aGUgdmVyc2VzIGZvciBjdXJyZW50IHJlZmVyZW5jZSBvciByZWZlcmVuY2UgcmFuZ2VcbiAgICogQHBhcmFtIHtCb29rT2JqZWN0c1R5cGV9IF9ib29rT2JqZWN0c1xuICAgKi9cbiAgZnVuY3Rpb24gZmV0Y2hWZXJzZXNGb3JSZWYoX2Jvb2tPYmplY3RzOiBCb29rT2JqZWN0c1R5cGUgPSBib29rT2JqZWN0cyk6IFZlcnNlT2JqZWN0c1R5cGUge1xuICAgIGxldCBuZXdWZXJzZXNGb3JSZWYgPSBbXVxuXG4gICAgaWYgKF9ib29rT2JqZWN0cykge1xuICAgICAgbmV3VmVyc2VzRm9yUmVmID0gZ2V0VmVyc2VzRm9yUmVmKHJlZmVyZW5jZSwgX2Jvb2tPYmplY3RzLCBsYW5ndWFnZUlkKVxuICAgICAgaWYgKHJlZmVyZW5jZT8udmVyc2UgPT09ICdmcm9udCcpIHsgLy8gc3BlY2lhbCBoYW5kbGluZyBmb3IgZnJvbnQgbWF0dGVyXG4gICAgICAgIGNvbnN0IHZlcnNlRGF0YSA9IG5ld1ZlcnNlc0ZvclJlZj8uWzBdPy52ZXJzZURhdGFcbiAgICAgICAgY29uc3QgaW5pdGlhbFZlcnNlT2JqZWN0cyA9IHZlcnNlRGF0YT8udmVyc2VPYmplY3RzXG4gICAgICAgIGlmIChpbml0aWFsVmVyc2VPYmplY3RzICYmICF2ZXJzZU9iamVjdHNIYXZlV29yZHMoaW5pdGlhbFZlcnNlT2JqZWN0cykpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHZvIG9mIGluaXRpYWxWZXJzZU9iamVjdHMpIHtcbiAgICAgICAgICAgIGlmICh2b1sndGFnJ10gPT09ICdkJykgeyAvLyBjaGVjayBmb3IgZGVzY3JpcHRpdmUgdGl0bGVcbiAgICAgICAgICAgICAgLy8gcmVwYXJzZSBzbyBkZXNjcmlwdGl2ZSB0aXRsZSB0ZXh0IGlzIGJyb2tlbiBpbnRvIGFsaWduLWFibGUgd29yZHNcbiAgICAgICAgICAgICAgbGV0IHZlcnNlVGV4dCA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuZ2V0VXNmbUZvclZlcnNlQ29udGVudCh7IHZlcnNlT2JqZWN0czogaW5pdGlhbFZlcnNlT2JqZWN0cyB9KVxuICAgICAgICAgICAgICBjb25zdCB7IHRhcmdldFZlcnNlT2JqZWN0cyB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZShpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHQpXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRhcmdldFZlcnNlT2JqZWN0cylcbiAgICAgICAgICAgICAgdmVyc2VEYXRhLnZlcnNlT2JqZWN0cyA9IHRhcmdldFZlcnNlT2JqZWN0cyAvLyByZXBsYWNlIHZlcnNlT2JqZWN0cyB3aXRoIGFsaWduLWFibGUgY29udGVudFxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5ld1ZlcnNlc0ZvclJlZlxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvKipcbiAgICogZm9yY2UgcmVsb2FkIG9mIHJlc291cmNlXG4gICAqIEBwYXJhbSB7c3RyaW5nfHVuZGVmaW5lZH0gaWdub3JlU2hhIC0gb3B0aW9uYWwgc2hhIHRvIGlnbm9yZVxuICAgKiBAcGFyYW0ge3N0cmluZ3x1bmRlZmluZWR9IHJlZiAtIG9wdGlvbmFsIHJlZmVyZW5jZSB0byBmZXRjaFxuICAgKi9cbiAgZnVuY3Rpb24gcmVsb2FkUmVzb3VyY2UoaWdub3JlU2hhID0gbnVsbCwgcmVmID0gbnVsbCkge1xuICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUucmVsb2FkUmVzb3VyY2UoKSBpZ25vcmVTaGE6ICR7aWdub3JlU2hhfWAgKVxuICAgIGNvbnN0IF9mZXRjaFBhcmFtcyA9IHsgLi4uZmV0Y2hQYXJhbXMgfVxuXG4gICAgaWYgKHJlZiAmJiBmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG93bmVyLFxuICAgICAgICBsYW5ndWFnZUlkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgICAgICByZWY6IF9yZWYsXG4gICAgICB9ID0gcGFyc2VSZXNvdXJjZUxpbmsoZmV0Y2hQYXJhbXMucmVzb3VyY2VMaW5rKVxuXG4gICAgICBpZiAocmVmICE9PSBfcmVmKSB7IC8vIGlmIHJlZiBjaGFuZ2VkLCB1cGRhdGUgcmVzb3VyY2VsaW5rXG4gICAgICAgIGNvbnN0IF9yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgICAgICAgIG93bmVyLFxuICAgICAgICAgIGxhbmd1YWdlSWQsXG4gICAgICAgICAgcmVzb3VyY2VJZCxcbiAgICAgICAgICByZWYsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUucmVsb2FkUmVzb3VyY2UoKSBvbGQgcmVmIGlzIGRpZmZlcmVudCAke19yZWZ9LCBzd2l0Y2hpbmcgdG8gbG9hZCByZWY6ICR7cmVmfSwgbmV3IHJlc291cmNlTGluazogJHtfcmVzb3VyY2VMaW5rfWAgKVxuICAgICAgICBfZmV0Y2hQYXJhbXMucmVzb3VyY2VMaW5rID0gX3Jlc291cmNlTGlua1xuICAgICAgfVxuICAgIH1cbiAgICBmZXRjaEJvb2soX2ZldGNoUGFyYW1zLCBpZ25vcmVTaGEpXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGN1cnJlbnRCb29rUmVmID0gZmV0Y2hQYXJhbXM/LnJlZmVyZW5jZT8ucHJvamVjdElkXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY3VycmVudEJvb2tSZWYpIHtcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgZmV0Y2hlZCBib29rIGNoYW5nZWQgdG8gJHtjdXJyZW50Qm9va1JlZn0sICR7cmVzb3VyY2VMaW5rX31gLCBmZXRjaFBhcmFtcyApXG4gICAgICBzZXRTdGF0ZSh7IGJvb2tPYmplY3RzOiBudWxsLCBiaWJsZVVzZm06IG51bGwgfSlcbiAgICB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICB9LCBbY3VycmVudEJvb2tSZWZdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSBib29rIHJlZiBjaGFuZ2VkIHRvICR7Ym9va0lkfSwgJHtyZXNvdXJjZUxpbmtffWApXG4gICAgLy8gQHRzLWlnbm9yZVxuICB9LCBbYm9va0lkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGV4cGVjdGVkQm9va0lkID0gYm9va0lkIHx8ICcnXG4gICAgY29uc3QgZmV0Y2hlZEJvb2tTYW1lID0gZmV0Y2hlZEJvb2sgJiYgKGZldGNoZWRCb29rID09PSBleHBlY3RlZEJvb2tJZClcbiAgICBsZXQgX3ZlcnNlc0ZvclJlZiA9IFtdXG5cbiAgICBpZiAoIWZldGNoZWRCb29rU2FtZSkge1xuICAgICAgLy8gaWYgKGV4cGVjdGVkQm9va0lkICYmIGZldGNoZWRCb29rKSB7XG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgZXhwZWN0ZWQgYm9vayAke2V4cGVjdGVkQm9va0lkfSBidXQgZmV0Y2hlZCBib29rIHdhcyAke2ZldGNoZWRCb29rfSAtIGNsZWFyaW5nYClcbiAgICAgIC8vIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgX2Jvb2tPYmplY3RzID0gZmV0Y2hlZEJvb2tTYW1lID8gYm9va09iamVjdHMgOiBudWxsXG4gICAgICBfdmVyc2VzRm9yUmVmID0gZmV0Y2hWZXJzZXNGb3JSZWYoX2Jvb2tPYmplY3RzKVxuICAgICAgLy8gY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSBfYm9va09iamVjdHMgaXMgJHshIV9ib29rT2JqZWN0c30gYW5kIGJvb2tzIGFyZSB0aGUgc2FtZSAke2ZldGNoZWRCb29rfWAsIHsgY29udGVudCwgZmV0Y2hQYXJhbXMgfSlcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoX3ZlcnNlc0ZvclJlZiwgdmVyc2VzRm9yUmVmKSkge1xuICAgICAgc2V0U3RhdGUoeyB2ZXJzZXNGb3JSZWY6IF92ZXJzZXNGb3JSZWYgfSlcbiAgICB9XG4gIH0sIFtyZWZlcmVuY2VdKVxuXG4gIHJldHVybiB7XG4gICAgYmlibGVVc2ZtLFxuICAgIGJvb2tPYmplY3RzLFxuICAgIGdldFZlcnNlc0ZvclJlZjogX2dldFZlcnNlc0ZvclJlZixcbiAgICByZWZlcmVuY2U6IGZldGNoUGFyYW1zPy5yZWZlcmVuY2UsXG4gICAgcmVsb2FkUmVzb3VyY2UsXG4gICAgcmVzb3VyY2VMaW5rOiBmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rLFxuICAgIHJlc291cmNlU3RhdGUsIC8vIHN0YXRlIGluZm9ybWF0aW9uIGZvciBsYXRlc3QgZmV0Y2hlZCByZXNvdXJjZVxuICAgIHJlc291cmNlU3RhdHVzLCAvLyBzdGF0dXMgZmxhZ3MgZm9yIGZldGNoZWQgcmVzb3VyY2VcbiAgICB0aXRsZSxcbiAgICB1cGRhdGVWZXJzZSxcbiAgICB2ZXJzaW9uLFxuICAgIHZlcnNlc0ZvclJlZixcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOytDQUNBLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLGFBQUEsdUJBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBTyxXQUFBLDhCQUFBQyxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENBQUEsRUFBQUQsQ0FBQSxJQUFBUyxLQUFBLEVBQUFQLENBQUEsRUFBQWlCLFVBQUEsTUFBQUMsWUFBQSxNQUFBQyxRQUFBLFNBQUFwQixDQUFBLENBQUFELENBQUEsV0FBQWtCLE1BQUEsbUJBQUFqQixDQUFBLElBQUFpQixNQUFBLFlBQUFBLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxnQkFBQW9CLEtBQUFyQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxFQUFBRyxDQUFBLFFBQUFLLENBQUEsR0FBQVYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFNBQUEsWUFB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
599
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsInN0ZXAiLCJfZTIiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwidW5kZWZpbmVkIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiY29yZSIsIkNPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SIiwiRVJST1JfU1RBVEUiLCJJTklUSUFMSVpFRF9TVEFURSIsIklOVkFMSURfTUFOSUZFU1RfRVJST1IiLCJMT0FESU5HX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlNDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SIiwidXNlRGVlcENvbXBhcmVFZmZlY3QiLCJnZXRWZXJzZXMiLCJpc0VxdWFsIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJkZWxheSIsImZldGNoQmlibGVCb29rQ29yZSIsInZlcnNlT2JqZWN0c0hhdmVXb3JkcyIsImNsZWFudXBWZXJzZU9iamVjdHMiLCJnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUiLCJnZXRSZXNvdXJjZUxpbmsiLCJwYXJzZVJlc291cmNlTGluayIsIkJvb2tGZXRjaFBhcmFtcyIsIkJvb2tPYmplY3RzVHlwZSIsIlNjcmlwdHVyZVJlc291cmNlIiwiU2NyaXB0dXJlUmVmZXJlbmNlIiwiU2VydmVyQ29uZmlnIiwiVmVyc2VPYmplY3RzVHlwZSIsIlZlcnNlUmVmZXJlbmNlc1R5cGUiLCJwYXJzZVJlc291cmNlTWFuaWZlc3QiLCJnZXRCcmFuY2hOYW1lIiwicmVzb3VyY2VMaW5rIiwiYnJhbmNoIiwicGFydHMiLCJzcGxpdCIsIl9wYXJ0cyIsImdldFZlcnNlc0ZvclJlZlN0ciIsInJlZlN0ciIsImJvb2tPYmplY3RzIiwibGFuZ3VhZ2VJZCIsInZlcnNlcyIsImNoYXB0ZXJzIiwibWFwIiwidmVyc2UiLCJfdmVyc2UkdmVyc2VEYXRhIiwidmVyc2VEYXRhIiwidmVyc2VPYmplY3RzIiwidmVyc2VPYmplY3RzXyIsIm9jY3VycmVuY2VJbmplY3RWZXJzZU9iamVjdHMiLCJnZXRWZXJzZXNGb3JSZWYiLCJyZWZlcmVuY2UiLCJjb25jYXQiLCJjaGFwdGVyIiwidXNlU2NyaXB0dXJlIiwiX3JlZjIiLCJfcmVzb3VyY2VTdGF0dXMiLCJfZmV0Y2hQYXJhbXMkcmVmZXJlbmMiLCJjb25maWciLCJyZWFkeUZvckZldGNoIiwicmVzb3VyY2VfIiwicmVzb3VyY2UiLCJyZXNvdXJjZUxpbmtfIiwiX3JlZjIkd2hvbGVCb29rIiwid2hvbGVCb29rIiwiX3VzZVN0YXRlIiwiYmlibGVVc2ZtIiwiZmV0Y2hDb3VudCIsImZldGNoZWQiLCJmZXRjaGVkQm9vayIsImZldGNoUGFyYW1zIiwiaWdub3JlU2hhIiwiaW5pdGlhbGl6ZWQiLCJyZXNvdXJjZVN0YXRlIiwiY29udGVudCIsImZldGNoUmVzcG9uc2UiLCJmZXRjaGVkUmVzb3VyY2VzIiwibG9hZGluZ1Jlc291cmNlIiwibG9hZGluZ0NvbnRlbnQiLCJzaGEiLCJ1cmwiLCJ2ZXJzZXNGb3JSZWYiLCJfdXNlU3RhdGUyIiwic3RhdGUiLCJzZXRTdGF0ZV8iLCJfcmVmMyIsIm93bmVyIiwiX3JlZjMkYnJhbmNoIiwiX3JlZjMkcmVmIiwicmVmIiwiX3JlZjQiLCJib29rSWQiLCJwcm9qZWN0SWQiLCJfc3RhdGUiLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiaW5pdGlhdGVCb29rRmV0Y2giLCJjb25zb2xlIiwibG9nIiwicmVmXyIsInJlc291cmNlSWQiLCJib29rUmVmIiwibmV3RmV0Y2hQYXJhbXMiLCJmZXRjaEJvb2siLCJfeCIsIl9mZXRjaEJvb2siLCJfY2FsbGVlIiwiX2ZldGNoUGFyYW1zJHJlZmVyZW5jMiIsImZldGNoTGluayIsIl9yZXNvdXJjZVN0YXRlJHJlc291ciIsImZldGNoZWRTaGFNYXRjaGVzSWdub3JlU2hhIiwiX3Jlc291cmNlU3RhdGUkcmVzb3VyMiIsIl9mZXRjaENvdW50IiwicmVzcG9uc2UiLCJfYXJncyIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJ0MCIsInZhbGlkYXRlUmVzcG9uc2UiLCJfZmV0Y2hlZEJvb2skdG9Mb3dlckMiLCJpc1NhbWVCb29rIiwiZXhwZWN0ZWRCb29rSWQiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwiZmV0Y2hlZEJyYW5jaCIsImZldGNoaW5nQnJhbmNoIiwiYmlibGVVc2ZtXyIsImZldGNoVmVyc2VzRm9yUmVmIiwiX3BhcnNlUmVzb3VyY2VNYW5pZmVzIiwidGl0bGUiLCJ2ZXJzaW9uIiwibG9hZGluZyIsImNvbnRlbnROb3RGb3VuZEVycm9yIiwic2NyaXB0dXJlTm90TG9hZGVkRXJyb3IiLCJtYW5pZmVzdE5vdEZvdW5kRXJyb3IiLCJtYW5pZmVzdCIsImludmFsaWRNYW5pZmVzdEVycm9yIiwicmVzb3VyY2VTdGF0dXMiLCJpbnRpYWxpemVkIiwiX2dldFZlcnNlc0ZvclJlZiIsImNvbnRlbnRfIiwidXBkYXRlVmVyc2UiLCJib29rT2JqZWN0c18iLCJfYm9va09iamVjdHMiLCJuZXdWZXJzZXNGb3JSZWYiLCJfbmV3VmVyc2VzRm9yUmVmIiwiaW5pdGlhbFZlcnNlT2JqZWN0cyIsIl9pdGVyYXRvciIsIl9zdGVwIiwidm8iLCJ2ZXJzZVRleHQiLCJnZXRVc2ZtRm9yVmVyc2VDb250ZW50IiwiX0FsaWdubWVudEhlbHBlcnMkdXBkIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ0YXJnZXRWZXJzZU9iamVjdHMiLCJyZWxvYWRSZXNvdXJjZSIsIl9mZXRjaFBhcmFtcyIsIl9wYXJzZVJlc291cmNlTGluayIsIl9yZWYiLCJfcmVzb3VyY2VMaW5rIiwiY3VycmVudEJvb2tSZWYiLCJmZXRjaGVkQm9va1NhbWUiLCJfdmVyc2VzRm9yUmVmIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZVNjcmlwdHVyZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHtcbiAgdXNlRWZmZWN0LFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjb3JlIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQge1xuICBDT05URU5UX05PVF9GT1VORF9FUlJPUixcbiAgRVJST1JfU1RBVEUsXG4gIElOSVRJQUxJWkVEX1NUQVRFLFxuICBJTlZBTElEX01BTklGRVNUX0VSUk9SLFxuICBMT0FESU5HX1NUQVRFLFxuICBNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SLFxuICBTQ1JJUFRVUkVfTk9UX0xPQURFRF9FUlJPUixcbn0gZnJvbSAndHJhbnNsYXRpb24taGVscHMtcmNsJ1xuaW1wb3J0IHVzZURlZXBDb21wYXJlRWZmZWN0IGZyb20gJ3VzZS1kZWVwLWNvbXBhcmUtZWZmZWN0J1xuaW1wb3J0IHsgZ2V0VmVyc2VzIH0gZnJvbSAnYmlibGUtcmVmZXJlbmNlLXJhbmdlJ1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ0ByZWFjdC1ob29rei9kZWVwLWVxdWFsJ1xuaW1wb3J0IHsgQWxpZ25tZW50SGVscGVycywgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQge1xuICBkZWxheSxcbiAgZmV0Y2hCaWJsZUJvb2tDb3JlLFxuICB2ZXJzZU9iamVjdHNIYXZlV29yZHMsXG59IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHtcbiAgY2xlYW51cFZlcnNlT2JqZWN0cyxcbiAgZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lLFxuICBnZXRSZXNvdXJjZUxpbmssXG4gIHBhcnNlUmVzb3VyY2VMaW5rLFxufSBmcm9tICcuLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7XG4gIEJvb2tGZXRjaFBhcmFtcyxcbiAgQm9va09iamVjdHNUeXBlLFxuICBTY3JpcHR1cmVSZXNvdXJjZSxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlLFxuICBTZXJ2ZXJDb25maWcsXG4gIFZlcnNlT2JqZWN0c1R5cGUsXG4gIFZlcnNlUmVmZXJlbmNlc1R5cGUsXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgcGFyc2VSZXNvdXJjZU1hbmlmZXN0IH0gZnJvbSAnLi9wYXJzZVJlc291cmNlTWFuaWZlc3QnXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIC8qKiByZWZlcmVuY2UgZm9yIHNjcmlwdHVyZSAqKi9cbiAgcmVmZXJlbmNlOiBTY3JpcHR1cmVSZWZlcmVuY2U7XG4gIC8qKiB3aGVyZSB0byBnZXQgZGF0YSAqKi9cbiAgY29uZmlnOiBTZXJ2ZXJDb25maWc7XG4gIC8qKiBvcHRpb25hbCBkaXJlY3QgcGF0aCB0byBiaWJsZSByZXNvdXJjZSwgaW4gZm9ybWF0ICR7b3duZXJ9LyR7bGFuZ3VhZ2VJZH0vJHtwcm9qZWN0SWR9LyR7YnJhbmNofSAqKi9cbiAgcmVzb3VyY2VMaW5rOiBzdHJpbmd8dW5kZWZpbmVkO1xuICAvKiogb3B0aW9uYWwgcmVzb3VyY2Ugb2JqZWN0IHRvIHVzZSB0byBidWlsZCByZXNvdXJjZUxpbmsgKiovXG4gIHJlc291cmNlOiBTY3JpcHR1cmVSZXNvdXJjZXx1bmRlZmluZWQ7XG4gIC8qKiBpZiB0cnVlIHRoZW4gZmV0Y2ggdGhlIGVudGlyZSBib29rICovXG4gIHdob2xlQm9vazogYm9vbGVhbjtcbiAgLyoqIGlmIHRydWUgdGhlbiBzZXR0aW5ncyBhcmUgcmVhZHkgZm9yIGZldGNoaW5nIGRhdGEgKi9cbiAgcmVhZHlGb3JGZXRjaDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBleHRyYWN0IGJyYW5jaCBmcm9tIHJlc291cmNlIGxpbmtcbiAqIEBwYXJhbSByZXNvdXJjZUxpbmtcbiAqL1xuZnVuY3Rpb24gZ2V0QnJhbmNoTmFtZShyZXNvdXJjZUxpbms6IHN0cmluZykge1xuICBsZXQgYnJhbmNoID0gbnVsbFxuICByZXNvdXJjZUxpbmsgPSByZXNvdXJjZUxpbmsgfHwgJydcbiAgY29uc3QgcGFydHMgPSByZXNvdXJjZUxpbmsuc3BsaXQoJz9yZWY9JylcblxuICBpZiAocGFydHMubGVuZ3RoID4gMSkgeyAvLyBpZiByZWYgcGFyYW1ldGVyIGZvdW5kLCBnZXQgYnJhbmNoIG5hbWUgYWZ0ZXJcbiAgICBicmFuY2ggPSBwYXJ0cz8uWzFdXG4gIH0gZWxzZSB7IC8vIGZhbGwgYmFjayB0byB1c2luZyB1c2VSc3JjIGZvcm1hdCBzdWNoIGFzIFwidW5mb2xkaW5nV29yZC9lbi91c3QvbWFzdGVyXCJcbiAgICBjb25zdCBfcGFydHMgPSByZXNvdXJjZUxpbmsuc3BsaXQoJy8nKVxuICAgIGJyYW5jaCA9IF9wYXJ0cz8uWzNdXG4gIH1cbiAgcmV0dXJuIGJyYW5jaFxufVxuXG4vKipcbiAqIGdldCB0aGUgdmVyc2Ugb2JqZWN0cyBmb3IgdGhlIHJlZmVyZW5jZSBzdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSByZWZTdHIgLSBpbiBmb3JtYXQgPGNoYXB0ZXI+Ojx2ZXJzZT5cbiAqIEBwYXJhbSB7b2JqZWN0fSBib29rT2JqZWN0cyAtIHBhcnNlZCB1c2ZtIGZvciBib29rXG4gKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2VJZFxuICogQHJldHVybiB7YXJyYXl8bnVsbH0gLSBvZiB2ZXJzZU9iamVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGJvb2tPYmplY3RzLCBsYW5ndWFnZUlkKTogVmVyc2VSZWZlcmVuY2VzVHlwZSB7XG4gIGlmIChib29rT2JqZWN0cykge1xuICAgIGxldCB2ZXJzZXMgPSBnZXRWZXJzZXMoYm9va09iamVjdHMuY2hhcHRlcnMsIHJlZlN0cilcblxuICAgIGlmIChsYW5ndWFnZUlkID09PSAnZWwteC1rb2luZScgfHwgbGFuZ3VhZ2VJZCA9PT0gJ2hibycpIHtcbiAgICAgIHZlcnNlcyA9IHZlcnNlcy5tYXAodmVyc2UgPT4ge1xuICAgICAgICBpZiAoIHZlcnNlPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cykge1xuICAgICAgICAgIGxldCB2ZXJzZU9iamVjdHNfID0gY29yZS5vY2N1cnJlbmNlSW5qZWN0VmVyc2VPYmplY3RzKCB2ZXJzZS52ZXJzZURhdGEudmVyc2VPYmplY3RzKVxuICAgICAgICAgIHZlcnNlT2JqZWN0c18gPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0c18pXG4gICAgICAgICAgdmVyc2UudmVyc2VEYXRhLnZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0c19cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmVyc2VcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcnNlc1xuICB9XG4gIHJldHVybiBudWxsXG59XG5cbi8qKlxuICogZ2V0IHRoZSB2ZXJzZSBvYmplY3RzIGZvciB0aGUgcmVmZXJlbmNlIG9iamVjdFxuICogQHBhcmFtIHtvYmplY3R9IHJlZmVyZW5jZVxuICogQHBhcmFtIHtvYmplY3R9IGJvb2tPYmplY3RzIC0gcGFyc2VkIHVzZm0gZm9yIGJvb2tcbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZUlkXG4gKiBAcmV0dXJuIHthcnJheXxudWxsfSAtIG9mIHZlcnNlT2JqZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVyc2VzRm9yUmVmKHJlZmVyZW5jZSwgYm9va09iamVjdHMsIGxhbmd1YWdlSWQpOiBWZXJzZVJlZmVyZW5jZXNUeXBlIHtcbiAgY29uc3QgcmVmU3RyID0gYCR7cmVmZXJlbmNlLmNoYXB0ZXJ9OiR7cmVmZXJlbmNlLnZlcnNlfWBcbiAgcmV0dXJuIGdldFZlcnNlc0ZvclJlZlN0cihyZWZTdHIsIGJvb2tPYmplY3RzLCBsYW5ndWFnZUlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2NyaXB0dXJlKHsgLy8gaG9vayBmb3IgZmV0Y2hpbmcgc2NyaXB0dXJlXG4gIGNvbmZpZyxcbiAgcmVhZHlGb3JGZXRjaCxcbiAgcmVmZXJlbmNlLFxuICByZXNvdXJjZTogcmVzb3VyY2VfLFxuICByZXNvdXJjZUxpbms6IHJlc291cmNlTGlua18sXG4gIHdob2xlQm9vayA9IGZhbHNlLFxufSA6IFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBiaWJsZVVzZm06IHN0cmluZyxcbiAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgIGZldGNoQ291bnQ6IG51bWJlcixcbiAgICBmZXRjaGVkOiBib29sZWFuLFxuICAgIGZldGNoZWRCb29rOiBzdHJpbmcsXG4gICAgZmV0Y2hQYXJhbXM6IEJvb2tGZXRjaFBhcmFtc3xudWxsLFxuICAgIGlnbm9yZVNoYTogc3RyaW5nfG51bGwsXG4gICAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4sXG4gICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgYmlibGVVc2ZtOiBzdHJpbmcsXG4gICAgICBib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAgICAgY29udGVudDoge30sXG4gICAgICBmZXRjaFJlc3BvbnNlOiB7fSxcbiAgICAgIGZldGNoZWRSZXNvdXJjZXM6IHtcbiAgICAgICAgYmlibGVVc2ZtOiBzdHJpbmcsXG4gICAgICAgIGJvb2tPYmplY3RzOiBCb29rT2JqZWN0c1R5cGUsXG4gICAgICAgIGZldGNoQ291bnQ6IG51bWJlcixcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBzaGE6IHN0cmluZyxcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICB9LFxuICAgICAgbG9hZGluZ1Jlc291cmNlOiBib29sZWFuLFxuICAgICAgbG9hZGluZ0NvbnRlbnQ6IGJvb2xlYW4sXG4gICAgICByZXNvdXJjZToge1xuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIG1hbmlmZXN0OiB7fSxcbiAgICAgICAgcmVzb3VyY2VMaW5rOiB7fVxuICAgICAgfSxcbiAgICAgIHNoYTogc3RyaW5nLFxuICAgICAgdXJsOiBzdHJpbmcsXG4gICAgfSxcbiAgICB2ZXJzZXNGb3JSZWY6IGFueVtdLFxuICB9XG5cbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gdXNlU3RhdGUoe1xuICAgIGJpYmxlVXNmbTogbnVsbCxcbiAgICBib29rT2JqZWN0czogbnVsbCxcbiAgICBmZXRjaENvdW50OiAwLFxuICAgIGZldGNoZWQ6IGZhbHNlLFxuICAgIGZldGNoZWRCb29rOiAnJyxcbiAgICBmZXRjaFBhcmFtczogbnVsbCxcbiAgICBpZ25vcmVTaGE6IG51bGwsXG4gICAgaW5pdGlhbGl6ZWQ6IGZhbHNlLFxuICAgIHJlc291cmNlU3RhdGU6IHtcbiAgICAgIGJvb2tPYmplY3RzOiBudWxsLFxuICAgICAgYmlibGVVc2ZtOiBudWxsLFxuICAgICAgY29udGVudDogbnVsbCxcbiAgICAgIGZldGNoUmVzcG9uc2U6IG51bGwsXG4gICAgICBmZXRjaGVkUmVzb3VyY2VzOiBudWxsLFxuICAgICAgbG9hZGluZ1Jlc291cmNlOiBmYWxzZSxcbiAgICAgIGxvYWRpbmdDb250ZW50OiBmYWxzZSxcbiAgICAgIHJlc291cmNlOiBudWxsLFxuICAgICAgc2hhOiBudWxsLFxuICAgICAgdXJsOiBudWxsLFxuICAgIH0sXG4gICAgdmVyc2VzRm9yUmVmOiBbXSxcbiAgfSlcblxuICBjb25zdCB7XG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBicmFuY2ggPSAnbWFzdGVyJyxcbiAgICByZWYgPSBudWxsLFxuICB9ID0gcmVzb3VyY2VfIHx8IHt9XG5cbiAgY29uc3QgeyBwcm9qZWN0SWQ6IGJvb2tJZCB9ID0gcmVmZXJlbmNlIHx8IHt9XG5cbiAgY29uc3QgX3N0YXRlOiBTdGF0ZVR5cGVzID0gc3RhdGUgLy8gVHJpY2t5OiB3b3JrLWFyb3VuZCBmb3IgYnVnIHRoYXQgc3RhbmRhcmQgdHlwZXNjcmlwdCB0eXBlIGNhc3RpbmcgZG9lcyBub3Qgd29yayBpbiAudHN4IGZpbGVzXG4gIGNvbnN0IHtcbiAgICBiaWJsZVVzZm0sXG4gICAgYm9va09iamVjdHMsXG4gICAgZmV0Y2hDb3VudCxcbiAgICBmZXRjaGVkLFxuICAgIGZldGNoZWRCb29rLFxuICAgIGZldGNoUGFyYW1zLFxuICAgIGlnbm9yZVNoYSxcbiAgICBpbml0aWFsaXplZCxcbiAgICByZXNvdXJjZVN0YXRlLFxuICAgIHZlcnNlc0ZvclJlZixcbiAgfSA9IF9zdGF0ZVxuICBjb25zdCBmZXRjaGVkUmVzb3VyY2VzID0gcmVzb3VyY2VTdGF0ZT8uZmV0Y2hlZFJlc291cmNlc1xuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoeyAuLi5wcmV2U3RhdGUsIC4uLm5ld1N0YXRlIH0pKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocmVhZHlGb3JGZXRjaCkge1xuICAgICAgaW5pdGlhdGVCb29rRmV0Y2goKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGluaXRpYXRlQm9va0ZldGNoKCkge1xuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSAtIHJlYWR5Rm9yRmV0Y2ggdHJ1ZSwgaW5pdGlhbGl6aW5nYClcbiAgICAgIGxldCByZXNvdXJjZUxpbmsgPSByZWFkeUZvckZldGNoICYmIHJlc291cmNlTGlua19cblxuICAgICAgaWYgKCFyZXNvdXJjZUxpbmtfICYmIHJlc291cmNlXykge1xuICAgICAgICBjb25zdCByZWZfID0gcmVmIHx8IGJyYW5jaFxuXG4gICAgICAgIHJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayh7XG4gICAgICAgICAgb3duZXIsXG4gICAgICAgICAgbGFuZ3VhZ2VJZCxcbiAgICAgICAgICByZXNvdXJjZUlkOiBib29rSWQsXG4gICAgICAgICAgcmVmOiByZWZfLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBjb25zdCBib29rUmVmID0geyAuLi5yZWZlcmVuY2UgfVxuXG4gICAgICBpZiAod2hvbGVCb29rKSB7XG4gICAgICAgIGRlbGV0ZSBib29rUmVmLmNoYXB0ZXIgLy8gcmVtb3ZlIHRoZSBjaGFwdGVyIGFuZCB2ZXJzZSBzbyB0aGUgd2hvbGUgYm9vayBpcyBmZXRjaGVkXG4gICAgICAgIGRlbGV0ZSBib29rUmVmLnZlcnNlXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNvdXJjZUxpbmsgIT09IGZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmspIHtcbiAgICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSAtIGZvciAke3Jlc291cmNlXz8ucHJvamVjdElkfSByZXNvdXJjZUxpbmsgaXMgbm93ICR7cmVzb3VyY2VMaW5rfSBhbmQgcmVzb3VyY2VMaW5rXz0ke3Jlc291cmNlTGlua199YClcbiAgICAgIH0gZWxzZSBpZiAoYm9va1JlZiAhPT0gZmV0Y2hQYXJhbXM/LnJlZmVyZW5jZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlIC0gYm9vayBjaGFuZ2VkIHRvICR7cmVzb3VyY2VfPy5wcm9qZWN0SWR9IHJlc291cmNlTGluayBpcyBub3cgJHtyZXNvdXJjZUxpbmt9YClcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3RmV0Y2hQYXJhbXMgPSB7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgcmVmZXJlbmNlOiBib29rUmVmLFxuICAgICAgICByZXNvdXJjZUxpbmssXG4gICAgICB9XG5cbiAgICAgIGlmICghaXNFcXVhbChuZXdGZXRjaFBhcmFtcywgZmV0Y2hQYXJhbXMpKSB7XG4gICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICBmZXRjaFBhcmFtczogbmV3RmV0Y2hQYXJhbXMsXG4gICAgICAgICAgZmV0Y2hlZDogZmFsc2UsXG4gICAgICAgICAgaW5pdGlhbGl6ZWQ6IHRydWUsXG4gICAgICAgIH0pXG5cbiAgICAgICAgZmV0Y2hCb29rKG5ld0ZldGNoUGFyYW1zKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW1xuICAgIHJlYWR5Rm9yRmV0Y2gsXG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBib29rSWQsXG4gICAgYnJhbmNoLFxuICAgIHJlZixcbiAgXSlcblxuICAvKipcbiAgICogZG8gYSBmZXRjaCBvZiBtYW5pZmVzdCBhbmQgYm9vayBvZiB0aGUgYmlibGUgc3BlY2lmaWVkIGluIGZldGNoUGFyYW1zXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBmZXRjaFBhcmFtc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gaWdub3JlU2hhIC0gb3B0aW9uYWwgcHJldmlvdXMgc2hhIC0gaWdub3JlIHJlc3BvbnNlcyB0aGF0IGNhbWUgYmFjayBmb3IgdGhpcyBwcmV2aW91cyBib29rIGNvbW1pdFxuICAgKi9cbiAgYXN5bmMgZnVuY3Rpb24gZmV0Y2hCb29rKGZldGNoUGFyYW1zOiBCb29rRmV0Y2hQYXJhbXMsIGlnbm9yZVNoYSA9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZmV0Y2hMaW5rID0gYCR7ZmV0Y2hQYXJhbXM/LnJlc291cmNlTGlua30vJHtmZXRjaFBhcmFtcz8ucmVmZXJlbmNlPy5wcm9qZWN0SWR9YFxuXG4gICAgICBpZiAoaWdub3JlU2hhKSB7XG4gICAgICAgIGNvbnN0IGZldGNoZWRTaGFNYXRjaGVzSWdub3JlU2hhID0gaWdub3JlU2hhID09PSByZXNvdXJjZVN0YXRlPy5zaGEgLy8gd2Ugd2lsbCByZWxvYWQgaWYgaWdub3JlU2hhIGdpdmVuIGFuZCBpdCBtYXRjaGVzIGN1cnJlbnQgc2hhXG4gICAgICAgIGlmICgoZmV0Y2hMaW5rID09PSByZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ucmVzb3VyY2VMaW5rKSAmJiAhZmV0Y2hlZFNoYU1hdGNoZXNJZ25vcmVTaGEpIHsgLy8gc2VlIGlmIHdlIGFscmVhZHkgZmV0Y2hlZCB0aGlzXG4gICAgICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS5mZXRjaEJvb2soKSAtIEFscmVhZHkgZmV0Y2hpbmcgcmVzb3VyY2VMaW5rICR7cmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/LnJlc291cmNlTGlua30gYW5kIGlnbm9yZVNoYT0ke2lnbm9yZVNoYX1gLCBmZXRjaFBhcmFtcylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBfZmV0Y2hDb3VudCA9IGZldGNoQ291bnQgKyAxXG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gRkVUQ0hJTkcgYmlibGUgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVzb3VyY2VMaW5rIGlzIG5vdyAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9IGFuZCBpZ25vcmVTaGE9JHtpZ25vcmVTaGF9YCwgZmV0Y2hQYXJhbXMpXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGZldGNoQ291bnQ6IF9mZXRjaENvdW50LFxuICAgICAgICBmZXRjaGVkOiBmYWxzZSxcbiAgICAgICAgaWdub3JlU2hhLFxuICAgICAgICByZXNvdXJjZVN0YXRlOiB7IGxvYWRpbmdSZXNvdXJjZTogdHJ1ZSB9LFxuICAgICAgfSlcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaEJpYmxlQm9va0NvcmUoZmV0Y2hQYXJhbXMpXG5cbiAgICAgIGlmICghcmVzcG9uc2UgfHwgcmVzcG9uc2U/LmVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUud2FybigpIC1FcnJvciBGRVRDSElORyBiaWJsZSAke3Jlc291cmNlXz8ucHJvamVjdElkfWAsIHJlc3BvbnNlKVxuICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgICAgICAgbG9hZGluZ1Jlc291cmNlOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLmZldGNoQm9vaygpIC0gTE9BREVEIGJpYmxlIGJvb2sgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVzb3VyY2VMaW5rIGlzIG5vdyAke2ZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmt9fWAsIGZldGNoUGFyYW1zKVxuICAgICAgc2V0U3RhdGUoXG4gICAgICAgIHtcbiAgICAgICAgICByZXNvdXJjZVN0YXRlOiB7XG4gICAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgICAgZmV0Y2hlZFJlc291cmNlczoge1xuICAgICAgICAgICAgICAuLi5yZXNwb25zZSxcbiAgICAgICAgICAgICAgZmV0Y2hDb3VudDogX2ZldGNoQ291bnQsXG4gICAgICAgICAgICAgIHJlZmVyZW5jZTogZmV0Y2hQYXJhbXM/LnJlZmVyZW5jZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGB1c2VTY3JpcHR1cmUuZmV0Y2hCb29rKCkgLSBoYXJkIGVycm9yIGxvYWRpbmcgcmVzb3VyY2VgLCBmZXRjaFBhcmFtcywgZSApXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIHJlc291cmNlU3RhdGU6IHtcbiAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgIHJlc291cmNlOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgLSBmb3IgJHtyZXNvdXJjZV8/LnByb2plY3RJZH0gcmVhZHlGb3JGZXRjaCBpcyBub3cgJHtyZWFkeUZvckZldGNofWApXG4gIH0sIFtyZWFkeUZvckZldGNoXSlcblxuICAvKipcbiAgICogbWFrZSBzdXJlIGxhc3QgZmV0Y2ggcmVzcG9uc2UgaXMgZm9yIGN1cnJlbnQgYm9vay9icmFuY2hcbiAgICovXG4gIGZ1bmN0aW9uIHZhbGlkYXRlUmVzcG9uc2UoKSB7XG4gICAgbGV0IGlzU2FtZUJvb2sgPSBmYWxzZVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBleHBlY3RlZEJvb2tJZCA9IGJvb2tJZCB8fCAnenp6J1xuICAgIGNvbnN0IGZldGNoZWRCb29rID0gZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lKGZldGNoZWRSZXNvdXJjZXM/Lm5hbWUpXG4gICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSBDdXJyZW50IGJvb2tJZCBpcyAke2Jvb2tJZH0gYW5kIHNlZWluZyAke2ZldGNoZWRCb29rfSBpbiBVU0ZNYClcbiAgICBpc1NhbWVCb29rID0gZmV0Y2hlZEJvb2s/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKGJvb2tJZClcblxuICAgIGNvbnN0IHNoYSA9IGZldGNoZWRSZXNvdXJjZXM/LnNoYSB8fCBudWxsXG4gICAgY29uc3QgdXJsID0gZmV0Y2hlZFJlc291cmNlcz8udXJsIHx8IG51bGxcblxuICAgIGlmIChpc1NhbWVCb29rKSB7IC8vIGFsc28gbWFrZSBzdXJlIGl0IGlzIHRoZSBzYW1lIGJyYW5jaFxuICAgICAgY29uc3QgZmV0Y2hlZEJyYW5jaCA9IGdldEJyYW5jaE5hbWUodXJsKVxuICAgICAgY29uc3QgZmV0Y2hpbmdCcmFuY2ggPSBnZXRCcmFuY2hOYW1lKGZldGNoUGFyYW1zPy5yZXNvdXJjZUxpbmspXG5cbiAgICAgIGlmIChmZXRjaGVkQnJhbmNoICE9PSBmZXRjaGluZ0JyYW5jaCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnZhbGlkYXRlUmVzcG9uc2UoKSBpbnZhbGlkIGJyYW5jaCwgZXhwZWN0ZWQgYnJhbmNoIGlzICR7ZmV0Y2hpbmdCcmFuY2h9LCBidXQgZmV0Y2hlZEJyYW5jaCBpcyAke2ZldGNoZWRCcmFuY2h9YCwgeyBzaGEsIHVybCB9KVxuICAgICAgICBpc1NhbWVCb29rID0gZmFsc2VcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZS52YWxpZGF0ZVJlc3BvbnNlKCkgLSAgaW52YWxpZCBib29rLCBleHBlY3RlZEJvb2tJZCBpcyAke2V4cGVjdGVkQm9va0lkfSwgYnV0IHJlY2VpdmVkIGJvb2sgbmFtZSAke2ZldGNoZWRCb29rfWAsIHsgc2hhLCB1cmwgfSlcbiAgICB9XG5cbiAgICBpZiAoaWdub3JlU2hhID09PSBzaGEpIHtcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUudmFsaWRhdGVSZXNwb25zZSgpIC0gdGhlIHNoYSBpcyB0aGUgc2FtZSBhcyB0aGUgaWdub3JlIHNoYSAke3NoYX1gLCB7IHNoYSwgdXJsIH0pXG4gICAgICBpc1NhbWVCb29rID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoaXNTYW1lQm9vaykge1xuICAgICAgY29uc3QgYmlibGVVc2ZtXyA9IGZldGNoZWRSZXNvdXJjZXM/LmJpYmxlVXNmbVxuICAgICAgY29uc3QgYm9va09iamVjdHMgPSBmZXRjaGVkUmVzb3VyY2VzPy5ib29rT2JqZWN0c1xuICAgICAgY29uc3QgdmVyc2VzRm9yUmVmID0gZmV0Y2hWZXJzZXNGb3JSZWYoYm9va09iamVjdHMpXG5cbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUudmFsaWRhdGVSZXNwb25zZSgpIC0gY29ycmVjdCBib29rLCBleHBlY3RlZEJvb2tJZCBpcyAke2V4cGVjdGVkQm9va0lkfWAsIHsgc2hhLCB1cmwgfSlcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICBiaWJsZVVzZm06IGJpYmxlVXNmbV8sXG4gICAgICAgIGJvb2tPYmplY3RzLFxuICAgICAgICBmZXRjaGVkOiB0cnVlLFxuICAgICAgICBmZXRjaGVkQm9vazogZXhwZWN0ZWRCb29rSWQsXG4gICAgICAgIGlnbm9yZVNoYTogbnVsbCxcbiAgICAgICAgcmVzb3VyY2VTdGF0ZToge1xuICAgICAgICAgIGJvb2tPYmplY3RzLFxuICAgICAgICAgIGJpYmxlVXNmbTogYmlibGVVc2ZtXyxcbiAgICAgICAgICBsb2FkaW5nUmVzb3VyY2U6IGZhbHNlLFxuICAgICAgICAgIGxvYWRpbmdDb250ZW50OiBmYWxzZSxcbiAgICAgICAgICByZXNvdXJjZTogZmV0Y2hlZFJlc291cmNlcyxcbiAgICAgICAgICBzaGEsXG4gICAgICAgICAgdXJsLFxuICAgICAgICB9LFxuICAgICAgICB2ZXJzZXNGb3JSZWYsXG4gICAgICB9XG5cbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgIH1cbiAgfVxuXG4gIHVzZURlZXBDb21wYXJlRWZmZWN0KCgpID0+IHsgLy8gdmFsaWRhdGUgcmVzcG9uc2UgdG8gbWFrZSBzdXJlIGZyb20gbGF0ZXN0IHJlcXVlc3RcbiAgICBpZiAocmVhZHlGb3JGZXRjaCAmJiBmZXRjaGVkUmVzb3VyY2VzKSB7XG4gICAgICBpZiAoIWZldGNoZWQgJiYgZmV0Y2hlZFJlc291cmNlcz8uZmV0Y2hDb3VudCA9PT0gZmV0Y2hDb3VudCkge1xuICAgICAgICBkZWxheSg1MDApLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHZhbGlkYXRlUmVzcG9uc2UoKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3sgcmVhZHlGb3JGZXRjaCwgZmV0Y2hlZFJlc291cmNlcyB9XSlcblxuICBjb25zdCByZXNvdXJjZSA9IHJlc291cmNlU3RhdGU/LnJlc291cmNlXG4gIGNvbnN0IHsgdGl0bGUsIHZlcnNpb24gfSA9IHBhcnNlUmVzb3VyY2VNYW5pZmVzdChyZXNvdXJjZSlcbiAgY29uc3QgbG9hZGluZyA9IHJlc291cmNlU3RhdGU/LmxvYWRpbmdSZXNvdXJjZSB8fCByZXNvdXJjZVN0YXRlPy5sb2FkaW5nQ29udGVudCB8fCAhcmVhZHlGb3JGZXRjaFxuICBjb25zdCBjb250ZW50Tm90Rm91bmRFcnJvciA9ICFyZXNvdXJjZVN0YXRlPy5iaWJsZVVzZm1cbiAgY29uc3Qgc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IgPSAhcmVzb3VyY2VTdGF0ZT8uYm9va09iamVjdHNcbiAgY29uc3QgbWFuaWZlc3ROb3RGb3VuZEVycm9yID0gIXJlc291cmNlPy5tYW5pZmVzdFxuICBjb25zdCBpbnZhbGlkTWFuaWZlc3RFcnJvciA9ICF0aXRsZSB8fCAhdmVyc2lvbiB8fCAhbGFuZ3VhZ2VJZFxuICBjb25zdCBlcnJvciA9IHJlYWR5Rm9yRmV0Y2ggJiYgaW5pdGlhbGl6ZWQgJiYgIWxvYWRpbmcgJiZcbiAgICAoY29udGVudE5vdEZvdW5kRXJyb3IgfHwgc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IgfHwgbWFuaWZlc3ROb3RGb3VuZEVycm9yIHx8IGludmFsaWRNYW5pZmVzdEVycm9yKVxuICBjb25zdCByZXNvdXJjZVN0YXR1cyA9IHtcbiAgICBbTE9BRElOR19TVEFURV06IGxvYWRpbmcsXG4gICAgW0NPTlRFTlRfTk9UX0ZPVU5EX0VSUk9SXTogY29udGVudE5vdEZvdW5kRXJyb3IsXG4gICAgW1NDUklQVFVSRV9OT1RfTE9BREVEX0VSUk9SXTogc2NyaXB0dXJlTm90TG9hZGVkRXJyb3IsXG4gICAgW01BTklGRVNUX05PVF9MT0FERURfRVJST1JdOiBtYW5pZmVzdE5vdEZvdW5kRXJyb3IsXG4gICAgW0lOVkFMSURfTUFOSUZFU1RfRVJST1JdOiBpbnZhbGlkTWFuaWZlc3RFcnJvcixcbiAgICBbRVJST1JfU1RBVEVdOiBlcnJvcixcbiAgICBbSU5JVElBTElaRURfU1RBVEVdOiBpbml0aWFsaXplZCxcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyZWFkeUZvckZldGNoKSB7XG4gICAgICBpZiAoaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgc2V0U3RhdGUoeyBpbnRpYWxpemVkOiBmYWxzZSB9KVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIWluaXRpYWxpemVkKSB7XG4gICAgICBpZiAobG9hZGluZykgeyAvLyBvbmNlIGZpcnN0IGxvYWQgaGFzIGJlZ3VuLCB3ZSBhcmUgaW5pdGlhbGl6ZWRcbiAgICAgICAgc2V0U3RhdGUoeyBpbnRpYWxpemVkOiB0cnVlIH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbbG9hZGluZywgcmVhZHlGb3JGZXRjaF0pXG5cbiAgLyoqXG4gICAqIGdldCB2ZXJzZXMgZm9yIHJlZlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVmU3RyXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb250ZW50X1xuICAgKi9cbiAgZnVuY3Rpb24gX2dldFZlcnNlc0ZvclJlZihyZWZTdHIsIGNvbnRlbnRfID0gYm9va09iamVjdHMpOiBWZXJzZVJlZmVyZW5jZXNUeXBlIHtcbiAgICBpZiAoY29udGVudF8pIHtcbiAgICAgIHJldHVybiBnZXRWZXJzZXNGb3JSZWZTdHIocmVmU3RyLCBjb250ZW50XywgbGFuZ3VhZ2VJZClcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiB1cGRhdGUgdmVyc2UgZGF0YSBmb3IgY3VycmVudCBib29rXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFwdGVyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2ZXJzZVxuICAgKiBAcGFyYW0ge29iamVjdH0gdmVyc2VEYXRhXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVWZXJzZShjaGFwdGVyLCB2ZXJzZSwgdmVyc2VEYXRhKSB7XG4gICAgaWYgKGJvb2tPYmplY3RzKSB7XG4gICAgICBjb25zdCBib29rT2JqZWN0c18gPSB7IC4uLmJvb2tPYmplY3RzIH0gLy8gc2hhbGxvdyBjb3B5XG5cbiAgICAgIGlmIChib29rT2JqZWN0c18/LmNoYXB0ZXJzKSB7XG4gICAgICAgIGJvb2tPYmplY3RzXy5jaGFwdGVycyA9IHsgLi4uYm9va09iamVjdHNfLmNoYXB0ZXJzIH0gLy8gc2hhbGxvdyBjb3B5IGNoYXB0ZXJzXG5cbiAgICAgICAgaWYgKGJvb2tPYmplY3RzXy5jaGFwdGVyc1tjaGFwdGVyXSkge1xuICAgICAgICAgIGJvb2tPYmplY3RzXy5jaGFwdGVyc1tjaGFwdGVyXSA9IHsgLi4uYm9va09iamVjdHNfLmNoYXB0ZXJzW2NoYXB0ZXJdIH0gLy8gc2hhbGxvdyBjb3B5IHZlcnNlc1xuICAgICAgICAgIGJvb2tPYmplY3RzXy5jaGFwdGVyc1tjaGFwdGVyXVt2ZXJzZV0gPSB2ZXJzZURhdGFcbiAgICAgICAgICBzZXRTdGF0ZSh7IGJvb2tPYmplY3RzOiBib29rT2JqZWN0c18gfSlcbiAgICAgICAgICByZXR1cm4gYm9va09iamVjdHNfXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgdGhlIHZlcnNlcyBmb3IgY3VycmVudCByZWZlcmVuY2Ugb3IgcmVmZXJlbmNlIHJhbmdlXG4gICAqIEBwYXJhbSB7Qm9va09iamVjdHNUeXBlfSBfYm9va09iamVjdHNcbiAgICovXG4gIGZ1bmN0aW9uIGZldGNoVmVyc2VzRm9yUmVmKF9ib29rT2JqZWN0czogQm9va09iamVjdHNUeXBlID0gYm9va09iamVjdHMpOiBWZXJzZU9iamVjdHNUeXBlIHtcbiAgICBsZXQgbmV3VmVyc2VzRm9yUmVmID0gW11cblxuICAgIGlmIChfYm9va09iamVjdHMpIHtcbiAgICAgIG5ld1ZlcnNlc0ZvclJlZiA9IGdldFZlcnNlc0ZvclJlZihyZWZlcmVuY2UsIF9ib29rT2JqZWN0cywgbGFuZ3VhZ2VJZClcbiAgICAgIGlmIChyZWZlcmVuY2U/LnZlcnNlID09PSAnZnJvbnQnKSB7IC8vIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGZyb250IG1hdHRlclxuICAgICAgICBjb25zdCB2ZXJzZURhdGEgPSBuZXdWZXJzZXNGb3JSZWY/LlswXT8udmVyc2VEYXRhXG4gICAgICAgIGNvbnN0IGluaXRpYWxWZXJzZU9iamVjdHMgPSB2ZXJzZURhdGE/LnZlcnNlT2JqZWN0c1xuICAgICAgICBpZiAoaW5pdGlhbFZlcnNlT2JqZWN0cyAmJiAhdmVyc2VPYmplY3RzSGF2ZVdvcmRzKGluaXRpYWxWZXJzZU9iamVjdHMpKSB7XG4gICAgICAgICAgZm9yIChjb25zdCB2byBvZiBpbml0aWFsVmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICBpZiAodm9bJ3RhZyddID09PSAnZCcpIHsgLy8gY2hlY2sgZm9yIGRlc2NyaXB0aXZlIHRpdGxlXG4gICAgICAgICAgICAgIC8vIHJlcGFyc2Ugc28gZGVzY3JpcHRpdmUgdGl0bGUgdGV4dCBpcyBicm9rZW4gaW50byBhbGlnbi1hYmxlIHdvcmRzXG4gICAgICAgICAgICAgIGxldCB2ZXJzZVRleHQgPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmdldFVzZm1Gb3JWZXJzZUNvbnRlbnQoeyB2ZXJzZU9iamVjdHM6IGluaXRpYWxWZXJzZU9iamVjdHMgfSlcbiAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0KVxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0YXJnZXRWZXJzZU9iamVjdHMpXG4gICAgICAgICAgICAgIHZlcnNlRGF0YS52ZXJzZU9iamVjdHMgPSB0YXJnZXRWZXJzZU9iamVjdHMgLy8gcmVwbGFjZSB2ZXJzZU9iamVjdHMgd2l0aCBhbGlnbi1hYmxlIGNvbnRlbnRcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdWZXJzZXNGb3JSZWZcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIGZvcmNlIHJlbG9hZCBvZiByZXNvdXJjZVxuICAgKiBAcGFyYW0ge3N0cmluZ3x1bmRlZmluZWR9IGlnbm9yZVNoYSAtIG9wdGlvbmFsIHNoYSB0byBpZ25vcmVcbiAgICogQHBhcmFtIHtzdHJpbmd8dW5kZWZpbmVkfSByZWYgLSBvcHRpb25hbCByZWZlcmVuY2UgdG8gZmV0Y2hcbiAgICovXG4gIGZ1bmN0aW9uIHJlbG9hZFJlc291cmNlKGlnbm9yZVNoYSA9IG51bGwsIHJlZiA9IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZyhgdXNlU2NyaXB0dXJlLnJlbG9hZFJlc291cmNlKCkgaWdub3JlU2hhOiAke2lnbm9yZVNoYX1gIClcbiAgICBjb25zdCBfZmV0Y2hQYXJhbXM6IEJvb2tGZXRjaFBhcmFtcyA9IHsgLi4uZmV0Y2hQYXJhbXMgfVxuXG4gICAgaWYgKHJlZiAmJiBmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG93bmVyLFxuICAgICAgICBsYW5ndWFnZUlkLFxuICAgICAgICByZXNvdXJjZUlkLFxuICAgICAgICByZWY6IF9yZWYsXG4gICAgICB9ID0gcGFyc2VSZXNvdXJjZUxpbmsoZmV0Y2hQYXJhbXMucmVzb3VyY2VMaW5rKVxuXG4gICAgICBpZiAocmVmICE9PSBfcmVmKSB7IC8vIGlmIHJlZiBjaGFuZ2VkLCB1cGRhdGUgcmVzb3VyY2VsaW5rXG4gICAgICAgIGNvbnN0IF9yZXNvdXJjZUxpbmsgPSBnZXRSZXNvdXJjZUxpbmsoe1xuICAgICAgICAgIG93bmVyLFxuICAgICAgICAgIGxhbmd1YWdlSWQsXG4gICAgICAgICAgcmVzb3VyY2VJZCxcbiAgICAgICAgICByZWYsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUucmVsb2FkUmVzb3VyY2UoKSBvbGQgcmVmIGlzIGRpZmZlcmVudCAke19yZWZ9LCBzd2l0Y2hpbmcgdG8gbG9hZCByZWY6ICR7cmVmfSwgbmV3IHJlc291cmNlTGluazogJHtfcmVzb3VyY2VMaW5rfWAgKVxuICAgICAgICBfZmV0Y2hQYXJhbXMucmVzb3VyY2VMaW5rID0gX3Jlc291cmNlTGlua1xuICAgICAgfVxuICAgIH1cbiAgICBmZXRjaEJvb2soX2ZldGNoUGFyYW1zLCBpZ25vcmVTaGEpXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGN1cnJlbnRCb29rUmVmID0gZmV0Y2hQYXJhbXM/LnJlZmVyZW5jZT8ucHJvamVjdElkXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY3VycmVudEJvb2tSZWYpIHtcbiAgICAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgZmV0Y2hlZCBib29rIGNoYW5nZWQgdG8gJHtjdXJyZW50Qm9va1JlZn0sICR7cmVzb3VyY2VMaW5rX31gLCBmZXRjaFBhcmFtcyApXG4gICAgICBzZXRTdGF0ZSh7IGJvb2tPYmplY3RzOiBudWxsLCBiaWJsZVVzZm06IG51bGwgfSlcbiAgICB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICB9LCBbY3VycmVudEJvb2tSZWZdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSBib29rIHJlZiBjaGFuZ2VkIHRvICR7Ym9va0lkfSwgJHtyZXNvdXJjZUxpbmtffWApXG4gICAgLy8gQHRzLWlnbm9yZVxuICB9LCBbYm9va0lkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGV4cGVjdGVkQm9va0lkID0gYm9va0lkIHx8ICcnXG4gICAgY29uc3QgZmV0Y2hlZEJvb2tTYW1lID0gZmV0Y2hlZEJvb2sgJiYgKGZldGNoZWRCb29rID09PSBleHBlY3RlZEJvb2tJZClcbiAgICBsZXQgX3ZlcnNlc0ZvclJlZiA9IFtdXG5cbiAgICBpZiAoIWZldGNoZWRCb29rU2FtZSkge1xuICAgICAgLy8gaWYgKGV4cGVjdGVkQm9va0lkICYmIGZldGNoZWRCb29rKSB7XG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGB1c2VTY3JpcHR1cmUgZXhwZWN0ZWQgYm9vayAke2V4cGVjdGVkQm9va0lkfSBidXQgZmV0Y2hlZCBib29rIHdhcyAke2ZldGNoZWRCb29rfSAtIGNsZWFyaW5nYClcbiAgICAgIC8vIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgX2Jvb2tPYmplY3RzID0gZmV0Y2hlZEJvb2tTYW1lID8gYm9va09iamVjdHMgOiBudWxsXG4gICAgICBfdmVyc2VzRm9yUmVmID0gZmV0Y2hWZXJzZXNGb3JSZWYoX2Jvb2tPYmplY3RzKVxuICAgICAgLy8gY29uc29sZS5sb2coYHVzZVNjcmlwdHVyZSBfYm9va09iamVjdHMgaXMgJHshIV9ib29rT2JqZWN0c30gYW5kIGJvb2tzIGFyZSB0aGUgc2FtZSAke2ZldGNoZWRCb29rfWAsIHsgY29udGVudCwgZmV0Y2hQYXJhbXMgfSlcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoX3ZlcnNlc0ZvclJlZiwgdmVyc2VzRm9yUmVmKSkge1xuICAgICAgc2V0U3RhdGUoeyB2ZXJzZXNGb3JSZWY6IF92ZXJzZXNGb3JSZWYgfSlcbiAgICB9XG4gIH0sIFtyZWZlcmVuY2VdKVxuXG4gIHJldHVybiB7XG4gICAgYmlibGVVc2ZtLFxuICAgIGJvb2tPYmplY3RzLFxuICAgIGdldFZlcnNlc0ZvclJlZjogX2dldFZlcnNlc0ZvclJlZixcbiAgICByZWZlcmVuY2U6IGZldGNoUGFyYW1zPy5yZWZlcmVuY2UsXG4gICAgcmVsb2FkUmVzb3VyY2UsXG4gICAgcmVzb3VyY2VMaW5rOiBmZXRjaFBhcmFtcz8ucmVzb3VyY2VMaW5rLFxuICAgIHJlc291cmNlU3RhdGUsIC8vIHN0YXRlIGluZm9ybWF0aW9uIGZvciBsYXRlc3QgZmV0Y2hlZCByZXNvdXJjZVxuICAgIHJlc291cmNlU3RhdHVzLCAvLyBzdGF0dXMgZmxhZ3MgZm9yIGZldGNoZWQgcmVzb3VyY2VcbiAgICB0aXRsZSxcbiAgICB1cGRhdGVWZXJzZSxcbiAgICB2ZXJzaW9uLFxuICAgIHZlcnNlc0ZvclJlZixcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOytDQUNBLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxDQUFBLEdBQUFILENBQUEsQ0FBQUksY0FBQSxFQUFBQyxDQUFBLEdBQUFKLE1BQUEsQ0FBQUssY0FBQSxjQUFBUCxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxJQUFBRCxDQUFBLENBQUFELENBQUEsSUFBQUUsQ0FBQSxDQUFBTyxLQUFBLEtBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLGFBQUEsdUJBQUFDLENBQUEsR0FBQU4sQ0FBQSxDQUFBTyxXQUFBLDhCQUFBQyxPQUFBakIsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsTUFBQSxDQUFBSyxjQUFBLENBQUFQLENBQUEsRUFBQUQsQ0FBQSxJQUFBUyxLQUFBLEVBQUFQLENBQUEsRUFBQWlCLFVB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
@@ -1,2 +1,2 @@
1
1
 
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0dXJlUmVmZXJlbmNlIHtcbiAgcHJvamVjdElkOiBzdHJpbmc7XG4gIGNoYXB0ZXI6IG51bWJlcjtcbiAgdmVyc2U6IG51bWJlcnxzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyQ29uZmlnIHtcbiAgc2VydmVyOiBzdHJpbmc7XG4gIGNhY2hlOiB7XG4gICAgbWF4QWdlOiBudW1iZXI7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHR1cmVSZXNvdXJjZSB7XG4gIGxhbmd1YWdlSWQ6IHN0cmluZztcbiAgcHJvamVjdElkOiBzdHJpbmc7XG4gIG93bmVyOiBzdHJpbmc7XG4gIGJyYW5jaDogc3RyaW5nO1xuICByZWY6IHN0cmluZztcbn1cblxuLy8gdGhlIHR5cGVzIG9mIGNvbnRlbnQgaW4gdGhlIFVTRk1cbi8vICAgdGV4dCAtIHJhdyBub24td29yZCB0ZXh0IHRvIGJlIGRpc3BsYXllZCBzdWNoIGFzIHdoaXRlIHNwYWNlLCBudW1iZXJzIGFuZCBwdW5jdHVhdGlvblxuLy8gICB3b3JkIC0gYSBzaW5nbGUgYmlibGUgd29yZCB0byBiZSBkaXNwbGF5ZWRcbi8vICAgcGFyYWdyYXBoIC0gYSBwYXJhZ3JhcGggaW4gdGhlIGJpYmxlIC0gLy9UT0RPOiBjaGVjayBpZiB0aGlzIGlzIHRoaXMgZXZlbiB1c2VkIGFueW1vcmVcbi8vICAgbWlsZXN0b25lIC0gdGhpcyBpcyBhIFVTRk0gbWlsZXN0b25lIChpLmUuIGEgc3BhbiB0aGF0IGNvbnRhaW5zIFVTRk0gY29udGVudCBzdWNoIGFzIGFuIGFsaWdubWVudClcbmV4cG9ydCB0eXBlIFZlcnNlT2JqZWN0VGFnVHlwZSA9ICd0ZXh0J3wnd29yZCd8J3BhcmFncmFwaCd8J21pbGVzdG9uZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2VPYmplY3RUeXBlIHsgLy8gcGFyc2VkIHJlcHJlc2VudGF0aW9uIG9mIFVTRk0gY29udGVudFxuICBjaGlsZHJlbj86IFZlcnNlT2JqZWN0VHlwZVtdOyAvLyBsaXN0IG9mIHZlcnNlT2JqZWN0cyB0aGF0IGFyZSBjb250YWluZWQgd2l0aGluIGEgbWlsZXN0b25lLiBJbiB0aGUgY2FzZSBvZiBhbGlnbm1lbnQgKFVTRk0gdGFnIGB6YWxuYCkgdGhpcyB3b3VsZCBjb250YWluIHRoZSB0cmFuc2xhdGVkIHdvcmRzIGFsaWduZWQgdG8gY29udGVudCBmaWVsZClcbiAgY29udGVudD86IHN0cmluZzsgLy8gbm9uLWRpc3BsYXllZCBjb250ZW50IHR5cGljYWxseSBmb3IgbWlsZXN0b25lcyAoZS5nLiBpbiBhbGlnbm1lbnRzIGNvdWxkIGJlIHVzZWQgdG8gZGVub3RlIHRoZSBvcmlnaW5hbCBsYW5ndWFnZSB3b3JkIHRoZSBjaGlsZHJlbiBhcmUgYWxpZ25lZCB0bylcbiAgZW5kVGFnPyA6IHN0cmluZzsgLy8gaW4gdGhlIGNhc2Ugb2YgYSBtaWxlc3RvbmUsIHRoaXMgY29udGFpbnMgdGhlIHN0cmluZyB0aGF0IGluZGljYXRlcyB0aGUgZW5kIG9mIGFuIGFsaWdubWVudFxuICBsZW1tYT86IHN0cmluZzsgLy8gaW4gdGhlIGNhc2Ugb2Ygb3JpZ2luYWwgbGFuZ3VhZ2VzLCB0aGlzIGlzIHRoZSByb290IG9mIGEgd29yZFxuICBtb3JwaD86IHN0cmluZzsgLy8gaW4gdGhlIGNhc2Ugb2Ygb3JpZ2luYWwgbGFuZ3VhZ2VzLCB0aGlzIGlzIHRoZSBtb3JwaG9sb2d5IG9mIGEgd29yZCAoZS5nLiBcIkdyLEQsLCwsLCwsLCxcIilcbiAgbmV4dENoYXI/OiBcIlxcblwiLCAvLyB3aGl0ZSBzcGFjZSB0aGF0IGZvbGxvd3MgdGhpcyB2ZXJzZU9iamVjdCAtIHR5cGljYWxseSBvbmUgb3IgbW9yZSBzcGFjZXMvbmV3bGluZXNcbiAgb2NjdXJyZW5jZT86IG51bWJlcnxzdHJpbmc7IC8vIFRvdGFsIG9jY3VycmVuY2VzIGZvciB0aGUgd29yZCBpbiB0aGUgdmVyc2UuXG4gIG9jY3VycmVuY2VzPzogbnVtYmVyfHN0cmluZzsgLy8gU3BlY2lmaWMgb2NjdXJyZW5jZSBvZiB0aGUgd29yZCBpbiB0aGUgdmVyc2UuXG4gIHN0cm9uZz86IHN0cmluZzsgLy8gIFRoZSB0ZXh0IHRoYXQgdXNlZCBmb3IgcmVuZGVyaW5nIG9uIHRoZSBzY3JlZW4uIChlLmcuIFwiRzE4OTkwXCIpXG4gIHRhZz86IHN0cmluZzsgLy8gRGVub3RlcyB0aGUgVVNGTSB0YWcgb2YgdGhlIHZlcnNlT2JqZWN0IChzZWUgdGhlIFVTRk0gc3BlYyBmb3IgbW9yZSBpbmZvcm1hdGlvbilcbiAgdGV4dD86IHN0cmluZzsgLy8gIFRoZSB0ZXh0IHRoYXQgdXNlZCBmb3IgZGlzcGxheSBvbiB0aGUgc2NyZWVuLlxuICB0dz86IHN0cmluZzsgLy8gdHJhbnNsYXRpb25Xb3JkIGlkZW50aWZpZXIgc3VjaCBhcyBcInJjOi8vKi90dy9kaWN0L2JpYmxlL290aGVyL2JpYmxpY2FsdGltZXllYXJcIlxuICB0eXBlOiBWZXJzZU9iamVjdFRhZ1R5cGU7IC8vIERlbm90ZXMgdGhlIGNhdGVnb3J5IG9mIGNvbnRlbnQgdGhlIHZlcnNlT2JqZWN0IGhvbGRzXG59XG5cbmV4cG9ydCB0eXBlIFZlcnNlT2JqZWN0c1R5cGUgPSBWZXJzZU9iamVjdFR5cGVbXTtcblxuZXhwb3J0IGludGVyZmFjZSBWZXJzZXNUeXBlIHtcbiAgdmVyc2VPYmplY3RzPzogVmVyc2VPYmplY3RzVHlwZSxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJzZVJlZmVyZW5jZVR5cGUge1xuICB2ZXJzZURhdGE6IFZlcnNlc1R5cGVcbn1cblxuZXhwb3J0IHR5cGUgVmVyc2VSZWZlcmVuY2VzVHlwZSA9IFZlcnNlUmVmZXJlbmNlVHlwZVtdO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoYXB0ZXJPYmplY3RzVHlwZSB7XG4gIFt2ZXJzZTogc3RyaW5nXTogVmVyc2VzVHlwZXxzdHJpbmcgLy8gY291bGQgYmUgZWl0aGVyIHBhcnNlZCB2ZXJzZSBkYXRhIG9yIHJhdyB2ZXJzZSB0ZXh0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyVHlwZSB7IC8vIHBhcnNlZCBVU0ZNIGNvbnRlbnQgdGhhdCBjb21lcyBiZWZvcmUgdGhlIGZpcnN0IGNoYXB0ZXIgdGFnXG4gIGNvbnRlbnQ6IHN0cmluZywgLy8gdGV4dCBhZnRlciB0aGUgZmlyc3QgVVNGTSB0YWdcbiAgdGFnOiBzdHJpbmcgLy8gVVNGTSB0YWdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb29rT2JqZWN0c1R5cGUgeyAvLyBwYXJzZWQgVVNGTSBjb250ZW50IGZvciBhIGJvb2sgb2YgdGhlIGJpYmxlXG4gIGJvb2tJZD86IHN0cmluZzsgLy8gc2hvcnQgZm9ybSBpZGVudGlmaWVyIGZvciBib29rIG9mIHRoZSBiaWJsZSBzdWNoIGFzIGBtcmtgXG4gIGNoYXB0ZXJzOiB7IC8vIHRoZSBjaGFwdGVyIGNvbnRlbnQgZm91bmQgaW4gdGhlIFVTRk0gaW5kZXhlZCBieSB0aGUgY2hhcHRlciBpZGVudGlmaWVyXG4gICAgW2NoYXB0ZXI6IHN0cmluZ106IENoYXB0ZXJPYmplY3RzVHlwZVxuICB9LFxuICBoZWFkZXJzOiBIZWFkZXJUeXBlW10sXG4gIGxhbmd1YWdlSWQ/OiBzdHJpbmcgLy8gc2hvcnQgZm9ybSBpZGVudGlmaWVyIGZvciBsYW5ndWFnZSBvZiB0aGUgYm9vayBzdWNoIGFzIGBlbmBcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHR1cmVDb25maWcge1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZTtcbiAgcmVzb3VyY2U6IFNjcmlwdHVyZVJlc291cmNlO1xuICByZXNvdXJjZUxpbms6IHN0cmluZztcbiAgY29uZmlnOiBTZXJ2ZXJDb25maWc7XG4gIGRpc2FibGVXb3JkUG9wb3Zlcj86IGJvb2xlYW47XG4gIHJlbG9hZFJlc291cmNlOiBGdW5jdGlvbjtcbiAgdmVyc2VzRm9yUmVmOiB7IGNoYXB0ZXI6IHN0cmluZywgdmVyc2U6IHN0cmluZywgZGF0YTogb2JqZWN0IH1bXTtcbiAgZmV0Y2hSZXNwb25zZTogeyBkYXRhOiB7c2hhOiBzdHJpbmd9IH1cbn1cblxuIl0sIm1hcHBpbmdzIjoiIn0=
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0dXJlUmVmZXJlbmNlIHtcbiAgcHJvamVjdElkOiBzdHJpbmc7XG4gIGNoYXB0ZXI6IG51bWJlcjtcbiAgdmVyc2U6IG51bWJlcnxzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyQ29uZmlnIHtcbiAgc2VydmVyOiBzdHJpbmc7XG4gIGNhY2hlOiB7XG4gICAgbWF4QWdlOiBudW1iZXI7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHR1cmVSZXNvdXJjZSB7XG4gIGxhbmd1YWdlSWQ6IHN0cmluZztcbiAgcHJvamVjdElkOiBzdHJpbmc7XG4gIG93bmVyOiBzdHJpbmc7XG4gIGJyYW5jaDogc3RyaW5nO1xuICByZWY6IHN0cmluZztcbn1cblxuLy8gdGhlIHR5cGVzIG9mIGNvbnRlbnQgaW4gdGhlIFVTRk1cbi8vICAgdGV4dCAtIHJhdyBub24td29yZCB0ZXh0IHRvIGJlIGRpc3BsYXllZCBzdWNoIGFzIHdoaXRlIHNwYWNlLCBudW1iZXJzIGFuZCBwdW5jdHVhdGlvblxuLy8gICB3b3JkIC0gYSBzaW5nbGUgYmlibGUgd29yZCB0byBiZSBkaXNwbGF5ZWRcbi8vICAgcGFyYWdyYXBoIC0gYSBwYXJhZ3JhcGggaW4gdGhlIGJpYmxlIC0gLy9UT0RPOiBjaGVjayBpZiB0aGlzIGlzIHRoaXMgZXZlbiB1c2VkIGFueW1vcmVcbi8vICAgbWlsZXN0b25lIC0gdGhpcyBpcyBhIFVTRk0gbWlsZXN0b25lIChpLmUuIGEgc3BhbiB0aGF0IGNvbnRhaW5zIFVTRk0gY29udGVudCBzdWNoIGFzIGFuIGFsaWdubWVudClcbmV4cG9ydCB0eXBlIFZlcnNlT2JqZWN0VGFnVHlwZSA9ICd0ZXh0J3wnd29yZCd8J3BhcmFncmFwaCd8J21pbGVzdG9uZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyc2VPYmplY3RUeXBlIHsgLy8gcGFyc2VkIHJlcHJlc2VudGF0aW9uIG9mIFVTRk0gY29udGVudFxuICBjaGlsZHJlbj86IFZlcnNlT2JqZWN0VHlwZVtdOyAvLyBsaXN0IG9mIHZlcnNlT2JqZWN0cyB0aGF0IGFyZSBjb250YWluZWQgd2l0aGluIGEgbWlsZXN0b25lLiBJbiB0aGUgY2FzZSBvZiBhbGlnbm1lbnQgKFVTRk0gdGFnIGB6YWxuYCkgdGhpcyB3b3VsZCBjb250YWluIHRoZSB0cmFuc2xhdGVkIHdvcmRzIGFsaWduZWQgdG8gY29udGVudCBmaWVsZClcbiAgY29udGVudD86IHN0cmluZzsgLy8gbm9uLWRpc3BsYXllZCBjb250ZW50IHR5cGljYWxseSBmb3IgbWlsZXN0b25lcyAoZS5nLiBpbiBhbGlnbm1lbnRzIGNvdWxkIGJlIHVzZWQgdG8gZGVub3RlIHRoZSBvcmlnaW5hbCBsYW5ndWFnZSB3b3JkIHRoZSBjaGlsZHJlbiBhcmUgYWxpZ25lZCB0bylcbiAgZW5kVGFnPyA6IHN0cmluZzsgLy8gaW4gdGhlIGNhc2Ugb2YgYSBtaWxlc3RvbmUsIHRoaXMgY29udGFpbnMgdGhlIHN0cmluZyB0aGF0IGluZGljYXRlcyB0aGUgZW5kIG9mIGFuIGFsaWdubWVudFxuICBsZW1tYT86IHN0cmluZzsgLy8gaW4gdGhlIGNhc2Ugb2Ygb3JpZ2luYWwgbGFuZ3VhZ2VzLCB0aGlzIGlzIHRoZSByb290IG9mIGEgd29yZFxuICBtb3JwaD86IHN0cmluZzsgLy8gaW4gdGhlIGNhc2Ugb2Ygb3JpZ2luYWwgbGFuZ3VhZ2VzLCB0aGlzIGlzIHRoZSBtb3JwaG9sb2d5IG9mIGEgd29yZCAoZS5nLiBcIkdyLEQsLCwsLCwsLCxcIilcbiAgbmV4dENoYXI/OiBcIlxcblwiLCAvLyB3aGl0ZSBzcGFjZSB0aGF0IGZvbGxvd3MgdGhpcyB2ZXJzZU9iamVjdCAtIHR5cGljYWxseSBvbmUgb3IgbW9yZSBzcGFjZXMvbmV3bGluZXNcbiAgb2NjdXJyZW5jZT86IG51bWJlcnxzdHJpbmc7IC8vIFRvdGFsIG9jY3VycmVuY2VzIGZvciB0aGUgd29yZCBpbiB0aGUgdmVyc2UuXG4gIG9jY3VycmVuY2VzPzogbnVtYmVyfHN0cmluZzsgLy8gU3BlY2lmaWMgb2NjdXJyZW5jZSBvZiB0aGUgd29yZCBpbiB0aGUgdmVyc2UuXG4gIHN0cm9uZz86IHN0cmluZzsgLy8gIFRoZSB0ZXh0IHRoYXQgdXNlZCBmb3IgcmVuZGVyaW5nIG9uIHRoZSBzY3JlZW4uIChlLmcuIFwiRzE4OTkwXCIpXG4gIHRhZz86IHN0cmluZzsgLy8gRGVub3RlcyB0aGUgVVNGTSB0YWcgb2YgdGhlIHZlcnNlT2JqZWN0IChzZWUgdGhlIFVTRk0gc3BlYyBmb3IgbW9yZSBpbmZvcm1hdGlvbilcbiAgdGV4dD86IHN0cmluZzsgLy8gIFRoZSB0ZXh0IHRoYXQgdXNlZCBmb3IgZGlzcGxheSBvbiB0aGUgc2NyZWVuLlxuICB0dz86IHN0cmluZzsgLy8gdHJhbnNsYXRpb25Xb3JkIGlkZW50aWZpZXIgc3VjaCBhcyBcInJjOi8vKi90dy9kaWN0L2JpYmxlL290aGVyL2JpYmxpY2FsdGltZXllYXJcIlxuICB0eXBlOiBWZXJzZU9iamVjdFRhZ1R5cGU7IC8vIERlbm90ZXMgdGhlIGNhdGVnb3J5IG9mIGNvbnRlbnQgdGhlIHZlcnNlT2JqZWN0IGhvbGRzXG59XG5cbmV4cG9ydCB0eXBlIFZlcnNlT2JqZWN0c1R5cGUgPSBWZXJzZU9iamVjdFR5cGVbXTtcblxuZXhwb3J0IGludGVyZmFjZSBWZXJzZXNUeXBlIHtcbiAgdmVyc2VPYmplY3RzPzogVmVyc2VPYmplY3RzVHlwZSxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJzZVJlZmVyZW5jZVR5cGUge1xuICB2ZXJzZURhdGE6IFZlcnNlc1R5cGVcbn1cblxuZXhwb3J0IHR5cGUgVmVyc2VSZWZlcmVuY2VzVHlwZSA9IFZlcnNlUmVmZXJlbmNlVHlwZVtdO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoYXB0ZXJPYmplY3RzVHlwZSB7XG4gIFt2ZXJzZTogc3RyaW5nXTogVmVyc2VzVHlwZXxzdHJpbmcgLy8gY291bGQgYmUgZWl0aGVyIHBhcnNlZCB2ZXJzZSBkYXRhIG9yIHJhdyB2ZXJzZSB0ZXh0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyVHlwZSB7IC8vIHBhcnNlZCBVU0ZNIGNvbnRlbnQgdGhhdCBjb21lcyBiZWZvcmUgdGhlIGZpcnN0IGNoYXB0ZXIgdGFnXG4gIGNvbnRlbnQ6IHN0cmluZywgLy8gdGV4dCBhZnRlciB0aGUgZmlyc3QgVVNGTSB0YWdcbiAgdGFnOiBzdHJpbmcgLy8gVVNGTSB0YWdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb29rT2JqZWN0c1R5cGUgeyAvLyBwYXJzZWQgVVNGTSBjb250ZW50IGZvciBhIGJvb2sgb2YgdGhlIGJpYmxlXG4gIGJvb2tJZD86IHN0cmluZzsgLy8gc2hvcnQgZm9ybSBpZGVudGlmaWVyIGZvciBib29rIG9mIHRoZSBiaWJsZSBzdWNoIGFzIGBtcmtgXG4gIGNoYXB0ZXJzOiB7IC8vIHRoZSBjaGFwdGVyIGNvbnRlbnQgZm91bmQgaW4gdGhlIFVTRk0gaW5kZXhlZCBieSB0aGUgY2hhcHRlciBpZGVudGlmaWVyXG4gICAgW2NoYXB0ZXI6IHN0cmluZ106IENoYXB0ZXJPYmplY3RzVHlwZVxuICB9LFxuICBoZWFkZXJzOiBIZWFkZXJUeXBlW10sXG4gIGxhbmd1YWdlSWQ/OiBzdHJpbmcgLy8gc2hvcnQgZm9ybSBpZGVudGlmaWVyIGZvciBsYW5ndWFnZSBvZiB0aGUgYm9vayBzdWNoIGFzIGBlbmBcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHR1cmVDb25maWcge1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZTtcbiAgcmVzb3VyY2U6IFNjcmlwdHVyZVJlc291cmNlO1xuICByZXNvdXJjZUxpbms6IHN0cmluZztcbiAgY29uZmlnOiBTZXJ2ZXJDb25maWc7XG4gIGRpc2FibGVXb3JkUG9wb3Zlcj86IGJvb2xlYW47XG4gIHJlbG9hZFJlc291cmNlOiBGdW5jdGlvbjtcbiAgdmVyc2VzRm9yUmVmOiB7IGNoYXB0ZXI6IHN0cmluZywgdmVyc2U6IHN0cmluZywgZGF0YTogb2JqZWN0IH1bXTtcbiAgZmV0Y2hSZXNwb25zZTogeyBkYXRhOiB7c2hhOiBzdHJpbmd9IH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb29rRmV0Y2hQYXJhbXMge1xuICBjb25maWc6IHt9IHwgU2VydmVyQ29uZmlnO1xuICAvLyBUT0RPOiBkb2N1bWVudCBhbGwgdGhlIGZvcm1hdHMgc3VwcG9ydGVkIGluXG4gIC8vIHNlZSBwYXJzZVJlc291cmNlTGluayBpbiBzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCBmb3Igb3RoZXIgZm9ybWF0cyBzdXBwb3J0ZWQsXG4gIC8vIGJ1dCBtb3N0IGNvbW1vbiBpcyA8b3duZXI+LzxsYW5ndWFnZT4vPHJlc291cmNlSWQ+LzxicmFuY2g+Lzxib29rSWQ+IChlLmcuIHJ1X2dsL3J1L3Jsb2IvbWFzdGVyL3RpdClcbiAgcmVzb3VyY2VMaW5rPzogc3RyaW5nO1xuICAvLyBwYXJhbWV0ZXJzIHVzZWQgdG8gZ2VuZXJhdGUgcmVzb3VyY2VMaW5rIGlmIGl0J3Mgbm90IHByZXNlbnRcbiAgcmVzb3VyY2U/OiBTY3JpcHR1cmVSZXNvdXJjZTtcbiAgcmVmZXJlbmNlPzogU2NyaXB0dXJlUmVmZXJlbmNlO1xufVxuIl0sIm1hcHBpbmdzIjoiIn0=