verdaccio 7.0.0-beta.3 → 7.0.0-beta.4

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.
Files changed (42) hide show
  1. package/build/cjs/api/endpoint/api/publish.js +4 -4
  2. package/build/cjs/api/endpoint/api/user.js +3 -3
  3. package/build/cjs/api/index.js +3 -3
  4. package/build/cjs/lib/bootstrap.js +6 -6
  5. package/build/cjs/lib/cli/cli.js +1 -1
  6. package/build/cjs/lib/cli/commands/init.js +1 -1
  7. package/build/cjs/lib/cli/commands/version.js +1 -1
  8. package/build/cjs/lib/run-server.js +4 -4
  9. package/build/cjs/lib/storage.js +4 -2
  10. package/build/esm/api/endpoint/api/dist-tags.js +3 -3
  11. package/build/esm/api/endpoint/api/package.js +4 -4
  12. package/build/esm/api/endpoint/api/publish.js +9 -9
  13. package/build/esm/api/endpoint/api/search.js +3 -3
  14. package/build/esm/api/endpoint/api/star.js +3 -3
  15. package/build/esm/api/endpoint/api/stars.js +2 -2
  16. package/build/esm/api/endpoint/api/user.js +6 -6
  17. package/build/esm/api/endpoint/api/v1/profile.js +3 -3
  18. package/build/esm/api/endpoint/api/v1/search.js +3 -3
  19. package/build/esm/api/endpoint/api/v1/token.js +4 -4
  20. package/build/esm/api/endpoint/index.js +12 -12
  21. package/build/esm/api/index.js +12 -12
  22. package/build/esm/api/middleware.js +2 -2
  23. package/build/esm/api/web/api/index.js +5 -5
  24. package/build/esm/api/web/api/package.js +5 -5
  25. package/build/esm/api/web/api/search.js +3 -3
  26. package/build/esm/api/web/api/user.js +5 -5
  27. package/build/esm/api/web/index.js +2 -2
  28. package/build/esm/index.js +3 -3
  29. package/build/esm/lib/bootstrap.js +11 -12
  30. package/build/esm/lib/cli/cli.js +6 -6
  31. package/build/esm/lib/cli/commands/init.js +5 -5
  32. package/build/esm/lib/cli/commands/version.js +1 -1
  33. package/build/esm/lib/cli.js +3 -5
  34. package/build/esm/lib/local-storage.js +5 -5
  35. package/build/esm/lib/metadata-utils.js +2 -3
  36. package/build/esm/lib/run-server.js +8 -8
  37. package/build/esm/lib/storage-utils.js +4 -4
  38. package/build/esm/lib/storage.js +11 -10
  39. package/build/esm/lib/up-storage.js +4 -4
  40. package/build/esm/lib/uplink-util.js +2 -3
  41. package/build/esm/lib/utils.js +3 -3
  42. package/package.json +22 -26
@@ -88,7 +88,7 @@ function publish(router, auth, storage, config) {
88
88
  }
89
89
  *
90
90
  */
91
- router.put('/:package/:_rev?/:revision?', can('publish'), (0, _middleware.media)(_mime.default.getType('json')), _middleware.expectJson, publishPackage(storage, config, auth));
91
+ router.put('/:package{/:_rev}{/:revision}', can('publish'), (0, _middleware.media)(_mime.default.getType('json')), _middleware.expectJson, publishPackage(storage, config, auth));
92
92
 
93
93
  /**
94
94
  * Un-publishing an entire package.
@@ -98,13 +98,13 @@ function publish(router, auth, storage, config) {
98
98
  * npm http fetch GET 304 http://localhost:4873/@scope%2ftest1?write=true 1076ms (from cache)
99
99
  npm http fetch DELETE 201 http://localhost:4873/@scope%2ftest1/-rev/18-d8ebe3020bd4ac9c 22ms
100
100
  */
101
- router.delete('/:package/-rev/*', can('unpublish'), unPublishPackage(storage));
101
+ router.delete('/:package/-rev/*rev', can('unpublish'), unPublishPackage(storage));
102
102
 
103
103
  // removing a tarball
104
104
  router.delete('/:package/-/:filename/-rev/:revision', can('unpublish'), can('publish'), removeTarball(storage));
105
105
 
106
106
  // uploading package tarball
107
- router.put('/:package/-/:filename/*', can('publish'), (0, _middleware.media)(_constants.HEADERS.OCTET_STREAM), uploadPackageTarball(storage));
107
+ router.put('/:package/-/:filename/*rest', can('publish'), (0, _middleware.media)(_constants.HEADERS.OCTET_STREAM), uploadPackageTarball(storage));
108
108
 
109
109
  // only used for development
110
110
  if (config._debug) {
@@ -356,4 +356,4 @@ function uploadPackageTarball(storage) {
356
356
  });
357
357
  };
358
358
  }
359
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfbWltZSIsIl9wYXRoIiwiX2NvcmUiLCJfaG9va3MiLCJfbWlkZGxld2FyZSIsIl9jb25zdGFudHMiLCJfbG9nZ2VyIiwiX3N0b3JhZ2VVdGlscyIsIl91dGlscyIsIl9zdGFyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiZGVidWciLCJidWlsZERlYnVnIiwicHVibGlzaCIsInJvdXRlciIsImF1dGgiLCJzdG9yYWdlIiwiY29uZmlnIiwiY2FuIiwiYWxsb3ciLCJiZWZvcmVBbGwiLCJwYXJhbXMiLCJtZXNzYWdlIiwibG9nZ2VyIiwidHJhY2UiLCJhZnRlckFsbCIsInB1dCIsIm1lZGlhIiwibWltZSIsImdldFR5cGUiLCJleHBlY3RKc29uIiwicHVibGlzaFBhY2thZ2UiLCJkZWxldGUiLCJ1blB1Ymxpc2hQYWNrYWdlIiwicmVtb3ZlVGFyYmFsbCIsIkhFQURFUlMiLCJPQ1RFVF9TVFJFQU0iLCJ1cGxvYWRQYWNrYWdlVGFyYmFsbCIsImFkZFZlcnNpb24iLCJzdGFyQXBpIiwic3RhciIsInJlcSIsInJlcyIsIm5leHQiLCJwYWNrYWdlTmFtZSIsInBhY2thZ2UiLCJjcmVhdGVUYXJiYWxsIiwiZmlsZW5hbWUiLCJkYXRhIiwiY2IiLCJzdHJlYW0iLCJhZGRUYXJiYWxsIiwib24iLCJlcnIiLCJlbmQiLCJCdWZmZXIiLCJmcm9tIiwiZG9uZSIsImNyZWF0ZVZlcnNpb24iLCJ2ZXJzaW9uIiwibWV0YWRhdGEiLCJhZGRUYWdzIiwidGFncyIsIm1lcmdlVGFncyIsImFmdGVyQ2hhbmdlIiwiZXJyb3IiLCJva01lc3NhZ2UiLCJtZXRhZGF0YUNvcHkiLCJfYXR0YWNobWVudHMiLCJ2ZXJzaW9ucyIsIl8iLCJpc05pbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIkNSRUFURUQiLCJvayIsInN1Y2Nlc3MiLCJpc0ludmFsaWRCb2R5Rm9ybWF0IiwiaXNPYmplY3QiLCJoYXNEaWZmT25lS2V5IiwiaW5mbyIsIkVycm9yQ29kZSIsImdldEJhZFJlcXVlc3QiLCJBUElfRVJST1IiLCJVTlNVUE9SVEVEX1JFR0lTVFJZX0NBTEwiLCJDT05GTElDVCIsImZpcnN0QXR0YWNobWVudEtleSIsIk9iamVjdCIsImtleXMiLCJQYXRoIiwiYmFzZW5hbWUiLCJ2ZXJzaW9uVG9QdWJsaXNoIiwidmVyc2lvbk1ldGFkYXRhVG9QdWJsaXNoIiwicmVhZG1lIiwiU3RyaW5nIiwiRElTVF9UQUdTIiwibm90aWZ5IiwicmVtb3RlX3VzZXIiLCJuYW1lIiwiaXNQdWJsaXNoYWJsZVBhY2thZ2UiLCJib2R5IiwidXNlcnMiLCJ2YWxpZGF0aW9uVXRpbHMiLCJub3JtYWxpemVNZXRhZGF0YSIsIl9yZXYiLCJpc1JlbGF0ZWRUb0RlcHJlY2F0aW9uIiwiaXNFbXB0eSIsInJlbW90ZSIsImFsbG93X3VucHVibGlzaCIsImNoYW5nZVBhY2thZ2UiLCJyZXZpc2lvbiIsIkFQSV9NRVNTQUdFIiwiUEtHX0NIQU5HRUQiLCJhZGRQYWNrYWdlIiwiUEtHX0NSRUFURUQiLCJnZXRCYWREYXRhIiwiQkFEX1BBQ0tBR0VfREFUQSIsInJlbW92ZVBhY2thZ2UiLCJQS0dfUkVNT1ZFRCIsIlRBUkJBTExfUkVNT1ZFRCIsInRhZyIsIlBLR19QVUJMSVNIRUQiLCJwaXBlIiwiY29tcGxldGUiLCJhYm9ydCIsImxvY2FscyIsInJlcG9ydF9lcnJvciIsIlRBUkJBTExfVVBMT0FERUQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2FwaS9wdWJsaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB0eXBlIHsgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1pbWUgZnJvbSAnbWltZSc7XG5pbXBvcnQgUGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgdmFsaWRhdGlvblV0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IG5vdGlmeSB9IGZyb20gJ0B2ZXJkYWNjaW8vaG9va3MnO1xuaW1wb3J0IHsgYWxsb3csIGV4cGVjdEpzb24sIG1lZGlhIH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB0eXBlIHsgQ2FsbGJhY2ssIENvbmZpZywgTWVyZ2VUYWdzLCBQYWNrYWdlLCBWZXJzaW9uIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB0eXBlIEF1dGggZnJvbSAnLi4vLi4vLi4vbGliL2F1dGgnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBBUElfTUVTU0FHRSwgRElTVF9UQUdTLCBIRUFERVJTLCBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSBTdG9yYWdlIGZyb20gJy4uLy4uLy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCB7IGlzUHVibGlzaGFibGVQYWNrYWdlIH0gZnJvbSAnLi4vLi4vLi4vbGliL3N0b3JhZ2UtdXRpbHMnO1xuaW1wb3J0IHsgRXJyb3JDb2RlLCBoYXNEaWZmT25lS2V5LCBpc09iamVjdCwgaXNSZWxhdGVkVG9EZXByZWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kLCAkUmVzcG9uc2VFeHRlbmQgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgc3RhciBmcm9tICcuL3N0YXInO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2NpbzpwdWJsaXNoJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHB1Ymxpc2goXG4gIHJvdXRlcjogUm91dGVyLFxuICBhdXRoOiBBdXRoLFxuICBzdG9yYWdlOiBTdG9yYWdlLFxuICBjb25maWc6IENvbmZpZ1xuKTogdm9pZCB7XG4gIGNvbnN0IGNhbiA9IGFsbG93KGF1dGgsIHtcbiAgICBiZWZvcmVBbGw6IChwYXJhbXMsIG1lc3NhZ2UpID0+IGxvZ2dlci50cmFjZShwYXJhbXMsIG1lc3NhZ2UpLFxuICAgIGFmdGVyQWxsOiAocGFyYW1zLCBtZXNzYWdlKSA9PiBsb2dnZXIudHJhY2UocGFyYW1zLCBtZXNzYWdlKSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYSBwYWNrYWdlIC8gdXBkYXRlIHBhY2thZ2UgLyB1bi9zdGFydCBhIHBhY2thZ2VcbiAgICpcbiAgICogVGhlcmUgYXJlIG11bHRpcGxlcyBzY2VuYXJpb3MgaGVyZSB0byBiZSBjb25zaWRlcmVkOlxuICAgKlxuICAgKiAxLiBQdWJsaXNoIHNjZW5hcmlvXG4gICAqXG4gICAqIFB1Ymxpc2ggYSBwYWNrYWdlIGNvbnNpc3Qgb2YgYXQgbGVhc3QgMSBzdGVwIChQVVQpIHdpdGggYSBtZXRhZGF0YSBwYXlsb2FkLlxuICAgKiBXaGVuIGEgcGFja2FnZSBpcyBwdWJsaXNoZWQsIGFuIF9hdHRhY2htZW50IHByb3BlcnR5IGlzIHByZXNlbnQgdGhhdCBjb250YWlucyB0aGUgZGF0YVxuICAgKiBvZiB0aGUgdGFyYmFsbC5cbiAgICpcbiAgICogRXhhbXBsZSBmbG93IG9mIHB1Ymxpc2guXG4gICAqXG4gICAqICBucG0gaHR0cCBmZXRjaCBQVVQgMjAxIGh0dHA6Ly9sb2NhbGhvc3Q6NDg3My9Ac2NvcGUlMmZ0ZXN0MSA5NjI3bXNcbiAgICAgIG5wbSBpbmZvIGxpZmVjeWNsZSBAc2NvcGUvdGVzdDFAMS4wLjF+cHVibGlzaDogQHNjb3BlL3Rlc3QxQDEuMC4xXG4gICAgICBucG0gaW5mbyBsaWZlY3ljbGUgQHNjb3BlL3Rlc3QxQDEuMC4xfnBvc3RwdWJsaXNoOiBAc2NvcGUvdGVzdDFAMS4wLjFcbiAgICAgICsgQHNjb3BlL3Rlc3QxQDEuMC4xXG4gICAgICBucG0gdmVyYiBleGl0IFsgMCwgdHJ1ZSBdXG4gICAqXG4gICAqXG4gICAqIDIuIFVucHVibGlzaCBzY2VuYXJpb1xuICAgKlxuICAgKiBVbnB1Ymxpc2ggY29uc2lzdCBpbiAzIHN0ZXBzLlxuICAgKiAgMS4gVHJ5IHRvIGZldGNoICBtZXRhZGF0YSAtPiBpZiBpdCBmYWlscywgcmV0dXJuIDQwNFxuICAgKiAgMi4gQ29tcHV0ZSBtZXRhZGF0YSBsb2NhbGx5IChjbGllbnQgc2lkZSkgYW5kIHNlbmQgYSBtdXRhdGUgcGF5bG9hZCBleGNsdWRpbmcgdGhlIHZlcnNpb24gdG8gYmUgdW5wdWJsaXNoZWRcbiAgICogICAgZWc6IGlmIG1ldGFkYXRhIHJlZmxlY3RzIDEuMC4xLCAxLjAuMiBhbmQgMS4wLjMsIHRoZSBjb21wdXRlZCBtZXRhZGF0YSB3b24ndCBpbmNsdWRlIDEuMC4zLlxuICAgKiAgMy4gT25jZSB0aGUgc2Vjb25kIHN0ZXAgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGZpbmlzaGVkLCBkZWxldGUgdGhlIHRhcmJhbGwuXG4gICAqXG4gICAqICBBbGwgdGhlc2Ugc3RlcHMgYXJlIGNvbnNlY3V0aXZlIGFuZCByZXF1aXJlZCwgdGhlcmUgaXMgbm8gdHJhbnNhY2lvbnMgaGVyZSwgaWYgc3RlcCAzIGZhaWxzLCBtZXRhZGF0YSBtaWdodFxuICAgKiAgZ2V0IGNvcnJ1cHRlZC5cbiAgICpcbiAgICogIE5vdGUgdGhlIHVucHVibGlzaCBjYWxsIHdpbGwgc3VmZml4IGluIHRoZSB1cmwgYSAvLXJldi8xNC01ZDUwMGNmY2U5MmY5MGZkIHJldmlzaW9uIG51bWJlciwgdGhpcyBub3RcbiAgICogIHVzZWQgaW50ZXJuYWxseS5cbiAgICpcbiAgICpcbiAgICogRXhhbXBsZSBmbG93IG9mIHVucHVibGlzaC5cbiAgICpcbiAgICogbnBtIGh0dHAgZmV0Y2ggR0VUIDIwMCBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDE/d3JpdGU9dHJ1ZSAxNjgwbXNcbiAgICAgbnBtIGh0dHAgZmV0Y2ggUFVUIDIwMSBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDEvLXJldi8xNC01ZDUwMGNmY2U5MmY5MGZkIDk1NjYwNm1zIGF0dGVtcHQgIzJcbiAgICAgbnBtIGh0dHAgZmV0Y2ggR0VUIDIwMCBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDE/d3JpdGU9dHJ1ZSAxNjAxbXNcbiAgICAgbnBtIGh0dHAgZmV0Y2ggREVMRVRFIDIwMSBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDEvLS90ZXN0MS0xLjAuMy50Z3ovLXJldi8xNi1lMTFjOGRiMjgyYjJkOTkyIDE5bXNcbiAgICpcbiAgICogMy4gU3RhciBhIHBhY2thZ2VcbiAgICpcbiAgICogUGVybWlzc2lvbnM6IHN0YXJ0IGEgcGFja2FnZSBkZXBlbmRzIG9mIHRoZSBwdWJsaXNoIGFuZCB1bnB1Ymxpc2ggcGVybWlzc2lvbnMsIHRoZXJlIGlzIG5vIHNwZWNpZmljIGZsYWcgZm9yIHN0YXIgb3IgdW4gc3RhcnQuXG4gICAqIFRoZSBVUkwgZm9yIHN0YXIgaXMgc2ltaWxhciB0byB0aGUgdW5wdWJsaXNoIChjaGFuZ2UgcGFja2FnZSBmb3JtYXQpXG4gICAqXG4gICAqIG5wbSBoYXMgbm8gZW5wb2ludCBmb3Igc3RhciBhIHBhY2thZ2UsIHJhdGhlciBtdXRhdGUgdGhlIG1ldGFkYXRhIGFuZCBhY3RzIGFzLCB0aGUgZGlmZmVyZW5jZSBpcyB0aGVcbiAgICogdXNlcnMgcHJvcGVydHkgd2hpY2ggaXMgcGFydCBvZiB0aGUgcGF5bG9hZCBhbmQgdGhlIGJvZHkgb25seSBpbmNsdWRlc1xuICAgKlxuICAgKiB7XG5cdFx0ICBcIl9pZFwiOiBwa2dOYW1lLFxuXHQgIFx0XCJfcmV2XCI6IFwiMy1iMGNkYWVmYzliZGI3N2M4XCIsXG5cdFx0ICBcInVzZXJzXCI6IHtcblx0XHQgICAgW3VzZXJuYW1lXTogYm9vbGVhbiB2YWx1ZSAodHJ1ZSwgZmFsc2UpXG5cdFx0ICB9XG5cdH1cbiAgICpcbiAgICovXG4gIHJvdXRlci5wdXQoXG4gICAgJy86cGFja2FnZS86X3Jldj8vOnJldmlzaW9uPycsXG4gICAgY2FuKCdwdWJsaXNoJyksXG4gICAgbWVkaWEobWltZS5nZXRUeXBlKCdqc29uJykpLFxuICAgIGV4cGVjdEpzb24sXG4gICAgcHVibGlzaFBhY2thZ2Uoc3RvcmFnZSwgY29uZmlnLCBhdXRoKVxuICApO1xuXG4gIC8qKlxuICAgKiBVbi1wdWJsaXNoaW5nIGFuIGVudGlyZSBwYWNrYWdlLlxuICAgKlxuICAgKiBUaGlzIHNjZW5hcmlvIGhhcHBlbnMgd2hlbiB0aGUgZmlyc3QgY2FsbCBkZXRlY3QgdGhlcmUgaXMgb25seSBvbmUgdmVyc2lvbiByZW1haW5pbmdcbiAgICogaW4gdGhlIG1ldGFkYXRhLCB0aGVuIHRoZSBjbGllbnQgZGVjaWRlcyB0byBERUxFVEUgdGhlIHJlc291cmNlXG4gICAqIG5wbSBodHRwIGZldGNoIEdFVCAzMDQgaHR0cDovL2xvY2FsaG9zdDo0ODczL0BzY29wZSUyZnRlc3QxP3dyaXRlPXRydWUgMTA3Nm1zIChmcm9tIGNhY2hlKVxuICAgICBucG0gaHR0cCBmZXRjaCBERUxFVEUgMjAxIGh0dHA6Ly9sb2NhbGhvc3Q6NDg3My9Ac2NvcGUlMmZ0ZXN0MS8tcmV2LzE4LWQ4ZWJlMzAyMGJkNGFjOWMgMjJtc1xuICAgKi9cbiAgcm91dGVyLmRlbGV0ZSgnLzpwYWNrYWdlLy1yZXYvKicsIGNhbigndW5wdWJsaXNoJyksIHVuUHVibGlzaFBhY2thZ2Uoc3RvcmFnZSkpO1xuXG4gIC8vIHJlbW92aW5nIGEgdGFyYmFsbFxuICByb3V0ZXIuZGVsZXRlKFxuICAgICcvOnBhY2thZ2UvLS86ZmlsZW5hbWUvLXJldi86cmV2aXNpb24nLFxuICAgIGNhbigndW5wdWJsaXNoJyksXG4gICAgY2FuKCdwdWJsaXNoJyksXG4gICAgcmVtb3ZlVGFyYmFsbChzdG9yYWdlKVxuICApO1xuXG4gIC8vIHVwbG9hZGluZyBwYWNrYWdlIHRhcmJhbGxcbiAgcm91dGVyLnB1dChcbiAgICAnLzpwYWNrYWdlLy0vOmZpbGVuYW1lLyonLFxuICAgIGNhbigncHVibGlzaCcpLFxuICAgIG1lZGlhKEhFQURFUlMuT0NURVRfU1RSRUFNKSxcbiAgICB1cGxvYWRQYWNrYWdlVGFyYmFsbChzdG9yYWdlKVxuICApO1xuXG4gIC8vIG9ubHkgdXNlZCBmb3IgZGV2ZWxvcG1lbnRcbiAgaWYgKGNvbmZpZy5fZGVidWcpIHtcbiAgICAvLyBhZGRpbmcgYSB2ZXJzaW9uXG4gICAgcm91dGVyLnB1dChcbiAgICAgICcvOnBhY2thZ2UvOnZlcnNpb24vLXRhZy86dGFnJyxcbiAgICAgIGNhbigncHVibGlzaCcpLFxuICAgICAgbWVkaWEobWltZS5nZXRUeXBlKCdqc29uJykpLFxuICAgICAgZXhwZWN0SnNvbixcbiAgICAgIGFkZFZlcnNpb24oc3RvcmFnZSlcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogUHVibGlzaCBhIHBhY2thZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHB1Ymxpc2hQYWNrYWdlKHN0b3JhZ2U6IFN0b3JhZ2UsIGNvbmZpZzogQ29uZmlnLCBhdXRoOiBBdXRoKTogYW55IHtcbiAgY29uc3Qgc3RhckFwaSA9IHN0YXIoc3RvcmFnZSk7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMucGFja2FnZTtcbiAgICBkZWJ1ZygncHVibGlzaGluZyBvciB1cGRhdGluZyBhIG5ldyB2ZXJzaW9uIGZvciAlbycsIHBhY2thZ2VOYW1lKTtcbiAgICAvKipcbiAgICAgKiBXcml0ZSB0YXJiYWxsIG9mIHN0cmVhbSBkYXRhIGZyb20gcGFja2FnZSBjbGllbnRzLlxuICAgICAqL1xuICAgIGNvbnN0IGNyZWF0ZVRhcmJhbGwgPSBmdW5jdGlvbiAoZmlsZW5hbWU6IHN0cmluZywgZGF0YSwgY2I6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgICBjb25zdCBzdHJlYW0gPSBzdG9yYWdlLmFkZFRhcmJhbGwocGFja2FnZU5hbWUsIGZpbGVuYW1lKTtcbiAgICAgIHN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIGNiKGVycik7XG4gICAgICB9KTtcbiAgICAgIHN0cmVhbS5vbignc3VjY2VzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2IoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gdGhpcyBpcyBkdW1iIGFuZCBtZW1vcnktY29uc3VtaW5nLCBidXQgd2hhdCBjaG9pY2VzIGRvIHdlIGhhdmU/XG4gICAgICAvLyBmbG93OiB3ZSBuZWVkIGZpcnN0IHJlZmFjdG9yIHRoaXMgZmlsZSBiZWZvcmUgZGVjaWRlcyB3aGljaCB0eXBlIHVzZSBoZXJlXG4gICAgICBzdHJlYW0uZW5kKEJ1ZmZlci5mcm9tKGRhdGEuZGF0YSwgJ2Jhc2U2NCcpKTtcbiAgICAgIHN0cmVhbS5kb25lKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFkZCBuZXcgcGFja2FnZSB2ZXJzaW9uIGluIHN0b3JhZ2VcbiAgICAgKi9cbiAgICBjb25zdCBjcmVhdGVWZXJzaW9uID0gZnVuY3Rpb24gKHZlcnNpb246IHN0cmluZywgbWV0YWRhdGE6IFZlcnNpb24sIGNiOiBDYWxsYmFjayk6IHZvaWQge1xuICAgICAgc3RvcmFnZS5hZGRWZXJzaW9uKHBhY2thZ2VOYW1lLCB2ZXJzaW9uLCBtZXRhZGF0YSwgbnVsbCwgY2IpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBZGQgbmV3IHRhZ3MgaW4gc3RvcmFnZVxuICAgICAqL1xuICAgIGNvbnN0IGFkZFRhZ3MgPSBmdW5jdGlvbiAodGFnczogTWVyZ2VUYWdzLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIHN0b3JhZ2UubWVyZ2VUYWdzKHBhY2thZ2VOYW1lLCB0YWdzLCBjYik7XG4gICAgfTtcblxuICAgIGNvbnN0IGFmdGVyQ2hhbmdlID0gZnVuY3Rpb24gKGVycm9yLCBva01lc3NhZ2UsIG1ldGFkYXRhKTogdm9pZCB7XG4gICAgICBjb25zdCBtZXRhZGF0YUNvcHk6IFBhY2thZ2UgPSB7IC4uLm1ldGFkYXRhIH07XG5cbiAgICAgIGNvbnN0IHsgX2F0dGFjaG1lbnRzLCB2ZXJzaW9ucyB9ID0gbWV0YWRhdGFDb3B5O1xuXG4gICAgICAvLyBgbnBtIHN0YXJgIHdvdWxkbid0IGhhdmUgYXR0YWNobWVudHNcbiAgICAgIC8vIGFuZCBgbnBtIGRlcHJlY2F0ZWAgd291bGQgaGF2ZSBhdHRhY2htZW50cyBhcyBhIGVtcHR5IG9iamVjdCwgaS5lIHt9XG4gICAgICBpZiAoXy5pc05pbChfYXR0YWNobWVudHMpIHx8IEpTT04uc3RyaW5naWZ5KF9hdHRhY2htZW50cykgPT09ICd7fScpIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICBvazogb2tNZXNzYWdlLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBucG0tcmVnaXN0cnktY2xpZW50IDAuMysgZW1iZWRzIHRhcmJhbGwgaW50byB0aGUganNvbiB1cGxvYWRcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9pc2FhY3MvbnBtLXJlZ2lzdHJ5LWNsaWVudC9jb21taXQvZTlmYmViOGI2N2YyNDkzOTRmNzM1Yzc0ZWYxMWZlNDcyMGQ0NmNhMFxuICAgICAgLy8gaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL3JsaWR3a2Evc2lub3BpYS9pc3N1ZXMvMzEsIGRlYWxpbmcgd2l0aCBpdCBoZXJlOlxuICAgICAgY29uc3QgaXNJbnZhbGlkQm9keUZvcm1hdCA9XG4gICAgICAgIGlzT2JqZWN0KF9hdHRhY2htZW50cykgPT09IGZhbHNlIHx8XG4gICAgICAgIGhhc0RpZmZPbmVLZXkoX2F0dGFjaG1lbnRzKSB8fFxuICAgICAgICBpc09iamVjdCh2ZXJzaW9ucykgPT09IGZhbHNlIHx8XG4gICAgICAgIGhhc0RpZmZPbmVLZXkodmVyc2lvbnMpO1xuXG4gICAgICBpZiAoaXNJbnZhbGlkQm9keUZvcm1hdCkge1xuICAgICAgICAvLyBucG0gaXMgZG9pbmcgc29tZXRoaW5nIHN0cmFuZ2UgYWdhaW5cbiAgICAgICAgLy8gaWYgdGhpcyBoYXBwZW5zIGluIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCByZXBvcnQgaXQgYXMgYSBidWdcbiAgICAgICAgbG9nZ2VyLmluZm8oeyBwYWNrYWdlTmFtZSB9LCBgd3JvbmcgcGFja2FnZSBmb3JtYXQgb24gcHVibGlzaCBhIHBhY2thZ2UgQHtwYWNrYWdlTmFtZX1gKTtcbiAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldEJhZFJlcXVlc3QoQVBJX0VSUk9SLlVOU1VQT1JURURfUkVHSVNUUllfQ0FMTCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXJyb3IgJiYgZXJyb3Iuc3RhdHVzICE9PSBIVFRQX1NUQVRVUy5DT05GTElDVCkge1xuICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIC8vIGF0IHRoaXMgcG9pbnQgZG9jdW1lbnQgaXMgZWl0aGVyIGNyZWF0ZWQgb3IgZXhpc3RlZCBiZWZvcmVcbiAgICAgIGNvbnN0IFtmaXJzdEF0dGFjaG1lbnRLZXldID0gT2JqZWN0LmtleXMoX2F0dGFjaG1lbnRzKTtcblxuICAgICAgY3JlYXRlVGFyYmFsbChcbiAgICAgICAgUGF0aC5iYXNlbmFtZShmaXJzdEF0dGFjaG1lbnRLZXkpLFxuICAgICAgICBfYXR0YWNobWVudHNbZmlyc3RBdHRhY2htZW50S2V5XSxcbiAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdmVyc2lvblRvUHVibGlzaCA9IE9iamVjdC5rZXlzKHZlcnNpb25zKVswXTtcbiAgICAgICAgICBjb25zdCB2ZXJzaW9uTWV0YWRhdGFUb1B1Ymxpc2ggPSB2ZXJzaW9uc1t2ZXJzaW9uVG9QdWJsaXNoXTtcblxuICAgICAgICAgIHZlcnNpb25NZXRhZGF0YVRvUHVibGlzaC5yZWFkbWUgPVxuICAgICAgICAgICAgXy5pc05pbCh2ZXJzaW9uTWV0YWRhdGFUb1B1Ymxpc2gucmVhZG1lKSA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgPyBTdHJpbmcodmVyc2lvbk1ldGFkYXRhVG9QdWJsaXNoLnJlYWRtZSlcbiAgICAgICAgICAgICAgOiAnJztcblxuICAgICAgICAgIGNyZWF0ZVZlcnNpb24odmVyc2lvblRvUHVibGlzaCwgdmVyc2lvbk1ldGFkYXRhVG9QdWJsaXNoLCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFkZFRhZ3MobWV0YWRhdGFDb3B5W0RJU1RfVEFHU10sIGFzeW5jIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IG5vdGlmeShcbiAgICAgICAgICAgICAgICAgIG1ldGFkYXRhQ29weSxcbiAgICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICAgIHJlcS5yZW1vdGVfdXNlcixcbiAgICAgICAgICAgICAgICAgIGAke21ldGFkYXRhQ29weS5uYW1lfUAke3ZlcnNpb25Ub1B1Ymxpc2h9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKHsgZXJyb3IgfSwgJ25vdGlmeSBiYXRjaCBzZXJ2aWNlIGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLkNSRUFURUQpO1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dCh7IG9rOiBva01lc3NhZ2UsIHN1Y2Nlc3M6IHRydWUgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKGlzUHVibGlzaGFibGVQYWNrYWdlKHJlcS5ib2R5KSA9PT0gZmFsc2UgJiYgaXNPYmplY3QocmVxLmJvZHkudXNlcnMpKSB7XG4gICAgICByZXR1cm4gc3RhckFwaShyZXEsIHJlcywgbmV4dCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gdmFsaWRhdGlvblV0aWxzLm5vcm1hbGl6ZU1ldGFkYXRhKHJlcS5ib2R5LCBwYWNrYWdlTmFtZSk7XG4gICAgICAvLyBjaGVjayBfYXR0YWNobWVudHMgdG8gZGlzdGluZ3Vpc2ggcHVibGlzaCBhbmQgZGVwcmVjYXRlXG4gICAgICBpZiAoXG4gICAgICAgIHJlcS5wYXJhbXMuX3JldiB8fFxuICAgICAgICAoaXNSZWxhdGVkVG9EZXByZWNhdGlvbihyZXEuYm9keSkgJiYgXy5pc0VtcHR5KHJlcS5ib2R5Ll9hdHRhY2htZW50cykpXG4gICAgICApIHtcbiAgICAgICAgZGVidWcoJ3VwZGF0aW5nIGEgbmV3IHZlcnNpb24gZm9yICVvJywgcGFja2FnZU5hbWUpO1xuICAgICAgICAvLyB3ZSBjaGVjayB1bnB1Ymxpc2ggcGVybWlzc2lvbnMsIGFuIHVwZGF0ZSBpcyBiYXNpY2FsbHkgcmVtb3ZlIHZlcnNpb25zXG4gICAgICAgIGNvbnN0IHJlbW90ZSA9IHJlcS5yZW1vdGVfdXNlcjtcbiAgICAgICAgYXV0aC5hbGxvd191bnB1Ymxpc2goeyBwYWNrYWdlTmFtZSB9LCByZW1vdGUsIChlcnJvcikgPT4ge1xuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKHsgcGFja2FnZU5hbWUgfSwgYG5vdCBhbGxvd2VkIHRvIHVucHVibGlzaCBhIHZlcnNpb24gZm9yIEB7cGFja2FnZU5hbWV9YCk7XG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0b3JhZ2UuY2hhbmdlUGFja2FnZShwYWNrYWdlTmFtZSwgbWV0YWRhdGEsIHJlcS5wYXJhbXMucmV2aXNpb24sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgYWZ0ZXJDaGFuZ2UoZXJyb3IsIEFQSV9NRVNTQUdFLlBLR19DSEFOR0VELCBtZXRhZGF0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVidWcoJ2FkZGluZyBhIG5ldyB2ZXJzaW9uIGZvciAlbycsIHBhY2thZ2VOYW1lKTtcbiAgICAgICAgc3RvcmFnZS5hZGRQYWNrYWdlKHBhY2thZ2VOYW1lLCBtZXRhZGF0YSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgYWZ0ZXJDaGFuZ2UoZXJyb3IsIEFQSV9NRVNTQUdFLlBLR19DUkVBVEVELCBtZXRhZGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGRlYnVnKCdlcnJvciBvbiBwdWJsaXNoOiAlcycsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgbG9nZ2VyLmVycm9yKHsgcGFja2FnZU5hbWUgfSwgJ2Vycm9yIG9uIHB1Ymxpc2gsIGJhZCBwYWNrYWdlIGRhdGEgZm9yIEB7cGFja2FnZU5hbWV9Jyk7XG4gICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0QmFkRGF0YShBUElfRVJST1IuQkFEX1BBQ0tBR0VfREFUQSkpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiB1bi1wdWJsaXNoIGEgcGFja2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5QdWJsaXNoUGFja2FnZShzdG9yYWdlOiBTdG9yYWdlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMucGFja2FnZTtcbiAgICBkZWJ1ZygndW5wdWJsaXNoaW5nICVvJywgcGFja2FnZU5hbWUpO1xuICAgIHN0b3JhZ2UucmVtb3ZlUGFja2FnZShwYWNrYWdlTmFtZSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgfVxuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgIHJldHVybiBuZXh0KHsgb2s6IEFQSV9NRVNTQUdFLlBLR19SRU1PVkVEIH0pO1xuICAgIH0pO1xuICB9O1xufVxuXG4vKipcbiAqIERlbGV0ZSB0YXJiYWxsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUYXJiYWxsKHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gcmVxLnBhcmFtcy5wYWNrYWdlO1xuICAgIGNvbnN0IHsgZmlsZW5hbWUsIHJldmlzaW9uIH0gPSByZXEucGFyYW1zO1xuICAgIGRlYnVnKCdyZW1vdmluZyBhIHRhcmJhbGwgZm9yICVvLSVvLSVvJywgcGFja2FnZU5hbWUsIGZpbGVuYW1lLCByZXZpc2lvbik7XG4gICAgc3RvcmFnZS5yZW1vdmVUYXJiYWxsKHBhY2thZ2VOYW1lLCBmaWxlbmFtZSwgcmV2aXNpb24sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgIH1cbiAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICBkZWJ1Zygnc3VjY2VzcyByZW1vdmUgdGFyYmFsbCBmb3IgJW8tJW8tJW8nLCBwYWNrYWdlTmFtZSwgZmlsZW5hbWUsIHJldmlzaW9uKTtcbiAgICAgIHJldHVybiBuZXh0KHsgb2s6IEFQSV9NRVNTQUdFLlRBUkJBTExfUkVNT1ZFRCB9KTtcbiAgICB9KTtcbiAgfTtcbn1cbi8qKlxuICogQWRkcyBhIG5ldyB2ZXJzaW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRWZXJzaW9uKHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHsgdmVyc2lvbiwgdGFnIH0gPSByZXEucGFyYW1zO1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gcmVxLnBhcmFtcy5wYWNrYWdlO1xuXG4gICAgc3RvcmFnZS5hZGRWZXJzaW9uKHBhY2thZ2VOYW1lLCB2ZXJzaW9uLCByZXEuYm9keSwgdGFnLCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgIG9rOiBBUElfTUVTU0FHRS5QS0dfUFVCTElTSEVELFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogdXBsb2FkUGFja2FnZVRhcmJhbGxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwbG9hZFBhY2thZ2VUYXJiYWxsKHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gcmVxLnBhcmFtcy5wYWNrYWdlO1xuICAgIGNvbnN0IHN0cmVhbSA9IHN0b3JhZ2UuYWRkVGFyYmFsbChwYWNrYWdlTmFtZSwgcmVxLnBhcmFtcy5maWxlbmFtZSk7XG4gICAgcmVxLnBpcGUoc3RyZWFtKTtcblxuICAgIC8vIGNoZWNraW5nIGlmIGVuZCBldmVudCBjYW1lIGJlZm9yZSBjbG9zaW5nXG4gICAgbGV0IGNvbXBsZXRlID0gZmFsc2U7XG4gICAgcmVxLm9uKCdlbmQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb21wbGV0ZSA9IHRydWU7XG4gICAgICBzdHJlYW0uZG9uZSgpO1xuICAgIH0pO1xuXG4gICAgcmVxLm9uKCdjbG9zZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghY29tcGxldGUpIHtcbiAgICAgICAgc3RyZWFtLmFib3J0KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzdHJlYW0ub24oJ2Vycm9yJywgZnVuY3Rpb24gKGVycikge1xuICAgICAgcmV0dXJuIHJlcy5sb2NhbHMucmVwb3J0X2Vycm9yKGVycik7XG4gICAgfSk7XG5cbiAgICBzdHJlYW0ub24oJ3N1Y2Nlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLkNSRUFURUQpO1xuICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICBvazogQVBJX01FU1NBR0UuVEFSQkFMTF9VUExPQURFRCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLEtBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQU4sT0FBQTtBQUlBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLE9BQUEsR0FBQVIsT0FBQTtBQUVBLElBQUFTLGFBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLE1BQUEsR0FBQVYsT0FBQTtBQUVBLElBQUFXLEtBQUEsR0FBQVosc0JBQUEsQ0FBQUMsT0FBQTtBQUEwQixTQUFBRCx1QkFBQWEsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUUxQixNQUFNRyxLQUFLLEdBQUcsSUFBQUMsY0FBVSxFQUFDLG1CQUFtQixDQUFDO0FBRTlCLFNBQVNDLE9BQU9BLENBQzdCQyxNQUFjLEVBQ2RDLElBQVUsRUFDVkMsT0FBZ0IsRUFDaEJDLE1BQWMsRUFDUjtFQUNOLE1BQU1DLEdBQUcsR0FBRyxJQUFBQyxpQkFBSyxFQUFDSixJQUFJLEVBQUU7SUFDdEJLLFNBQVMsRUFBRUEsQ0FBQ0MsTUFBTSxFQUFFQyxPQUFPLEtBQUtDLGNBQU0sQ0FBQ0MsS0FBSyxDQUFDSCxNQUFNLEVBQUVDLE9BQU8sQ0FBQztJQUM3REcsUUFBUSxFQUFFQSxDQUFDSixNQUFNLEVBQUVDLE9BQU8sS0FBS0MsY0FBTSxDQUFDQyxLQUFLLENBQUNILE1BQU0sRUFBRUMsT0FBTztFQUM3RCxDQUFDLENBQUM7O0VBRUY7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFUixNQUFNLENBQUNZLEdBQUcsQ0FDUiw2QkFBNkIsRUFDN0JSLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFDZCxJQUFBUyxpQkFBSyxFQUFDQyxhQUFJLENBQUNDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUMzQkMsc0JBQVUsRUFDVkMsY0FBYyxDQUFDZixPQUFPLEVBQUVDLE1BQU0sRUFBRUYsSUFBSSxDQUN0QyxDQUFDOztFQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRUQsTUFBTSxDQUFDa0IsTUFBTSxDQUFDLGtCQUFrQixFQUFFZCxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUVlLGdCQUFnQixDQUFDakIsT0FBTyxDQUFDLENBQUM7O0VBRTlFO0VBQ0FGLE1BQU0sQ0FBQ2tCLE1BQU0sQ0FDWCxzQ0FBc0MsRUFDdENkLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFDaEJBLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFDZGdCLGFBQWEsQ0FBQ2xCLE9BQU8sQ0FDdkIsQ0FBQzs7RUFFRDtFQUNBRixNQUFNLENBQUNZLEdBQUcsQ0FDUix5QkFBeUIsRUFDekJSLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFDZCxJQUFBUyxpQkFBSyxFQUFDUSxrQkFBTyxDQUFDQyxZQUFZLENBQUMsRUFDM0JDLG9CQUFvQixDQUFDckIsT0FBTyxDQUM5QixDQUFDOztFQUVEO0VBQ0EsSUFBSUMsTUFBTSxDQUFDdkIsTUFBTSxFQUFFO0lBQ2pCO0lBQ0FvQixNQUFNLENBQUNZLEdBQUcsQ0FDUiw4QkFBOEIsRUFDOUJSLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFDZCxJQUFBUyxpQkFBSyxFQUFDQyxhQUFJLENBQUNDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUMzQkMsc0JBQVUsRUFDVlEsVUFBVSxDQUFDdEIsT0FBTyxDQUNwQixDQUFDO0VBQ0g7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxTQUFTZSxjQUFjQSxDQUFDZixPQUFnQixFQUFFQyxNQUFjLEVBQUVGLElBQVUsRUFBTztFQUNoRixNQUFNd0IsT0FBTyxHQUFHLElBQUFDLGFBQUksRUFBQ3hCLE9BQU8sQ0FBQztFQUM3QixPQUFPLFVBQVV5QixHQUFtQixFQUFFQyxHQUFvQixFQUFFQyxJQUFzQixFQUFRO0lBQ3hGLE1BQU1DLFdBQVcsR0FBR0gsR0FBRyxDQUFDcEIsTUFBTSxDQUFDd0IsT0FBTztJQUN0Q2xDLEtBQUssQ0FBQyw2Q0FBNkMsRUFBRWlDLFdBQVcsQ0FBQztJQUNqRTtBQUNKO0FBQ0E7SUFDSSxNQUFNRSxhQUFhLEdBQUcsU0FBQUEsQ0FBVUMsUUFBZ0IsRUFBRUMsSUFBSSxFQUFFQyxFQUFZLEVBQVE7TUFDMUUsTUFBTUMsTUFBTSxHQUFHbEMsT0FBTyxDQUFDbUMsVUFBVSxDQUFDUCxXQUFXLEVBQUVHLFFBQVEsQ0FBQztNQUN4REcsTUFBTSxDQUFDRSxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVVDLEdBQUcsRUFBRTtRQUNoQ0osRUFBRSxDQUFDSSxHQUFHLENBQUM7TUFDVCxDQUFDLENBQUM7TUFDRkgsTUFBTSxDQUFDRSxFQUFFLENBQUMsU0FBUyxFQUFFLFlBQVk7UUFDL0JILEVBQUUsQ0FBQyxDQUFDO01BQ04sQ0FBQyxDQUFDO01BQ0Y7TUFDQTtNQUNBQyxNQUFNLENBQUNJLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDQyxJQUFJLENBQUNSLElBQUksQ0FBQ0EsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO01BQzVDRSxNQUFNLENBQUNPLElBQUksQ0FBQyxDQUFDO0lBQ2YsQ0FBQzs7SUFFRDtBQUNKO0FBQ0E7SUFDSSxNQUFNQyxhQUFhLEdBQUcsU0FBQUEsQ0FBVUMsT0FBZSxFQUFFQyxRQUFpQixFQUFFWCxFQUFZLEVBQVE7TUFDdEZqQyxPQUFPLENBQUNzQixVQUFVLENBQUNNLFdBQVcsRUFBRWUsT0FBTyxFQUFFQyxRQUFRLEVBQUUsSUFBSSxFQUFFWCxFQUFFLENBQUM7SUFDOUQsQ0FBQzs7SUFFRDtBQUNKO0FBQ0E7SUFDSSxNQUFNWSxPQUFPLEdBQUcsU0FBQUEsQ0FBVUMsSUFBZSxFQUFFYixFQUFZLEVBQVE7TUFDN0RqQyxPQUFPLENBQUMrQyxTQUFTLENBQUNuQixXQUFXLEVBQUVrQixJQUFJLEVBQUViLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsTUFBTWUsV0FBVyxHQUFHLFNBQUFBLENBQVVDLEtBQUssRUFBRUMsU0FBUyxFQUFFTixRQUFRLEVBQVE7TUFDOUQsTUFBTU8sWUFBcUIsR0FBRztRQUFFLEdBQUdQO01BQVMsQ0FBQztNQUU3QyxNQUFNO1FBQUVRLFlBQVk7UUFBRUM7TUFBUyxDQUFDLEdBQUdGLFlBQVk7O01BRS9DO01BQ0E7TUFDQSxJQUFJRyxlQUFDLENBQUNDLEtBQUssQ0FBQ0gsWUFBWSxDQUFDLElBQUlJLElBQUksQ0FBQ0MsU0FBUyxDQUFDTCxZQUFZLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDbEUsSUFBSUgsS0FBSyxFQUFFO1VBQ1QsT0FBT3RCLElBQUksQ0FBQ3NCLEtBQUssQ0FBQztRQUNwQjtRQUNBdkIsR0FBRyxDQUFDZ0MsTUFBTSxDQUFDQyxzQkFBVyxDQUFDQyxPQUFPLENBQUM7UUFDL0IsT0FBT2pDLElBQUksQ0FBQztVQUNWa0MsRUFBRSxFQUFFWCxTQUFTO1VBQ2JZLE9BQU8sRUFBRTtRQUNYLENBQUMsQ0FBQztNQUNKOztNQUVBO01BQ0E7TUFDQTtNQUNBLE1BQU1DLG1CQUFtQixHQUN2QixJQUFBQyxlQUFRLEVBQUNaLFlBQVksQ0FBQyxLQUFLLEtBQUssSUFDaEMsSUFBQWEsb0JBQWEsRUFBQ2IsWUFBWSxDQUFDLElBQzNCLElBQUFZLGVBQVEsRUFBQ1gsUUFBUSxDQUFDLEtBQUssS0FBSyxJQUM1QixJQUFBWSxvQkFBYSxFQUFDWixRQUFRLENBQUM7TUFFekIsSUFBSVUsbUJBQW1CLEVBQUU7UUFDdkI7UUFDQTtRQUNBeEQsY0FBTSxDQUFDMkQsSUFBSSxDQUFDO1VBQUV0QztRQUFZLENBQUMsRUFBRSwwREFBMEQsQ0FBQztRQUN4RixPQUFPRCxJQUFJLENBQUN3QyxnQkFBUyxDQUFDQyxhQUFhLENBQUNDLG9CQUFTLENBQUNDLHdCQUF3QixDQUFDLENBQUM7TUFDMUU7TUFFQSxJQUFJckIsS0FBSyxJQUFJQSxLQUFLLENBQUNTLE1BQU0sS0FBS0Msc0JBQVcsQ0FBQ1ksUUFBUSxFQUFFO1FBQ2xELE9BQU81QyxJQUFJLENBQUNzQixLQUFLLENBQUM7TUFDcEI7O01BRUE7TUFDQSxNQUFNLENBQUN1QixrQkFBa0IsQ0FBQyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQ3RCLFlBQVksQ0FBQztNQUV0RHRCLGFBQWEsQ0FDWDZDLGFBQUksQ0FBQ0MsUUFBUSxDQUFDSixrQkFBa0IsQ0FBQyxFQUNqQ3BCLFlBQVksQ0FBQ29CLGtCQUFrQixDQUFDLEVBQ2hDLFVBQVV2QixLQUFLLEVBQUU7UUFDZixJQUFJQSxLQUFLLEVBQUU7VUFDVCxPQUFPdEIsSUFBSSxDQUFDc0IsS0FBSyxDQUFDO1FBQ3BCO1FBRUEsTUFBTTRCLGdCQUFnQixHQUFHSixNQUFNLENBQUNDLElBQUksQ0FBQ3JCLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxNQUFNeUIsd0JBQXdCLEdBQUd6QixRQUFRLENBQUN3QixnQkFBZ0IsQ0FBQztRQUUzREMsd0JBQXdCLENBQUNDLE1BQU0sR0FDN0J6QixlQUFDLENBQUNDLEtBQUssQ0FBQ3VCLHdCQUF3QixDQUFDQyxNQUFNLENBQUMsS0FBSyxLQUFLLEdBQzlDQyxNQUFNLENBQUNGLHdCQUF3QixDQUFDQyxNQUFNLENBQUMsR0FDdkMsRUFBRTtRQUVSckMsYUFBYSxDQUFDbUMsZ0JBQWdCLEVBQUVDLHdCQUF3QixFQUFFLFVBQVU3QixLQUFLLEVBQUU7VUFDekUsSUFBSUEsS0FBSyxFQUFFO1lBQ1QsT0FBT3RCLElBQUksQ0FBQ3NCLEtBQUssQ0FBQztVQUNwQjtVQUVBSixPQUFPLENBQUNNLFlBQVksQ0FBQzhCLG9CQUFTLENBQUMsRUFBRSxnQkFBZ0JoQyxLQUFLLEVBQUU7WUFDdEQsSUFBSUEsS0FBSyxFQUFFO2NBQ1QsT0FBT3RCLElBQUksQ0FBQ3NCLEtBQUssQ0FBQztZQUNwQjtZQUVBLElBQUk7Y0FDRixNQUFNLElBQUFpQyxhQUFNLEVBQ1YvQixZQUFZLEVBQ1psRCxNQUFNLEVBQ053QixHQUFHLENBQUMwRCxXQUFXLEVBQ2YsR0FBR2hDLFlBQVksQ0FBQ2lDLElBQUksSUFBSVAsZ0JBQWdCLEVBQzFDLENBQUM7WUFDSCxDQUFDLENBQUMsT0FBTzVCLEtBQUssRUFBRTtjQUNkMUMsY0FBTSxDQUFDMEMsS0FBSyxDQUFDO2dCQUFFQTtjQUFNLENBQUMsRUFBRSwyQ0FBMkMsQ0FBQztZQUN0RTtZQUVBdkIsR0FBRyxDQUFDZ0MsTUFBTSxDQUFDQyxzQkFBVyxDQUFDQyxPQUFPLENBQUM7WUFDL0IsT0FBT2pDLElBQUksQ0FBQztjQUFFa0MsRUFBRSxFQUFFWCxTQUFTO2NBQUVZLE9BQU8sRUFBRTtZQUFLLENBQUMsQ0FBQztVQUMvQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUM7TUFDSixDQUNGLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxJQUFBdUIsa0NBQW9CLEVBQUM1RCxHQUFHLENBQUM2RCxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksSUFBQXRCLGVBQVEsRUFBQ3ZDLEdBQUcsQ0FBQzZELElBQUksQ0FBQ0MsS0FBSyxDQUFDLEVBQUU7TUFDeEUsT0FBT2hFLE9BQU8sQ0FBQ0UsR0FBRyxFQUFFQyxHQUFHLEVBQUVDLElBQUksQ0FBQztJQUNoQztJQUVBLElBQUk7TUFDRixNQUFNaUIsUUFBUSxHQUFHNEMscUJBQWUsQ0FBQ0MsaUJBQWlCLENBQUNoRSxHQUFHLENBQUM2RCxJQUFJLEVBQUUxRCxXQUFXLENBQUM7TUFDekU7TUFDQSxJQUNFSCxHQUFHLENBQUNwQixNQUFNLENBQUNxRixJQUFJLElBQ2QsSUFBQUMsNkJBQXNCLEVBQUNsRSxHQUFHLENBQUM2RCxJQUFJLENBQUMsSUFBSWhDLGVBQUMsQ0FBQ3NDLE9BQU8sQ0FBQ25FLEdBQUcsQ0FBQzZELElBQUksQ0FBQ2xDLFlBQVksQ0FBRSxFQUN0RTtRQUNBekQsS0FBSyxDQUFDLCtCQUErQixFQUFFaUMsV0FBVyxDQUFDO1FBQ25EO1FBQ0EsTUFBTWlFLE1BQU0sR0FBR3BFLEdBQUcsQ0FBQzBELFdBQVc7UUFDOUJwRixJQUFJLENBQUMrRixlQUFlLENBQUM7VUFBRWxFO1FBQVksQ0FBQyxFQUFFaUUsTUFBTSxFQUFHNUMsS0FBSyxJQUFLO1VBQ3ZELElBQUlBLEtBQUssRUFBRTtZQUNUMUMsY0FBTSxDQUFDMEMsS0FBSyxDQUFDO2NBQUVyQjtZQUFZLENBQUMsRUFBRSx1REFBdUQsQ0FBQztZQUN0RixPQUFPRCxJQUFJLENBQUNzQixLQUFLLENBQUM7VUFDcEI7VUFDQWpELE9BQU8sQ0FBQytGLGFBQWEsQ0FBQ25FLFdBQVcsRUFBRWdCLFFBQVEsRUFBRW5CLEdBQUcsQ0FBQ3BCLE1BQU0sQ0FBQzJGLFFBQVEsRUFBRSxVQUFVL0MsS0FBSyxFQUFFO1lBQ2pGRCxXQUFXLENBQUNDLEtBQUssRUFBRWdELHNCQUFXLENBQUNDLFdBQVcsRUFBRXRELFFBQVEsQ0FBQztVQUN2RCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUM7TUFDSixDQUFDLE1BQU07UUFDTGpELEtBQUssQ0FBQyw2QkFBNkIsRUFBRWlDLFdBQVcsQ0FBQztRQUNqRDVCLE9BQU8sQ0FBQ21HLFVBQVUsQ0FBQ3ZFLFdBQVcsRUFBRWdCLFFBQVEsRUFBRSxVQUFVSyxLQUFLLEVBQUU7VUFDekRELFdBQVcsQ0FBQ0MsS0FBSyxFQUFFZ0Qsc0JBQVcsQ0FBQ0csV0FBVyxFQUFFeEQsUUFBUSxDQUFDO1FBQ3ZELENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxDQUFDLE9BQU9LLEtBQVUsRUFBRTtNQUNuQnRELEtBQUssQ0FBQyxzQkFBc0IsRUFBRXNELEtBQUssQ0FBQzNDLE9BQU8sQ0FBQztNQUM1Q0MsY0FBTSxDQUFDMEMsS0FBSyxDQUFDO1FBQUVyQjtNQUFZLENBQUMsRUFBRSx1REFBdUQsQ0FBQztNQUN0RixPQUFPRCxJQUFJLENBQUN3QyxnQkFBUyxDQUFDa0MsVUFBVSxDQUFDaEMsb0JBQVMsQ0FBQ2lDLGdCQUFnQixDQUFDLENBQUM7SUFDL0Q7RUFDRixDQUFDO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ08sU0FBU3JGLGdCQUFnQkEsQ0FBQ2pCLE9BQWdCLEVBQUU7RUFDakQsT0FBTyxVQUFVeUIsR0FBbUIsRUFBRUMsR0FBb0IsRUFBRUMsSUFBc0IsRUFBUTtJQUN4RixNQUFNQyxXQUFXLEdBQUdILEdBQUcsQ0FBQ3BCLE1BQU0sQ0FBQ3dCLE9BQU87SUFDdENsQyxLQUFLLENBQUMsaUJBQWlCLEVBQUVpQyxXQUFXLENBQUM7SUFDckM1QixPQUFPLENBQUN1RyxhQUFhLENBQUMzRSxXQUFXLEVBQUUsVUFBVVMsR0FBRyxFQUFFO01BQ2hELElBQUlBLEdBQUcsRUFBRTtRQUNQLE9BQU9WLElBQUksQ0FBQ1UsR0FBRyxDQUFDO01BQ2xCO01BQ0FYLEdBQUcsQ0FBQ2dDLE1BQU0sQ0FBQ0Msc0JBQVcsQ0FBQ0MsT0FBTyxDQUFDO01BQy9CLE9BQU9qQyxJQUFJLENBQUM7UUFBRWtDLEVBQUUsRUFBRW9DLHNCQUFXLENBQUNPO01BQVksQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQztFQUNKLENBQUM7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxTQUFTdEYsYUFBYUEsQ0FBQ2xCLE9BQWdCLEVBQUU7RUFDOUMsT0FBTyxVQUFVeUIsR0FBbUIsRUFBRUMsR0FBb0IsRUFBRUMsSUFBc0IsRUFBUTtJQUN4RixNQUFNQyxXQUFXLEdBQUdILEdBQUcsQ0FBQ3BCLE1BQU0sQ0FBQ3dCLE9BQU87SUFDdEMsTUFBTTtNQUFFRSxRQUFRO01BQUVpRTtJQUFTLENBQUMsR0FBR3ZFLEdBQUcsQ0FBQ3BCLE1BQU07SUFDekNWLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRWlDLFdBQVcsRUFBRUcsUUFBUSxFQUFFaUUsUUFBUSxDQUFDO0lBQ3pFaEcsT0FBTyxDQUFDa0IsYUFBYSxDQUFDVSxXQUFXLEVBQUVHLFFBQVEsRUFBRWlFLFFBQVEsRUFBRSxVQUFVM0QsR0FBRyxFQUFFO01BQ3BFLElBQUlBLEdBQUcsRUFBRTtRQUNQLE9BQU9WLElBQUksQ0FBQ1UsR0FBRyxDQUFDO01BQ2xCO01BQ0FYLEdBQUcsQ0FBQ2dDLE1BQU0sQ0FBQ0Msc0JBQVcsQ0FBQ0MsT0FBTyxDQUFDO01BQy9CakUsS0FBSyxDQUFDLHFDQUFxQyxFQUFFaUMsV0FBVyxFQUFFRyxRQUFRLEVBQUVpRSxRQUFRLENBQUM7TUFDN0UsT0FBT3JFLElBQUksQ0FBQztRQUFFa0MsRUFBRSxFQUFFb0Msc0JBQVcsQ0FBQ1E7TUFBZ0IsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztFQUNKLENBQUM7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNuRixVQUFVQSxDQUFDdEIsT0FBZ0IsRUFBRTtFQUMzQyxPQUFPLFVBQVV5QixHQUFtQixFQUFFQyxHQUFvQixFQUFFQyxJQUFzQixFQUFRO0lBQ3hGLE1BQU07TUFBRWdCLE9BQU87TUFBRStEO0lBQUksQ0FBQyxHQUFHakYsR0FBRyxDQUFDcEIsTUFBTTtJQUNuQyxNQUFNdUIsV0FBVyxHQUFHSCxHQUFHLENBQUNwQixNQUFNLENBQUN3QixPQUFPO0lBRXRDN0IsT0FBTyxDQUFDc0IsVUFBVSxDQUFDTSxXQUFXLEVBQUVlLE9BQU8sRUFBRWxCLEdBQUcsQ0FBQzZELElBQUksRUFBRW9CLEdBQUcsRUFBRSxVQUFVekQsS0FBSyxFQUFFO01BQ3ZFLElBQUlBLEtBQUssRUFBRTtRQUNULE9BQU90QixJQUFJLENBQUNzQixLQUFLLENBQUM7TUFDcEI7TUFFQXZCLEdBQUcsQ0FBQ2dDLE1BQU0sQ0FBQ0Msc0JBQVcsQ0FBQ0MsT0FBTyxDQUFDO01BQy9CLE9BQU9qQyxJQUFJLENBQUM7UUFDVmtDLEVBQUUsRUFBRW9DLHNCQUFXLENBQUNVO01BQ2xCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztFQUNKLENBQUM7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxTQUFTdEYsb0JBQW9CQSxDQUFDckIsT0FBZ0IsRUFBRTtFQUNyRCxPQUFPLFVBQVV5QixHQUFtQixFQUFFQyxHQUFvQixFQUFFQyxJQUFzQixFQUFRO0lBQ3hGLE1BQU1DLFdBQVcsR0FBR0gsR0FBRyxDQUFDcEIsTUFBTSxDQUFDd0IsT0FBTztJQUN0QyxNQUFNSyxNQUFNLEdBQUdsQyxPQUFPLENBQUNtQyxVQUFVLENBQUNQLFdBQVcsRUFBRUgsR0FBRyxDQUFDcEIsTUFBTSxDQUFDMEIsUUFBUSxDQUFDO0lBQ25FTixHQUFHLENBQUNtRixJQUFJLENBQUMxRSxNQUFNLENBQUM7O0lBRWhCO0lBQ0EsSUFBSTJFLFFBQVEsR0FBRyxLQUFLO0lBQ3BCcEYsR0FBRyxDQUFDVyxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVk7TUFDeEJ5RSxRQUFRLEdBQUcsSUFBSTtNQUNmM0UsTUFBTSxDQUFDTyxJQUFJLENBQUMsQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGaEIsR0FBRyxDQUFDVyxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVk7TUFDMUIsSUFBSSxDQUFDeUUsUUFBUSxFQUFFO1FBQ2IzRSxNQUFNLENBQUM0RSxLQUFLLENBQUMsQ0FBQztNQUNoQjtJQUNGLENBQUMsQ0FBQztJQUVGNUUsTUFBTSxDQUFDRSxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVVDLEdBQUcsRUFBRTtNQUNoQyxPQUFPWCxHQUFHLENBQUNxRixNQUFNLENBQUNDLFlBQVksQ0FBQzNFLEdBQUcsQ0FBQztJQUNyQyxDQUFDLENBQUM7SUFFRkgsTUFBTSxDQUFDRSxFQUFFLENBQUMsU0FBUyxFQUFFLFlBQVk7TUFDL0JWLEdBQUcsQ0FBQ2dDLE1BQU0sQ0FBQ0Msc0JBQVcsQ0FBQ0MsT0FBTyxDQUFDO01BQy9CLE9BQU9qQyxJQUFJLENBQUM7UUFDVmtDLEVBQUUsRUFBRW9DLHNCQUFXLENBQUNnQjtNQUNsQixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7RUFDSixDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
359
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGVidWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfbWltZSIsIl9wYXRoIiwiX2NvcmUiLCJfaG9va3MiLCJfbWlkZGxld2FyZSIsIl9jb25zdGFudHMiLCJfbG9nZ2VyIiwiX3N0b3JhZ2VVdGlscyIsIl91dGlscyIsIl9zdGFyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiZGVidWciLCJidWlsZERlYnVnIiwicHVibGlzaCIsInJvdXRlciIsImF1dGgiLCJzdG9yYWdlIiwiY29uZmlnIiwiY2FuIiwiYWxsb3ciLCJiZWZvcmVBbGwiLCJwYXJhbXMiLCJtZXNzYWdlIiwibG9nZ2VyIiwidHJhY2UiLCJhZnRlckFsbCIsInB1dCIsIm1lZGlhIiwibWltZSIsImdldFR5cGUiLCJleHBlY3RKc29uIiwicHVibGlzaFBhY2thZ2UiLCJkZWxldGUiLCJ1blB1Ymxpc2hQYWNrYWdlIiwicmVtb3ZlVGFyYmFsbCIsIkhFQURFUlMiLCJPQ1RFVF9TVFJFQU0iLCJ1cGxvYWRQYWNrYWdlVGFyYmFsbCIsImFkZFZlcnNpb24iLCJzdGFyQXBpIiwic3RhciIsInJlcSIsInJlcyIsIm5leHQiLCJwYWNrYWdlTmFtZSIsInBhY2thZ2UiLCJjcmVhdGVUYXJiYWxsIiwiZmlsZW5hbWUiLCJkYXRhIiwiY2IiLCJzdHJlYW0iLCJhZGRUYXJiYWxsIiwib24iLCJlcnIiLCJlbmQiLCJCdWZmZXIiLCJmcm9tIiwiZG9uZSIsImNyZWF0ZVZlcnNpb24iLCJ2ZXJzaW9uIiwibWV0YWRhdGEiLCJhZGRUYWdzIiwidGFncyIsIm1lcmdlVGFncyIsImFmdGVyQ2hhbmdlIiwiZXJyb3IiLCJva01lc3NhZ2UiLCJtZXRhZGF0YUNvcHkiLCJfYXR0YWNobWVudHMiLCJ2ZXJzaW9ucyIsIl8iLCJpc05pbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIkNSRUFURUQiLCJvayIsInN1Y2Nlc3MiLCJpc0ludmFsaWRCb2R5Rm9ybWF0IiwiaXNPYmplY3QiLCJoYXNEaWZmT25lS2V5IiwiaW5mbyIsIkVycm9yQ29kZSIsImdldEJhZFJlcXVlc3QiLCJBUElfRVJST1IiLCJVTlNVUE9SVEVEX1JFR0lTVFJZX0NBTEwiLCJDT05GTElDVCIsImZpcnN0QXR0YWNobWVudEtleSIsIk9iamVjdCIsImtleXMiLCJQYXRoIiwiYmFzZW5hbWUiLCJ2ZXJzaW9uVG9QdWJsaXNoIiwidmVyc2lvbk1ldGFkYXRhVG9QdWJsaXNoIiwicmVhZG1lIiwiU3RyaW5nIiwiRElTVF9UQUdTIiwibm90aWZ5IiwicmVtb3RlX3VzZXIiLCJuYW1lIiwiaXNQdWJsaXNoYWJsZVBhY2thZ2UiLCJib2R5IiwidXNlcnMiLCJ2YWxpZGF0aW9uVXRpbHMiLCJub3JtYWxpemVNZXRhZGF0YSIsIl9yZXYiLCJpc1JlbGF0ZWRUb0RlcHJlY2F0aW9uIiwiaXNFbXB0eSIsInJlbW90ZSIsImFsbG93X3VucHVibGlzaCIsImNoYW5nZVBhY2thZ2UiLCJyZXZpc2lvbiIsIkFQSV9NRVNTQUdFIiwiUEtHX0NIQU5HRUQiLCJhZGRQYWNrYWdlIiwiUEtHX0NSRUFURUQiLCJnZXRCYWREYXRhIiwiQkFEX1BBQ0tBR0VfREFUQSIsInJlbW92ZVBhY2thZ2UiLCJQS0dfUkVNT1ZFRCIsIlRBUkJBTExfUkVNT1ZFRCIsInRhZyIsIlBLR19QVUJMSVNIRUQiLCJwaXBlIiwiY29tcGxldGUiLCJhYm9ydCIsImxvY2FscyIsInJlcG9ydF9lcnJvciIsIlRBUkJBTExfVVBMT0FERUQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VuZHBvaW50L2FwaS9wdWJsaXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB0eXBlIHsgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1pbWUgZnJvbSAnbWltZSc7XG5pbXBvcnQgUGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IHsgdmFsaWRhdGlvblV0aWxzIH0gZnJvbSAnQHZlcmRhY2Npby9jb3JlJztcbmltcG9ydCB7IG5vdGlmeSB9IGZyb20gJ0B2ZXJkYWNjaW8vaG9va3MnO1xuaW1wb3J0IHsgYWxsb3csIGV4cGVjdEpzb24sIG1lZGlhIH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB0eXBlIHsgQ2FsbGJhY2ssIENvbmZpZywgTWVyZ2VUYWdzLCBQYWNrYWdlLCBWZXJzaW9uIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB0eXBlIEF1dGggZnJvbSAnLi4vLi4vLi4vbGliL2F1dGgnO1xuaW1wb3J0IHsgQVBJX0VSUk9SLCBBUElfTUVTU0FHRSwgRElTVF9UQUdTLCBIRUFERVJTLCBIVFRQX1NUQVRVUyB9IGZyb20gJy4uLy4uLy4uL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbGliL2xvZ2dlcic7XG5pbXBvcnQgdHlwZSBTdG9yYWdlIGZyb20gJy4uLy4uLy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCB7IGlzUHVibGlzaGFibGVQYWNrYWdlIH0gZnJvbSAnLi4vLi4vLi4vbGliL3N0b3JhZ2UtdXRpbHMnO1xuaW1wb3J0IHsgRXJyb3JDb2RlLCBoYXNEaWZmT25lS2V5LCBpc09iamVjdCwgaXNSZWxhdGVkVG9EZXByZWNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kLCAkUmVzcG9uc2VFeHRlbmQgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgc3RhciBmcm9tICcuL3N0YXInO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2NpbzpwdWJsaXNoJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHB1Ymxpc2goXG4gIHJvdXRlcjogUm91dGVyLFxuICBhdXRoOiBBdXRoLFxuICBzdG9yYWdlOiBTdG9yYWdlLFxuICBjb25maWc6IENvbmZpZ1xuKTogdm9pZCB7XG4gIGNvbnN0IGNhbiA9IGFsbG93KGF1dGgsIHtcbiAgICBiZWZvcmVBbGw6IChwYXJhbXMsIG1lc3NhZ2UpID0+IGxvZ2dlci50cmFjZShwYXJhbXMsIG1lc3NhZ2UpLFxuICAgIGFmdGVyQWxsOiAocGFyYW1zLCBtZXNzYWdlKSA9PiBsb2dnZXIudHJhY2UocGFyYW1zLCBtZXNzYWdlKSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2ggYSBwYWNrYWdlIC8gdXBkYXRlIHBhY2thZ2UgLyB1bi9zdGFydCBhIHBhY2thZ2VcbiAgICpcbiAgICogVGhlcmUgYXJlIG11bHRpcGxlcyBzY2VuYXJpb3MgaGVyZSB0byBiZSBjb25zaWRlcmVkOlxuICAgKlxuICAgKiAxLiBQdWJsaXNoIHNjZW5hcmlvXG4gICAqXG4gICAqIFB1Ymxpc2ggYSBwYWNrYWdlIGNvbnNpc3Qgb2YgYXQgbGVhc3QgMSBzdGVwIChQVVQpIHdpdGggYSBtZXRhZGF0YSBwYXlsb2FkLlxuICAgKiBXaGVuIGEgcGFja2FnZSBpcyBwdWJsaXNoZWQsIGFuIF9hdHRhY2htZW50IHByb3BlcnR5IGlzIHByZXNlbnQgdGhhdCBjb250YWlucyB0aGUgZGF0YVxuICAgKiBvZiB0aGUgdGFyYmFsbC5cbiAgICpcbiAgICogRXhhbXBsZSBmbG93IG9mIHB1Ymxpc2guXG4gICAqXG4gICAqICBucG0gaHR0cCBmZXRjaCBQVVQgMjAxIGh0dHA6Ly9sb2NhbGhvc3Q6NDg3My9Ac2NvcGUlMmZ0ZXN0MSA5NjI3bXNcbiAgICAgIG5wbSBpbmZvIGxpZmVjeWNsZSBAc2NvcGUvdGVzdDFAMS4wLjF+cHVibGlzaDogQHNjb3BlL3Rlc3QxQDEuMC4xXG4gICAgICBucG0gaW5mbyBsaWZlY3ljbGUgQHNjb3BlL3Rlc3QxQDEuMC4xfnBvc3RwdWJsaXNoOiBAc2NvcGUvdGVzdDFAMS4wLjFcbiAgICAgICsgQHNjb3BlL3Rlc3QxQDEuMC4xXG4gICAgICBucG0gdmVyYiBleGl0IFsgMCwgdHJ1ZSBdXG4gICAqXG4gICAqXG4gICAqIDIuIFVucHVibGlzaCBzY2VuYXJpb1xuICAgKlxuICAgKiBVbnB1Ymxpc2ggY29uc2lzdCBpbiAzIHN0ZXBzLlxuICAgKiAgMS4gVHJ5IHRvIGZldGNoICBtZXRhZGF0YSAtPiBpZiBpdCBmYWlscywgcmV0dXJuIDQwNFxuICAgKiAgMi4gQ29tcHV0ZSBtZXRhZGF0YSBsb2NhbGx5IChjbGllbnQgc2lkZSkgYW5kIHNlbmQgYSBtdXRhdGUgcGF5bG9hZCBleGNsdWRpbmcgdGhlIHZlcnNpb24gdG8gYmUgdW5wdWJsaXNoZWRcbiAgICogICAgZWc6IGlmIG1ldGFkYXRhIHJlZmxlY3RzIDEuMC4xLCAxLjAuMiBhbmQgMS4wLjMsIHRoZSBjb21wdXRlZCBtZXRhZGF0YSB3b24ndCBpbmNsdWRlIDEuMC4zLlxuICAgKiAgMy4gT25jZSB0aGUgc2Vjb25kIHN0ZXAgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGZpbmlzaGVkLCBkZWxldGUgdGhlIHRhcmJhbGwuXG4gICAqXG4gICAqICBBbGwgdGhlc2Ugc3RlcHMgYXJlIGNvbnNlY3V0aXZlIGFuZCByZXF1aXJlZCwgdGhlcmUgaXMgbm8gdHJhbnNhY2lvbnMgaGVyZSwgaWYgc3RlcCAzIGZhaWxzLCBtZXRhZGF0YSBtaWdodFxuICAgKiAgZ2V0IGNvcnJ1cHRlZC5cbiAgICpcbiAgICogIE5vdGUgdGhlIHVucHVibGlzaCBjYWxsIHdpbGwgc3VmZml4IGluIHRoZSB1cmwgYSAvLXJldi8xNC01ZDUwMGNmY2U5MmY5MGZkIHJldmlzaW9uIG51bWJlciwgdGhpcyBub3RcbiAgICogIHVzZWQgaW50ZXJuYWxseS5cbiAgICpcbiAgICpcbiAgICogRXhhbXBsZSBmbG93IG9mIHVucHVibGlzaC5cbiAgICpcbiAgICogbnBtIGh0dHAgZmV0Y2ggR0VUIDIwMCBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDE/d3JpdGU9dHJ1ZSAxNjgwbXNcbiAgICAgbnBtIGh0dHAgZmV0Y2ggUFVUIDIwMSBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDEvLXJldi8xNC01ZDUwMGNmY2U5MmY5MGZkIDk1NjYwNm1zIGF0dGVtcHQgIzJcbiAgICAgbnBtIGh0dHAgZmV0Y2ggR0VUIDIwMCBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDE/d3JpdGU9dHJ1ZSAxNjAxbXNcbiAgICAgbnBtIGh0dHAgZmV0Y2ggREVMRVRFIDIwMSBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDEvLS90ZXN0MS0xLjAuMy50Z3ovLXJldi8xNi1lMTFjOGRiMjgyYjJkOTkyIDE5bXNcbiAgICpcbiAgICogMy4gU3RhciBhIHBhY2thZ2VcbiAgICpcbiAgICogUGVybWlzc2lvbnM6IHN0YXJ0IGEgcGFja2FnZSBkZXBlbmRzIG9mIHRoZSBwdWJsaXNoIGFuZCB1bnB1Ymxpc2ggcGVybWlzc2lvbnMsIHRoZXJlIGlzIG5vIHNwZWNpZmljIGZsYWcgZm9yIHN0YXIgb3IgdW4gc3RhcnQuXG4gICAqIFRoZSBVUkwgZm9yIHN0YXIgaXMgc2ltaWxhciB0byB0aGUgdW5wdWJsaXNoIChjaGFuZ2UgcGFja2FnZSBmb3JtYXQpXG4gICAqXG4gICAqIG5wbSBoYXMgbm8gZW5wb2ludCBmb3Igc3RhciBhIHBhY2thZ2UsIHJhdGhlciBtdXRhdGUgdGhlIG1ldGFkYXRhIGFuZCBhY3RzIGFzLCB0aGUgZGlmZmVyZW5jZSBpcyB0aGVcbiAgICogdXNlcnMgcHJvcGVydHkgd2hpY2ggaXMgcGFydCBvZiB0aGUgcGF5bG9hZCBhbmQgdGhlIGJvZHkgb25seSBpbmNsdWRlc1xuICAgKlxuICAgKiB7XG5cdFx0ICBcIl9pZFwiOiBwa2dOYW1lLFxuXHQgIFx0XCJfcmV2XCI6IFwiMy1iMGNkYWVmYzliZGI3N2M4XCIsXG5cdFx0ICBcInVzZXJzXCI6IHtcblx0XHQgICAgW3VzZXJuYW1lXTogYm9vbGVhbiB2YWx1ZSAodHJ1ZSwgZmFsc2UpXG5cdFx0ICB9XG5cdH1cbiAgICpcbiAgICovXG4gIHJvdXRlci5wdXQoXG4gICAgJy86cGFja2FnZXsvOl9yZXZ9ey86cmV2aXNpb259JyxcbiAgICBjYW4oJ3B1Ymxpc2gnKSxcbiAgICBtZWRpYShtaW1lLmdldFR5cGUoJ2pzb24nKSksXG4gICAgZXhwZWN0SnNvbixcbiAgICBwdWJsaXNoUGFja2FnZShzdG9yYWdlLCBjb25maWcsIGF1dGgpXG4gICk7XG5cbiAgLyoqXG4gICAqIFVuLXB1Ymxpc2hpbmcgYW4gZW50aXJlIHBhY2thZ2UuXG4gICAqXG4gICAqIFRoaXMgc2NlbmFyaW8gaGFwcGVucyB3aGVuIHRoZSBmaXJzdCBjYWxsIGRldGVjdCB0aGVyZSBpcyBvbmx5IG9uZSB2ZXJzaW9uIHJlbWFpbmluZ1xuICAgKiBpbiB0aGUgbWV0YWRhdGEsIHRoZW4gdGhlIGNsaWVudCBkZWNpZGVzIHRvIERFTEVURSB0aGUgcmVzb3VyY2VcbiAgICogbnBtIGh0dHAgZmV0Y2ggR0VUIDMwNCBodHRwOi8vbG9jYWxob3N0OjQ4NzMvQHNjb3BlJTJmdGVzdDE/d3JpdGU9dHJ1ZSAxMDc2bXMgKGZyb20gY2FjaGUpXG4gICAgIG5wbSBodHRwIGZldGNoIERFTEVURSAyMDEgaHR0cDovL2xvY2FsaG9zdDo0ODczL0BzY29wZSUyZnRlc3QxLy1yZXYvMTgtZDhlYmUzMDIwYmQ0YWM5YyAyMm1zXG4gICAqL1xuICByb3V0ZXIuZGVsZXRlKCcvOnBhY2thZ2UvLXJldi8qcmV2JywgY2FuKCd1bnB1Ymxpc2gnKSwgdW5QdWJsaXNoUGFja2FnZShzdG9yYWdlKSk7XG5cbiAgLy8gcmVtb3ZpbmcgYSB0YXJiYWxsXG4gIHJvdXRlci5kZWxldGUoXG4gICAgJy86cGFja2FnZS8tLzpmaWxlbmFtZS8tcmV2LzpyZXZpc2lvbicsXG4gICAgY2FuKCd1bnB1Ymxpc2gnKSxcbiAgICBjYW4oJ3B1Ymxpc2gnKSxcbiAgICByZW1vdmVUYXJiYWxsKHN0b3JhZ2UpXG4gICk7XG5cbiAgLy8gdXBsb2FkaW5nIHBhY2thZ2UgdGFyYmFsbFxuICByb3V0ZXIucHV0KFxuICAgICcvOnBhY2thZ2UvLS86ZmlsZW5hbWUvKnJlc3QnLFxuICAgIGNhbigncHVibGlzaCcpLFxuICAgIG1lZGlhKEhFQURFUlMuT0NURVRfU1RSRUFNKSxcbiAgICB1cGxvYWRQYWNrYWdlVGFyYmFsbChzdG9yYWdlKVxuICApO1xuXG4gIC8vIG9ubHkgdXNlZCBmb3IgZGV2ZWxvcG1lbnRcbiAgaWYgKGNvbmZpZy5fZGVidWcpIHtcbiAgICAvLyBhZGRpbmcgYSB2ZXJzaW9uXG4gICAgcm91dGVyLnB1dChcbiAgICAgICcvOnBhY2thZ2UvOnZlcnNpb24vLXRhZy86dGFnJyxcbiAgICAgIGNhbigncHVibGlzaCcpLFxuICAgICAgbWVkaWEobWltZS5nZXRUeXBlKCdqc29uJykpLFxuICAgICAgZXhwZWN0SnNvbixcbiAgICAgIGFkZFZlcnNpb24oc3RvcmFnZSlcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogUHVibGlzaCBhIHBhY2thZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHB1Ymxpc2hQYWNrYWdlKHN0b3JhZ2U6IFN0b3JhZ2UsIGNvbmZpZzogQ29uZmlnLCBhdXRoOiBBdXRoKTogYW55IHtcbiAgY29uc3Qgc3RhckFwaSA9IHN0YXIoc3RvcmFnZSk7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMucGFja2FnZTtcbiAgICBkZWJ1ZygncHVibGlzaGluZyBvciB1cGRhdGluZyBhIG5ldyB2ZXJzaW9uIGZvciAlbycsIHBhY2thZ2VOYW1lKTtcbiAgICAvKipcbiAgICAgKiBXcml0ZSB0YXJiYWxsIG9mIHN0cmVhbSBkYXRhIGZyb20gcGFja2FnZSBjbGllbnRzLlxuICAgICAqL1xuICAgIGNvbnN0IGNyZWF0ZVRhcmJhbGwgPSBmdW5jdGlvbiAoZmlsZW5hbWU6IHN0cmluZywgZGF0YSwgY2I6IENhbGxiYWNrKTogdm9pZCB7XG4gICAgICBjb25zdCBzdHJlYW0gPSBzdG9yYWdlLmFkZFRhcmJhbGwocGFja2FnZU5hbWUsIGZpbGVuYW1lKTtcbiAgICAgIHN0cmVhbS5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIGNiKGVycik7XG4gICAgICB9KTtcbiAgICAgIHN0cmVhbS5vbignc3VjY2VzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY2IoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gdGhpcyBpcyBkdW1iIGFuZCBtZW1vcnktY29uc3VtaW5nLCBidXQgd2hhdCBjaG9pY2VzIGRvIHdlIGhhdmU/XG4gICAgICAvLyBmbG93OiB3ZSBuZWVkIGZpcnN0IHJlZmFjdG9yIHRoaXMgZmlsZSBiZWZvcmUgZGVjaWRlcyB3aGljaCB0eXBlIHVzZSBoZXJlXG4gICAgICBzdHJlYW0uZW5kKEJ1ZmZlci5mcm9tKGRhdGEuZGF0YSwgJ2Jhc2U2NCcpKTtcbiAgICAgIHN0cmVhbS5kb25lKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEFkZCBuZXcgcGFja2FnZSB2ZXJzaW9uIGluIHN0b3JhZ2VcbiAgICAgKi9cbiAgICBjb25zdCBjcmVhdGVWZXJzaW9uID0gZnVuY3Rpb24gKHZlcnNpb246IHN0cmluZywgbWV0YWRhdGE6IFZlcnNpb24sIGNiOiBDYWxsYmFjayk6IHZvaWQge1xuICAgICAgc3RvcmFnZS5hZGRWZXJzaW9uKHBhY2thZ2VOYW1lLCB2ZXJzaW9uLCBtZXRhZGF0YSwgbnVsbCwgY2IpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBZGQgbmV3IHRhZ3MgaW4gc3RvcmFnZVxuICAgICAqL1xuICAgIGNvbnN0IGFkZFRhZ3MgPSBmdW5jdGlvbiAodGFnczogTWVyZ2VUYWdzLCBjYjogQ2FsbGJhY2spOiB2b2lkIHtcbiAgICAgIHN0b3JhZ2UubWVyZ2VUYWdzKHBhY2thZ2VOYW1lLCB0YWdzLCBjYik7XG4gICAgfTtcblxuICAgIGNvbnN0IGFmdGVyQ2hhbmdlID0gZnVuY3Rpb24gKGVycm9yLCBva01lc3NhZ2UsIG1ldGFkYXRhKTogdm9pZCB7XG4gICAgICBjb25zdCBtZXRhZGF0YUNvcHk6IFBhY2thZ2UgPSB7IC4uLm1ldGFkYXRhIH07XG5cbiAgICAgIGNvbnN0IHsgX2F0dGFjaG1lbnRzLCB2ZXJzaW9ucyB9ID0gbWV0YWRhdGFDb3B5O1xuXG4gICAgICAvLyBgbnBtIHN0YXJgIHdvdWxkbid0IGhhdmUgYXR0YWNobWVudHNcbiAgICAgIC8vIGFuZCBgbnBtIGRlcHJlY2F0ZWAgd291bGQgaGF2ZSBhdHRhY2htZW50cyBhcyBhIGVtcHR5IG9iamVjdCwgaS5lIHt9XG4gICAgICBpZiAoXy5pc05pbChfYXR0YWNobWVudHMpIHx8IEpTT04uc3RyaW5naWZ5KF9hdHRhY2htZW50cykgPT09ICd7fScpIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICBvazogb2tNZXNzYWdlLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyBucG0tcmVnaXN0cnktY2xpZW50IDAuMysgZW1iZWRzIHRhcmJhbGwgaW50byB0aGUganNvbiB1cGxvYWRcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9pc2FhY3MvbnBtLXJlZ2lzdHJ5LWNsaWVudC9jb21taXQvZTlmYmViOGI2N2YyNDkzOTRmNzM1Yzc0ZWYxMWZlNDcyMGQ0NmNhMFxuICAgICAgLy8gaXNzdWUgaHR0cHM6Ly9naXRodWIuY29tL3JsaWR3a2Evc2lub3BpYS9pc3N1ZXMvMzEsIGRlYWxpbmcgd2l0aCBpdCBoZXJlOlxuICAgICAgY29uc3QgaXNJbnZhbGlkQm9keUZvcm1hdCA9XG4gICAgICAgIGlzT2JqZWN0KF9hdHRhY2htZW50cykgPT09IGZhbHNlIHx8XG4gICAgICAgIGhhc0RpZmZPbmVLZXkoX2F0dGFjaG1lbnRzKSB8fFxuICAgICAgICBpc09iamVjdCh2ZXJzaW9ucykgPT09IGZhbHNlIHx8XG4gICAgICAgIGhhc0RpZmZPbmVLZXkodmVyc2lvbnMpO1xuXG4gICAgICBpZiAoaXNJbnZhbGlkQm9keUZvcm1hdCkge1xuICAgICAgICAvLyBucG0gaXMgZG9pbmcgc29tZXRoaW5nIHN0cmFuZ2UgYWdhaW5cbiAgICAgICAgLy8gaWYgdGhpcyBoYXBwZW5zIGluIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCByZXBvcnQgaXQgYXMgYSBidWdcbiAgICAgICAgbG9nZ2VyLmluZm8oeyBwYWNrYWdlTmFtZSB9LCBgd3JvbmcgcGFja2FnZSBmb3JtYXQgb24gcHVibGlzaCBhIHBhY2thZ2UgQHtwYWNrYWdlTmFtZX1gKTtcbiAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldEJhZFJlcXVlc3QoQVBJX0VSUk9SLlVOU1VQT1JURURfUkVHSVNUUllfQ0FMTCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXJyb3IgJiYgZXJyb3Iuc3RhdHVzICE9PSBIVFRQX1NUQVRVUy5DT05GTElDVCkge1xuICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIC8vIGF0IHRoaXMgcG9pbnQgZG9jdW1lbnQgaXMgZWl0aGVyIGNyZWF0ZWQgb3IgZXhpc3RlZCBiZWZvcmVcbiAgICAgIGNvbnN0IFtmaXJzdEF0dGFjaG1lbnRLZXldID0gT2JqZWN0LmtleXMoX2F0dGFjaG1lbnRzKTtcblxuICAgICAgY3JlYXRlVGFyYmFsbChcbiAgICAgICAgUGF0aC5iYXNlbmFtZShmaXJzdEF0dGFjaG1lbnRLZXkpLFxuICAgICAgICBfYXR0YWNobWVudHNbZmlyc3RBdHRhY2htZW50S2V5XSxcbiAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdmVyc2lvblRvUHVibGlzaCA9IE9iamVjdC5rZXlzKHZlcnNpb25zKVswXTtcbiAgICAgICAgICBjb25zdCB2ZXJzaW9uTWV0YWRhdGFUb1B1Ymxpc2ggPSB2ZXJzaW9uc1t2ZXJzaW9uVG9QdWJsaXNoXTtcblxuICAgICAgICAgIHZlcnNpb25NZXRhZGF0YVRvUHVibGlzaC5yZWFkbWUgPVxuICAgICAgICAgICAgXy5pc05pbCh2ZXJzaW9uTWV0YWRhdGFUb1B1Ymxpc2gucmVhZG1lKSA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgPyBTdHJpbmcodmVyc2lvbk1ldGFkYXRhVG9QdWJsaXNoLnJlYWRtZSlcbiAgICAgICAgICAgICAgOiAnJztcblxuICAgICAgICAgIGNyZWF0ZVZlcnNpb24odmVyc2lvblRvUHVibGlzaCwgdmVyc2lvbk1ldGFkYXRhVG9QdWJsaXNoLCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFkZFRhZ3MobWV0YWRhdGFDb3B5W0RJU1RfVEFHU10sIGFzeW5jIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IG5vdGlmeShcbiAgICAgICAgICAgICAgICAgIG1ldGFkYXRhQ29weSxcbiAgICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICAgIHJlcS5yZW1vdGVfdXNlcixcbiAgICAgICAgICAgICAgICAgIGAke21ldGFkYXRhQ29weS5uYW1lfUAke3ZlcnNpb25Ub1B1Ymxpc2h9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKHsgZXJyb3IgfSwgJ25vdGlmeSBiYXRjaCBzZXJ2aWNlIGhhcyBmYWlsZWQ6IEB7ZXJyb3J9Jyk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLkNSRUFURUQpO1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dCh7IG9rOiBva01lc3NhZ2UsIHN1Y2Nlc3M6IHRydWUgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgaWYgKGlzUHVibGlzaGFibGVQYWNrYWdlKHJlcS5ib2R5KSA9PT0gZmFsc2UgJiYgaXNPYmplY3QocmVxLmJvZHkudXNlcnMpKSB7XG4gICAgICByZXR1cm4gc3RhckFwaShyZXEsIHJlcywgbmV4dCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gdmFsaWRhdGlvblV0aWxzLm5vcm1hbGl6ZU1ldGFkYXRhKHJlcS5ib2R5LCBwYWNrYWdlTmFtZSk7XG4gICAgICAvLyBjaGVjayBfYXR0YWNobWVudHMgdG8gZGlzdGluZ3Vpc2ggcHVibGlzaCBhbmQgZGVwcmVjYXRlXG4gICAgICBpZiAoXG4gICAgICAgIHJlcS5wYXJhbXMuX3JldiB8fFxuICAgICAgICAoaXNSZWxhdGVkVG9EZXByZWNhdGlvbihyZXEuYm9keSkgJiYgXy5pc0VtcHR5KHJlcS5ib2R5Ll9hdHRhY2htZW50cykpXG4gICAgICApIHtcbiAgICAgICAgZGVidWcoJ3VwZGF0aW5nIGEgbmV3IHZlcnNpb24gZm9yICVvJywgcGFja2FnZU5hbWUpO1xuICAgICAgICAvLyB3ZSBjaGVjayB1bnB1Ymxpc2ggcGVybWlzc2lvbnMsIGFuIHVwZGF0ZSBpcyBiYXNpY2FsbHkgcmVtb3ZlIHZlcnNpb25zXG4gICAgICAgIGNvbnN0IHJlbW90ZSA9IHJlcS5yZW1vdGVfdXNlcjtcbiAgICAgICAgYXV0aC5hbGxvd191bnB1Ymxpc2goeyBwYWNrYWdlTmFtZSB9LCByZW1vdGUsIChlcnJvcikgPT4ge1xuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKHsgcGFja2FnZU5hbWUgfSwgYG5vdCBhbGxvd2VkIHRvIHVucHVibGlzaCBhIHZlcnNpb24gZm9yIEB7cGFja2FnZU5hbWV9YCk7XG4gICAgICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN0b3JhZ2UuY2hhbmdlUGFja2FnZShwYWNrYWdlTmFtZSwgbWV0YWRhdGEsIHJlcS5wYXJhbXMucmV2aXNpb24sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgYWZ0ZXJDaGFuZ2UoZXJyb3IsIEFQSV9NRVNTQUdFLlBLR19DSEFOR0VELCBtZXRhZGF0YSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVidWcoJ2FkZGluZyBhIG5ldyB2ZXJzaW9uIGZvciAlbycsIHBhY2thZ2VOYW1lKTtcbiAgICAgICAgc3RvcmFnZS5hZGRQYWNrYWdlKHBhY2thZ2VOYW1lLCBtZXRhZGF0YSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgYWZ0ZXJDaGFuZ2UoZXJyb3IsIEFQSV9NRVNTQUdFLlBLR19DUkVBVEVELCBtZXRhZGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGRlYnVnKCdlcnJvciBvbiBwdWJsaXNoOiAlcycsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgbG9nZ2VyLmVycm9yKHsgcGFja2FnZU5hbWUgfSwgJ2Vycm9yIG9uIHB1Ymxpc2gsIGJhZCBwYWNrYWdlIGRhdGEgZm9yIEB7cGFja2FnZU5hbWV9Jyk7XG4gICAgICByZXR1cm4gbmV4dChFcnJvckNvZGUuZ2V0QmFkRGF0YShBUElfRVJST1IuQkFEX1BBQ0tBR0VfREFUQSkpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiB1bi1wdWJsaXNoIGEgcGFja2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5QdWJsaXNoUGFja2FnZShzdG9yYWdlOiBTdG9yYWdlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiAkUmVzcG9uc2VFeHRlbmQsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHJlcS5wYXJhbXMucGFja2FnZTtcbiAgICBkZWJ1ZygndW5wdWJsaXNoaW5nICVvJywgcGFja2FnZU5hbWUpO1xuICAgIHN0b3JhZ2UucmVtb3ZlUGFja2FnZShwYWNrYWdlTmFtZSwgZnVuY3Rpb24gKGVycikge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gbmV4dChlcnIpO1xuICAgICAgfVxuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgIHJldHVybiBuZXh0KHsgb2s6IEFQSV9NRVNTQUdFLlBLR19SRU1PVkVEIH0pO1xuICAgIH0pO1xuICB9O1xufVxuXG4vKipcbiAqIERlbGV0ZSB0YXJiYWxsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUYXJiYWxsKHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gcmVxLnBhcmFtcy5wYWNrYWdlO1xuICAgIGNvbnN0IHsgZmlsZW5hbWUsIHJldmlzaW9uIH0gPSByZXEucGFyYW1zO1xuICAgIGRlYnVnKCdyZW1vdmluZyBhIHRhcmJhbGwgZm9yICVvLSVvLSVvJywgcGFja2FnZU5hbWUsIGZpbGVuYW1lLCByZXZpc2lvbik7XG4gICAgc3RvcmFnZS5yZW1vdmVUYXJiYWxsKHBhY2thZ2VOYW1lLCBmaWxlbmFtZSwgcmV2aXNpb24sIGZ1bmN0aW9uIChlcnIpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgIH1cbiAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICBkZWJ1Zygnc3VjY2VzcyByZW1vdmUgdGFyYmFsbCBmb3IgJW8tJW8tJW8nLCBwYWNrYWdlTmFtZSwgZmlsZW5hbWUsIHJldmlzaW9uKTtcbiAgICAgIHJldHVybiBuZXh0KHsgb2s6IEFQSV9NRVNTQUdFLlRBUkJBTExfUkVNT1ZFRCB9KTtcbiAgICB9KTtcbiAgfTtcbn1cbi8qKlxuICogQWRkcyBhIG5ldyB2ZXJzaW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRWZXJzaW9uKHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHsgdmVyc2lvbiwgdGFnIH0gPSByZXEucGFyYW1zO1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gcmVxLnBhcmFtcy5wYWNrYWdlO1xuXG4gICAgc3RvcmFnZS5hZGRWZXJzaW9uKHBhY2thZ2VOYW1lLCB2ZXJzaW9uLCByZXEuYm9keSwgdGFnLCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZXR1cm4gbmV4dChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgIG9rOiBBUElfTUVTU0FHRS5QS0dfUFVCTElTSEVELFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogdXBsb2FkUGFja2FnZVRhcmJhbGxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwbG9hZFBhY2thZ2VUYXJiYWxsKHN0b3JhZ2U6IFN0b3JhZ2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXE6ICRSZXF1ZXN0RXh0ZW5kLCByZXM6ICRSZXNwb25zZUV4dGVuZCwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gcmVxLnBhcmFtcy5wYWNrYWdlO1xuICAgIGNvbnN0IHN0cmVhbSA9IHN0b3JhZ2UuYWRkVGFyYmFsbChwYWNrYWdlTmFtZSwgcmVxLnBhcmFtcy5maWxlbmFtZSk7XG4gICAgcmVxLnBpcGUoc3RyZWFtKTtcblxuICAgIC8vIGNoZWNraW5nIGlmIGVuZCBldmVudCBjYW1lIGJlZm9yZSBjbG9zaW5nXG4gICAgbGV0IGNvbXBsZXRlID0gZmFsc2U7XG4gICAgcmVxLm9uKCdlbmQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb21wbGV0ZSA9IHRydWU7XG4gICAgICBzdHJlYW0uZG9uZSgpO1xuICAgIH0pO1xuXG4gICAgcmVxLm9uKCdjbG9zZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmICghY29tcGxldGUpIHtcbiAgICAgICAgc3RyZWFtLmFib3J0KCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzdHJlYW0ub24oJ2Vycm9yJywgZnVuY3Rpb24gKGVycikge1xuICAgICAgcmV0dXJuIHJlcy5sb2NhbHMucmVwb3J0X2Vycm9yKGVycik7XG4gICAgfSk7XG5cbiAgICBzdHJlYW0ub24oJ3N1Y2Nlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLkNSRUFURUQpO1xuICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICBvazogQVBJX01FU1NBR0UuVEFSQkFMTF9VUExPQURFRCxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FB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
@@ -24,7 +24,7 @@ function _default(route, auth, config) {
24
24
  ok: (0, _utils.getAuthenticatedMessage)(req.remote_user.name)
25
25
  });
26
26
  });
27
- userRouter.put('/-/user/:org_couchdb_user/:_rev?/:revision?', (0, _middleware.rateLimit)(config?.userRateLimit), function (req, res, next) {
27
+ userRouter.put('/-/user/:org_couchdb_user{/:_rev}{/:revision}', (0, _middleware.rateLimit)(config?.userRateLimit), function (req, res, next) {
28
28
  const {
29
29
  name,
30
30
  password
@@ -73,7 +73,7 @@ function _default(route, auth, config) {
73
73
  });
74
74
  }
75
75
  });
76
- userRouter.delete('/-/user/token/*', (0, _middleware.rateLimit)(config?.userRateLimit), function (req, res, next) {
76
+ userRouter.delete('/-/user/token/*token', (0, _middleware.rateLimit)(config?.userRateLimit), function (req, res, next) {
77
77
  res.status(_constants.HTTP_STATUS.OK);
78
78
  next({
79
79
  ok: _constants.API_MESSAGE.LOGGED_OUT
@@ -81,4 +81,4 @@ function _default(route, auth, config) {
81
81
  });
82
82
  route.use(userRouter);
83
83
  }
84
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2xvZGFzaCIsIl9hdXRoIiwiX2NvbmZpZyIsIl9jb3JlIiwiX21pZGRsZXdhcmUiLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlsczIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsInJvdXRlIiwiYXV0aCIsImNvbmZpZyIsInVzZXJSb3V0ZXIiLCJleHByZXNzIiwiUm91dGVyIiwiZ2V0IiwicmF0ZUxpbWl0IiwidXNlclJhdGVMaW1pdCIsInJlcSIsInJlcyIsIm5leHQiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIk9LIiwib2siLCJnZXRBdXRoZW50aWNhdGVkTWVzc2FnZSIsInJlbW90ZV91c2VyIiwibmFtZSIsInB1dCIsInBhc3N3b3JkIiwiYm9keSIsInJlbW90ZU5hbWUiLCJfIiwiaXNOaWwiLCJhdXRoZW50aWNhdGUiLCJjYWxsYmFja0F1dGhlbnRpY2F0ZSIsImVyciIsInVzZXIiLCJsb2dnZXIiLCJlcnJvciIsIkVycm9yQ29kZSIsImdldENvZGUiLCJVTkFVVEhPUklaRUQiLCJBUElfRVJST1IiLCJCQURfVVNFUk5BTUVfUEFTU1dPUkQiLCJyZXN0b3JlZFJlbW90ZVVzZXIiLCJjcmVhdGVSZW1vdGVVc2VyIiwiZ3JvdXBzIiwidG9rZW4iLCJnZXRBcGlUb2tlbiIsIkNSRUFURUQiLCJzZXQiLCJIRUFERVJTIiwiQ0FDSEVfQ09OVFJPTCIsInZhbGlkYXRpb25VdGlscyIsInZhbGlkYXRlUGFzc3dvcmQiLCJCQURfUkVRVUVTVCIsIlBBU1NXT1JEX1NIT1JUIiwiYWRkX3VzZXIiLCJJTlRFUk5BTF9FUlJPUiIsIm1lc3NhZ2UiLCJnZXRDb25mbGljdCIsInVuZGVmaW5lZCIsImRlbGV0ZSIsIkFQSV9NRVNTQUdFIiwiTE9HR0VEX09VVCIsInVzZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvYXBpL3VzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNwb25zZSwgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IGdldEFwaVRva2VuIH0gZnJvbSAnQHZlcmRhY2Npby9hdXRoJztcbmltcG9ydCB7IGNyZWF0ZVJlbW90ZVVzZXIgfSBmcm9tICdAdmVyZGFjY2lvL2NvbmZpZyc7XG5pbXBvcnQgeyB2YWxpZGF0aW9uVXRpbHMgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgcmF0ZUxpbWl0IH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB0eXBlIHsgQ29uZmlnLCBSZW1vdGVVc2VyIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgeyBnZXRBdXRoZW50aWNhdGVkTWVzc2FnZSB9IGZyb20gJ0B2ZXJkYWNjaW8vdXRpbHMnO1xuXG5pbXBvcnQgdHlwZSBBdXRoIGZyb20gJy4uLy4uLy4uL2xpYi9hdXRoJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgQVBJX01FU1NBR0UsIEhFQURFUlMsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvbG9nZ2VyJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAocm91dGU6IFJvdXRlciwgYXV0aDogQXV0aCwgY29uZmlnOiBDb25maWcpOiB2b2lkIHtcbiAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gIGNvbnN0IHVzZXJSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG4gIHVzZXJSb3V0ZXIuZ2V0KFxuICAgICcvLS91c2VyLzpvcmdfY291Y2hkYl91c2VyJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5PSyk7XG4gICAgICBuZXh0KHtcbiAgICAgICAgb2s6IGdldEF1dGhlbnRpY2F0ZWRNZXNzYWdlKHJlcS5yZW1vdGVfdXNlci5uYW1lKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICB1c2VyUm91dGVyLnB1dChcbiAgICAnLy0vdXNlci86b3JnX2NvdWNoZGJfdXNlci86X3Jldj8vOnJldmlzaW9uPycsXG4gICAgcmF0ZUxpbWl0KGNvbmZpZz8udXNlclJhdGVMaW1pdCksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgICAgY29uc3QgcmVtb3RlTmFtZSA9IHJlcS5yZW1vdGVfdXNlci5uYW1lO1xuXG4gICAgICBpZiAoXy5pc05pbChyZW1vdGVOYW1lKSA9PT0gZmFsc2UgJiYgXy5pc05pbChuYW1lKSA9PT0gZmFsc2UgJiYgcmVtb3RlTmFtZSA9PT0gbmFtZSkge1xuICAgICAgICBhdXRoLmF1dGhlbnRpY2F0ZShcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGNhbGxiYWNrQXV0aGVudGljYXRlKGVyciwgdXNlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgeyBuYW1lLCBlcnIgfSxcbiAgICAgICAgICAgICAgICAnYXV0aGVudGljYXRpbmcgZm9yIHVzZXIgQHt1c2VybmFtZX0gZmFpbGVkLiBFcnJvcjogQHtlcnIubWVzc2FnZX0nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiBuZXh0KFxuICAgICAgICAgICAgICAgIEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLlVOQVVUSE9SSVpFRCwgQVBJX0VSUk9SLkJBRF9VU0VSTkFNRV9QQVNTV09SRClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcmVzdG9yZWRSZW1vdGVVc2VyOiBSZW1vdGVVc2VyID0gY3JlYXRlUmVtb3RlVXNlcihuYW1lLCB1c2VyPy5ncm91cHMgPz8gW10pO1xuICAgICAgICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBnZXRBcGlUb2tlbihhdXRoLCBjb25maWcsIHJlc3RvcmVkUmVtb3RlVXNlciwgcGFzc3dvcmQpO1xuXG4gICAgICAgICAgICByZXMuc3RhdHVzKEhUVFBfU1RBVFVTLkNSRUFURUQpO1xuICAgICAgICAgICAgcmVzLnNldChIRUFERVJTLkNBQ0hFX0NPTlRST0wsICduby1jYWNoZSwgbm8tc3RvcmUnKTtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICAgICAgb2s6IGdldEF1dGhlbnRpY2F0ZWRNZXNzYWdlKHJlcS5yZW1vdGVfdXNlci5uYW1lKSxcbiAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodmFsaWRhdGlvblV0aWxzLnZhbGlkYXRlUGFzc3dvcmQocGFzc3dvcmQpID09PSBmYWxzZSkge1xuICAgICAgICAgIHJldHVybiBuZXh0KEVycm9yQ29kZS5nZXRDb2RlKEhUVFBfU1RBVFVTLkJBRF9SRVFVRVNULCBBUElfRVJST1IuUEFTU1dPUkRfU0hPUlQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF1dGguYWRkX3VzZXIobmFtZSwgcGFzc3dvcmQsIGFzeW5jIGZ1bmN0aW9uIChlcnIsIHVzZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICBpZiAoZXJyLnN0YXR1cyA+PSBIVFRQX1NUQVRVUy5CQURfUkVRVUVTVCAmJiBlcnIuc3RhdHVzIDwgSFRUUF9TVEFUVVMuSU5URVJOQUxfRVJST1IpIHtcbiAgICAgICAgICAgICAgLy8gV2l0aCBucG0gcmVnaXN0ZXJpbmcgaXMgdGhlIHNhbWUgYXMgbG9nZ2luZyBpbixcbiAgICAgICAgICAgICAgLy8gYW5kIG5wbSBhY2NlcHRzIG9ubHkgYW4gNDA5IGVycm9yLlxuICAgICAgICAgICAgICAvLyBTbywgY2hhbmdpbmcgc3RhdHVzIGNvZGUgaGVyZS5cbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgICAgICAgRXJyb3JDb2RlLmdldENvZGUoZXJyLnN0YXR1cywgZXJyLm1lc3NhZ2UpIHx8IEVycm9yQ29kZS5nZXRDb25mbGljdChlcnIubWVzc2FnZSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZXh0KGVycik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgdG9rZW4gPVxuICAgICAgICAgICAgbmFtZSAmJiBwYXNzd29yZFxuICAgICAgICAgICAgICA/IGF3YWl0IGdldEFwaVRva2VuKGF1dGgsIGNvbmZpZywgdXNlciBhcyBSZW1vdGVVc2VyLCBwYXNzd29yZClcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgICByZXEucmVtb3RlX3VzZXIgPSB1c2VyO1xuICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICAgICAgcmVzLnNldChIRUFERVJTLkNBQ0hFX0NPTlRST0wsICduby1jYWNoZSwgbm8tc3RvcmUnKTtcbiAgICAgICAgICByZXR1cm4gbmV4dCh7XG4gICAgICAgICAgICBvazogYHVzZXIgJyR7cmVxLmJvZHkubmFtZX0nIGNyZWF0ZWRgLFxuICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgKTtcblxuICB1c2VyUm91dGVyLmRlbGV0ZShcbiAgICAnLy0vdXNlci90b2tlbi8qJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5PSyk7XG4gICAgICBuZXh0KHtcbiAgICAgICAgb2s6IEFQSV9NRVNTQUdFLkxPR0dFRF9PVVQsXG4gICAgICB9KTtcbiAgICB9XG4gICk7XG5cbiAgcm91dGUudXNlKHVzZXJSb3V0ZXIpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFMLE9BQUE7QUFFQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFHQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxPQUFBLEdBQUFULE9BQUE7QUFBK0MsU0FBQUQsdUJBQUFXLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVB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
84
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2xvZGFzaCIsIl9hdXRoIiwiX2NvbmZpZyIsIl9jb3JlIiwiX21pZGRsZXdhcmUiLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2xvZ2dlciIsIl91dGlsczIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmYXVsdCIsInJvdXRlIiwiYXV0aCIsImNvbmZpZyIsInVzZXJSb3V0ZXIiLCJleHByZXNzIiwiUm91dGVyIiwiZ2V0IiwicmF0ZUxpbWl0IiwidXNlclJhdGVMaW1pdCIsInJlcSIsInJlcyIsIm5leHQiLCJzdGF0dXMiLCJIVFRQX1NUQVRVUyIsIk9LIiwib2siLCJnZXRBdXRoZW50aWNhdGVkTWVzc2FnZSIsInJlbW90ZV91c2VyIiwibmFtZSIsInB1dCIsInBhc3N3b3JkIiwiYm9keSIsInJlbW90ZU5hbWUiLCJfIiwiaXNOaWwiLCJhdXRoZW50aWNhdGUiLCJjYWxsYmFja0F1dGhlbnRpY2F0ZSIsImVyciIsInVzZXIiLCJsb2dnZXIiLCJlcnJvciIsIkVycm9yQ29kZSIsImdldENvZGUiLCJVTkFVVEhPUklaRUQiLCJBUElfRVJST1IiLCJCQURfVVNFUk5BTUVfUEFTU1dPUkQiLCJyZXN0b3JlZFJlbW90ZVVzZXIiLCJjcmVhdGVSZW1vdGVVc2VyIiwiZ3JvdXBzIiwidG9rZW4iLCJnZXRBcGlUb2tlbiIsIkNSRUFURUQiLCJzZXQiLCJIRUFERVJTIiwiQ0FDSEVfQ09OVFJPTCIsInZhbGlkYXRpb25VdGlscyIsInZhbGlkYXRlUGFzc3dvcmQiLCJCQURfUkVRVUVTVCIsIlBBU1NXT1JEX1NIT1JUIiwiYWRkX3VzZXIiLCJJTlRFUk5BTF9FUlJPUiIsIm1lc3NhZ2UiLCJnZXRDb25mbGljdCIsInVuZGVmaW5lZCIsImRlbGV0ZSIsIkFQSV9NRVNTQUdFIiwiTE9HR0VEX09VVCIsInVzZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvZW5kcG9pbnQvYXBpL3VzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXNwb25zZSwgUm91dGVyIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IGdldEFwaVRva2VuIH0gZnJvbSAnQHZlcmRhY2Npby9hdXRoJztcbmltcG9ydCB7IGNyZWF0ZVJlbW90ZVVzZXIgfSBmcm9tICdAdmVyZGFjY2lvL2NvbmZpZyc7XG5pbXBvcnQgeyB2YWxpZGF0aW9uVXRpbHMgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgcmF0ZUxpbWl0IH0gZnJvbSAnQHZlcmRhY2Npby9taWRkbGV3YXJlJztcbmltcG9ydCB0eXBlIHsgQ29uZmlnLCBSZW1vdGVVc2VyIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgeyBnZXRBdXRoZW50aWNhdGVkTWVzc2FnZSB9IGZyb20gJ0B2ZXJkYWNjaW8vdXRpbHMnO1xuXG5pbXBvcnQgdHlwZSBBdXRoIGZyb20gJy4uLy4uLy4uL2xpYi9hdXRoJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgQVBJX01FU1NBR0UsIEhFQURFUlMsIEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvbG9nZ2VyJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uLy4uLy4uL2xpYi91dGlscyc7XG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAocm91dGU6IFJvdXRlciwgYXV0aDogQXV0aCwgY29uZmlnOiBDb25maWcpOiB2b2lkIHtcbiAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gIGNvbnN0IHVzZXJSb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG4gIHVzZXJSb3V0ZXIuZ2V0KFxuICAgICcvLS91c2VyLzpvcmdfY291Y2hkYl91c2VyJyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5PSyk7XG4gICAgICBuZXh0KHtcbiAgICAgICAgb2s6IGdldEF1dGhlbnRpY2F0ZWRNZXNzYWdlKHJlcS5yZW1vdGVfdXNlci5uYW1lKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgKTtcblxuICB1c2VyUm91dGVyLnB1dChcbiAgICAnLy0vdXNlci86b3JnX2NvdWNoZGJfdXNlcnsvOl9yZXZ9ey86cmV2aXNpb259JyxcbiAgICByYXRlTGltaXQoY29uZmlnPy51c2VyUmF0ZUxpbWl0KSxcbiAgICBmdW5jdGlvbiAocmVxOiAkUmVxdWVzdEV4dGVuZCwgcmVzOiBSZXNwb25zZSwgbmV4dDogJE5leHRGdW5jdGlvblZlcik6IHZvaWQge1xuICAgICAgY29uc3QgeyBuYW1lLCBwYXNzd29yZCB9ID0gcmVxLmJvZHk7XG4gICAgICBjb25zdCByZW1vdGVOYW1lID0gcmVxLnJlbW90ZV91c2VyLm5hbWU7XG5cbiAgICAgIGlmIChfLmlzTmlsKHJlbW90ZU5hbWUpID09PSBmYWxzZSAmJiBfLmlzTmlsKG5hbWUpID09PSBmYWxzZSAmJiByZW1vdGVOYW1lID09PSBuYW1lKSB7XG4gICAgICAgIGF1dGguYXV0aGVudGljYXRlKFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgYXN5bmMgZnVuY3Rpb24gY2FsbGJhY2tBdXRoZW50aWNhdGUoZXJyLCB1c2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgICAgICB7IG5hbWUsIGVyciB9LFxuICAgICAgICAgICAgICAgICdhdXRoZW50aWNhdGluZyBmb3IgdXNlciBAe3VzZXJuYW1lfSBmYWlsZWQuIEVycm9yOiBAe2Vyci5tZXNzYWdlfSdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoXG4gICAgICAgICAgICAgICAgRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuVU5BVVRIT1JJWkVELCBBUElfRVJST1IuQkFEX1VTRVJOQU1FX1BBU1NXT1JEKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZXN0b3JlZFJlbW90ZVVzZXI6IFJlbW90ZVVzZXIgPSBjcmVhdGVSZW1vdGVVc2VyKG5hbWUsIHVzZXI/Lmdyb3VwcyA/PyBbXSk7XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IGdldEFwaVRva2VuKGF1dGgsIGNvbmZpZywgcmVzdG9yZWRSZW1vdGVVc2VyLCBwYXNzd29yZCk7XG5cbiAgICAgICAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuQ1JFQVRFRCk7XG4gICAgICAgICAgICByZXMuc2V0KEhFQURFUlMuQ0FDSEVfQ09OVFJPTCwgJ25vLWNhY2hlLCBuby1zdG9yZScpO1xuICAgICAgICAgICAgcmV0dXJuIG5leHQoe1xuICAgICAgICAgICAgICBvazogZ2V0QXV0aGVudGljYXRlZE1lc3NhZ2UocmVxLnJlbW90ZV91c2VyLm5hbWUpLFxuICAgICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh2YWxpZGF0aW9uVXRpbHMudmFsaWRhdGVQYXNzd29yZChwYXNzd29yZCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgcmV0dXJuIG5leHQoRXJyb3JDb2RlLmdldENvZGUoSFRUUF9TVEFUVVMuQkFEX1JFUVVFU1QsIEFQSV9FUlJPUi5QQVNTV09SRF9TSE9SVCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXV0aC5hZGRfdXNlcihuYW1lLCBwYXNzd29yZCwgYXN5bmMgZnVuY3Rpb24gKGVyciwgdXNlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID49IEhUVFBfU1RBVFVTLkJBRF9SRVFVRVNUICYmIGVyci5zdGF0dXMgPCBIVFRQX1NUQVRVUy5JTlRFUk5BTF9FUlJPUikge1xuICAgICAgICAgICAgICAvLyBXaXRoIG5wbSByZWdpc3RlcmluZyBpcyB0aGUgc2FtZSBhcyBsb2dnaW5nIGluLFxuICAgICAgICAgICAgICAvLyBhbmQgbnBtIGFjY2VwdHMgb25seSBhbiA0MDkgZXJyb3IuXG4gICAgICAgICAgICAgIC8vIFNvLCBjaGFuZ2luZyBzdGF0dXMgY29kZSBoZXJlLlxuICAgICAgICAgICAgICByZXR1cm4gbmV4dChcbiAgICAgICAgICAgICAgICBFcnJvckNvZGUuZ2V0Q29kZShlcnIuc3RhdHVzLCBlcnIubWVzc2FnZSkgfHwgRXJyb3JDb2RlLmdldENvbmZsaWN0KGVyci5tZXNzYWdlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5leHQoZXJyKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB0b2tlbiA9XG4gICAgICAgICAgICBuYW1lICYmIHBhc3N3b3JkXG4gICAgICAgICAgICAgID8gYXdhaXQgZ2V0QXBpVG9rZW4oYXV0aCwgY29uZmlnLCB1c2VyIGFzIFJlbW90ZVVzZXIsIHBhc3N3b3JkKVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgICAgIHJlcS5yZW1vdGVfdXNlciA9IHVzZXI7XG4gICAgICAgICAgcmVzLnN0YXR1cyhIVFRQX1NUQVRVUy5DUkVBVEVEKTtcbiAgICAgICAgICByZXMuc2V0KEhFQURFUlMuQ0FDSEVfQ09OVFJPTCwgJ25vLWNhY2hlLCBuby1zdG9yZScpO1xuICAgICAgICAgIHJldHVybiBuZXh0KHtcbiAgICAgICAgICAgIG9rOiBgdXNlciAnJHtyZXEuYm9keS5uYW1lfScgY3JlYXRlZGAsXG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIHVzZXJSb3V0ZXIuZGVsZXRlKFxuICAgICcvLS91c2VyL3Rva2VuLyp0b2tlbicsXG4gICAgcmF0ZUxpbWl0KGNvbmZpZz8udXNlclJhdGVMaW1pdCksXG4gICAgZnVuY3Rpb24gKHJlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogUmVzcG9uc2UsIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpOiB2b2lkIHtcbiAgICAgIHJlcy5zdGF0dXMoSFRUUF9TVEFUVVMuT0spO1xuICAgICAgbmV4dCh7XG4gICAgICAgIG9rOiBBUElfTUVTU0FHRS5MT0dHRURfT1VULFxuICAgICAgfSk7XG4gICAgfVxuICApO1xuXG4gIHJvdXRlLnVzZSh1c2VyUm91dGVyKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsUUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBR0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsT0FBQSxHQUFBVCxPQUFBO0FBQStDLFNBQUFELHVCQUFBVyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUs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
@@ -24,7 +24,7 @@ var _endpoint = _interopRequireDefault(require("./endpoint"));
24
24
  var _middleware2 = require("./middleware");
25
25
  var _web = _interopRequireDefault(require("./web"));
26
26
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
27
- const version = "7.0.0-beta.3" || 'dev';
27
+ const version = "7.0.0-beta.4" || 'dev';
28
28
  const defineAPI = async function (config, storage) {
29
29
  const auth = new _auth.Auth(config, _logger.logger, {
30
30
  legacyMergeConfigs: true
@@ -88,7 +88,7 @@ const defineAPI = async function (config, storage) {
88
88
  next(_utils.ErrorCode.getNotFound(_constants.API_ERROR.WEB_DISABLED));
89
89
  });
90
90
  }
91
- app.get('/*', function (_, __, next) {
91
+ app.get('/*path', function (_, __, next) {
92
92
  next(_utils.ErrorCode.getNotFound(_constants.API_ERROR.FILE_NOT_FOUND));
93
93
  });
94
94
  app.use((0, _middleware.handleError)(_logger.logger));
@@ -102,4 +102,4 @@ var _default = exports.default = async function _default(configHash) {
102
102
  await storage.init(config);
103
103
  return await defineAPI(config, storage);
104
104
  };
105
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tcHJlc3Npb24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jb3JzIiwiX2V4cHJlc3MiLCJfbG9kYXNoIiwiX2F1dGgiLCJfY29uZmlnIiwiX2NvcmUiLCJfbG9hZGVycyIsIl9taWRkbGV3YXJlIiwiX3NlYXJjaEluZGV4ZXIiLCJfY29uZmlnMiIsIl9jb25zdGFudHMiLCJfbG9nZ2VyIiwiX3N0b3JhZ2UiLCJfdXRpbHMiLCJfZGVidWciLCJfZW5kcG9pbnQiLCJfbWlkZGxld2FyZTIiLCJfd2ViIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidmVyc2lvbiIsImRlZmluZUFQSSIsImNvbmZpZyIsInN0b3JhZ2UiLCJhdXRoIiwiQXV0aCIsImxvZ2dlciIsImxlZ2FjeU1lcmdlQ29uZmlncyIsImluaXQiLCJhcHAiLCJleHByZXNzIiwiU2VhcmNoTWVtb3J5SW5kZXhlciIsImNvbmZpZ3VyZVN0b3JhZ2UiLCJzZXQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJzZXJ2ZXIiLCJ0cnVzdFByb3h5IiwidXNlIiwiY29ycyIsImxvZyIsImVycm9yUmVwb3J0aW5nTWlkZGxld2FyZSIsInVzZXJfYWdlbnQiLCJfcmVxIiwicmVzIiwibmV4dCIsInNldEhlYWRlciIsImdldFVzZXJBZ2VudCIsImRpc2FibGUiLCJjb21wcmVzc2lvbiIsImdldCIsInNlcnZlRmF2aWNvbiIsImhvb2tEZWJ1ZyIsImNvbmZpZ1BhdGgiLCJwbHVnaW5zIiwiYXN5bmNMb2FkUGx1Z2luIiwibWlkZGxld2FyZXMiLCJwbHVnaW4iLCJyZWdpc3Rlcl9taWRkbGV3YXJlcyIsInNlcnZlclNldHRpbmdzIiwicGx1Z2luUHJlZml4IiwiUExVR0lOX0NBVEVHT1JZIiwiTUlERExFV0FSRSIsImZvckVhY2giLCJhcGlFbmRwb2ludCIsIl8iLCJsb2NhbHMiLCJhcHBfdmVyc2lvbiIsIm1pZGRsZXdhcmUiLCJ3ZWJNaWRkbGV3YXJlIiwiX18iLCJFcnJvckNvZGUiLCJnZXROb3RGb3VuZCIsIkFQSV9FUlJPUiIsIldFQl9ESVNBQkxFRCIsIkZJTEVfTk9UX0ZPVU5EIiwiaGFuZGxlRXJyb3IiLCJmaW5hbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImNvbmZpZ0hhc2giLCJBcHBDb25maWciLCJjbG9uZURlZXAiLCJTdG9yYWdlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tcHJlc3Npb24gZnJvbSAnY29tcHJlc3Npb24nO1xuaW1wb3J0IGNvcnMgZnJvbSAnY29ycyc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEF1dGggfSBmcm9tICdAdmVyZGFjY2lvL2F1dGgnO1xuaW1wb3J0IHsgZ2V0VXNlckFnZW50IH0gZnJvbSAnQHZlcmRhY2Npby9jb25maWcnO1xuaW1wb3J0IHR5cGUgeyBwbHVnaW5VdGlscyB9IGZyb20gJ0B2ZXJkYWNjaW8vY29yZSc7XG5pbXBvcnQgeyBQTFVHSU5fQ0FURUdPUlkgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgYXN5bmNMb2FkUGx1Z2luIH0gZnJvbSAnQHZlcmRhY2Npby9sb2FkZXJzJztcbmltcG9ydCB7IGVycm9yUmVwb3J0aW5nTWlkZGxld2FyZSwgZmluYWwsIGhhbmRsZUVycm9yLCBsb2cgfSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHsgU2VhcmNoTWVtb3J5SW5kZXhlciB9IGZyb20gJ0B2ZXJkYWNjaW8vc2VhcmNoLWluZGV4ZXInO1xuaW1wb3J0IHR5cGUgeyBDb25maWdZYW1sLCBDb25maWcgYXMgSUNvbmZpZyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgQXBwQ29uZmlnIGZyb20gJy4uL2xpYi9jb25maWcnO1xuaW1wb3J0IHsgQVBJX0VSUk9SIH0gZnJvbSAnLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi9saWIvbG9nZ2VyJztcbmltcG9ydCBTdG9yYWdlIGZyb20gJy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kLCAkUmVzcG9uc2VFeHRlbmQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgaG9va0RlYnVnIGZyb20gJy4vZGVidWcnO1xuaW1wb3J0IGFwaUVuZHBvaW50IGZyb20gJy4vZW5kcG9pbnQnO1xuaW1wb3J0IHsgc2VydmVGYXZpY29uIH0gZnJvbSAnLi9taWRkbGV3YXJlJztcbmltcG9ydCB3ZWJNaWRkbGV3YXJlIGZyb20gJy4vd2ViJztcblxuY29uc3QgdmVyc2lvbiA9IHByb2Nlc3MuZW52LlBBQ0tBR0VfVkVSU0lPTiB8fCAnZGV2JztcblxuY29uc3QgZGVmaW5lQVBJID0gYXN5bmMgZnVuY3Rpb24gKGNvbmZpZzogSUNvbmZpZywgc3RvcmFnZTogU3RvcmFnZSk6IFByb21pc2U8ZXhwcmVzcy5BcHBsaWNhdGlvbj4ge1xuICBjb25zdCBhdXRoID0gbmV3IEF1dGgoY29uZmlnLCBsb2dnZXIsIHsgbGVnYWN5TWVyZ2VDb25maWdzOiB0cnVlIH0pO1xuICBhd2FpdCBhdXRoLmluaXQoKTtcbiAgY29uc3QgYXBwOiBBcHBsaWNhdGlvbiA9IGV4cHJlc3MoKTtcbiAgU2VhcmNoTWVtb3J5SW5kZXhlci5jb25maWd1cmVTdG9yYWdlKHN0b3JhZ2UpO1xuICBhd2FpdCBTZWFyY2hNZW1vcnlJbmRleGVyLmluaXQobG9nZ2VyKTtcbiAgLy8gcnVuIGluIHByb2R1Y3Rpb24gbW9kZSBieSBkZWZhdWx0LCBqdXN0IGluIGNhc2VcbiAgLy8gaXQgc2hvdWxkbid0IG1ha2UgYW55IGRpZmZlcmVuY2UgYW55d2F5XG4gIGFwcC5zZXQoJ2VudicsIHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8ICdwcm9kdWN0aW9uJyk7XG5cbiAgLy8gQWxsb3cgYHJlcS5pcGAgdG8gcmVzb2x2ZSBwcm9wZXJseSB3aGVuIFZlcmRhY2NpbyBpcyBiZWhpbmQgYSBwcm94eSBvciBsb2FkLWJhbGFuY2VyXG4gIC8vIFNlZTogaHR0cHM6Ly9leHByZXNzanMuY29tL2VuL2d1aWRlL2JlaGluZC1wcm94aWVzLmh0bWxcbiAgaWYgKGNvbmZpZy5zZXJ2ZXI/LnRydXN0UHJveHkpIHtcbiAgICBhcHAuc2V0KCd0cnVzdCBwcm94eScsIGNvbmZpZy5zZXJ2ZXIudHJ1c3RQcm94eSk7XG4gIH1cblxuICBhcHAudXNlKGNvcnMoKSk7XG5cbiAgLy8gLy8gUm91dGVyIHNldHVwXG4gIGFwcC51c2UobG9nKGxvZ2dlcikpO1xuICBhcHAudXNlKGVycm9yUmVwb3J0aW5nTWlkZGxld2FyZShsb2dnZXIpKTtcbiAgaWYgKGNvbmZpZy51c2VyX2FnZW50KSB7XG4gICAgYXBwLnVzZShmdW5jdGlvbiAoX3JlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICByZXMuc2V0SGVhZGVyKCdYLVBvd2VyZWQtQnknLCBnZXRVc2VyQWdlbnQoY29uZmlnLnVzZXJfYWdlbnQpKTtcbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBhcHAuZGlzYWJsZSgneC1wb3dlcmVkLWJ5Jyk7XG4gIH1cblxuICBhcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuXG4gIGFwcC5nZXQoJy8tL3N0YXRpYy9mYXZpY29uLmljbycsIHNlcnZlRmF2aWNvbihjb25maWcpKTtcblxuICAvLyBIb29rIGZvciB0ZXN0cyBvbmx5XG4gIGlmIChjb25maWcuX2RlYnVnKSB7XG4gICAgaG9va0RlYnVnKGFwcCwgY29uZmlnLmNvbmZpZ1BhdGgpO1xuICB9XG5cbiAgY29uc3QgcGx1Z2luczogcGx1Z2luVXRpbHMuRXhwcmVzc01pZGRsZXdhcmU8SUNvbmZpZywgJycsIEF1dGg+W10gPSBhd2FpdCBhc3luY0xvYWRQbHVnaW4oXG4gICAgY29uZmlnLm1pZGRsZXdhcmVzLFxuICAgIHtcbiAgICAgIGNvbmZpZyxcbiAgICAgIGxvZ2dlcixcbiAgICB9LFxuICAgIGZ1bmN0aW9uIChwbHVnaW4pIHtcbiAgICAgIHJldHVybiB0eXBlb2YgcGx1Z2luLnJlZ2lzdGVyX21pZGRsZXdhcmVzICE9PSAndW5kZWZpbmVkJztcbiAgICB9LFxuICAgIHRydWUsXG4gICAgY29uZmlnPy5zZXJ2ZXJTZXR0aW5ncz8ucGx1Z2luUHJlZml4ID8/ICd2ZXJkYWNjaW8nLFxuICAgIFBMVUdJTl9DQVRFR09SWS5NSURETEVXQVJFXG4gICk7XG5cbiAgcGx1Z2lucy5mb3JFYWNoKChwbHVnaW46IGFueSkgPT4ge1xuICAgIHBsdWdpbi5yZWdpc3Rlcl9taWRkbGV3YXJlcyhhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICB9KTtcblxuICAvLyAvLyBGb3IgIG5wbSByZXF1ZXN0XG4gIGFwcC51c2UoYXBpRW5kcG9pbnQoY29uZmlnLCBhdXRoLCBzdG9yYWdlKSk7XG5cbiAgLy8gRm9yIFdlYlVJICYgV2ViVUkgQVBJXG4gIGlmIChfLmdldChjb25maWcsICd3ZWIuZW5hYmxlJywgdHJ1ZSkpIHtcbiAgICBhcHAudXNlKChfcmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgIHJlcy5sb2NhbHMuYXBwX3ZlcnNpb24gPSB2ZXJzaW9uID8/ICcnO1xuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IG1pZGRsZXdhcmUgPSBhd2FpdCB3ZWJNaWRkbGV3YXJlKGNvbmZpZywgYXV0aCwgc3RvcmFnZSwgbG9nZ2VyKTtcbiAgICBhcHAudXNlKG1pZGRsZXdhcmUpO1xuICB9IGVsc2Uge1xuICAgIGFwcC5nZXQoJy8nLCBmdW5jdGlvbiAoXywgX18sIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICAgIG5leHQoRXJyb3JDb2RlLmdldE5vdEZvdW5kKEFQSV9FUlJPUi5XRUJfRElTQUJMRUQpKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFwcC5nZXQoJy8qJywgZnVuY3Rpb24gKF8sIF9fLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKSB7XG4gICAgbmV4dChFcnJvckNvZGUuZ2V0Tm90Rm91bmQoQVBJX0VSUk9SLkZJTEVfTk9UX0ZPVU5EKSk7XG4gIH0pO1xuICBhcHAudXNlKGhhbmRsZUVycm9yKGxvZ2dlcikpO1xuICBhcHAudXNlKGZpbmFsKTtcblxuICByZXR1cm4gYXBwO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgKGFzeW5jIGZ1bmN0aW9uIChjb25maWdIYXNoOiBDb25maWdZYW1sKTogUHJvbWlzZTxleHByZXNzLkFwcGxpY2F0aW9uPiB7XG4gIGNvbnN0IGNvbmZpZzogSUNvbmZpZyA9IG5ldyBBcHBDb25maWcoXy5jbG9uZURlZXAoY29uZmlnSGFzaCkpO1xuXG4gIGNvbnN0IHN0b3JhZ2UgPSBuZXcgU3RvcmFnZShjb25maWcpO1xuICAvLyB3YWl0cyB1bnRpbCBpbml0IGNhbGxzIGhhdmUgYmVlbiBpbml0aWFsaXplZFxuICBhd2FpdCBzdG9yYWdlLmluaXQoY29uZmlnKTtcbiAgcmV0dXJuIGF3YWl0IGRlZmluZUFQSShjb25maWcsIHN0b3JhZ2UpO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLFFBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLEtBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUVBLElBQUFNLEtBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGNBQUEsR0FBQVQsT0FBQTtBQUdBLElBQUFVLFFBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLFVBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLE9BQUEsR0FBQVosT0FBQTtBQUNBLElBQUFhLFFBQUEsR0FBQWQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFjLE1BQUEsR0FBQWQsT0FBQTtBQUVBLElBQUFlLE1BQUEsR0FBQWhCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBZ0IsU0FBQSxHQUFBakIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFpQixZQUFBLEdBQUFqQixPQUFBO0FBQ0EsSUFBQWtCLElBQUEsR0FBQW5CLHNCQUFBLENBQUFDLE9BQUE7QUFBa0MsU0FBQUQsdUJBQUFvQixDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRWxDLE1BQU1HLE9BQU8sR0FBRyxrQkFBK0IsS0FBSztBQUVwRCxNQUFNQyxTQUFTLEdBQUcsZUFBQUEsQ0FBZ0JDLE1BQWUsRUFBRUMsT0FBZ0IsRUFBZ0M7RUFDakcsTUFBTUMsSUFBSSxHQUFHLElBQUlDLFVBQUksQ0FBQ0gsTUFBTSxFQUFFSSxjQUFNLEVBQUU7SUFBRUMsa0JBQWtCLEVBQUU7RUFBSyxDQUFDLENBQUM7RUFDbkUsTUFBTUgsSUFBSSxDQUFDSSxJQUFJLENBQUMsQ0FBQztFQUNqQixNQUFNQyxHQUFnQixHQUFHLElBQUFDLGdCQUFPLEVBQUMsQ0FBQztFQUNsQ0Msa0NBQW1CLENBQUNDLGdCQUFnQixDQUFDVCxPQUFPLENBQUM7RUFDN0MsTUFBTVEsa0NBQW1CLENBQUNILElBQUksQ0FBQ0YsY0FBTSxDQUFDO0VBQ3RDO0VBQ0E7RUFDQUcsR0FBRyxDQUFDSSxHQUFHLENBQUMsS0FBSyxFQUFFQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxJQUFJLFlBQVksQ0FBQzs7RUFFcEQ7RUFDQTtFQUNBLElBQUlkLE1BQU0sQ0FBQ2UsTUFBTSxFQUFFQyxVQUFVLEVBQUU7SUFDN0JULEdBQUcsQ0FBQ0ksR0FBRyxDQUFDLGFBQWEsRUFBRVgsTUFBTSxDQUFDZSxNQUFNLENBQUNDLFVBQVUsQ0FBQztFQUNsRDtFQUVBVCxHQUFHLENBQUNVLEdBQUcsQ0FBQyxJQUFBQyxhQUFJLEVBQUMsQ0FBQyxDQUFDOztFQUVmO0VBQ0FYLEdBQUcsQ0FBQ1UsR0FBRyxDQUFDLElBQUFFLGVBQUcsRUFBQ2YsY0FBTSxDQUFDLENBQUM7RUFDcEJHLEdBQUcsQ0FBQ1UsR0FBRyxDQUFDLElBQUFHLG9DQUF3QixFQUFDaEIsY0FBTSxDQUFDLENBQUM7RUFDekMsSUFBSUosTUFBTSxDQUFDcUIsVUFBVSxFQUFFO0lBQ3JCZCxHQUFHLENBQUNVLEdBQUcsQ0FBQyxVQUFVSyxJQUFvQixFQUFFQyxHQUFvQixFQUFFQyxJQUFzQixFQUFRO01BQzFGRCxHQUFHLENBQUNFLFNBQVMsQ0FBQyxjQUFjLEVBQUUsSUFBQUMsb0JBQVksRUFBQzFCLE1BQU0sQ0FBQ3FCLFVBQVUsQ0FBQyxDQUFDO01BQzlERyxJQUFJLENBQUMsQ0FBQztJQUNSLENBQUMsQ0FBQztFQUNKLENBQUMsTUFBTTtJQUNMakIsR0FBRyxDQUFDb0IsT0FBTyxDQUFDLGNBQWMsQ0FBQztFQUM3QjtFQUVBcEIsR0FBRyxDQUFDVSxHQUFHLENBQUMsSUFBQVcsb0JBQVcsRUFBQyxDQUFDLENBQUM7RUFFdEJyQixHQUFHLENBQUNzQixHQUFHLENBQUMsdUJBQXVCLEVBQUUsSUFBQUMseUJBQVksRUFBQzlCLE1BQU0sQ0FBQyxDQUFDOztFQUV0RDtFQUNBLElBQUlBLE1BQU0sQ0FBQ1QsTUFBTSxFQUFFO0lBQ2pCLElBQUF3QyxjQUFTLEVBQUN4QixHQUFHLEVBQUVQLE1BQU0sQ0FBQ2dDLFVBQVUsQ0FBQztFQUNuQztFQUVBLE1BQU1DLE9BQTJELEdBQUcsTUFBTSxJQUFBQyx3QkFBZSxFQUN2RmxDLE1BQU0sQ0FBQ21DLFdBQVcsRUFDbEI7SUFDRW5DLE1BQU07SUFDTkksTUFBTSxFQUFOQTtFQUNGLENBQUMsRUFDRCxVQUFVZ0MsTUFBTSxFQUFFO0lBQ2hCLE9BQU8sT0FBT0EsTUFBTSxDQUFDQyxvQkFBb0IsS0FBSyxXQUFXO0VBQzNELENBQUMsRUFDRCxJQUFJLEVBQ0pyQyxNQUFNLEVBQUVzQyxjQUFjLEVBQUVDLFlBQVksSUFBSSxXQUFXLEVBQ25EQyxxQkFBZSxDQUFDQyxVQUNsQixDQUFDO0VBRURSLE9BQU8sQ0FBQ1MsT0FBTyxDQUFFTixNQUFXLElBQUs7SUFDL0JBLE1BQU0sQ0FBQ0Msb0JBQW9CLENBQUM5QixHQUFHLEVBQUVMLElBQUksRUFBRUQsT0FBTyxDQUFDO0VBQ2pELENBQUMsQ0FBQzs7RUFFRjtFQUNBTSxHQUFHLENBQUNVLEdBQUcsQ0FBQyxJQUFBMEIsaUJBQVcsRUFBQzNDLE1BQU0sRUFBRUUsSUFBSSxFQUFFRCxPQUFPLENBQUMsQ0FBQzs7RUFFM0M7RUFDQSxJQUFJMkMsZUFBQyxDQUFDZixHQUFHLENBQUM3QixNQUFNLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxFQUFFO0lBQ3JDTyxHQUFHLENBQUNVLEdBQUcsQ0FBQyxDQUFDSyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsSUFBSSxLQUFLO01BQzNCRCxHQUFHLENBQUNzQixNQUFNLENBQUNDLFdBQVcsR0FBR2hELE9BQU8sSUFBSSxFQUFFO01BQ3RDMEIsSUFBSSxDQUFDLENBQUM7SUFDUixDQUFDLENBQUM7SUFDRixNQUFNdUIsVUFBVSxHQUFHLE1BQU0sSUFBQUMsWUFBYSxFQUFDaEQsTUFBTSxFQUFFRSxJQUFJLEVBQUVELE9BQU8sRUFBRUcsY0FBTSxDQUFDO0lBQ3JFRyxHQUFHLENBQUNVLEdBQUcsQ0FBQzhCLFVBQVUsQ0FBQztFQUNyQixDQUFDLE1BQU07SUFDTHhDLEdBQUcsQ0FBQ3NCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVWUsQ0FBQyxFQUFFSyxFQUFFLEVBQUV6QixJQUFzQixFQUFFO01BQ3BEQSxJQUFJLENBQUMwQixnQkFBUyxDQUFDQyxXQUFXLENBQUNDLG9CQUFTLENBQUNDLFlBQVksQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQztFQUNKO0VBRUE5QyxHQUFHLENBQUNzQixHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVVlLENBQUMsRUFBRUssRUFBRSxFQUFFekIsSUFBc0IsRUFBRTtJQUNyREEsSUFBSSxDQUFDMEIsZ0JBQVMsQ0FBQ0MsV0FBVyxDQUFDQyxvQkFBUyxDQUFDRSxjQUFjLENBQUMsQ0FBQztFQUN2RCxDQUFDLENBQUM7RUFDRi9DLEdBQUcsQ0FBQ1UsR0FBRyxDQUFDLElBQUFzQyx1QkFBVyxFQUFDbkQsY0FBTSxDQUFDLENBQUM7RUFDNUJHLEdBQUcsQ0FBQ1UsR0FBRyxDQUFDdUMsaUJBQUssQ0FBQztFQUVkLE9BQU9qRCxHQUFHO0FBQ1osQ0FBQztBQUFDLElBQUFrRCxRQUFBLEdBQUFDLE9BQUEsQ0FBQTdELE9BQUEsR0FFYyxlQUFBNEQsU0FBZ0JFLFVBQXNCLEVBQWdDO0VBQ3BGLE1BQU0zRCxNQUFlLEdBQUcsSUFBSTRELGdCQUFTLENBQUNoQixlQUFDLENBQUNpQixTQUFTLENBQUNGLFVBQVUsQ0FBQyxDQUFDO0VBRTlELE1BQU0xRCxPQUFPLEdBQUcsSUFBSTZELGdCQUFPLENBQUM5RCxNQUFNLENBQUM7RUFDbkM7RUFDQSxNQUFNQyxPQUFPLENBQUNLLElBQUksQ0FBQ04sTUFBTSxDQUFDO0VBQzFCLE9BQU8sTUFBTUQsU0FBUyxDQUFDQyxNQUFNLEVBQUVDLE9BQU8sQ0FBQztBQUN6QyxDQUFDIiwiaWdub3JlTGlzdCI6W119
105
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tcHJlc3Npb24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jb3JzIiwiX2V4cHJlc3MiLCJfbG9kYXNoIiwiX2F1dGgiLCJfY29uZmlnIiwiX2NvcmUiLCJfbG9hZGVycyIsIl9taWRkbGV3YXJlIiwiX3NlYXJjaEluZGV4ZXIiLCJfY29uZmlnMiIsIl9jb25zdGFudHMiLCJfbG9nZ2VyIiwiX3N0b3JhZ2UiLCJfdXRpbHMiLCJfZGVidWciLCJfZW5kcG9pbnQiLCJfbWlkZGxld2FyZTIiLCJfd2ViIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidmVyc2lvbiIsImRlZmluZUFQSSIsImNvbmZpZyIsInN0b3JhZ2UiLCJhdXRoIiwiQXV0aCIsImxvZ2dlciIsImxlZ2FjeU1lcmdlQ29uZmlncyIsImluaXQiLCJhcHAiLCJleHByZXNzIiwiU2VhcmNoTWVtb3J5SW5kZXhlciIsImNvbmZpZ3VyZVN0b3JhZ2UiLCJzZXQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJzZXJ2ZXIiLCJ0cnVzdFByb3h5IiwidXNlIiwiY29ycyIsImxvZyIsImVycm9yUmVwb3J0aW5nTWlkZGxld2FyZSIsInVzZXJfYWdlbnQiLCJfcmVxIiwicmVzIiwibmV4dCIsInNldEhlYWRlciIsImdldFVzZXJBZ2VudCIsImRpc2FibGUiLCJjb21wcmVzc2lvbiIsImdldCIsInNlcnZlRmF2aWNvbiIsImhvb2tEZWJ1ZyIsImNvbmZpZ1BhdGgiLCJwbHVnaW5zIiwiYXN5bmNMb2FkUGx1Z2luIiwibWlkZGxld2FyZXMiLCJwbHVnaW4iLCJyZWdpc3Rlcl9taWRkbGV3YXJlcyIsInNlcnZlclNldHRpbmdzIiwicGx1Z2luUHJlZml4IiwiUExVR0lOX0NBVEVHT1JZIiwiTUlERExFV0FSRSIsImZvckVhY2giLCJhcGlFbmRwb2ludCIsIl8iLCJsb2NhbHMiLCJhcHBfdmVyc2lvbiIsIm1pZGRsZXdhcmUiLCJ3ZWJNaWRkbGV3YXJlIiwiX18iLCJFcnJvckNvZGUiLCJnZXROb3RGb3VuZCIsIkFQSV9FUlJPUiIsIldFQl9ESVNBQkxFRCIsIkZJTEVfTk9UX0ZPVU5EIiwiaGFuZGxlRXJyb3IiLCJmaW5hbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImNvbmZpZ0hhc2giLCJBcHBDb25maWciLCJjbG9uZURlZXAiLCJTdG9yYWdlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tcHJlc3Npb24gZnJvbSAnY29tcHJlc3Npb24nO1xuaW1wb3J0IGNvcnMgZnJvbSAnY29ycyc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEF1dGggfSBmcm9tICdAdmVyZGFjY2lvL2F1dGgnO1xuaW1wb3J0IHsgZ2V0VXNlckFnZW50IH0gZnJvbSAnQHZlcmRhY2Npby9jb25maWcnO1xuaW1wb3J0IHR5cGUgeyBwbHVnaW5VdGlscyB9IGZyb20gJ0B2ZXJkYWNjaW8vY29yZSc7XG5pbXBvcnQgeyBQTFVHSU5fQ0FURUdPUlkgfSBmcm9tICdAdmVyZGFjY2lvL2NvcmUnO1xuaW1wb3J0IHsgYXN5bmNMb2FkUGx1Z2luIH0gZnJvbSAnQHZlcmRhY2Npby9sb2FkZXJzJztcbmltcG9ydCB7IGVycm9yUmVwb3J0aW5nTWlkZGxld2FyZSwgZmluYWwsIGhhbmRsZUVycm9yLCBsb2cgfSBmcm9tICdAdmVyZGFjY2lvL21pZGRsZXdhcmUnO1xuaW1wb3J0IHsgU2VhcmNoTWVtb3J5SW5kZXhlciB9IGZyb20gJ0B2ZXJkYWNjaW8vc2VhcmNoLWluZGV4ZXInO1xuaW1wb3J0IHR5cGUgeyBDb25maWdZYW1sLCBDb25maWcgYXMgSUNvbmZpZyB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgQXBwQ29uZmlnIGZyb20gJy4uL2xpYi9jb25maWcnO1xuaW1wb3J0IHsgQVBJX0VSUk9SIH0gZnJvbSAnLi4vbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi9saWIvbG9nZ2VyJztcbmltcG9ydCBTdG9yYWdlIGZyb20gJy4uL2xpYi9zdG9yYWdlJztcbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5pbXBvcnQgdHlwZSB7ICROZXh0RnVuY3Rpb25WZXIsICRSZXF1ZXN0RXh0ZW5kLCAkUmVzcG9uc2VFeHRlbmQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgaG9va0RlYnVnIGZyb20gJy4vZGVidWcnO1xuaW1wb3J0IGFwaUVuZHBvaW50IGZyb20gJy4vZW5kcG9pbnQnO1xuaW1wb3J0IHsgc2VydmVGYXZpY29uIH0gZnJvbSAnLi9taWRkbGV3YXJlJztcbmltcG9ydCB3ZWJNaWRkbGV3YXJlIGZyb20gJy4vd2ViJztcblxuY29uc3QgdmVyc2lvbiA9IHByb2Nlc3MuZW52LlBBQ0tBR0VfVkVSU0lPTiB8fCAnZGV2JztcblxuY29uc3QgZGVmaW5lQVBJID0gYXN5bmMgZnVuY3Rpb24gKGNvbmZpZzogSUNvbmZpZywgc3RvcmFnZTogU3RvcmFnZSk6IFByb21pc2U8ZXhwcmVzcy5BcHBsaWNhdGlvbj4ge1xuICBjb25zdCBhdXRoID0gbmV3IEF1dGgoY29uZmlnLCBsb2dnZXIsIHsgbGVnYWN5TWVyZ2VDb25maWdzOiB0cnVlIH0pO1xuICBhd2FpdCBhdXRoLmluaXQoKTtcbiAgY29uc3QgYXBwOiBBcHBsaWNhdGlvbiA9IGV4cHJlc3MoKTtcbiAgU2VhcmNoTWVtb3J5SW5kZXhlci5jb25maWd1cmVTdG9yYWdlKHN0b3JhZ2UpO1xuICBhd2FpdCBTZWFyY2hNZW1vcnlJbmRleGVyLmluaXQobG9nZ2VyKTtcbiAgLy8gcnVuIGluIHByb2R1Y3Rpb24gbW9kZSBieSBkZWZhdWx0LCBqdXN0IGluIGNhc2VcbiAgLy8gaXQgc2hvdWxkbid0IG1ha2UgYW55IGRpZmZlcmVuY2UgYW55d2F5XG4gIGFwcC5zZXQoJ2VudicsIHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8ICdwcm9kdWN0aW9uJyk7XG5cbiAgLy8gQWxsb3cgYHJlcS5pcGAgdG8gcmVzb2x2ZSBwcm9wZXJseSB3aGVuIFZlcmRhY2NpbyBpcyBiZWhpbmQgYSBwcm94eSBvciBsb2FkLWJhbGFuY2VyXG4gIC8vIFNlZTogaHR0cHM6Ly9leHByZXNzanMuY29tL2VuL2d1aWRlL2JlaGluZC1wcm94aWVzLmh0bWxcbiAgaWYgKGNvbmZpZy5zZXJ2ZXI/LnRydXN0UHJveHkpIHtcbiAgICBhcHAuc2V0KCd0cnVzdCBwcm94eScsIGNvbmZpZy5zZXJ2ZXIudHJ1c3RQcm94eSk7XG4gIH1cblxuICBhcHAudXNlKGNvcnMoKSk7XG5cbiAgLy8gLy8gUm91dGVyIHNldHVwXG4gIGFwcC51c2UobG9nKGxvZ2dlcikpO1xuICBhcHAudXNlKGVycm9yUmVwb3J0aW5nTWlkZGxld2FyZShsb2dnZXIpKTtcbiAgaWYgKGNvbmZpZy51c2VyX2FnZW50KSB7XG4gICAgYXBwLnVzZShmdW5jdGlvbiAoX3JlcTogJFJlcXVlc3RFeHRlbmQsIHJlczogJFJlc3BvbnNlRXh0ZW5kLCBuZXh0OiAkTmV4dEZ1bmN0aW9uVmVyKTogdm9pZCB7XG4gICAgICByZXMuc2V0SGVhZGVyKCdYLVBvd2VyZWQtQnknLCBnZXRVc2VyQWdlbnQoY29uZmlnLnVzZXJfYWdlbnQpKTtcbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBhcHAuZGlzYWJsZSgneC1wb3dlcmVkLWJ5Jyk7XG4gIH1cblxuICBhcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuXG4gIGFwcC5nZXQoJy8tL3N0YXRpYy9mYXZpY29uLmljbycsIHNlcnZlRmF2aWNvbihjb25maWcpKTtcblxuICAvLyBIb29rIGZvciB0ZXN0cyBvbmx5XG4gIGlmIChjb25maWcuX2RlYnVnKSB7XG4gICAgaG9va0RlYnVnKGFwcCwgY29uZmlnLmNvbmZpZ1BhdGgpO1xuICB9XG5cbiAgY29uc3QgcGx1Z2luczogcGx1Z2luVXRpbHMuRXhwcmVzc01pZGRsZXdhcmU8SUNvbmZpZywgJycsIEF1dGg+W10gPSBhd2FpdCBhc3luY0xvYWRQbHVnaW4oXG4gICAgY29uZmlnLm1pZGRsZXdhcmVzLFxuICAgIHtcbiAgICAgIGNvbmZpZyxcbiAgICAgIGxvZ2dlcixcbiAgICB9LFxuICAgIGZ1bmN0aW9uIChwbHVnaW4pIHtcbiAgICAgIHJldHVybiB0eXBlb2YgcGx1Z2luLnJlZ2lzdGVyX21pZGRsZXdhcmVzICE9PSAndW5kZWZpbmVkJztcbiAgICB9LFxuICAgIHRydWUsXG4gICAgY29uZmlnPy5zZXJ2ZXJTZXR0aW5ncz8ucGx1Z2luUHJlZml4ID8/ICd2ZXJkYWNjaW8nLFxuICAgIFBMVUdJTl9DQVRFR09SWS5NSURETEVXQVJFXG4gICk7XG5cbiAgcGx1Z2lucy5mb3JFYWNoKChwbHVnaW46IGFueSkgPT4ge1xuICAgIHBsdWdpbi5yZWdpc3Rlcl9taWRkbGV3YXJlcyhhcHAsIGF1dGgsIHN0b3JhZ2UpO1xuICB9KTtcblxuICAvLyAvLyBGb3IgIG5wbSByZXF1ZXN0XG4gIGFwcC51c2UoYXBpRW5kcG9pbnQoY29uZmlnLCBhdXRoLCBzdG9yYWdlKSk7XG5cbiAgLy8gRm9yIFdlYlVJICYgV2ViVUkgQVBJXG4gIGlmIChfLmdldChjb25maWcsICd3ZWIuZW5hYmxlJywgdHJ1ZSkpIHtcbiAgICBhcHAudXNlKChfcmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgIHJlcy5sb2NhbHMuYXBwX3ZlcnNpb24gPSB2ZXJzaW9uID8/ICcnO1xuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IG1pZGRsZXdhcmUgPSBhd2FpdCB3ZWJNaWRkbGV3YXJlKGNvbmZpZywgYXV0aCwgc3RvcmFnZSwgbG9nZ2VyKTtcbiAgICBhcHAudXNlKG1pZGRsZXdhcmUpO1xuICB9IGVsc2Uge1xuICAgIGFwcC5nZXQoJy8nLCBmdW5jdGlvbiAoXywgX18sIG5leHQ6ICROZXh0RnVuY3Rpb25WZXIpIHtcbiAgICAgIG5leHQoRXJyb3JDb2RlLmdldE5vdEZvdW5kKEFQSV9FUlJPUi5XRUJfRElTQUJMRUQpKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFwcC5nZXQoJy8qcGF0aCcsIGZ1bmN0aW9uIChfLCBfXywgbmV4dDogJE5leHRGdW5jdGlvblZlcikge1xuICAgIG5leHQoRXJyb3JDb2RlLmdldE5vdEZvdW5kKEFQSV9FUlJPUi5GSUxFX05PVF9GT1VORCkpO1xuICB9KTtcbiAgYXBwLnVzZShoYW5kbGVFcnJvcihsb2dnZXIpKTtcbiAgYXBwLnVzZShmaW5hbCk7XG5cbiAgcmV0dXJuIGFwcDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IChhc3luYyBmdW5jdGlvbiAoY29uZmlnSGFzaDogQ29uZmlnWWFtbCk6IFByb21pc2U8ZXhwcmVzcy5BcHBsaWNhdGlvbj4ge1xuICBjb25zdCBjb25maWc6IElDb25maWcgPSBuZXcgQXBwQ29uZmlnKF8uY2xvbmVEZWVwKGNvbmZpZ0hhc2gpKTtcblxuICBjb25zdCBzdG9yYWdlID0gbmV3IFN0b3JhZ2UoY29uZmlnKTtcbiAgLy8gd2FpdHMgdW50aWwgaW5pdCBjYWxscyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWRcbiAgYXdhaXQgc3RvcmFnZS5pbml0KGNvbmZpZyk7XG4gIHJldHVybiBhd2FpdCBkZWZpbmVBUEkoY29uZmlnLCBzdG9yYWdlKTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxZQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxRQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBSSxLQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxPQUFBLEdBQUFMLE9BQUE7QUFFQSxJQUFBTSxLQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFB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
@@ -10,7 +10,7 @@ var _constants = _interopRequireDefault(require("constants"));
10
10
  var _fs = _interopRequireDefault(require("fs"));
11
11
  var _http = _interopRequireDefault(require("http"));
12
12
  var _https = _interopRequireDefault(require("https"));
13
- var _lodash = require("lodash");
13
+ var _lodash = _interopRequireDefault(require("lodash"));
14
14
  var _url = _interopRequireDefault(require("url"));
15
15
  var _config = require("@verdaccio/config");
16
16
  var _index = _interopRequireDefault(require("../api/index"));
@@ -29,7 +29,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
29
29
  * @deprecated use runServer instead
30
30
  */
31
31
  function startVerdaccio(config, cliListen, configPath, pkgVersion, pkgName, callback) {
32
- if ((0, _lodash.isObject)(config) === false) {
32
+ if (_lodash.default.isObject(config) === false) {
33
33
  throw new Error(_constants2.API_ERROR.CONFIG_BAD_FORMAT);
34
34
  }
35
35
  (0, _utils.initLogger)(config);
@@ -87,7 +87,7 @@ function handleHTTPS(app, configPath, config) {
87
87
  pfx,
88
88
  passphrase
89
89
  } = pfxConfig;
90
- httpsOptions = (0, _lodash.assign)(httpsOptions, {
90
+ httpsOptions = _lodash.default.assign(httpsOptions, {
91
91
  pfx: _fs.default.readFileSync(pfx),
92
92
  passphrase: passphrase || ''
93
93
  });
@@ -98,7 +98,7 @@ function handleHTTPS(app, configPath, config) {
98
98
  cert,
99
99
  ca
100
100
  } = keyCertConfig;
101
- httpsOptions = (0, _lodash.assign)(httpsOptions, {
101
+ httpsOptions = _lodash.default.assign(httpsOptions, {
102
102
  key: _fs.default.readFileSync(key),
103
103
  cert: _fs.default.readFileSync(cert),
104
104
  ...(ca && {
@@ -126,7 +126,7 @@ function handleHTTPS(app, configPath, config) {
126
126
  function listenDefaultCallback(webServer, addr, pkgName, pkgVersion) {
127
127
  const server = webServer.listen(addr.port || addr.path, addr.host, () => {
128
128
  // send a message for tests
129
- if ((0, _lodash.isFunction)(process.send)) {
129
+ if (_lodash.default.isFunction(process.send)) {
130
130
  process.send({
131
131
  verdaccio_started: true
132
132
  });
@@ -164,4 +164,4 @@ function listenDefaultCallback(webServer, addr, pkgName, pkgVersion) {
164
164
  version: pkgName + '/' + pkgVersion
165
165
  }, 'http address - @{addr} - @{version}');
166
166
  }
167
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc29sZSIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9mcyIsIl9odHRwIiwiX2h0dHBzIiwiX2xvZGFzaCIsIl91cmwiLCJfY29uZmlnIiwiX2luZGV4IiwiX2NvbnN0YW50czIiLCJfZXhwZXJpbWVudHMiLCJfbG9nZ2VyIiwiX3V0aWxzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwic3RhcnRWZXJkYWNjaW8iLCJjb25maWciLCJjbGlMaXN0ZW4iLCJjb25maWdQYXRoIiwicGtnVmVyc2lvbiIsInBrZ05hbWUiLCJjYWxsYmFjayIsImlzT2JqZWN0IiwiRXJyb3IiLCJBUElfRVJST1IiLCJDT05GSUdfQkFEX0ZPUk1BVCIsImluaXRMb2dnZXIiLCJmbGFncyIsImV4cGVyaW1lbnRzIiwiZGlzcGxheUV4cGVyaW1lbnRzSW5mb0JveCIsImxvZ2dlciIsIndhcm4iLCJlbmRQb2ludEFQSSIsInRoZW4iLCJhcHAiLCJsaXN0ZW4iLCJhZGRyIiwiZ2V0TGlzdGVuQWRkcmVzcyIsIndlYlNlcnZlciIsInByb3RvIiwiaGFuZGxlSFRUUFMiLCJodHRwIiwiY3JlYXRlU2VydmVyIiwic2VydmVyIiwia2VlcEFsaXZlVGltZW91dCIsInVubGlua0FkZHJlc3NQYXRoIiwicGF0aCIsImZzIiwiZXhpc3RzU3luYyIsInVubGlua1N5bmMiLCJodHRwc09wdGlvbnMiLCJzZWN1cmVPcHRpb25zIiwiY29uc3RhbnRzIiwiU1NMX09QX05PX1NTTHYyIiwiU1NMX09QX05PX1NTTHYzIiwia2V5Q2VydENvbmZpZyIsImh0dHBzIiwicGZ4Q29uZmlnIiwibWlzc2luZ0tleUNlcnQiLCJrZXkiLCJjZXJ0IiwiZGVidWciLCJtaXNzaW5nUGZ4IiwicGZ4IiwibG9nSFRUUFNXYXJuaW5nIiwicGFzc3BocmFzZSIsImFzc2lnbiIsInJlYWRGaWxlU3luYyIsImNhIiwiZXJyIiwiZmF0YWwiLCJwcm9jZXNzIiwiZXhpdCIsImxpc3RlbkRlZmF1bHRDYWxsYmFjayIsInBvcnQiLCJob3N0IiwiaXNGdW5jdGlvbiIsInNlbmQiLCJ2ZXJkYWNjaW9fc3RhcnRlZCIsIm9uIiwiaGFuZGxlU2h1dGRvd25HcmFjZWZ1bGx5IiwiY2xvc2UiLCJpbmZvIiwiZW52IiwiVkVSREFDQ0lPX0hBTkRMRV9LSUxMX1NJR05BTFMiLCJVUkwiLCJmb3JtYXQiLCJwcm90b2NvbCIsInBhdGhuYW1lIiwiaG9zdG5hbWUiLCJ2ZXJzaW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ib290c3RyYXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVidWcgfSBmcm9tICdjb25zb2xlJztcbmltcG9ydCBjb25zdGFudHMgZnJvbSAnY29uc3RhbnRzJztcbmltcG9ydCBleHByZXNzIGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgQXBwbGljYXRpb24gfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgeyBhc3NpZ24sIGlzRnVuY3Rpb24sIGlzT2JqZWN0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBVUkwgZnJvbSAndXJsJztcblxuaW1wb3J0IHsgZ2V0TGlzdGVuQWRkcmVzcyB9IGZyb20gJ0B2ZXJkYWNjaW8vY29uZmlnJztcbmltcG9ydCB7IENhbGxiYWNrLCBDb25maWdZYW1sLCBIdHRwc0NvbmZLZXlDZXJ0LCBIdHRwc0NvbmZQZnggfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IGVuZFBvaW50QVBJIGZyb20gJy4uL2FwaS9pbmRleCc7XG5pbXBvcnQgeyBBUElfRVJST1IgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94IH0gZnJvbSAnLi9leHBlcmltZW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBpbml0TG9nZ2VyLCBsb2dIVFRQU1dhcm5pbmcgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBUcmlnZ2VyIHRoZSBzZXJ2ZXIgYWZ0ZXIgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBsb2FkZWQuXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnXG4gKiBAcGFyYW0ge09iamVjdH0gY2xpQXJndW1lbnRzXG4gKiBAcGFyYW0ge1N0cmluZ30gY29uZmlnUGF0aFxuICogQHBhcmFtIHtTdHJpbmd9IHBrZ1ZlcnNpb25cbiAqIEBwYXJhbSB7U3RyaW5nfSBwa2dOYW1lXG4gKiBAZGVwcmVjYXRlZCB1c2UgcnVuU2VydmVyIGluc3RlYWRcbiAqL1xuZnVuY3Rpb24gc3RhcnRWZXJkYWNjaW8oXG4gIGNvbmZpZzogQ29uZmlnWWFtbCxcbiAgY2xpTGlzdGVuOiBzdHJpbmcsXG4gIGNvbmZpZ1BhdGg6IHN0cmluZyxcbiAgcGtnVmVyc2lvbjogc3RyaW5nLFxuICBwa2dOYW1lOiBzdHJpbmcsXG4gIGNhbGxiYWNrOiBDYWxsYmFja1xuKTogdm9pZCB7XG4gIGlmIChpc09iamVjdChjb25maWcpID09PSBmYWxzZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihBUElfRVJST1IuQ09ORklHX0JBRF9GT1JNQVQpO1xuICB9XG5cbiAgaW5pdExvZ2dlcihjb25maWcpO1xuXG4gIC8vIG1lcmdlIGZsYWdzIGFuZCBleHBlcmltZW50cyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICBjb25zdCBmbGFncyA9IHtcbiAgICAuLi4oY29uZmlnPy5mbGFncyB8fCB7fSksXG4gICAgLi4uKGNvbmZpZz8uZXhwZXJpbWVudHMgfHwge30pLFxuICB9O1xuICBkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94KGZsYWdzKTtcbiAgbG9nZ2VyLndhcm4oJ1RoaXMgaXMgYSBkZXByZWNhdGVkIG1ldGhvZCwgcGxlYXNlIHVzZSBydW5TZXJ2ZXIgaW5zdGVhZCcpO1xuXG4gIGVuZFBvaW50QVBJKGNvbmZpZykudGhlbigoYXBwKTogdm9pZCA9PiB7XG4gICAgY29uc3QgbGlzdGVuID0gY2xpTGlzdGVuID8/IGNvbmZpZz8ubGlzdGVuO1xuICAgIGNvbnN0IGFkZHIgPSBnZXRMaXN0ZW5BZGRyZXNzKGxpc3RlbiwgbG9nZ2VyKTtcbiAgICBsZXQgd2ViU2VydmVyO1xuICAgIGlmIChhZGRyLnByb3RvID09PSAnaHR0cHMnKSB7XG4gICAgICB3ZWJTZXJ2ZXIgPSBoYW5kbGVIVFRQUyhhcHAsIGNvbmZpZ1BhdGgsIGNvbmZpZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGh0dHBcbiAgICAgIHdlYlNlcnZlciA9IGh0dHAuY3JlYXRlU2VydmVyKGFwcCk7XG4gICAgfVxuICAgIGlmICh3ZWJTZXJ2ZXIgJiYgdHlwZW9mIGNvbmZpZz8uc2VydmVyPy5rZWVwQWxpdmVUaW1lb3V0ID09PSAnbnVtYmVyJykge1xuICAgICAgLy8gbGlicmFyeSBkZWZpbml0aW9uIGZvciBub2RlIGlzIG5vdCB1cCB0byBkYXRlIChkb2Vzbid0IGNvbnRhaW4gcmVjZW50IDguMCBjaGFuZ2VzKVxuICAgICAgd2ViU2VydmVyLmtlZXBBbGl2ZVRpbWVvdXQgPSBjb25maWcuc2VydmVyLmtlZXBBbGl2ZVRpbWVvdXQgKiAxMDAwO1xuICAgIH1cbiAgICB1bmxpbmtBZGRyZXNzUGF0aChhZGRyKTtcbiAgICBjYWxsYmFjayh3ZWJTZXJ2ZXIsIGFkZHIsIHBrZ05hbWUsIHBrZ1ZlcnNpb24pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdW5saW5rQWRkcmVzc1BhdGgoYWRkcikge1xuICBpZiAoYWRkci5wYXRoICYmIGZzLmV4aXN0c1N5bmMoYWRkci5wYXRoKSkge1xuICAgIGZzLnVubGlua1N5bmMoYWRkci5wYXRoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYW5kbGVIVFRQUyhcbiAgYXBwOiBleHByZXNzLkFwcGxpY2F0aW9uLFxuICBjb25maWdQYXRoOiBzdHJpbmcsXG4gIGNvbmZpZzogQ29uZmlnWWFtbFxuKTogaHR0cHMuU2VydmVyIHtcbiAgdHJ5IHtcbiAgICBsZXQgaHR0cHNPcHRpb25zID0ge1xuICAgICAgc2VjdXJlT3B0aW9uczogY29uc3RhbnRzLlNTTF9PUF9OT19TU0x2MiB8IGNvbnN0YW50cy5TU0xfT1BfTk9fU1NMdjMsIC8vIGRpc2FibGUgaW5zZWN1cmUgU1NMdjIgYW5kIFNTTHYzXG4gICAgfTtcbiAgICBjb25zdCBrZXlDZXJ0Q29uZmlnID0gY29uZmlnLmh0dHBzIGFzIEh0dHBzQ29uZktleUNlcnQ7XG4gICAgY29uc3QgcGZ4Q29uZmlnID0gY29uZmlnLmh0dHBzIGFzIEh0dHBzQ29uZlBmeDtcblxuICAgIGNvbnN0IG1pc3NpbmdLZXlDZXJ0ID0gIShrZXlDZXJ0Q29uZmlnLmtleSAmJiBrZXlDZXJ0Q29uZmlnLmNlcnQpO1xuICAgIGRlYnVnKCdtaXNzaW5nS2V5Q2VydCcsIG1pc3NpbmdLZXlDZXJ0KTtcbiAgICBjb25zdCBtaXNzaW5nUGZ4ID0gIXBmeENvbmZpZy5wZng7XG4gICAgZGVidWcoJ21pc3NpbmdQZngnLCBtaXNzaW5nUGZ4KTtcblxuICAgIGlmIChtaXNzaW5nS2V5Q2VydCAmJiBtaXNzaW5nUGZ4KSB7XG4gICAgICBkZWJ1ZygnTm8gSFRUUFMgY29uZmlndXJhdGlvbiBmb3VuZCcpO1xuICAgICAgbG9nSFRUUFNXYXJuaW5nKGNvbmZpZ1BhdGgpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBIVFRQUyBjb25maWd1cmF0aW9uIGZvdW5kJyk7XG4gICAgfVxuXG4gICAgZGVidWcoJ0hUVFBTIGNvbmZpZ3VyYXRpb24gZm91bmQnKTtcbiAgICBpZiAocGZ4Q29uZmlnLnBmeCkge1xuICAgICAgZGVidWcoJ1VzaW5nIFBGWCBjb25maWd1cmF0aW9uJyk7XG4gICAgICBjb25zdCB7IHBmeCwgcGFzc3BocmFzZSB9ID0gcGZ4Q29uZmlnO1xuICAgICAgaHR0cHNPcHRpb25zID0gYXNzaWduKGh0dHBzT3B0aW9ucywge1xuICAgICAgICBwZng6IGZzLnJlYWRGaWxlU3luYyhwZngpLFxuICAgICAgICBwYXNzcGhyYXNlOiBwYXNzcGhyYXNlIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlYnVnKCdVc2luZyBLZXkvQ2VydCBjb25maWd1cmF0aW9uJyk7XG4gICAgICBjb25zdCB7IGtleSwgY2VydCwgY2EgfSA9IGtleUNlcnRDb25maWc7XG4gICAgICBodHRwc09wdGlvbnMgPSBhc3NpZ24oaHR0cHNPcHRpb25zLCB7XG4gICAgICAgIGtleTogZnMucmVhZEZpbGVTeW5jKGtleSksXG4gICAgICAgIGNlcnQ6IGZzLnJlYWRGaWxlU3luYyhjZXJ0KSxcbiAgICAgICAgLi4uKGNhICYmIHtcbiAgICAgICAgICBjYTogZnMucmVhZEZpbGVTeW5jKGNhKSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGh0dHBzLmNyZWF0ZVNlcnZlcihodHRwc09wdGlvbnMsIGFwcCk7XG4gIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgLy8gY2F0Y2ggZXJyb3JzIHJlbGF0ZWQgdG8gY2VydGlmaWNhdGUgbG9hZGluZ1xuICAgIGxvZ2dlci5mYXRhbCh7IGVycjogZXJyIH0sICdjYW5ub3QgY3JlYXRlIGh0dHBzIHNlcnZlcjogQHtlcnIubWVzc2FnZX0nKTtcbiAgICBwcm9jZXNzLmV4aXQoMik7XG4gIH1cbn1cbi8qKlxuICpcbiAqIEBwYXJhbSB3ZWJTZXJ2ZXJcbiAqIEBwYXJhbSBhZGRyXG4gKiBAcGFyYW0gcGtnTmFtZVxuICogQHBhcmFtIHBrZ1ZlcnNpb25cbiAqIEBkZXByZWNhdGVkIHVzZSBpbml0U2VydmVyIGluc3RlYWRcbiAqL1xuZnVuY3Rpb24gbGlzdGVuRGVmYXVsdENhbGxiYWNrKFxuICB3ZWJTZXJ2ZXI6IEFwcGxpY2F0aW9uLFxuICBhZGRyOiBhbnksXG4gIHBrZ05hbWU6IHN0cmluZyxcbiAgcGtnVmVyc2lvbjogc3RyaW5nXG4pOiB2b2lkIHtcbiAgY29uc3Qgc2VydmVyID0gd2ViU2VydmVyXG4gICAgLmxpc3RlbihhZGRyLnBvcnQgfHwgYWRkci5wYXRoLCBhZGRyLmhvc3QsICgpOiB2b2lkID0+IHtcbiAgICAgIC8vIHNlbmQgYSBtZXNzYWdlIGZvciB0ZXN0c1xuICAgICAgaWYgKGlzRnVuY3Rpb24ocHJvY2Vzcy5zZW5kKSkge1xuICAgICAgICBwcm9jZXNzLnNlbmQoe1xuICAgICAgICAgIHZlcmRhY2Npb19zdGFydGVkOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KVxuICAgIC5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyKTogdm9pZCB7XG4gICAgICBsb2dnZXIuZmF0YWwoeyBlcnI6IGVyciB9LCAnY2Fubm90IGNyZWF0ZSBodHRwIHNlcnZlcjogQHtlcnIubWVzc2FnZX0nKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgICB9KTtcblxuICBmdW5jdGlvbiBoYW5kbGVTaHV0ZG93bkdyYWNlZnVsbHkoKSB7XG4gICAgbG9nZ2VyLmZhdGFsKCdyZWNlaXZlZCBzaHV0ZG93biBzaWduYWwgLSBjbG9zaW5nIHNlcnZlciBncmFjZWZ1bGx5Li4uJyk7XG4gICAgc2VydmVyLmNsb3NlKCgpID0+IHtcbiAgICAgIGxvZ2dlci5pbmZvKCdzZXJ2ZXIgY2xvc2VkLicpO1xuICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gaGFuZGxlIHNodXRkb3duIHNpZ25hbHMgbmljZWx5IHdoZW4gZW52aXJvbm1lbnQgc2F5cyBzb1xuICBpZiAocHJvY2Vzcy5lbnYuVkVSREFDQ0lPX0hBTkRMRV9LSUxMX1NJR05BTFMgPT09ICd0cnVlJykge1xuICAgIHByb2Nlc3Mub24oJ1NJR0lOVCcsIGhhbmRsZVNodXRkb3duR3JhY2VmdWxseSk7XG4gICAgcHJvY2Vzcy5vbignU0lHVEVSTScsIGhhbmRsZVNodXRkb3duR3JhY2VmdWxseSk7XG4gICAgcHJvY2Vzcy5vbignU0lHSFVQJywgaGFuZGxlU2h1dGRvd25HcmFjZWZ1bGx5KTtcbiAgfVxuXG4gIGxvZ2dlci53YXJuKFxuICAgIHtcbiAgICAgIGFkZHI6IGFkZHIucGF0aFxuICAgICAgICA/IFVSTC5mb3JtYXQoe1xuICAgICAgICAgICAgcHJvdG9jb2w6ICd1bml4JyxcbiAgICAgICAgICAgIHBhdGhuYW1lOiBhZGRyLnBhdGgsXG4gICAgICAgICAgfSlcbiAgICAgICAgOiBVUkwuZm9ybWF0KHtcbiAgICAgICAgICAgIHByb3RvY29sOiBhZGRyLnByb3RvLFxuICAgICAgICAgICAgaG9zdG5hbWU6IGFkZHIuaG9zdCxcbiAgICAgICAgICAgIHBvcnQ6IGFkZHIucG9ydCxcbiAgICAgICAgICAgIHBhdGhuYW1lOiAnLycsXG4gICAgICAgICAgfSksXG4gICAgICB2ZXJzaW9uOiBwa2dOYW1lICsgJy8nICsgcGtnVmVyc2lvbixcbiAgICB9LFxuICAgICdodHRwIGFkZHJlc3MgLSBAe2FkZHJ9IC0gQHt2ZXJzaW9ufSdcbiAgKTtcbn1cblxuZXhwb3J0IHsgc3RhcnRWZXJkYWNjaW8sIGxpc3RlbkRlZmF1bHRDYWxsYmFjayB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQUcsR0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sSUFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBR0EsSUFBQVMsTUFBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVUsV0FBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsWUFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksT0FBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsTUFBQSxHQUFBYixP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
167
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc29sZSIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9mcyIsIl9odHRwIiwiX2h0dHBzIiwiX2xvZGFzaCIsIl91cmwiLCJfY29uZmlnIiwiX2luZGV4IiwiX2NvbnN0YW50czIiLCJfZXhwZXJpbWVudHMiLCJfbG9nZ2VyIiwiX3V0aWxzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwic3RhcnRWZXJkYWNjaW8iLCJjb25maWciLCJjbGlMaXN0ZW4iLCJjb25maWdQYXRoIiwicGtnVmVyc2lvbiIsInBrZ05hbWUiLCJjYWxsYmFjayIsIl8iLCJpc09iamVjdCIsIkVycm9yIiwiQVBJX0VSUk9SIiwiQ09ORklHX0JBRF9GT1JNQVQiLCJpbml0TG9nZ2VyIiwiZmxhZ3MiLCJleHBlcmltZW50cyIsImRpc3BsYXlFeHBlcmltZW50c0luZm9Cb3giLCJsb2dnZXIiLCJ3YXJuIiwiZW5kUG9pbnRBUEkiLCJ0aGVuIiwiYXBwIiwibGlzdGVuIiwiYWRkciIsImdldExpc3RlbkFkZHJlc3MiLCJ3ZWJTZXJ2ZXIiLCJwcm90byIsImhhbmRsZUhUVFBTIiwiaHR0cCIsImNyZWF0ZVNlcnZlciIsInNlcnZlciIsImtlZXBBbGl2ZVRpbWVvdXQiLCJ1bmxpbmtBZGRyZXNzUGF0aCIsInBhdGgiLCJmcyIsImV4aXN0c1N5bmMiLCJ1bmxpbmtTeW5jIiwiaHR0cHNPcHRpb25zIiwic2VjdXJlT3B0aW9ucyIsImNvbnN0YW50cyIsIlNTTF9PUF9OT19TU0x2MiIsIlNTTF9PUF9OT19TU0x2MyIsImtleUNlcnRDb25maWciLCJodHRwcyIsInBmeENvbmZpZyIsIm1pc3NpbmdLZXlDZXJ0Iiwia2V5IiwiY2VydCIsImRlYnVnIiwibWlzc2luZ1BmeCIsInBmeCIsImxvZ0hUVFBTV2FybmluZyIsInBhc3NwaHJhc2UiLCJhc3NpZ24iLCJyZWFkRmlsZVN5bmMiLCJjYSIsImVyciIsImZhdGFsIiwicHJvY2VzcyIsImV4aXQiLCJsaXN0ZW5EZWZhdWx0Q2FsbGJhY2siLCJwb3J0IiwiaG9zdCIsImlzRnVuY3Rpb24iLCJzZW5kIiwidmVyZGFjY2lvX3N0YXJ0ZWQiLCJvbiIsImhhbmRsZVNodXRkb3duR3JhY2VmdWxseSIsImNsb3NlIiwiaW5mbyIsImVudiIsIlZFUkRBQ0NJT19IQU5ETEVfS0lMTF9TSUdOQUxTIiwiVVJMIiwiZm9ybWF0IiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImhvc3RuYW1lIiwidmVyc2lvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYm9vdHN0cmFwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlYnVnIH0gZnJvbSAnY29uc29sZSc7XG5pbXBvcnQgY29uc3RhbnRzIGZyb20gJ2NvbnN0YW50cyc7XG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgaHR0cHMgZnJvbSAnaHR0cHMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBVUkwgZnJvbSAndXJsJztcblxuaW1wb3J0IHsgZ2V0TGlzdGVuQWRkcmVzcyB9IGZyb20gJ0B2ZXJkYWNjaW8vY29uZmlnJztcbmltcG9ydCB7IENhbGxiYWNrLCBDb25maWdZYW1sLCBIdHRwc0NvbmZLZXlDZXJ0LCBIdHRwc0NvbmZQZnggfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IGVuZFBvaW50QVBJIGZyb20gJy4uL2FwaS9pbmRleCc7XG5pbXBvcnQgeyBBUElfRVJST1IgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94IH0gZnJvbSAnLi9leHBlcmltZW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBpbml0TG9nZ2VyLCBsb2dIVFRQU1dhcm5pbmcgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBUcmlnZ2VyIHRoZSBzZXJ2ZXIgYWZ0ZXIgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBsb2FkZWQuXG4gKiBAcGFyYW0ge09iamVjdH0gY29uZmlnXG4gKiBAcGFyYW0ge09iamVjdH0gY2xpQXJndW1lbnRzXG4gKiBAcGFyYW0ge1N0cmluZ30gY29uZmlnUGF0aFxuICogQHBhcmFtIHtTdHJpbmd9IHBrZ1ZlcnNpb25cbiAqIEBwYXJhbSB7U3RyaW5nfSBwa2dOYW1lXG4gKiBAZGVwcmVjYXRlZCB1c2UgcnVuU2VydmVyIGluc3RlYWRcbiAqL1xuZnVuY3Rpb24gc3RhcnRWZXJkYWNjaW8oXG4gIGNvbmZpZzogQ29uZmlnWWFtbCxcbiAgY2xpTGlzdGVuOiBzdHJpbmcsXG4gIGNvbmZpZ1BhdGg6IHN0cmluZyxcbiAgcGtnVmVyc2lvbjogc3RyaW5nLFxuICBwa2dOYW1lOiBzdHJpbmcsXG4gIGNhbGxiYWNrOiBDYWxsYmFja1xuKTogdm9pZCB7XG4gIGlmIChfLmlzT2JqZWN0KGNvbmZpZykgPT09IGZhbHNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKEFQSV9FUlJPUi5DT05GSUdfQkFEX0ZPUk1BVCk7XG4gIH1cblxuICBpbml0TG9nZ2VyKGNvbmZpZyk7XG5cbiAgLy8gbWVyZ2UgZmxhZ3MgYW5kIGV4cGVyaW1lbnRzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gIGNvbnN0IGZsYWdzID0ge1xuICAgIC4uLihjb25maWc/LmZsYWdzIHx8IHt9KSxcbiAgICAuLi4oY29uZmlnPy5leHBlcmltZW50cyB8fCB7fSksXG4gIH07XG4gIGRpc3BsYXlFeHBlcmltZW50c0luZm9Cb3goZmxhZ3MpO1xuICBsb2dnZXIud2FybignVGhpcyBpcyBhIGRlcHJlY2F0ZWQgbWV0aG9kLCBwbGVhc2UgdXNlIHJ1blNlcnZlciBpbnN0ZWFkJyk7XG5cbiAgZW5kUG9pbnRBUEkoY29uZmlnKS50aGVuKChhcHApOiB2b2lkID0+IHtcbiAgICBjb25zdCBsaXN0ZW4gPSBjbGlMaXN0ZW4gPz8gY29uZmlnPy5saXN0ZW47XG4gICAgY29uc3QgYWRkciA9IGdldExpc3RlbkFkZHJlc3MobGlzdGVuLCBsb2dnZXIpO1xuICAgIGxldCB3ZWJTZXJ2ZXI7XG4gICAgaWYgKGFkZHIucHJvdG8gPT09ICdodHRwcycpIHtcbiAgICAgIHdlYlNlcnZlciA9IGhhbmRsZUhUVFBTKGFwcCwgY29uZmlnUGF0aCwgY29uZmlnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaHR0cFxuICAgICAgd2ViU2VydmVyID0gaHR0cC5jcmVhdGVTZXJ2ZXIoYXBwKTtcbiAgICB9XG4gICAgaWYgKHdlYlNlcnZlciAmJiB0eXBlb2YgY29uZmlnPy5zZXJ2ZXI/LmtlZXBBbGl2ZVRpbWVvdXQgPT09ICdudW1iZXInKSB7XG4gICAgICAvLyBsaWJyYXJ5IGRlZmluaXRpb24gZm9yIG5vZGUgaXMgbm90IHVwIHRvIGRhdGUgKGRvZXNuJ3QgY29udGFpbiByZWNlbnQgOC4wIGNoYW5nZXMpXG4gICAgICB3ZWJTZXJ2ZXIua2VlcEFsaXZlVGltZW91dCA9IGNvbmZpZy5zZXJ2ZXIua2VlcEFsaXZlVGltZW91dCAqIDEwMDA7XG4gICAgfVxuICAgIHVubGlua0FkZHJlc3NQYXRoKGFkZHIpO1xuICAgIGNhbGxiYWNrKHdlYlNlcnZlciwgYWRkciwgcGtnTmFtZSwgcGtnVmVyc2lvbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB1bmxpbmtBZGRyZXNzUGF0aChhZGRyKSB7XG4gIGlmIChhZGRyLnBhdGggJiYgZnMuZXhpc3RzU3luYyhhZGRyLnBhdGgpKSB7XG4gICAgZnMudW5saW5rU3luYyhhZGRyLnBhdGgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUhUVFBTKFxuICBhcHA6IGV4cHJlc3MuQXBwbGljYXRpb24sXG4gIGNvbmZpZ1BhdGg6IHN0cmluZyxcbiAgY29uZmlnOiBDb25maWdZYW1sXG4pOiBodHRwcy5TZXJ2ZXIge1xuICB0cnkge1xuICAgIGxldCBodHRwc09wdGlvbnMgPSB7XG4gICAgICBzZWN1cmVPcHRpb25zOiBjb25zdGFudHMuU1NMX09QX05PX1NTTHYyIHwgY29uc3RhbnRzLlNTTF9PUF9OT19TU0x2MywgLy8gZGlzYWJsZSBpbnNlY3VyZSBTU0x2MiBhbmQgU1NMdjNcbiAgICB9O1xuICAgIGNvbnN0IGtleUNlcnRDb25maWcgPSBjb25maWcuaHR0cHMgYXMgSHR0cHNDb25mS2V5Q2VydDtcbiAgICBjb25zdCBwZnhDb25maWcgPSBjb25maWcuaHR0cHMgYXMgSHR0cHNDb25mUGZ4O1xuXG4gICAgY29uc3QgbWlzc2luZ0tleUNlcnQgPSAhKGtleUNlcnRDb25maWcua2V5ICYmIGtleUNlcnRDb25maWcuY2VydCk7XG4gICAgZGVidWcoJ21pc3NpbmdLZXlDZXJ0JywgbWlzc2luZ0tleUNlcnQpO1xuICAgIGNvbnN0IG1pc3NpbmdQZnggPSAhcGZ4Q29uZmlnLnBmeDtcbiAgICBkZWJ1ZygnbWlzc2luZ1BmeCcsIG1pc3NpbmdQZngpO1xuXG4gICAgaWYgKG1pc3NpbmdLZXlDZXJ0ICYmIG1pc3NpbmdQZngpIHtcbiAgICAgIGRlYnVnKCdObyBIVFRQUyBjb25maWd1cmF0aW9uIGZvdW5kJyk7XG4gICAgICBsb2dIVFRQU1dhcm5pbmcoY29uZmlnUGF0aCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIEhUVFBTIGNvbmZpZ3VyYXRpb24gZm91bmQnKTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnSFRUUFMgY29uZmlndXJhdGlvbiBmb3VuZCcpO1xuICAgIGlmIChwZnhDb25maWcucGZ4KSB7XG4gICAgICBkZWJ1ZygnVXNpbmcgUEZYIGNvbmZpZ3VyYXRpb24nKTtcbiAgICAgIGNvbnN0IHsgcGZ4LCBwYXNzcGhyYXNlIH0gPSBwZnhDb25maWc7XG4gICAgICBodHRwc09wdGlvbnMgPSBfLmFzc2lnbihodHRwc09wdGlvbnMsIHtcbiAgICAgICAgcGZ4OiBmcy5yZWFkRmlsZVN5bmMocGZ4KSxcbiAgICAgICAgcGFzc3BocmFzZTogcGFzc3BocmFzZSB8fCAnJyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWJ1ZygnVXNpbmcgS2V5L0NlcnQgY29uZmlndXJhdGlvbicpO1xuICAgICAgY29uc3QgeyBrZXksIGNlcnQsIGNhIH0gPSBrZXlDZXJ0Q29uZmlnO1xuICAgICAgaHR0cHNPcHRpb25zID0gXy5hc3NpZ24oaHR0cHNPcHRpb25zLCB7XG4gICAgICAgIGtleTogZnMucmVhZEZpbGVTeW5jKGtleSksXG4gICAgICAgIGNlcnQ6IGZzLnJlYWRGaWxlU3luYyhjZXJ0KSxcbiAgICAgICAgLi4uKGNhICYmIHtcbiAgICAgICAgICBjYTogZnMucmVhZEZpbGVTeW5jKGNhKSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGh0dHBzLmNyZWF0ZVNlcnZlcihodHRwc09wdGlvbnMsIGFwcCk7XG4gIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgLy8gY2F0Y2ggZXJyb3JzIHJlbGF0ZWQgdG8gY2VydGlmaWNhdGUgbG9hZGluZ1xuICAgIGxvZ2dlci5mYXRhbCh7IGVycjogZXJyIH0sICdjYW5ub3QgY3JlYXRlIGh0dHBzIHNlcnZlcjogQHtlcnIubWVzc2FnZX0nKTtcbiAgICBwcm9jZXNzLmV4aXQoMik7XG4gIH1cbn1cbi8qKlxuICpcbiAqIEBwYXJhbSB3ZWJTZXJ2ZXJcbiAqIEBwYXJhbSBhZGRyXG4gKiBAcGFyYW0gcGtnTmFtZVxuICogQHBhcmFtIHBrZ1ZlcnNpb25cbiAqIEBkZXByZWNhdGVkIHVzZSBpbml0U2VydmVyIGluc3RlYWRcbiAqL1xuZnVuY3Rpb24gbGlzdGVuRGVmYXVsdENhbGxiYWNrKFxuICB3ZWJTZXJ2ZXI6IEFwcGxpY2F0aW9uLFxuICBhZGRyOiBhbnksXG4gIHBrZ05hbWU6IHN0cmluZyxcbiAgcGtnVmVyc2lvbjogc3RyaW5nXG4pOiB2b2lkIHtcbiAgY29uc3Qgc2VydmVyID0gd2ViU2VydmVyXG4gICAgLmxpc3RlbihhZGRyLnBvcnQgfHwgYWRkci5wYXRoLCBhZGRyLmhvc3QsICgpOiB2b2lkID0+IHtcbiAgICAgIC8vIHNlbmQgYSBtZXNzYWdlIGZvciB0ZXN0c1xuICAgICAgaWYgKF8uaXNGdW5jdGlvbihwcm9jZXNzLnNlbmQpKSB7XG4gICAgICAgIHByb2Nlc3Muc2VuZCh7XG4gICAgICAgICAgdmVyZGFjY2lvX3N0YXJ0ZWQ6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pXG4gICAgLm9uKCdlcnJvcicsIGZ1bmN0aW9uIChlcnIpOiB2b2lkIHtcbiAgICAgIGxvZ2dlci5mYXRhbCh7IGVycjogZXJyIH0sICdjYW5ub3QgY3JlYXRlIGh0dHAgc2VydmVyOiBAe2Vyci5tZXNzYWdlfScpO1xuICAgICAgcHJvY2Vzcy5leGl0KDIpO1xuICAgIH0pO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZVNodXRkb3duR3JhY2VmdWxseSgpIHtcbiAgICBsb2dnZXIuZmF0YWwoJ3JlY2VpdmVkIHNodXRkb3duIHNpZ25hbCAtIGNsb3Npbmcgc2VydmVyIGdyYWNlZnVsbHkuLi4nKTtcbiAgICBzZXJ2ZXIuY2xvc2UoKCkgPT4ge1xuICAgICAgbG9nZ2VyLmluZm8oJ3NlcnZlciBjbG9zZWQuJyk7XG4gICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBoYW5kbGUgc2h1dGRvd24gc2lnbmFscyBuaWNlbHkgd2hlbiBlbnZpcm9ubWVudCBzYXlzIHNvXG4gIGlmIChwcm9jZXNzLmVudi5WRVJEQUNDSU9fSEFORExFX0tJTExfU0lHTkFMUyA9PT0gJ3RydWUnKSB7XG4gICAgcHJvY2Vzcy5vbignU0lHSU5UJywgaGFuZGxlU2h1dGRvd25HcmFjZWZ1bGx5KTtcbiAgICBwcm9jZXNzLm9uKCdTSUdURVJNJywgaGFuZGxlU2h1dGRvd25HcmFjZWZ1bGx5KTtcbiAgICBwcm9jZXNzLm9uKCdTSUdIVVAnLCBoYW5kbGVTaHV0ZG93bkdyYWNlZnVsbHkpO1xuICB9XG5cbiAgbG9nZ2VyLndhcm4oXG4gICAge1xuICAgICAgYWRkcjogYWRkci5wYXRoXG4gICAgICAgID8gVVJMLmZvcm1hdCh7XG4gICAgICAgICAgICBwcm90b2NvbDogJ3VuaXgnLFxuICAgICAgICAgICAgcGF0aG5hbWU6IGFkZHIucGF0aCxcbiAgICAgICAgICB9KVxuICAgICAgICA6IFVSTC5mb3JtYXQoe1xuICAgICAgICAgICAgcHJvdG9jb2w6IGFkZHIucHJvdG8sXG4gICAgICAgICAgICBob3N0bmFtZTogYWRkci5ob3N0LFxuICAgICAgICAgICAgcG9ydDogYWRkci5wb3J0LFxuICAgICAgICAgICAgcGF0aG5hbWU6ICcvJyxcbiAgICAgICAgICB9KSxcbiAgICAgIHZlcnNpb246IHBrZ05hbWUgKyAnLycgKyBwa2dWZXJzaW9uLFxuICAgIH0sXG4gICAgJ2h0dHAgYWRkcmVzcyAtIEB7YWRkcn0gLSBAe3ZlcnNpb259J1xuICApO1xufVxuXG5leHBvcnQgeyBzdGFydFZlcmRhY2NpbywgbGlzdGVuRGVmYXVsdENhbGxiYWNrIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFHQSxJQUFBRyxHQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxJQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFHQSxJQUFBUyxNQUFBLEdBQUFQLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVSxXQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxZQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxPQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxNQUFBLEdBQUFiLE9BQUE7QUFB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
@@ -5,7 +5,7 @@ var _info = require("./commands/info");
5
5
  var _init = require("./commands/init");
6
6
  var _version = require("./commands/version");
7
7
  var _utils = require("./utils");
8
- const pkgVersion = "7.0.0-beta.3" || 'dev';
8
+ const pkgVersion = "7.0.0-beta.4" || 'dev';
9
9
  if (process.getuid && process.getuid() === 0) {
10
10
  process.emitWarning(`Verdaccio doesn't need superuser privileges. don't run it under root`);
11
11
  }
@@ -11,7 +11,7 @@ var _bootstrap = require("../../bootstrap");
11
11
  var _logger = require("../../logger");
12
12
  var _utils = require("../../utils");
13
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- const pkgVersion = "7.0.0-beta.3" || 'dev';
14
+ const pkgVersion = "7.0.0-beta.4" || 'dev';
15
15
  const pkgName = 'verdaccio';
16
16
  const DEFAULT_PROCESS_NAME = exports.DEFAULT_PROCESS_NAME = 'verdaccio';
17
17
  class InitCommand extends _clipanion.Command {
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.VersionCommand = void 0;
7
7
  var _clipanion = require("clipanion");
8
- const pkgVersion = "7.0.0-beta.3" || 'dev';
8
+ const pkgVersion = "7.0.0-beta.4" || 'dev';
9
9
  class VersionCommand extends _clipanion.Command {
10
10
  static paths = [[`--version`], [`-v`]];
11
11
  async execute() {
@@ -10,7 +10,7 @@ var _debug = _interopRequireDefault(require("debug"));
10
10
  var _fs = _interopRequireDefault(require("fs"));
11
11
  var _http = _interopRequireDefault(require("http"));
12
12
  var _https = _interopRequireDefault(require("https"));
13
- var _lodash = require("lodash");
13
+ var _lodash = _interopRequireDefault(require("lodash"));
14
14
  var _config = require("@verdaccio/config");
15
15
  var _index = _interopRequireDefault(require("../api/index"));
16
16
  var _experiments = require("./experiments");
@@ -72,7 +72,7 @@ function createServerFactory(config, addr, app) {
72
72
  pfx,
73
73
  passphrase
74
74
  } = pfxConfig;
75
- httpsOptions = (0, _lodash.assign)(httpsOptions, {
75
+ httpsOptions = _lodash.default.assign(httpsOptions, {
76
76
  pfx: _fs.default.readFileSync(pfx),
77
77
  passphrase: passphrase || ''
78
78
  });
@@ -82,7 +82,7 @@ function createServerFactory(config, addr, app) {
82
82
  cert,
83
83
  ca
84
84
  } = keyCertConfig;
85
- httpsOptions = (0, _lodash.assign)(httpsOptions, {
85
+ httpsOptions = _lodash.default.assign(httpsOptions, {
86
86
  key: _fs.default.readFileSync(key),
87
87
  cert: _fs.default.readFileSync(cert),
88
88
  ...(ca && {
@@ -119,4 +119,4 @@ function unlinkAddressPath(addr) {
119
119
  _fs.default.unlinkSync(addr.path);
120
120
  }
121
121
  }
122
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZnMiLCJfaHR0cCIsIl9odHRwcyIsIl9sb2Rhc2giLCJfY29uZmlnIiwiX2luZGV4IiwiX2V4cGVyaW1lbnRzIiwiX2xvZ2dlciIsIl91dGlscyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRlYnVnIiwiYnVpbGREZWJ1ZyIsInJ1blNlcnZlciIsImNvbmZpZyIsIm9wdGlvbnMiLCJjb25maWd1cmF0aW9uUGFyc2VkIiwiZ2V0Q29uZmlnUGFyc2VkIiwiaW5pdExvZ2dlciIsImZsYWdzIiwiZXhwZXJpbWVudHMiLCJkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94IiwibGlzdGVuIiwibGlzdGVuQXJnIiwiYWRkcmVzcyIsImdldExpc3RlbkFkZHJlc3MiLCJsb2dnZXIiLCJhcHAiLCJlbmRQb2ludEFQSSIsImNyZWF0ZVNlcnZlckZhY3RvcnkiLCJhZGRyIiwic2VydmVyRmFjdG9yeSIsInByb3RvIiwiaHR0cHNPcHRpb25zIiwic2VjdXJlT3B0aW9ucyIsImNvbnN0YW50cyIsIlNTTF9PUF9OT19TU0x2MiIsIlNTTF9PUF9OT19TU0x2MyIsImtleUNlcnRDb25maWciLCJodHRwcyIsInBmeENvbmZpZyIsImtleSIsImNlcnQiLCJwZngiLCJFcnJvciIsInBhc3NwaHJhc2UiLCJhc3NpZ24iLCJmcyIsInJlYWRGaWxlU3luYyIsImNhIiwiY3JlYXRlU2VydmVyIiwiZXJyIiwiZmF0YWwiLCJwcm9jZXNzIiwiZXhpdCIsImh0dHAiLCJzZXJ2ZXIiLCJrZWVwQWxpdmVUaW1lb3V0IiwidW5saW5rQWRkcmVzc1BhdGgiLCJwYXRoIiwiZXhpc3RzU3luYyIsInVubGlua1N5bmMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3J1bi1zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbnN0YW50cyBmcm9tICdjb25zdGFudHMnO1xuaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCB7IGFzc2lnbiB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IGdldENvbmZpZ1BhcnNlZCwgZ2V0TGlzdGVuQWRkcmVzcyB9IGZyb20gJ0B2ZXJkYWNjaW8vY29uZmlnJztcbmltcG9ydCB7IENvbmZpZ1lhbWwsIEh0dHBzQ29uZktleUNlcnQsIEh0dHBzQ29uZlBmeCB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgZW5kUG9pbnRBUEkgZnJvbSAnLi4vYXBpL2luZGV4JztcbmltcG9ydCB7IGRpc3BsYXlFeHBlcmltZW50c0luZm9Cb3ggfSBmcm9tICcuL2V4cGVyaW1lbnRzJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IGluaXRMb2dnZXIgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCd2ZXJkYWNjaW86cnVuLXNlcnZlcicpO1xuXG4vKipcbiAqIEV4cG9zZXMgYSBzZXJ2ZXIgZmFjdG9yeSB0byBiZSBpbnN0YW50aWF0ZWQgcHJvZ3JhbW1hdGljYWxseS5cbiAqXG4gICAgY29uc3QgYXBwID0gYXdhaXQgcnVuU2VydmVyKCk7IC8vIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IHJ1blNlcnZlcignLi9jb25maWcvY29uZmlnLnlhbWwnKTtcbiAgICBjb25zdCBhcHAgPSBhd2FpdCBydW5TZXJ2ZXIoeyBjb25maWd1cmF0aW9uIH0pO1xuICAgIGFwcC5saXN0ZW4oNDAwMCwgKGV2ZW50KSA9PiB7XG4gICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICB9KTtcbiAqIEBwYXJhbSBjb25maWdcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1blNlcnZlcihcbiAgY29uZmlnPzogc3RyaW5nIHwgQ29uZmlnWWFtbCxcbiAgb3B0aW9ucz86IHsgbGlzdGVuQXJnPzogc3RyaW5nIH1cbik6IFByb21pc2U8YW55PiB7XG4gIGNvbnN0IGNvbmZpZ3VyYXRpb25QYXJzZWQgPSBnZXRDb25maWdQYXJzZWQoY29uZmlnKTtcblxuICBpbml0TG9nZ2VyKGNvbmZpZ3VyYXRpb25QYXJzZWQpO1xuICAvLyBtZXJnZSBmbGFncyBhbmQgZXhwZXJpbWVudHMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgY29uc3QgZmxhZ3MgPSB7XG4gICAgLi4uKGNvbmZpZ3VyYXRpb25QYXJzZWQ/LmZsYWdzIHx8IHt9KSxcbiAgICAuLi4oY29uZmlndXJhdGlvblBhcnNlZD8uZXhwZXJpbWVudHMgfHwge30pLFxuICB9O1xuICBkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94KGZsYWdzKTtcblxuICBjb25zdCBsaXN0ZW4gPSBvcHRpb25zPy5saXN0ZW5BcmcgPz8gY29uZmlndXJhdGlvblBhcnNlZD8ubGlzdGVuO1xuICBjb25zdCBhZGRyZXNzID0gZ2V0TGlzdGVuQWRkcmVzcyhsaXN0ZW4sIGxvZ2dlcik7XG5cbiAgY29uc3QgYXBwID0gYXdhaXQgZW5kUG9pbnRBUEkoY29uZmlndXJhdGlvblBhcnNlZCk7XG4gIHJldHVybiBjcmVhdGVTZXJ2ZXJGYWN0b3J5KGNvbmZpZ3VyYXRpb25QYXJzZWQsIGFkZHJlc3MsIGFwcCk7XG59XG5cbi8qKlxuICogUmV0dXJuIGEgbmF0aXZlIEhUVFAvSFRUUFMgc2VydmVyIGluc3RhbmNlXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcGFyYW0gYWRkclxuICogQHBhcmFtIGFwcFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VydmVyRmFjdG9yeShjb25maWc6IENvbmZpZ1lhbWwsIGFkZHIsIGFwcCkge1xuICBsZXQgc2VydmVyRmFjdG9yeTtcbiAgaWYgKGFkZHIucHJvdG8gPT09ICdodHRwcycpIHtcbiAgICBkZWJ1ZygnaHR0cHMgZW5hYmxlZCcpO1xuICAgIHRyeSB7XG4gICAgICBsZXQgaHR0cHNPcHRpb25zID0ge1xuICAgICAgICAvLyBkaXNhYmxlIGluc2VjdXJlIFNTTHYyIGFuZCBTU0x2M1xuICAgICAgICBzZWN1cmVPcHRpb25zOiBjb25zdGFudHMuU1NMX09QX05PX1NTTHYyIHwgY29uc3RhbnRzLlNTTF9PUF9OT19TU0x2MyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGtleUNlcnRDb25maWcgPSBjb25maWcuaHR0cHMgYXMgSHR0cHNDb25mS2V5Q2VydDtcbiAgICAgIGNvbnN0IHBmeENvbmZpZyA9IGNvbmZpZy5odHRwcyBhcyBIdHRwc0NvbmZQZng7XG5cbiAgICAgIC8vIGh0dHBzIG11c3QgZWl0aGVyIGhhdmUga2V5IGFuZCBjZXJ0IG9yIGEgcGZ4IGFuZCAob3B0aW9uYWxseSkgYSBwYXNzcGhyYXNlXG4gICAgICBpZiAoISgoa2V5Q2VydENvbmZpZy5rZXkgJiYga2V5Q2VydENvbmZpZy5jZXJ0KSB8fCBwZnhDb25maWcucGZ4KSkge1xuICAgICAgICB0aHJvdyBFcnJvcignYmFkIGZvcm1hdCBodHRwcyBjb25maWd1cmF0aW9uJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwZnhDb25maWcucGZ4KSB7XG4gICAgICAgIGNvbnN0IHsgcGZ4LCBwYXNzcGhyYXNlIH0gPSBwZnhDb25maWc7XG4gICAgICAgIGh0dHBzT3B0aW9ucyA9IGFzc2lnbihodHRwc09wdGlvbnMsIHtcbiAgICAgICAgICBwZng6IGZzLnJlYWRGaWxlU3luYyhwZngpLFxuICAgICAgICAgIHBhc3NwaHJhc2U6IHBhc3NwaHJhc2UgfHwgJycsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyBrZXksIGNlcnQsIGNhIH0gPSBrZXlDZXJ0Q29uZmlnO1xuICAgICAgICBodHRwc09wdGlvbnMgPSBhc3NpZ24oaHR0cHNPcHRpb25zLCB7XG4gICAgICAgICAga2V5OiBmcy5yZWFkRmlsZVN5bmMoa2V5KSxcbiAgICAgICAgICBjZXJ0OiBmcy5yZWFkRmlsZVN5bmMoY2VydCksXG4gICAgICAgICAgLi4uKGNhICYmIHtcbiAgICAgICAgICAgIGNhOiBmcy5yZWFkRmlsZVN5bmMoY2EpLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIFRPRE86IGVuYWJsZSBodHRwMiBhcyBmZWF0dXJlXG4gICAgICAvLyBpZiAoY29uZmlnLnNlcnZlci5odHRwMikgPC0tIGNoZWNrIGlmIGZvcmNlIGh0dHAyXG4gICAgICBzZXJ2ZXJGYWN0b3J5ID0gaHR0cHMuY3JlYXRlU2VydmVyKGh0dHBzT3B0aW9ucywgYXBwKTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgbG9nZ2VyLmZhdGFsKHsgZXJyOiBlcnIgfSwgJ2Nhbm5vdCBjcmVhdGUgc2VydmVyOiBAe2Vyci5tZXNzYWdlfScpO1xuICAgICAgcHJvY2Vzcy5leGl0KDIpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBodHRwXG4gICAgZGVidWcoJ2h0dHAgZW5hYmxlZCcpO1xuICAgIHNlcnZlckZhY3RvcnkgPSBodHRwLmNyZWF0ZVNlcnZlcihhcHApO1xuICB9XG5cbiAgaWYgKFxuICAgIGNvbmZpZy5zZXJ2ZXIgJiZcbiAgICB0eXBlb2YgY29uZmlnLnNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25maWcuc2VydmVyLmtlZXBBbGl2ZVRpbWVvdXQgIT09ICdudWxsJ1xuICApIHtcbiAgICAvLyBsaWJyYXJ5IGRlZmluaXRpb24gZm9yIG5vZGUgaXMgbm90IHVwIHRvIGRhdGUgKGRvZXNuJ3QgY29udGFpbiByZWNlbnQgOC4wIGNoYW5nZXMpXG4gICAgc2VydmVyRmFjdG9yeS5rZWVwQWxpdmVUaW1lb3V0ID0gY29uZmlnLnNlcnZlci5rZWVwQWxpdmVUaW1lb3V0ICogMTAwMDtcbiAgfVxuICAvLyBGSVhFOiBJIGNvdWxkIG5vdCBmaW5kIHRoZSByZWFzb24gb2YgdGhpcyBjb2RlLlxuICB1bmxpbmtBZGRyZXNzUGF0aChhZGRyKTtcblxuICByZXR1cm4gc2VydmVyRmFjdG9yeTtcbn1cblxuZnVuY3Rpb24gdW5saW5rQWRkcmVzc1BhdGgoYWRkcikge1xuICBpZiAoYWRkci5wYXRoICYmIGZzLmV4aXN0c1N5bmMoYWRkci5wYXRoKSkge1xuICAgIGZzLnVubGlua1N5bmMoYWRkci5wYXRoKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsR0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sT0FBQSxHQUFBTixPQUFBO0FBR0EsSUFBQU8sTUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsWUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsT0FBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBQXFDLFNBQUFELHVCQUFBWSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXJDLE1BQU1HLEtBQUssR0FBRyxJQUFBQyxjQUFVLEVBQUMsc0JBQXNCLENBQUM7O0FBRWhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxlQUFlQyxTQUFTQSxDQUM3QkMsTUFBNEIsRUFDNUJDLE9BQWdDLEVBQ2xCO0VBQ2QsTUFBTUMsbUJBQW1CLEdBQUcsSUFBQUMsdUJBQWUsRUFBQ0gsTUFBTSxD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
122
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVidWciLCJfZnMiLCJfaHR0cCIsIl9odHRwcyIsIl9sb2Rhc2giLCJfY29uZmlnIiwiX2luZGV4IiwiX2V4cGVyaW1lbnRzIiwiX2xvZ2dlciIsIl91dGlscyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRlYnVnIiwiYnVpbGREZWJ1ZyIsInJ1blNlcnZlciIsImNvbmZpZyIsIm9wdGlvbnMiLCJjb25maWd1cmF0aW9uUGFyc2VkIiwiZ2V0Q29uZmlnUGFyc2VkIiwiaW5pdExvZ2dlciIsImZsYWdzIiwiZXhwZXJpbWVudHMiLCJkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94IiwibGlzdGVuIiwibGlzdGVuQXJnIiwiYWRkcmVzcyIsImdldExpc3RlbkFkZHJlc3MiLCJsb2dnZXIiLCJhcHAiLCJlbmRQb2ludEFQSSIsImNyZWF0ZVNlcnZlckZhY3RvcnkiLCJhZGRyIiwic2VydmVyRmFjdG9yeSIsInByb3RvIiwiaHR0cHNPcHRpb25zIiwic2VjdXJlT3B0aW9ucyIsImNvbnN0YW50cyIsIlNTTF9PUF9OT19TU0x2MiIsIlNTTF9PUF9OT19TU0x2MyIsImtleUNlcnRDb25maWciLCJodHRwcyIsInBmeENvbmZpZyIsImtleSIsImNlcnQiLCJwZngiLCJFcnJvciIsInBhc3NwaHJhc2UiLCJfIiwiYXNzaWduIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJjYSIsImNyZWF0ZVNlcnZlciIsImVyciIsImZhdGFsIiwicHJvY2VzcyIsImV4aXQiLCJodHRwIiwic2VydmVyIiwia2VlcEFsaXZlVGltZW91dCIsInVubGlua0FkZHJlc3NQYXRoIiwicGF0aCIsImV4aXN0c1N5bmMiLCJ1bmxpbmtTeW5jIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9ydW4tc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25zdGFudHMgZnJvbSAnY29uc3RhbnRzJztcbmltcG9ydCBidWlsZERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBnZXRDb25maWdQYXJzZWQsIGdldExpc3RlbkFkZHJlc3MgfSBmcm9tICdAdmVyZGFjY2lvL2NvbmZpZyc7XG5pbXBvcnQgeyBDb25maWdZYW1sLCBIdHRwc0NvbmZLZXlDZXJ0LCBIdHRwc0NvbmZQZnggfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IGVuZFBvaW50QVBJIGZyb20gJy4uL2FwaS9pbmRleCc7XG5pbXBvcnQgeyBkaXNwbGF5RXhwZXJpbWVudHNJbmZvQm94IH0gZnJvbSAnLi9leHBlcmltZW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBpbml0TG9nZ2VyIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IGRlYnVnID0gYnVpbGREZWJ1ZygndmVyZGFjY2lvOnJ1bi1zZXJ2ZXInKTtcblxuLyoqXG4gKiBFeHBvc2VzIGEgc2VydmVyIGZhY3RvcnkgdG8gYmUgaW5zdGFudGlhdGVkIHByb2dyYW1tYXRpY2FsbHkuXG4gKlxuICAgIGNvbnN0IGFwcCA9IGF3YWl0IHJ1blNlcnZlcigpOyAvLyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBhcHAgPSBhd2FpdCBydW5TZXJ2ZXIoJy4vY29uZmlnL2NvbmZpZy55YW1sJyk7XG4gICAgY29uc3QgYXBwID0gYXdhaXQgcnVuU2VydmVyKHsgY29uZmlndXJhdGlvbiB9KTtcbiAgICBhcHAubGlzdGVuKDQwMDAsIChldmVudCkgPT4ge1xuICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgfSk7XG4gKiBAcGFyYW0gY29uZmlnXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5TZXJ2ZXIoXG4gIGNvbmZpZz86IHN0cmluZyB8IENvbmZpZ1lhbWwsXG4gIG9wdGlvbnM/OiB7IGxpc3RlbkFyZz86IHN0cmluZyB9XG4pOiBQcm9taXNlPGFueT4ge1xuICBjb25zdCBjb25maWd1cmF0aW9uUGFyc2VkID0gZ2V0Q29uZmlnUGFyc2VkKGNvbmZpZyk7XG5cbiAgaW5pdExvZ2dlcihjb25maWd1cmF0aW9uUGFyc2VkKTtcbiAgLy8gbWVyZ2UgZmxhZ3MgYW5kIGV4cGVyaW1lbnRzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gIGNvbnN0IGZsYWdzID0ge1xuICAgIC4uLihjb25maWd1cmF0aW9uUGFyc2VkPy5mbGFncyB8fCB7fSksXG4gICAgLi4uKGNvbmZpZ3VyYXRpb25QYXJzZWQ/LmV4cGVyaW1lbnRzIHx8IHt9KSxcbiAgfTtcbiAgZGlzcGxheUV4cGVyaW1lbnRzSW5mb0JveChmbGFncyk7XG5cbiAgY29uc3QgbGlzdGVuID0gb3B0aW9ucz8ubGlzdGVuQXJnID8/IGNvbmZpZ3VyYXRpb25QYXJzZWQ/Lmxpc3RlbjtcbiAgY29uc3QgYWRkcmVzcyA9IGdldExpc3RlbkFkZHJlc3MobGlzdGVuLCBsb2dnZXIpO1xuXG4gIGNvbnN0IGFwcCA9IGF3YWl0IGVuZFBvaW50QVBJKGNvbmZpZ3VyYXRpb25QYXJzZWQpO1xuICByZXR1cm4gY3JlYXRlU2VydmVyRmFjdG9yeShjb25maWd1cmF0aW9uUGFyc2VkLCBhZGRyZXNzLCBhcHApO1xufVxuXG4vKipcbiAqIFJldHVybiBhIG5hdGl2ZSBIVFRQL0hUVFBTIHNlcnZlciBpbnN0YW5jZVxuICogQHBhcmFtIGNvbmZpZ1xuICogQHBhcmFtIGFkZHJcbiAqIEBwYXJhbSBhcHBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlcnZlckZhY3RvcnkoY29uZmlnOiBDb25maWdZYW1sLCBhZGRyLCBhcHApIHtcbiAgbGV0IHNlcnZlckZhY3Rvcnk7XG4gIGlmIChhZGRyLnByb3RvID09PSAnaHR0cHMnKSB7XG4gICAgZGVidWcoJ2h0dHBzIGVuYWJsZWQnKTtcbiAgICB0cnkge1xuICAgICAgbGV0IGh0dHBzT3B0aW9ucyA9IHtcbiAgICAgICAgLy8gZGlzYWJsZSBpbnNlY3VyZSBTU0x2MiBhbmQgU1NMdjNcbiAgICAgICAgc2VjdXJlT3B0aW9uczogY29uc3RhbnRzLlNTTF9PUF9OT19TU0x2MiB8IGNvbnN0YW50cy5TU0xfT1BfTk9fU1NMdjMsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBrZXlDZXJ0Q29uZmlnID0gY29uZmlnLmh0dHBzIGFzIEh0dHBzQ29uZktleUNlcnQ7XG4gICAgICBjb25zdCBwZnhDb25maWcgPSBjb25maWcuaHR0cHMgYXMgSHR0cHNDb25mUGZ4O1xuXG4gICAgICAvLyBodHRwcyBtdXN0IGVpdGhlciBoYXZlIGtleSBhbmQgY2VydCBvciBhIHBmeCBhbmQgKG9wdGlvbmFsbHkpIGEgcGFzc3BocmFzZVxuICAgICAgaWYgKCEoKGtleUNlcnRDb25maWcua2V5ICYmIGtleUNlcnRDb25maWcuY2VydCkgfHwgcGZ4Q29uZmlnLnBmeCkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ2JhZCBmb3JtYXQgaHR0cHMgY29uZmlndXJhdGlvbicpO1xuICAgICAgfVxuXG4gICAgICBpZiAocGZ4Q29uZmlnLnBmeCkge1xuICAgICAgICBjb25zdCB7IHBmeCwgcGFzc3BocmFzZSB9ID0gcGZ4Q29uZmlnO1xuICAgICAgICBodHRwc09wdGlvbnMgPSBfLmFzc2lnbihodHRwc09wdGlvbnMsIHtcbiAgICAgICAgICBwZng6IGZzLnJlYWRGaWxlU3luYyhwZngpLFxuICAgICAgICAgIHBhc3NwaHJhc2U6IHBhc3NwaHJhc2UgfHwgJycsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyBrZXksIGNlcnQsIGNhIH0gPSBrZXlDZXJ0Q29uZmlnO1xuICAgICAgICBodHRwc09wdGlvbnMgPSBfLmFzc2lnbihodHRwc09wdGlvbnMsIHtcbiAgICAgICAgICBrZXk6IGZzLnJlYWRGaWxlU3luYyhrZXkpLFxuICAgICAgICAgIGNlcnQ6IGZzLnJlYWRGaWxlU3luYyhjZXJ0KSxcbiAgICAgICAgICAuLi4oY2EgJiYge1xuICAgICAgICAgICAgY2E6IGZzLnJlYWRGaWxlU3luYyhjYSksXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gVE9ETzogZW5hYmxlIGh0dHAyIGFzIGZlYXR1cmVcbiAgICAgIC8vIGlmIChjb25maWcuc2VydmVyLmh0dHAyKSA8LS0gY2hlY2sgaWYgZm9yY2UgaHR0cDJcbiAgICAgIHNlcnZlckZhY3RvcnkgPSBodHRwcy5jcmVhdGVTZXJ2ZXIoaHR0cHNPcHRpb25zLCBhcHApO1xuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBsb2dnZXIuZmF0YWwoeyBlcnI6IGVyciB9LCAnY2Fubm90IGNyZWF0ZSBzZXJ2ZXI6IEB7ZXJyLm1lc3NhZ2V9Jyk7XG4gICAgICBwcm9jZXNzLmV4aXQoMik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIGh0dHBcbiAgICBkZWJ1ZygnaHR0cCBlbmFibGVkJyk7XG4gICAgc2VydmVyRmFjdG9yeSA9IGh0dHAuY3JlYXRlU2VydmVyKGFwcCk7XG4gIH1cblxuICBpZiAoXG4gICAgY29uZmlnLnNlcnZlciAmJlxuICAgIHR5cGVvZiBjb25maWcuc2VydmVyLmtlZXBBbGl2ZVRpbWVvdXQgIT09ICd1bmRlZmluZWQnICYmXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbmZpZy5zZXJ2ZXIua2VlcEFsaXZlVGltZW91dCAhPT0gJ251bGwnXG4gICkge1xuICAgIC8vIGxpYnJhcnkgZGVmaW5pdGlvbiBmb3Igbm9kZSBpcyBub3QgdXAgdG8gZGF0ZSAoZG9lc24ndCBjb250YWluIHJlY2VudCA4LjAgY2hhbmdlcylcbiAgICBzZXJ2ZXJGYWN0b3J5LmtlZXBBbGl2ZVRpbWVvdXQgPSBjb25maWcuc2VydmVyLmtlZXBBbGl2ZVRpbWVvdXQgKiAxMDAwO1xuICB9XG4gIC8vIEZJWEU6IEkgY291bGQgbm90IGZpbmQgdGhlIHJlYXNvbiBvZiB0aGlzIGNvZGUuXG4gIHVubGlua0FkZHJlc3NQYXRoKGFkZHIpO1xuXG4gIHJldHVybiBzZXJ2ZXJGYWN0b3J5O1xufVxuXG5mdW5jdGlvbiB1bmxpbmtBZGRyZXNzUGF0aChhZGRyKSB7XG4gIGlmIChhZGRyLnBhdGggJiYgZnMuZXhpc3RzU3luYyhhZGRyLnBhdGgpKSB7XG4gICAgZnMudW5saW5rU3luYyhhZGRyLnBhdGgpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxHQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxPQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFHQSxJQUFBTyxNQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxZQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxPQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxNQUFBLEdBQUFWLE9BQUE7QUFBcUMsU0FBQUQsdUJBQUFZLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFckMsTUFBTUcsS0FBSyxHQUFHLElBQUFDLGNBQVUsRUFBQyxzQkFBc0IsQ0FBQzs7QUFFaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLGVBQWVDLFNBQVNBLENBQzdCQyxNQUE0QixFQUM1QkMsT0FBZ0MsRUFDbEI7RUFDZCxNQUFNQyxtQkFBbUIsR0FBRyxJQUFBQyx1QkFBZSxF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