parse-server 4.10.2 → 5.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +450 -153
  2. package/lib/AccountLockout.js +23 -2
  3. package/lib/Adapters/AdapterLoader.js +1 -1
  4. package/lib/Adapters/Analytics/AnalyticsAdapter.js +1 -1
  5. package/lib/Adapters/Auth/AuthAdapter.js +1 -1
  6. package/lib/Adapters/Auth/OAuth1Client.js +1 -1
  7. package/lib/Adapters/Auth/facebook.js +110 -10
  8. package/lib/Adapters/Auth/gcenter.js +1 -1
  9. package/lib/Adapters/Auth/gpgames.js +1 -1
  10. package/lib/Adapters/Auth/instagram.js +4 -2
  11. package/lib/Adapters/Auth/keycloak.js +1 -1
  12. package/lib/Adapters/Auth/ldap.js +3 -1
  13. package/lib/Adapters/Auth/oauth2.js +1 -1
  14. package/lib/Adapters/Auth/phantauth.js +1 -1
  15. package/lib/Adapters/Cache/CacheAdapter.js +1 -1
  16. package/lib/Adapters/Cache/RedisCacheAdapter.js +143 -0
  17. package/lib/Adapters/Cache/SchemaCache.js +31 -0
  18. package/lib/Adapters/Email/MailAdapter.js +1 -1
  19. package/lib/Adapters/Files/FilesAdapter.js +1 -1
  20. package/lib/Adapters/Files/GridFSBucketAdapter.js +1 -1
  21. package/lib/Adapters/Files/GridStoreAdapter.js +1 -1
  22. package/lib/Adapters/Logger/LoggerAdapter.js +1 -1
  23. package/lib/Adapters/Logger/WinstonLogger.js +4 -4
  24. package/lib/Adapters/PubSub/EventEmitterPubSub.js +5 -1
  25. package/lib/Adapters/PubSub/PubSubAdapter.js +1 -1
  26. package/lib/Adapters/Push/PushAdapter.js +1 -1
  27. package/lib/Adapters/Storage/Mongo/MongoCollection.js +1 -1
  28. package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +1 -1
  29. package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +51 -11
  30. package/lib/Adapters/Storage/Mongo/MongoTransform.js +9 -6
  31. package/lib/Adapters/Storage/Postgres/PostgresClient.js +11 -1
  32. package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +91 -57
  33. package/lib/Adapters/WebSocketServer/WSAdapter.js +1 -1
  34. package/lib/Adapters/WebSocketServer/WSSAdapter.js +1 -1
  35. package/lib/Auth.js +2 -39
  36. package/lib/Config.js +149 -8
  37. package/lib/Controllers/AdaptableController.js +1 -9
  38. package/lib/Controllers/CacheController.js +1 -1
  39. package/lib/Controllers/DatabaseController.js +148 -44
  40. package/lib/Controllers/FilesController.js +1 -1
  41. package/lib/Controllers/HooksController.js +2 -2
  42. package/lib/Controllers/LiveQueryController.js +16 -3
  43. package/lib/Controllers/LoggerController.js +1 -1
  44. package/lib/Controllers/ParseGraphQLController.js +2 -2
  45. package/lib/Controllers/PushController.js +1 -1
  46. package/lib/Controllers/SchemaController.js +101 -88
  47. package/lib/Controllers/UserController.js +16 -5
  48. package/lib/Controllers/index.js +10 -11
  49. package/lib/Deprecator/Deprecations.js +28 -0
  50. package/lib/Deprecator/Deprecator.js +135 -0
  51. package/lib/GraphQL/ParseGraphQLSchema.js +71 -39
  52. package/lib/GraphQL/ParseGraphQLServer.js +3 -3
  53. package/lib/GraphQL/loaders/defaultGraphQLMutations.js +2 -2
  54. package/lib/GraphQL/loaders/defaultGraphQLQueries.js +2 -2
  55. package/lib/GraphQL/loaders/defaultGraphQLTypes.js +4 -7
  56. package/lib/GraphQL/loaders/defaultRelaySchema.js +3 -3
  57. package/lib/GraphQL/loaders/filesMutations.js +2 -2
  58. package/lib/GraphQL/loaders/functionsMutations.js +9 -5
  59. package/lib/GraphQL/loaders/parseClassMutations.js +21 -9
  60. package/lib/GraphQL/loaders/parseClassQueries.js +9 -6
  61. package/lib/GraphQL/loaders/parseClassTypes.js +5 -5
  62. package/lib/GraphQL/loaders/schemaDirectives.js +1 -1
  63. package/lib/GraphQL/loaders/schemaMutations.js +8 -6
  64. package/lib/GraphQL/loaders/schemaQueries.js +6 -4
  65. package/lib/GraphQL/loaders/usersMutations.js +65 -7
  66. package/lib/GraphQL/transformers/constraintType.js +2 -2
  67. package/lib/GraphQL/transformers/inputType.js +2 -2
  68. package/lib/GraphQL/transformers/mutation.js +45 -10
  69. package/lib/GraphQL/transformers/outputType.js +2 -2
  70. package/lib/GraphQL/transformers/query.js +2 -2
  71. package/lib/GraphQL/transformers/schemaFields.js +1 -1
  72. package/lib/KeyPromiseQueue.js +59 -0
  73. package/lib/LiveQuery/Client.js +1 -1
  74. package/lib/LiveQuery/Id.js +1 -1
  75. package/lib/LiveQuery/ParseLiveQueryServer.js +158 -38
  76. package/lib/LiveQuery/ParseWebSocketServer.js +2 -2
  77. package/lib/LiveQuery/QueryTools.js +50 -1
  78. package/lib/LiveQuery/equalObjects.js +1 -1
  79. package/lib/Options/Definitions.js +220 -33
  80. package/lib/Options/docs.js +79 -21
  81. package/lib/Options/index.js +3 -1
  82. package/lib/Page.js +53 -0
  83. package/lib/ParseServer.js +37 -16
  84. package/lib/ParseServerRESTController.js +55 -45
  85. package/lib/PromiseRouter.js +7 -20
  86. package/lib/Push/PushQueue.js +1 -1
  87. package/lib/Push/PushWorker.js +2 -2
  88. package/lib/Push/utils.js +1 -1
  89. package/lib/RestQuery.js +45 -9
  90. package/lib/RestWrite.js +60 -10
  91. package/lib/Routers/AggregateRouter.js +23 -18
  92. package/lib/Routers/AudiencesRouter.js +2 -2
  93. package/lib/Routers/ClassesRouter.js +11 -11
  94. package/lib/Routers/CloudCodeRouter.js +1 -1
  95. package/lib/Routers/FeaturesRouter.js +2 -2
  96. package/lib/Routers/FilesRouter.js +34 -7
  97. package/lib/Routers/FunctionsRouter.js +2 -2
  98. package/lib/Routers/GlobalConfigRouter.js +2 -2
  99. package/lib/Routers/GraphQLRouter.js +3 -3
  100. package/lib/Routers/HooksRouter.js +2 -2
  101. package/lib/Routers/LogsRouter.js +2 -2
  102. package/lib/Routers/PagesRouter.js +722 -0
  103. package/lib/Routers/PurgeRouter.js +2 -2
  104. package/lib/Routers/PushRouter.js +3 -3
  105. package/lib/Routers/SchemasRouter.js +2 -2
  106. package/lib/Routers/SecurityRouter.js +47 -0
  107. package/lib/Routers/SessionsRouter.js +4 -2
  108. package/lib/Routers/UsersRouter.js +88 -17
  109. package/lib/Security/Check.js +118 -0
  110. package/lib/Security/CheckGroup.js +54 -0
  111. package/lib/Security/CheckGroups/CheckGroupDatabase.js +57 -0
  112. package/lib/Security/CheckGroups/CheckGroupServerConfig.js +82 -0
  113. package/lib/Security/CheckGroups/CheckGroups.js +24 -0
  114. package/lib/Security/CheckRunner.js +236 -0
  115. package/lib/StatusHandler.js +27 -36
  116. package/lib/TestUtils.js +1 -1
  117. package/lib/Utils.js +226 -0
  118. package/lib/batch.js +55 -44
  119. package/lib/cli/utils/commander.js +8 -3
  120. package/lib/cloud-code/HTTPResponse.js +1 -1
  121. package/lib/cloud-code/Parse.Cloud.js +155 -19
  122. package/lib/cloud-code/httpRequest.js +1 -1
  123. package/lib/index.js +6 -12
  124. package/lib/middlewares.js +39 -4
  125. package/lib/rest.js +4 -4
  126. package/lib/triggers.js +134 -121
  127. package/lib/vendor/mongodbUrl.js +8 -10
  128. package/package.json +54 -29
  129. package/CHANGELOG.md +0 -1769
  130. package/lib/Adapters/Cache/RedisCacheAdapter/KeyPromiseQueue.js +0 -59
  131. package/lib/Adapters/Cache/RedisCacheAdapter/index.js +0 -130
  132. package/lib/Controllers/SchemaCache.js +0 -75
@@ -89,6 +89,8 @@ function searchForGroup(client, options, id, resolve, reject) {
89
89
  }
90
90
  });
91
91
  res.on('error', () => {
92
+ client.unbind();
93
+ client.destroy();
92
94
  return reject(new Parse.Error(Parse.Error.INTERNAL_SERVER_ERROR, 'LDAP group search failed'));
93
95
  });
94
96
  });
@@ -102,4 +104,4 @@ module.exports = {
102
104
  validateAppId,
103
105
  validateAuthData
104
106
  };
105
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL2xkYXAuanMiXSwibmFtZXMiOlsibGRhcGpzIiwicmVxdWlyZSIsIlBhcnNlIiwidmFsaWRhdGVBdXRoRGF0YSIsImF1dGhEYXRhIiwib3B0aW9ucyIsIm9wdGlvbnNBcmVWYWxpZCIsIlByb21pc2UiLCJfIiwicmVqZWN0IiwiRXJyb3IiLCJJTlRFUk5BTF9TRVJWRVJfRVJST1IiLCJjbGllbnRPcHRpb25zIiwidXJsIiwic3RhcnRzV2l0aCIsInRsc09wdGlvbnMiLCJjbGllbnQiLCJjcmVhdGVDbGllbnQiLCJ1c2VyQ24iLCJkbiIsInJlcGxhY2UiLCJpZCIsInN1ZmZpeCIsInJlc29sdmUiLCJiaW5kIiwicGFzc3dvcmQiLCJsZGFwRXJyb3IiLCJlcnJvciIsImNvZGUiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwiZGVzdHJveSIsImdyb3VwQ24iLCJncm91cEZpbHRlciIsInNlYXJjaEZvckdyb3VwIiwidW5iaW5kIiwiZmlsdGVyIiwib3B0cyIsInNjb3BlIiwiZm91bmQiLCJzZWFyY2giLCJzZWFyY2hFcnJvciIsInJlcyIsIm9uIiwiZW50cnkiLCJvYmplY3QiLCJjbiIsInZhbGlkYXRlQXBwSWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsWUFBRCxDQUFQLENBQXNCQyxLQUFwQzs7QUFFQSxTQUFTQyxnQkFBVCxDQUEwQkMsUUFBMUIsRUFBb0NDLE9BQXBDLEVBQTZDO0FBQzNDLE1BQUksQ0FBQ0MsZUFBZSxDQUFDRCxPQUFELENBQXBCLEVBQStCO0FBQzdCLFdBQU8sSUFBSUUsT0FBSixDQUFZLENBQUNDLENBQUQsRUFBSUMsTUFBSixLQUFlO0FBQ2hDQSxNQUFBQSxNQUFNLENBQUMsSUFBSVAsS0FBSyxDQUFDUSxLQUFWLENBQWdCUixLQUFLLENB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TTtBQUNsQixVQUFJLENBQUNKLEtBQUwsRUFBWTtBQUNWdEIsUUFBQUEsTUFBTSxDQUFDa0IsTUFBUDtBQUNBbEIsUUFBQUEsTUFBTSxDQUFDYyxPQUFQO0FBQ0EsZUFBT3JCLE1BQU0sQ0FDWCxJQUFJUCxLQUFLLENBQUNRLEtBQVYsQ0FBZ0JSLEtBQUssQ0FBQ1EsS0FBTixDQUFZQyxxQkFBNUIsRUFBbUQseUJBQW5ELENBRFcsQ0FBYjtBQUdEO0FBQ0YsS0FSRDtBQVNBOEIsSUFBQUEsR0FBRyxDQUFDQyxFQUFKLENBQU8sT0FBUCxFQUFnQixNQUFNO0FBQ3BCLGFBQU9qQyxNQUFNLENBQUMsSUFBSVAsS0FBSyxDQUFDUSxLQUFWLENBQWdCUixLQUFLLENBQUNRLEtBQU4sQ0FBWUMscUJBQTVCLEVBQW1ELDBCQUFuRCxDQUFELENBQWI7QUFDRCxLQUZEO0FBR0QsR0ExQkQ7QUEyQkQ7O0FBRUQsU0FBU21DLGFBQVQsR0FBeUI7QUFDdkIsU0FBT3ZDLE9BQU8sQ0FBQ2dCLE9BQVIsRUFBUDtBQUNEOztBQUVEd0IsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2ZGLEVBQUFBLGFBRGU7QUFFZjNDLEVBQUFBO0FBRmUsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsZGFwanMgPSByZXF1aXJlKCdsZGFwanMnKTtcbmNvbnN0IFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlO1xuXG5mdW5jdGlvbiB2YWxpZGF0ZUF1dGhEYXRhKGF1dGhEYXRhLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9uc0FyZVZhbGlkKG9wdGlvbnMpKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChfLCByZWplY3QpID0+IHtcbiAgICAgIHJlamVjdChuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5URVJOQUxfU0VSVkVSX0VSUk9SLCAnTERBUCBhdXRoIGNvbmZpZ3VyYXRpb24gbWlzc2luZycpKTtcbiAgICB9KTtcbiAgfVxuICBjb25zdCBjbGllbnRPcHRpb25zID0gb3B0aW9ucy51cmwuc3RhcnRzV2l0aCgnbGRhcHM6Ly8nKVxuICAgID8geyB1cmw6IG9wdGlvbnMudXJsLCB0bHNPcHRpb25zOiBvcHRpb25zLnRsc09wdGlvbnMgfVxuICAgIDogeyB1cmw6IG9wdGlvbnMudXJsIH07XG5cbiAgY29uc3QgY2xpZW50ID0gbGRhcGpzLmNyZWF0ZUNsaWVudChjbGllbnRPcHRpb25zKTtcbiAgY29uc3QgdXNlckNuID1cbiAgICB0eXBlb2Ygb3B0aW9ucy5kbiA9PT0gJ3N0cmluZydcbiAgICAgID8gb3B0aW9ucy5kbi5yZXBsYWNlKCd7e2lkfX0nLCBhdXRoRGF0YS5pZClcbiAgICAgIDogYHVpZD0ke2F1dGhEYXRhLmlkfSwke29wdGlvbnMuc3VmZml4fWA7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjbGllbnQuYmluZCh1c2VyQ24sIGF1dGhEYXRhLnBhc3N3b3JkLCBsZGFwRXJyb3IgPT4ge1xuICAgICAgZGVsZXRlIGF1dGhEYXRhLnBhc3N3b3JkO1xuICAgICAgaWYgKGxkYXBFcnJvcikge1xuICAgICAgICBsZXQgZXJyb3I7XG4gICAgICAgIHN3aXRjaCAobGRhcEVycm9yLmNvZGUpIHtcbiAgICAgICAgICBjYXNlIDQ5OlxuICAgICAgICAgICAgZXJyb3IgPSBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgICAgICAgIFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsXG4gICAgICAgICAgICAgICdMREFQOiBXcm9uZyB1c2VybmFtZSBvciBwYXNzd29yZCdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdERVBUSF9aRVJPX1NFTEZfU0lHTkVEX0NFUlQnOlxuICAgICAgICAgICAgZXJyb3IgPSBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ0xEQVBTOiBDZXJ0aWZpY2F0ZSBtaXNtYXRjaCcpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGVycm9yID0gbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgICAgICBQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELFxuICAgICAgICAgICAgICAnTERBUDogU29tdGhpbmcgd2VudCB3cm9uZyAoJyArIGxkYXBFcnJvci5jb2RlICsgJyknXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIGNsaWVudC5kZXN0cm95KGxkYXBFcnJvcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmdyb3VwQ24gPT09ICdzdHJpbmcnICYmIHR5cGVvZiBvcHRpb25zLmdyb3VwRmlsdGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICBzZWFyY2hGb3JHcm91cChjbGllbnQsIG9wdGlvbnMsIGF1dGhEYXRhLmlkLCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xpZW50LnVuYmluZCgpO1xuICAgICAgICBjbGllbnQuZGVzdHJveSgpO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvcHRpb25zQXJlVmFsaWQob3B0aW9ucykge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBvcHRpb25zID09PSAnb2JqZWN0JyAmJlxuICAgIHR5cGVvZiBvcHRpb25zLnN1ZmZpeCA9PT0gJ3N0cmluZycgJiZcbiAgICB0eXBlb2Ygb3B0aW9ucy51cmwgPT09ICdzdHJpbmcnICYmXG4gICAgKG9wdGlvbnMudXJsLnN0YXJ0c1dpdGgoJ2xkYXA6Ly8nKSB8fFxuICAgICAgKG9wdGlvbnMudXJsLnN0YXJ0c1dpdGgoJ2xkYXBzOi8vJykgJiYgdHlwZW9mIG9wdGlvbnMudGxzT3B0aW9ucyA9PT0gJ29iamVjdCcpKVxuICApO1xufVxuXG5mdW5jdGlvbiBzZWFyY2hGb3JHcm91cChjbGllbnQsIG9wdGlvbnMsIGlkLCByZXNvbHZlLCByZWplY3QpIHtcbiAgY29uc3QgZmlsdGVyID0gb3B0aW9ucy5ncm91cEZpbHRlci5yZXBsYWNlKC97e2lkfX0vZ2ksIGlkKTtcbiAgY29uc3Qgb3B0cyA9IHtcbiAgICBzY29wZTogJ3N1YicsXG4gICAgZmlsdGVyOiBmaWx0ZXIsXG4gIH07XG4gIGxldCBmb3VuZCA9IGZhbHNlO1xuICBjbGllbnQuc2VhcmNoKG9wdGlvbnMuc3VmZml4LCBvcHRzLCAoc2VhcmNoRXJyb3IsIHJlcykgPT4ge1xuICAgIGlmIChzZWFyY2hFcnJvcikge1xuICAgICAgY2xpZW50LnVuYmluZCgpO1xuICAgICAgY2xpZW50LmRlc3Ryb3koKTtcbiAgICAgIHJldHVybiByZWplY3QobmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVEVSTkFMX1NFUlZFUl9FUlJPUiwgJ0xEQVAgZ3JvdXAgc2VhcmNoIGZhaWxlZCcpKTtcbiAgICB9XG4gICAgcmVzLm9uKCdzZWFyY2hFbnRyeScsIGVudHJ5ID0+IHtcbiAgICAgIGlmIChlbnRyeS5vYmplY3QuY24gPT09IG9wdGlvbnMuZ3JvdXBDbikge1xuICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgIGNsaWVudC51bmJpbmQoKTtcbiAgICAgICAgY2xpZW50LmRlc3Ryb3koKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXMub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIGlmICghZm91bmQpIHtcbiAgICAgICAgY2xpZW50LnVuYmluZCgpO1xuICAgICAgICBjbGllbnQuZGVzdHJveSgpO1xuICAgICAgICByZXR1cm4gcmVqZWN0KFxuICAgICAgICAgIG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlRFUk5BTF9TRVJWRVJfRVJST1IsICdMREFQOiBVc2VyIG5vdCBpbiBncm91cCcpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmVzLm9uKCdlcnJvcicsICgpID0+IHtcbiAgICAgIHJldHVybiByZWplY3QobmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVEVSTkFMX1NFUlZFUl9FUlJPUiwgJ0xEQVAgZ3JvdXAgc2VhcmNoIGZhaWxlZCcpKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQXBwSWQoKSB7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHZhbGlkYXRlQXBwSWQsXG4gIHZhbGlkYXRlQXV0aERhdGEsXG59O1xuIl19
107
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL2xkYXAuanMiXSwibmFtZXMiOlsibGRhcGpzIiwicmVxdWlyZSIsIlBhcnNlIiwidmFsaWRhdGVBdXRoRGF0YSIsImF1dGhEYXRhIiwib3B0aW9ucyIsIm9wdGlvbnNBcmVWYWxpZCIsIlByb21pc2UiLCJfIiwicmVqZWN0IiwiRXJyb3IiLCJJTlRFUk5BTF9TRVJWRVJfRVJST1IiLCJjbGllbnRPcHRpb25zIiwidXJsIiwic3RhcnRzV2l0aCIsInRsc09wdGlvbnMiLCJjbGllbnQiLCJjcmVhdGVDbGllbnQiLCJ1c2VyQ24iLCJkbiIsInJlcGxhY2UiLCJpZCIsInN1ZmZpeCIsInJlc29sdmUiLCJiaW5kIiwicGFzc3dvcmQiLCJsZGFwRXJyb3IiLCJlcnJvciIsImNvZGUiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwiZGVzdHJveSIsImdyb3VwQ24iLCJncm91cEZpbHRlciIsInNlYXJjaEZvckdyb3VwIiwidW5iaW5kIiwiZmlsdGVyIiwib3B0cyIsInNjb3BlIiwiZm91bmQiLCJzZWFyY2giLCJzZWFyY2hFcnJvciIsInJlcyIsIm9uIiwiZW50cnkiLCJvYmplY3QiLCJjbiIsInZhbGlkYXRlQXBwSWQiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsWUFBRCxDQUFQLENBQXNCQyxLQUFwQzs7QUFFQSxTQUFTQyxnQkFBVCxDQUEwQkMsUUFBMUIsRUFBb0NDLE9BQXBDLEVBQTZDO0FBQzNDLE1BQUksQ0FBQ0MsZUFBZSxDQUFDRCxPQUFELENBQXBCLEVBQStCO0FBQzdCLFdBQU8sSUFBSUUsT0FBSixDQUFZLENBQUNDLENBQUQsRUFBSUMsTUFBSixLQUFlO0FBQ2hDQSxNQUFBQSxNQUFNLENBQUMsSUFBSVAsS0FBSyxDQUFDUSxLQUFWLENBQWdCUixLQUFLLENB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TTtBQUNsQixVQUFJLENBQUNKLEtBQUwsRUFBWTtBQUNWdEIsUUFBQUEsTUFBTSxDQUFDa0IsTUFBUDtBQUNBbEIsUUFBQUEsTUFBTSxDQUFDYyxPQUFQO0FBQ0EsZUFBT3JCLE1BQU0sQ0FDWCxJQUFJUCxLQUFLLENBQUNRLEtBQVYsQ0FBZ0JSLEtBQUssQ0FBQ1EsS0FBTixDQUFZQyxxQkFBNUIsRUFBbUQseUJBQW5ELENBRFcsQ0FBYjtBQUdEO0FBQ0YsS0FSRDtBQVNBOEIsSUFBQUEsR0FBRyxDQUFDQyxFQUFKLENBQU8sT0FBUCxFQUFnQixNQUFNO0FBQ3BCMUIsTUFBQUEsTUFBTSxDQUFDa0IsTUFBUDtBQUNBbEIsTUFBQUEsTUFBTSxDQUFDYyxPQUFQO0FBQ0EsYUFBT3JCLE1BQU0sQ0FBQyxJQUFJUCxLQUFLLENBQUNRLEtBQVYsQ0FBZ0JSLEtBQUssQ0FBQ1EsS0FBTixDQUFZQyxxQkFBNUIsRUFBbUQsMEJBQW5ELENBQUQsQ0FBYjtBQUNELEtBSkQ7QUFLRCxHQTVCRDtBQTZCRDs7QUFFRCxTQUFTbUMsYUFBVCxHQUF5QjtBQUN2QixTQUFPdkMsT0FBTyxDQUFDZ0IsT0FBUixFQUFQO0FBQ0Q7O0FBRUR3QixNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDZkYsRUFBQUEsYUFEZTtBQUVmM0MsRUFBQUE7QUFGZSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGxkYXBqcyA9IHJlcXVpcmUoJ2xkYXBqcycpO1xuY29uc3QgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2U7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQXV0aERhdGEoYXV0aERhdGEsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zQXJlVmFsaWQob3B0aW9ucykpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKF8sIHJlamVjdCkgPT4ge1xuICAgICAgcmVqZWN0KG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlRFUk5BTF9TRVJWRVJfRVJST1IsICdMREFQIGF1dGggY29uZmlndXJhdGlvbiBtaXNzaW5nJykpO1xuICAgIH0pO1xuICB9XG4gIGNvbnN0IGNsaWVudE9wdGlvbnMgPSBvcHRpb25zLnVybC5zdGFydHNXaXRoKCdsZGFwczovLycpXG4gICAgPyB7IHVybDogb3B0aW9ucy51cmwsIHRsc09wdGlvbnM6IG9wdGlvbnMudGxzT3B0aW9ucyB9XG4gICAgOiB7IHVybDogb3B0aW9ucy51cmwgfTtcblxuICBjb25zdCBjbGllbnQgPSBsZGFwanMuY3JlYXRlQ2xpZW50KGNsaWVudE9wdGlvbnMpO1xuICBjb25zdCB1c2VyQ24gPVxuICAgIHR5cGVvZiBvcHRpb25zLmRuID09PSAnc3RyaW5nJ1xuICAgICAgPyBvcHRpb25zLmRuLnJlcGxhY2UoJ3t7aWR9fScsIGF1dGhEYXRhLmlkKVxuICAgICAgOiBgdWlkPSR7YXV0aERhdGEuaWR9LCR7b3B0aW9ucy5zdWZmaXh9YDtcblxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNsaWVudC5iaW5kKHVzZXJDbiwgYXV0aERhdGEucGFzc3dvcmQsIGxkYXBFcnJvciA9PiB7XG4gICAgICBkZWxldGUgYXV0aERhdGEucGFzc3dvcmQ7XG4gICAgICBpZiAobGRhcEVycm9yKSB7XG4gICAgICAgIGxldCBlcnJvcjtcbiAgICAgICAgc3dpdGNoIChsZGFwRXJyb3IuY29kZSkge1xuICAgICAgICAgIGNhc2UgNDk6XG4gICAgICAgICAgICBlcnJvciA9IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgICAgICAgUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCxcbiAgICAgICAgICAgICAgJ0xEQVA6IFdyb25nIHVzZXJuYW1lIG9yIHBhc3N3b3JkJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0RFUFRIX1pFUk9fU0VMRl9TSUdORURfQ0VSVCc6XG4gICAgICAgICAgICBlcnJvciA9IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnTERBUFM6IENlcnRpZmljYXRlIG1pc21hdGNoJyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZXJyb3IgPSBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgICAgICAgIFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsXG4gICAgICAgICAgICAgICdMREFQOiBTb210aGluZyB3ZW50IHdyb25nICgnICsgbGRhcEVycm9yLmNvZGUgKyAnKSdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgY2xpZW50LmRlc3Ryb3kobGRhcEVycm9yKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuZ3JvdXBDbiA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIG9wdGlvbnMuZ3JvdXBGaWx0ZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHNlYXJjaEZvckdyb3VwKGNsaWVudCwgb3B0aW9ucywgYXV0aERhdGEuaWQsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGllbnQudW5iaW5kKCk7XG4gICAgICAgIGNsaWVudC5kZXN0cm95KCk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG9wdGlvbnNBcmVWYWxpZChvcHRpb25zKSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIG9wdGlvbnMgPT09ICdvYmplY3QnICYmXG4gICAgdHlwZW9mIG9wdGlvbnMuc3VmZml4ID09PSAnc3RyaW5nJyAmJlxuICAgIHR5cGVvZiBvcHRpb25zLnVybCA9PT0gJ3N0cmluZycgJiZcbiAgICAob3B0aW9ucy51cmwuc3RhcnRzV2l0aCgnbGRhcDovLycpIHx8XG4gICAgICAob3B0aW9ucy51cmwuc3RhcnRzV2l0aCgnbGRhcHM6Ly8nKSAmJiB0eXBlb2Ygb3B0aW9ucy50bHNPcHRpb25zID09PSAnb2JqZWN0JykpXG4gICk7XG59XG5cbmZ1bmN0aW9uIHNlYXJjaEZvckdyb3VwKGNsaWVudCwgb3B0aW9ucywgaWQsIHJlc29sdmUsIHJlamVjdCkge1xuICBjb25zdCBmaWx0ZXIgPSBvcHRpb25zLmdyb3VwRmlsdGVyLnJlcGxhY2UoL3t7aWR9fS9naSwgaWQpO1xuICBjb25zdCBvcHRzID0ge1xuICAgIHNjb3BlOiAnc3ViJyxcbiAgICBmaWx0ZXI6IGZpbHRlcixcbiAgfTtcbiAgbGV0IGZvdW5kID0gZmFsc2U7XG4gIGNsaWVudC5zZWFyY2gob3B0aW9ucy5zdWZmaXgsIG9wdHMsIChzZWFyY2hFcnJvciwgcmVzKSA9PiB7XG4gICAgaWYgKHNlYXJjaEVycm9yKSB7XG4gICAgICBjbGllbnQudW5iaW5kKCk7XG4gICAgICBjbGllbnQuZGVzdHJveSgpO1xuICAgICAgcmV0dXJuIHJlamVjdChuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5URVJOQUxfU0VSVkVSX0VSUk9SLCAnTERBUCBncm91cCBzZWFyY2ggZmFpbGVkJykpO1xuICAgIH1cbiAgICByZXMub24oJ3NlYXJjaEVudHJ5JywgZW50cnkgPT4ge1xuICAgICAgaWYgKGVudHJ5Lm9iamVjdC5jbiA9PT0gb3B0aW9ucy5ncm91cENuKSB7XG4gICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgY2xpZW50LnVuYmluZCgpO1xuICAgICAgICBjbGllbnQuZGVzdHJveSgpO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJlcy5vbignZW5kJywgKCkgPT4ge1xuICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICBjbGllbnQudW5iaW5kKCk7XG4gICAgICAgIGNsaWVudC5kZXN0cm95KCk7XG4gICAgICAgIHJldHVybiByZWplY3QoXG4gICAgICAgICAgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVEVSTkFMX1NFUlZFUl9FUlJPUiwgJ0xEQVA6IFVzZXIgbm90IGluIGdyb3VwJylcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXMub24oJ2Vycm9yJywgKCkgPT4ge1xuICAgICAgY2xpZW50LnVuYmluZCgpO1xuICAgICAgY2xpZW50LmRlc3Ryb3koKTtcbiAgICAgIHJldHVybiByZWplY3QobmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVEVSTkFMX1NFUlZFUl9FUlJPUiwgJ0xEQVAgZ3JvdXAgc2VhcmNoIGZhaWxlZCcpKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQXBwSWQoKSB7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHZhbGlkYXRlQXBwSWQsXG4gIHZhbGlkYXRlQXV0aERhdGEsXG59O1xuIl19
@@ -139,4 +139,4 @@ module.exports = {
139
139
  validateAppId: validateAppId,
140
140
  validateAuthData: validateAuthData
141
141
  };
142
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL29hdXRoMi5qcyJdLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJ1cmwiLCJxdWVyeXN0cmluZyIsImh0dHBzUmVxdWVzdCIsIklOVkFMSURfQUNDRVNTIiwiSU5WQUxJRF9BQ0NFU1NfQVBQSUQiLCJNSVNTSU5HX0FQUElEUyIsIk1JU1NJTkdfVVJMIiwidmFsaWRhdGVBdXRoRGF0YSIsImF1dGhEYXRhIiwib3B0aW9ucyIsInJlcXVlc3RUb2tlbkluZm8iLCJhY2Nlc3NfdG9rZW4iLCJ0aGVuIiwicmVzcG9uc2UiLCJhY3RpdmUiLCJ1c2VyaWRGaWVsZCIsImlkIiwiRXJyb3IiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwidmFsaWRhdGVBcHBJZCIsImFwcElkcyIsImFwcGlkRmllbGQiLCJQcm9taXNlIiwicmVzb2x2ZSIsImxlbmd0aCIsInJlc3BvbnNlVmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJpbmNsdWRlcyIsInNvbWUiLCJhcHBJZCIsInRva2VuSW50cm9zcGVjdGlvbkVuZHBvaW50VXJsIiwicGFyc2VkVXJsIiwicGFyc2UiLCJwb3N0RGF0YSIsInN0cmluZ2lmeSIsInRva2VuIiwiaGVhZGVycyIsIkJ1ZmZlciIsImJ5dGVMZW5ndGgiLCJhdXRob3JpemF0aW9uSGVhZGVyIiwicG9zdE9wdGlvbnMiLCJob3N0bmFtZSIsInBhdGgiLCJwYXRobmFtZSIsIm1ldGhvZCIsInJlcXVlc3QiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1REEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUFQLENBQXNCRCxLQUFwQzs7QUFDQSxNQUFNRSxHQUFHLEdBQUdELE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1FLFdBQVcsR0FBR0YsT0FBTyxDQUFDLGFBQUQs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QUFELElBQVksQ0FBQ0EsT0FBTyxDQUFDc0IsNkJBQXpCLEVBQXdEO0FBQ3RELFVBQU0sSUFBSWpDLEtBQUssQ0FBQ21CLEtBQVYsQ0FBZ0JuQixLQUFLLENBQUNtQixLQUFOLENBQVlDLGdCQUE1QixFQUE4Q1osV0FBOUMsQ0FBTjtBQUNEOztBQUNELFFBQU0wQixTQUFTLEdBQUdoQyxHQUFHLENBQUNpQyxLQUFKLENBQVV4QixPQUFPLENBQUNzQiw2QkFBbEIsQ0FBbEI7QUFDQSxRQUFNRyxRQUFRLEdBQUdqQyxXQUFXLENBQUNrQyxTQUFaLENBQXNCO0FBQ3JDQyxJQUFBQSxLQUFLLEVBQUV6QjtBQUQ4QixHQUF0QixDQUFqQjtBQUdBLFFBQU0wQixPQUFPLEdBQUc7QUFDZCxvQkFBZ0IsbUNBREY7QUFFZCxzQkFBa0JDLE1BQU0sQ0FBQ0MsVUFBUCxDQUFrQkwsUUFBbEI7QUFGSixHQUFoQjs7QUFJQSxNQUFJekIsT0FBTyxDQUFDK0IsbUJBQVosRUFBaUM7QUFDL0JILElBQUFBLE9BQU8sQ0FBQyxlQUFELENBQVAsR0FBMkI1QixPQUFPLENBQUMrQixtQkFBbkM7QUFDRDs7QUFDRCxRQUFNQyxXQUFXLEdBQUc7QUFDbEJDLElBQUFBLFFBQVEsRUFBRVYsU0FBUyxDQUFDVSxRQURGO0FBRWxCQyxJQUFBQSxJQUFJLEVBQUVYLFNBQVMsQ0FBQ1ksUUFGRTtBQUdsQkMsSUFBQUEsTUFBTSxFQUFFLE1BSFU7QUFJbEJSLElBQUFBLE9BQU8sRUFBRUE7QUFKUyxHQUFwQjtBQU1BLFNBQU9uQyxZQUFZLENBQUM0QyxPQUFiLENBQXFCTCxXQUFyQixFQUFrQ1AsUUFBbEMsQ0FBUDtBQUNEOztBQUVEYSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDZjdCLEVBQUFBLGFBQWEsRUFBRUEsYUFEQTtBQUVmWixFQUFBQSxnQkFBZ0IsRUFBRUE7QUFGSCxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBUaGlzIGF1dGggYWRhcHRlciBpcyBiYXNlZCBvbiB0aGUgT0F1dGggMi4wIFRva2VuIEludHJvc3BlY3Rpb24gc3BlY2lmaWNhdGlvbi5cbiAqIFNlZSBSRkMgNzY2MiBmb3IgZGV0YWlscyAoaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzc2NjIpLlxuICogSXQncyBwdXJwb3NlIGlzIHRvIHZhbGlkYXRlIE9BdXRoMiBhY2Nlc3MgdG9rZW5zIHVzaW5nIHRoZSBPQXV0aDIgcHJvdmlkZXInc1xuICogdG9rZW4gaW50cm9zcGVjdGlvbiBlbmRwb2ludCAoaWYgaW1wbGVtZW50ZWQgYnkgdGhlIHByb3ZpZGVyKS5cbiAqXG4gKiBUaGUgYWRhcHRlciBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgY29uZmlnIHBhcmFtZXRlcnM6XG4gKlxuICogMS4gXCJ0b2tlbkludHJvc3BlY3Rpb25FbmRwb2ludFVybFwiIChzdHJpbmcsIHJlcXVpcmVkKVxuICogICAgICBUaGUgVVJMIG9mIHRoZSB0b2tlbiBpbnRyb3NwZWN0aW9uIGVuZHBvaW50IG9mIHRoZSBPQXV0aDIgcHJvdmlkZXIgdGhhdFxuICogICAgICBpc3N1ZWQgdGhlIGFjY2VzcyB0b2tlbiB0byB0aGUgY2xpZW50IHRoYXQgaXMgdG8gYmUgdmFsaWRhdGVkLlxuICpcbiAqIDIuIFwidXNlcmlkRmllbGRcIiAoc3RyaW5nLCBvcHRpb25hbClcbiAqICAgICAgVGhlIG5hbWUgb2YgdGhlIGZpZWxkIGluIHRoZSB0b2tlbiBpbnRyb3NwZWN0aW9uIHJlc3BvbnNlIHRoYXQgY29udGFpbnNcbiAqICAgICAgdGhlIHVzZXJpZC4gSWYgc3BlY2lmaWVkLCBpdCB3aWxsIGJlIHVzZWQgdG8gdmVyaWZ5IHRoZSB2YWx1ZSBvZiB0aGUgXCJpZFwiXG4gKiAgICAgIGZpZWxkIGluIHRoZSBcImF1dGhEYXRhXCIgSlNPTiB0aGF0IGlzIGNvbWluZyBmcm9tIHRoZSBjbGllbnQuXG4gKiAgICAgIFRoaXMgY2FuIGJlIHRoZSBcImF1ZFwiIChpLmUuIGF1ZGllbmNlKSwgdGhlIFwic3ViXCIgKGkuZS4gc3ViamVjdCkgb3IgdGhlXG4gKiAgICAgIFwidXNlcm5hbWVcIiBmaWVsZCBpbiB0aGUgaW50cm9zcGVjdGlvbiByZXNwb25zZSwgYnV0IHNpbmNlIG9ubHkgdGhlXG4gKiAgICAgIFwiYWN0aXZlXCIgZmllbGQgaXMgcmVxdWlyZWQgYW5kIGFsbCBvdGhlciByZXBvbnNlIGZpZWxkcyBhcmUgb3B0aW9uYWxcbiAqICAgICAgaW4gdGhlIFJGQywgaXQgaGFzIHRvIGJlIG9wdGlvbmFsIGluIHRoaXMgYWRhcHRlciBhcyB3ZWxsLlxuICogICAgICBEZWZhdWx0OiAtICh1bmRlZmluZWQpXG4gKlxuICogMy4gXCJhcHBpZEZpZWxkXCIgKHN0cmluZywgb3B0aW9uYWwpXG4gKiAgICAgIFRoZSBuYW1lIG9mIHRoZSBmaWVsZCBpbiB0aGUgdG9rZW4gaW50cm9zcGVjdGlvbiByZXNwb25zZSB0aGF0IGNvbnRhaW5zXG4gKiAgICAgIHRoZSBhcHBJZCBvZiB0aGUgY2xpZW50LiBJZiBzcGVjaWZpZWQsIGl0IHdpbGwgYmUgdXNlZCB0byB2ZXJpZnkgaXQnc1xuICogICAgICB2YWx1ZSBhZ2FpbnN0IHRoZSBzZXQgb2YgYXBwSWRzIGluIHRoZSBhZGFwdGVyIGNvbmZpZy4gVGhlIGNvbmNlcHQgb2ZcbiAqICAgICAgYXBwSWRzIGNvbWVzIGZyb20gdGhlIHR3byBtYWpvciBzb2NpYWwgbG9naW4gcHJvdmlkZXJzXG4gKiAgICAgIChHb29nbGUgYW5kIEZhY2Vib29rKS4gVGhleSBoYXZlIG5vdCB5ZXQgaW1wbGVtZW50ZWQgdGhlIHRva2VuXG4gKiAgICAgIGludHJvc3BlY3Rpb24gZW5kcG9pbnQsIGJ1dCB0aGUgY29uY2VwdCBjYW4gYmUgdmFsaWQgZm9yIGFueSBPQXV0aDJcbiAqICAgICAgcHJvdmlkZXIuXG4gKiAgICAgIERlZmF1bHQ6IC0gKHVuZGVmaW5lZClcbiAqXG4gKiA0LiBcImFwcElkc1wiIChhcnJheSBvZiBzdHJpbmdzLCByZXF1aXJlZCBpZiBhcHBpZEZpZWxkIGlzIGRlZmluZWQpXG4gKiAgICAgIEEgc2V0IG9mIGFwcElkcyB0aGF0IGFyZSB1c2VkIHRvIHJlc3RyaWN0IGFjY2VwdGVkIGFjY2VzcyB0b2tlbnMgYmFzZWRcbiAqICAgICAgb24gYSBzcGVjaWZpYyBmaWVsZCdzIHZhbHVlIGluIHRoZSB0b2tlbiBpbnRyb3NwZWN0aW9uIHJlc3BvbnNlLlxuICogICAgICBEZWZhdWx0OiAtICh1bmRlZmluZWQpXG4gKlxuICogNS4gXCJhdXRob3JpemF0aW9uSGVhZGVyXCIgKHN0cmluZywgb3B0aW9uYWwpXG4gKiAgICAgIFRoZSB2YWx1ZSBvZiB0aGUgXCJBdXRob3JpemF0aW9uXCIgSFRUUCBoZWFkZXIgaW4gcmVxdWVzdHMgc2VudCB0byB0aGVcbiAqICAgICAgaW50cm9zcGVjdGlvbiBlbmRwb2ludC4gSXQgbXVzdCBjb250YWluIHRoZSByYXcgdmFsdWUuXG4gKiAgICAgIFRodXMgaWYgSFRUUCBCYXNpYyBhdXRob3JpemF0aW9uIGlzIHRvIGJlIHVzZWQsIGl0IG11c3QgY29udGFpbiB0aGVcbiAqICAgICAgXCJCYXNpY1wiIHN0cmluZywgZm9sbG93ZWQgYnkgd2hpdGVzcGFjZSwgdGhlbiBieSB0aGUgYmFzZTY0IGVuY29kZWRcbiAqICAgICAgdmVyc2lvbiBvZiB0aGUgY29uY2F0ZW5hdGVkIDx1c2VybmFtZT4gKyBcIjpcIiArIDxwYXNzd29yZD4gc3RyaW5nLlxuICogICAgICBFZy4gXCJCYXNpYyBkWE5sY201aGJXVTZjR0Z6YzNkdmNtUT1cIlxuICpcbiAqIFRoZSBhZGFwdGVyIGV4cGVjdHMgcmVxdWVzdHMgd2l0aCB0aGUgZm9sbG93aW5nIGF1dGhEYXRhIEpTT046XG4gKlxuICoge1xuICogICBcInNvbWVhZGFwdGVyXCI6IHtcbiAqICAgICBcImlkXCI6IFwidXNlcidzIE9BdXRoMiBwcm92aWRlci1zcGVjaWZpYyBpZCBhcyBhIHN0cmluZ1wiLFxuICogICAgIFwiYWNjZXNzX3Rva2VuXCI6IFwiYW4gYXV0aG9yaXplZCBPQXV0aDIgYWNjZXNzIHRva2VuIGZvciB0aGUgdXNlclwiLFxuICogICB9XG4gKiB9XG4gKi9cblxuY29uc3QgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2U7XG5jb25zdCB1cmwgPSByZXF1aXJlKCd1cmwnKTtcbmNvbnN0IHF1ZXJ5c3RyaW5nID0gcmVxdWlyZSgncXVlcnlzdHJpbmcnKTtcbmNvbnN0IGh0dHBzUmVxdWVzdCA9IHJlcXVpcmUoJy4vaHR0cHNSZXF1ZXN0Jyk7XG5cbmNvbnN0IElOVkFMSURfQUNDRVNTID0gJ09BdXRoMiBhY2Nlc3MgdG9rZW4gaXMgaW52YWxpZCBmb3IgdGhpcyB1c2VyLic7XG5jb25zdCBJTlZBTElEX0FDQ0VTU19BUFBJRCA9XG4gIFwiT0F1dGgyOiB0aGUgYWNjZXNzX3Rva2VuJ3MgYXBwSUQgaXMgZW1wdHkgb3IgaXMgbm90IGluIHRoZSBsaXN0IG9mIHBlcm1pdHRlZCBhcHBJRHMgaW4gdGhlIGF1dGggY29uZmlndXJhdGlvbi5cIjtcbmNvbnN0IE1JU1NJTkdfQVBQSURTID1cbiAgJ09BdXRoMiBjb25maWd1cmF0aW9uIGlzIG1pc3NpbmcgdGhlIGNsaWVudCBhcHAgSURzIChcImFwcElkc1wiIGNvbmZpZyBwYXJhbWV0ZXIpLic7XG5jb25zdCBNSVNTSU5HX1VSTCA9ICdPQXV0aDIgdG9rZW4gaW50cm9zcGVjdGlvbiBlbmRwb2ludCBVUkwgaXMgbWlzc2luZyBmcm9tIGNvbmZpZ3VyYXRpb24hJztcblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZiB0aGlzIHVzZXIgaWQgaXMgdmFsaWQuXG5mdW5jdGlvbiB2YWxpZGF0ZUF1dGhEYXRhKGF1dGhEYXRhLCBvcHRpb25zKSB7XG4gIHJldHVybiByZXF1ZXN0VG9rZW5JbmZvKG9wdGlvbnMsIGF1dGhEYXRhLmFjY2Vzc190b2tlbikudGhlbihyZXNwb25zZSA9PiB7XG4gICAgaWYgKFxuICAgICAgIXJlc3BvbnNlIHx8XG4gICAgICAhcmVzcG9uc2UuYWN0aXZlIHx8XG4gICAgICAob3B0aW9ucy51c2VyaWRGaWVsZCAmJiBhdXRoRGF0YS5pZCAhPT0gcmVzcG9uc2Vbb3B0aW9ucy51c2VyaWRGaWVsZF0pXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgSU5WQUxJRF9BQ0NFU1MpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlQXBwSWQoYXBwSWRzLCBhdXRoRGF0YSwgb3B0aW9ucykge1xuICBpZiAoIW9wdGlvbnMgfHwgIW9wdGlvbnMuYXBwaWRGaWVsZCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuICBpZiAoIWFwcElkcyB8fCBhcHBJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIE1JU1NJTkdfQVBQSURTKTtcbiAgfVxuICByZXR1cm4gcmVxdWVzdFRva2VuSW5mbyhvcHRpb25zLCBhdXRoRGF0YS5hY2Nlc3NfdG9rZW4pLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgIGlmICghcmVzcG9uc2UgfHwgIXJlc3BvbnNlLmFjdGl2ZSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIElOVkFMSURfQUNDRVNTKTtcbiAgICB9XG4gICAgY29uc3QgYXBwaWRGaWVsZCA9IG9wdGlvbnMuYXBwaWRGaWVsZDtcbiAgICBpZiAoIXJlc3BvbnNlW2FwcGlkRmllbGRdKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgSU5WQUxJRF9BQ0NFU1NfQVBQSUQpO1xuICAgIH1cbiAgICBjb25zdCByZXNwb25zZVZhbHVlID0gcmVzcG9uc2VbYXBwaWRGaWVsZF07XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJlc3BvbnNlVmFsdWUpICYmIGFwcElkcy5pbmNsdWRlcyhyZXNwb25zZVZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlVmFsdWUpICYmXG4gICAgICByZXNwb25zZVZhbHVlLnNvbWUoYXBwSWQgPT4gYXBwSWRzLmluY2x1ZGVzKGFwcElkKSlcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIElOVkFMSURfQUNDRVNTX0FQUElEKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vLyBBIHByb21pc2Ugd3JhcHBlciBmb3IgcmVxdWVzdHMgdG8gdGhlIE9BdXRoMiB0b2tlbiBpbnRyb3NwZWN0aW9uIGVuZHBvaW50LlxuZnVuY3Rpb24gcmVxdWVzdFRva2VuSW5mbyhvcHRpb25zLCBhY2Nlc3NfdG9rZW4pIHtcbiAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLnRva2VuSW50cm9zcGVjdGlvbkVuZHBvaW50VXJsKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIE1JU1NJTkdfVVJMKTtcbiAgfVxuICBjb25zdCBwYXJzZWRVcmwgPSB1cmwucGFyc2Uob3B0aW9ucy50b2tlbkludHJvc3BlY3Rpb25FbmRwb2ludFVybCk7XG4gIGNvbnN0IHBvc3REYXRhID0gcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHtcbiAgICB0b2tlbjogYWNjZXNzX3Rva2VuLFxuICB9KTtcbiAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgJ0NvbnRlbnQtTGVuZ3RoJzogQnVmZmVyLmJ5dGVMZW5ndGgocG9zdERhdGEpLFxuICB9O1xuICBpZiAob3B0aW9ucy5hdXRob3JpemF0aW9uSGVhZGVyKSB7XG4gICAgaGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gb3B0aW9ucy5hdXRob3JpemF0aW9uSGVhZGVyO1xuICB9XG4gIGNvbnN0IHBvc3RPcHRpb25zID0ge1xuICAgIGhvc3RuYW1lOiBwYXJzZWRVcmwuaG9zdG5hbWUsXG4gICAgcGF0aDogcGFyc2VkVXJsLnBhdGhuYW1lLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gIH07XG4gIHJldHVybiBodHRwc1JlcXVlc3QucmVxdWVzdChwb3N0T3B0aW9ucywgcG9zdERhdGEpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgdmFsaWRhdGVBcHBJZDogdmFsaWRhdGVBcHBJZCxcbiAgdmFsaWRhdGVBdXRoRGF0YTogdmFsaWRhdGVBdXRoRGF0YSxcbn07XG4iXX0=
142
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL29hdXRoMi5qcyJdLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJ1cmwiLCJxdWVyeXN0cmluZyIsImh0dHBzUmVxdWVzdCIsIklOVkFMSURfQUNDRVNTIiwiSU5WQUxJRF9BQ0NFU1NfQVBQSUQiLCJNSVNTSU5HX0FQUElEUyIsIk1JU1NJTkdfVVJMIiwidmFsaWRhdGVBdXRoRGF0YSIsImF1dGhEYXRhIiwib3B0aW9ucyIsInJlcXVlc3RUb2tlbkluZm8iLCJhY2Nlc3NfdG9rZW4iLCJ0aGVuIiwicmVzcG9uc2UiLCJhY3RpdmUiLCJ1c2VyaWRGaWVsZCIsImlkIiwiRXJyb3IiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwidmFsaWRhdGVBcHBJZCIsImFwcElkcyIsImFwcGlkRmllbGQiLCJQcm9taXNlIiwicmVzb2x2ZSIsImxlbmd0aCIsInJlc3BvbnNlVmFsdWUiLCJBcnJheSIsImlzQXJyYXkiLCJpbmNsdWRlcyIsInNvbWUiLCJhcHBJZCIsInRva2VuSW50cm9zcGVjdGlvbkVuZHBvaW50VXJsIiwicGFyc2VkVXJsIiwicGFyc2UiLCJwb3N0RGF0YSIsInN0cmluZ2lmeSIsInRva2VuIiwiaGVhZGVycyIsIkJ1ZmZlciIsImJ5dGVMZW5ndGgiLCJhdXRob3JpemF0aW9uSGVhZGVyIiwicG9zdE9wdGlvbnMiLCJob3N0bmFtZSIsInBhdGgiLCJwYXRobmFtZSIsIm1ldGhvZCIsInJlcXVlc3QiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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QUFxQkwsV0FBckIsRUFBa0NQLFFBQWxDLENBQVA7QUFDRDs7QUFFRGEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2Y3QixFQUFBQSxhQUFhLEVBQUVBLGFBREE7QUFFZlosRUFBQUEsZ0JBQWdCLEVBQUVBO0FBRkgsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogVGhpcyBhdXRoIGFkYXB0ZXIgaXMgYmFzZWQgb24gdGhlIE9BdXRoIDIuMCBUb2tlbiBJbnRyb3NwZWN0aW9uIHNwZWNpZmljYXRpb24uXG4gKiBTZWUgUkZDIDc2NjIgZm9yIGRldGFpbHMgKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3NjYyKS5cbiAqIEl0J3MgcHVycG9zZSBpcyB0byB2YWxpZGF0ZSBPQXV0aDIgYWNjZXNzIHRva2VucyB1c2luZyB0aGUgT0F1dGgyIHByb3ZpZGVyJ3NcbiAqIHRva2VuIGludHJvc3BlY3Rpb24gZW5kcG9pbnQgKGlmIGltcGxlbWVudGVkIGJ5IHRoZSBwcm92aWRlcikuXG4gKlxuICogVGhlIGFkYXB0ZXIgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGNvbmZpZyBwYXJhbWV0ZXJzOlxuICpcbiAqIDEuIFwidG9rZW5JbnRyb3NwZWN0aW9uRW5kcG9pbnRVcmxcIiAoc3RyaW5nLCByZXF1aXJlZClcbiAqICAgICAgVGhlIFVSTCBvZiB0aGUgdG9rZW4gaW50cm9zcGVjdGlvbiBlbmRwb2ludCBvZiB0aGUgT0F1dGgyIHByb3ZpZGVyIHRoYXRcbiAqICAgICAgaXNzdWVkIHRoZSBhY2Nlc3MgdG9rZW4gdG8gdGhlIGNsaWVudCB0aGF0IGlzIHRvIGJlIHZhbGlkYXRlZC5cbiAqXG4gKiAyLiBcInVzZXJpZEZpZWxkXCIgKHN0cmluZywgb3B0aW9uYWwpXG4gKiAgICAgIFRoZSBuYW1lIG9mIHRoZSBmaWVsZCBpbiB0aGUgdG9rZW4gaW50cm9zcGVjdGlvbiByZXNwb25zZSB0aGF0IGNvbnRhaW5zXG4gKiAgICAgIHRoZSB1c2VyaWQuIElmIHNwZWNpZmllZCwgaXQgd2lsbCBiZSB1c2VkIHRvIHZlcmlmeSB0aGUgdmFsdWUgb2YgdGhlIFwiaWRcIlxuICogICAgICBmaWVsZCBpbiB0aGUgXCJhdXRoRGF0YVwiIEpTT04gdGhhdCBpcyBjb21pbmcgZnJvbSB0aGUgY2xpZW50LlxuICogICAgICBUaGlzIGNhbiBiZSB0aGUgXCJhdWRcIiAoaS5lLiBhdWRpZW5jZSksIHRoZSBcInN1YlwiIChpLmUuIHN1YmplY3QpIG9yIHRoZVxuICogICAgICBcInVzZXJuYW1lXCIgZmllbGQgaW4gdGhlIGludHJvc3BlY3Rpb24gcmVzcG9uc2UsIGJ1dCBzaW5jZSBvbmx5IHRoZVxuICogICAgICBcImFjdGl2ZVwiIGZpZWxkIGlzIHJlcXVpcmVkIGFuZCBhbGwgb3RoZXIgcmVwb25zZSBmaWVsZHMgYXJlIG9wdGlvbmFsXG4gKiAgICAgIGluIHRoZSBSRkMsIGl0IGhhcyB0byBiZSBvcHRpb25hbCBpbiB0aGlzIGFkYXB0ZXIgYXMgd2VsbC5cbiAqICAgICAgRGVmYXVsdDogLSAodW5kZWZpbmVkKVxuICpcbiAqIDMuIFwiYXBwaWRGaWVsZFwiIChzdHJpbmcsIG9wdGlvbmFsKVxuICogICAgICBUaGUgbmFtZSBvZiB0aGUgZmllbGQgaW4gdGhlIHRva2VuIGludHJvc3BlY3Rpb24gcmVzcG9uc2UgdGhhdCBjb250YWluc1xuICogICAgICB0aGUgYXBwSWQgb2YgdGhlIGNsaWVudC4gSWYgc3BlY2lmaWVkLCBpdCB3aWxsIGJlIHVzZWQgdG8gdmVyaWZ5IGl0J3NcbiAqICAgICAgdmFsdWUgYWdhaW5zdCB0aGUgc2V0IG9mIGFwcElkcyBpbiB0aGUgYWRhcHRlciBjb25maWcuIFRoZSBjb25jZXB0IG9mXG4gKiAgICAgIGFwcElkcyBjb21lcyBmcm9tIHRoZSB0d28gbWFqb3Igc29jaWFsIGxvZ2luIHByb3ZpZGVyc1xuICogICAgICAoR29vZ2xlIGFuZCBGYWNlYm9vaykuIFRoZXkgaGF2ZSBub3QgeWV0IGltcGxlbWVudGVkIHRoZSB0b2tlblxuICogICAgICBpbnRyb3NwZWN0aW9uIGVuZHBvaW50LCBidXQgdGhlIGNvbmNlcHQgY2FuIGJlIHZhbGlkIGZvciBhbnkgT0F1dGgyXG4gKiAgICAgIHByb3ZpZGVyLlxuICogICAgICBEZWZhdWx0OiAtICh1bmRlZmluZWQpXG4gKlxuICogNC4gXCJhcHBJZHNcIiAoYXJyYXkgb2Ygc3RyaW5ncywgcmVxdWlyZWQgaWYgYXBwaWRGaWVsZCBpcyBkZWZpbmVkKVxuICogICAgICBBIHNldCBvZiBhcHBJZHMgdGhhdCBhcmUgdXNlZCB0byByZXN0cmljdCBhY2NlcHRlZCBhY2Nlc3MgdG9rZW5zIGJhc2VkXG4gKiAgICAgIG9uIGEgc3BlY2lmaWMgZmllbGQncyB2YWx1ZSBpbiB0aGUgdG9rZW4gaW50cm9zcGVjdGlvbiByZXNwb25zZS5cbiAqICAgICAgRGVmYXVsdDogLSAodW5kZWZpbmVkKVxuICpcbiAqIDUuIFwiYXV0aG9yaXphdGlvbkhlYWRlclwiIChzdHJpbmcsIG9wdGlvbmFsKVxuICogICAgICBUaGUgdmFsdWUgb2YgdGhlIFwiQXV0aG9yaXphdGlvblwiIEhUVFAgaGVhZGVyIGluIHJlcXVlc3RzIHNlbnQgdG8gdGhlXG4gKiAgICAgIGludHJvc3BlY3Rpb24gZW5kcG9pbnQuIEl0IG11c3QgY29udGFpbiB0aGUgcmF3IHZhbHVlLlxuICogICAgICBUaHVzIGlmIEhUVFAgQmFzaWMgYXV0aG9yaXphdGlvbiBpcyB0byBiZSB1c2VkLCBpdCBtdXN0IGNvbnRhaW4gdGhlXG4gKiAgICAgIFwiQmFzaWNcIiBzdHJpbmcsIGZvbGxvd2VkIGJ5IHdoaXRlc3BhY2UsIHRoZW4gYnkgdGhlIGJhc2U2NCBlbmNvZGVkXG4gKiAgICAgIHZlcnNpb24gb2YgdGhlIGNvbmNhdGVuYXRlZCA8dXNlcm5hbWU+ICsgXCI6XCIgKyA8cGFzc3dvcmQ+IHN0cmluZy5cbiAqICAgICAgRWcuIFwiQmFzaWMgZFhObGNtNWhiV1U2Y0dGemMzZHZjbVE9XCJcbiAqXG4gKiBUaGUgYWRhcHRlciBleHBlY3RzIHJlcXVlc3RzIHdpdGggdGhlIGZvbGxvd2luZyBhdXRoRGF0YSBKU09OOlxuICpcbiAqIHtcbiAqICAgXCJzb21lYWRhcHRlclwiOiB7XG4gKiAgICAgXCJpZFwiOiBcInVzZXIncyBPQXV0aDIgcHJvdmlkZXItc3BlY2lmaWMgaWQgYXMgYSBzdHJpbmdcIixcbiAqICAgICBcImFjY2Vzc190b2tlblwiOiBcImFuIGF1dGhvcml6ZWQgT0F1dGgyIGFjY2VzcyB0b2tlbiBmb3IgdGhlIHVzZXJcIixcbiAqICAgfVxuICogfVxuICovXG5cbmNvbnN0IFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlO1xuY29uc3QgdXJsID0gcmVxdWlyZSgndXJsJyk7XG5jb25zdCBxdWVyeXN0cmluZyA9IHJlcXVpcmUoJ3F1ZXJ5c3RyaW5nJyk7XG5jb25zdCBodHRwc1JlcXVlc3QgPSByZXF1aXJlKCcuL2h0dHBzUmVxdWVzdCcpO1xuXG5jb25zdCBJTlZBTElEX0FDQ0VTUyA9ICdPQXV0aDIgYWNjZXNzIHRva2VuIGlzIGludmFsaWQgZm9yIHRoaXMgdXNlci4nO1xuY29uc3QgSU5WQUxJRF9BQ0NFU1NfQVBQSUQgPVxuICBcIk9BdXRoMjogdGhlIGFjY2Vzc190b2tlbidzIGFwcElEIGlzIGVtcHR5IG9yIGlzIG5vdCBpbiB0aGUgbGlzdCBvZiBwZXJtaXR0ZWQgYXBwSURzIGluIHRoZSBhdXRoIGNvbmZpZ3VyYXRpb24uXCI7XG5jb25zdCBNSVNTSU5HX0FQUElEUyA9XG4gICdPQXV0aDIgY29uZmlndXJhdGlvbiBpcyBtaXNzaW5nIHRoZSBjbGllbnQgYXBwIElEcyAoXCJhcHBJZHNcIiBjb25maWcgcGFyYW1ldGVyKS4nO1xuY29uc3QgTUlTU0lOR19VUkwgPSAnT0F1dGgyIHRva2VuIGludHJvc3BlY3Rpb24gZW5kcG9pbnQgVVJMIGlzIG1pc3NpbmcgZnJvbSBjb25maWd1cmF0aW9uISc7XG5cbi8vIFJldHVybnMgYSBwcm9taXNlIHRoYXQgZnVsZmlsbHMgaWYgdGhpcyB1c2VyIGlkIGlzIHZhbGlkLlxuZnVuY3Rpb24gdmFsaWRhdGVBdXRoRGF0YShhdXRoRGF0YSwgb3B0aW9ucykge1xuICByZXR1cm4gcmVxdWVzdFRva2VuSW5mbyhvcHRpb25zLCBhdXRoRGF0YS5hY2Nlc3NfdG9rZW4pLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgIGlmIChcbiAgICAgICFyZXNwb25zZSB8fFxuICAgICAgIXJlc3BvbnNlLmFjdGl2ZSB8fFxuICAgICAgKG9wdGlvbnMudXNlcmlkRmllbGQgJiYgYXV0aERhdGEuaWQgIT09IHJlc3BvbnNlW29wdGlvbnMudXNlcmlkRmllbGRdKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIElOVkFMSURfQUNDRVNTKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUFwcElkKGFwcElkcywgYXV0aERhdGEsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLmFwcGlkRmllbGQpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cbiAgaWYgKCFhcHBJZHMgfHwgYXBwSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCBNSVNTSU5HX0FQUElEUyk7XG4gIH1cbiAgcmV0dXJuIHJlcXVlc3RUb2tlbkluZm8ob3B0aW9ucywgYXV0aERhdGEuYWNjZXNzX3Rva2VuKS50aGVuKHJlc3BvbnNlID0+IHtcbiAgICBpZiAoIXJlc3BvbnNlIHx8ICFyZXNwb25zZS5hY3RpdmUpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCBJTlZBTElEX0FDQ0VTUyk7XG4gICAgfVxuICAgIGNvbnN0IGFwcGlkRmllbGQgPSBvcHRpb25zLmFwcGlkRmllbGQ7XG4gICAgaWYgKCFyZXNwb25zZVthcHBpZEZpZWxkXSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIElOVkFMSURfQUNDRVNTX0FQUElEKTtcbiAgICB9XG4gICAgY29uc3QgcmVzcG9uc2VWYWx1ZSA9IHJlc3BvbnNlW2FwcGlkRmllbGRdO1xuICAgIGlmICghQXJyYXkuaXNBcnJheShyZXNwb25zZVZhbHVlKSAmJiBhcHBJZHMuaW5jbHVkZXMocmVzcG9uc2VWYWx1ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgQXJyYXkuaXNBcnJheShyZXNwb25zZVZhbHVlKSAmJlxuICAgICAgcmVzcG9uc2VWYWx1ZS5zb21lKGFwcElkID0+IGFwcElkcy5pbmNsdWRlcyhhcHBJZCkpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCBJTlZBTElEX0FDQ0VTU19BUFBJRCk7XG4gICAgfVxuICB9KTtcbn1cblxuLy8gQSBwcm9taXNlIHdyYXBwZXIgZm9yIHJlcXVlc3RzIHRvIHRoZSBPQXV0aDIgdG9rZW4gaW50cm9zcGVjdGlvbiBlbmRwb2ludC5cbmZ1bmN0aW9uIHJlcXVlc3RUb2tlbkluZm8ob3B0aW9ucywgYWNjZXNzX3Rva2VuKSB7XG4gIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy50b2tlbkludHJvc3BlY3Rpb25FbmRwb2ludFVybCkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCBNSVNTSU5HX1VSTCk7XG4gIH1cbiAgY29uc3QgcGFyc2VkVXJsID0gdXJsLnBhcnNlKG9wdGlvbnMudG9rZW5JbnRyb3NwZWN0aW9uRW5kcG9pbnRVcmwpO1xuICBjb25zdCBwb3N0RGF0YSA9IHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeSh7XG4gICAgdG9rZW46IGFjY2Vzc190b2tlbixcbiAgfSk7XG4gIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICdDb250ZW50LUxlbmd0aCc6IEJ1ZmZlci5ieXRlTGVuZ3RoKHBvc3REYXRhKSxcbiAgfTtcbiAgaWYgKG9wdGlvbnMuYXV0aG9yaXphdGlvbkhlYWRlcikge1xuICAgIGhlYWRlcnNbJ0F1dGhvcml6YXRpb24nXSA9IG9wdGlvbnMuYXV0aG9yaXphdGlvbkhlYWRlcjtcbiAgfVxuICBjb25zdCBwb3N0T3B0aW9ucyA9IHtcbiAgICBob3N0bmFtZTogcGFyc2VkVXJsLmhvc3RuYW1lLFxuICAgIHBhdGg6IHBhcnNlZFVybC5wYXRobmFtZSxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICB9O1xuICByZXR1cm4gaHR0cHNSZXF1ZXN0LnJlcXVlc3QocG9zdE9wdGlvbnMsIHBvc3REYXRhKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHZhbGlkYXRlQXBwSWQ6IHZhbGlkYXRlQXBwSWQsXG4gIHZhbGlkYXRlQXV0aERhdGE6IHZhbGlkYXRlQXV0aERhdGEsXG59O1xuIl19
@@ -44,4 +44,4 @@ module.exports = {
44
44
  validateAppId: validateAppId,
45
45
  validateAuthData: validateAuthData
46
46
  };
47
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL3BoYW50YXV0aC5qcyJdLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJodHRwc1JlcXVlc3QiLCJ2YWxpZGF0ZUF1dGhEYXRhIiwiYXV0aERhdGEiLCJyZXF1ZXN0IiwiYWNjZXNzX3Rva2VuIiwidGhlbiIsImRhdGEiLCJzdWIiLCJpZCIsIkVycm9yIiwiT0JKRUNUX05PVF9GT1VORCIsInZhbGlkYXRlQXBwSWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInBhdGgiLCJnZXQiLCJob3N0IiwiaGVhZGVycyIsIkF1dGhvcml6YXRpb24iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7QUFPQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFlBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsWUFBWSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBNUIsQyxDQUVBOzs7QUFDQSxTQUFTRSxnQkFBVCxDQUEwQkMsUUFBMUIsRUFBb0M7QUFDbEMsU0FBT0MsT0FBTyxDQUFDLGVBQUQsRUFBa0JELFFBQVEsQ0FBQ0UsWUFBM0IsQ0FBUCxDQUFnREMsSUFBaEQsQ0FBcURDLElBQUksSUFBSTtBQUNsRSxRQUFJQSxJQUFJLElBQUlBLElBQUksQ0FBQ0MsR0FBTCxJQUFZTCxRQUFRLENBQUNNLEVBQWpDLEVBQXFDO0FBQ25DO0FBQ0Q7O0FBQ0QsVUFBTSxJQUFJVixLQUFLLENBQUNXLEtBQVYsQ0FBZ0JYLEtBQUssQ0FBQ1csS0FBTixDQUFZQyxnQkFBNUIsRUFBOEMsMENBQTlDLENBQU47QUFDRCxHQUxNLENBQVA7QUFNRCxDLENBRUQ7OztBQUNBLFNBQVNDLGFBQVQsR0FBeUI7QUFDdkIsU0FBT0MsT0FBTyxDQUFDQyxPQUFSLEVBQVA7QUFDRCxDLENBRUQ7OztBQUNBLFNBQVNWLE9BQVQsQ0FBaUJXLElBQWpCLEVBQXVCVixZQUF2QixFQUFxQztBQUNuQyxTQUFPSixZQUFZLENBQUNlLEdBQWIsQ0FBaUI7QUFDdEJDLElBQUFBLElBQUksRUFBRSxlQURnQjtBQUV0QkYsSUFBQUEsSUFBSSxFQUFFLE1BQU1BLElBRlU7QUFHdEJHLElBQUFBLE9BQU8sRUFBRTtBQUNQQyxNQUFBQSxhQUFhLEVBQUUsWUFBWWQsWUFEcEI7QUFFUCxvQkFBYztBQUZQO0FBSGEsR0FBakIsQ0FBUDtBQVFEOztBQUVEZSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDZlQsRUFBQUEsYUFBYSxFQUFFQSxhQURBO0FBRWZWLEVBQUFBLGdCQUFnQixFQUFFQTtBQUZILENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFBoYW50QXV0aCB3YXMgZGVzaWduZWQgdG8gc2ltcGxpZnkgdGVzdGluZyBmb3IgYXBwbGljYXRpb25zIHVzaW5nIE9wZW5JRCBDb25uZWN0XG4gKiBhdXRoZW50aWNhdGlvbiBieSBtYWtpbmcgdXNlIG9mIHJhbmRvbSBnZW5lcmF0ZWQgdXNlcnMuXG4gKlxuICogVG8gbGVhcm4gbW9yZSwgcGxlYXNlIGdvIHRvOiBodHRwczovL3d3dy5waGFudGF1dGgubmV0XG4gKi9cblxuY29uc3QgeyBQYXJzZSB9ID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpO1xuY29uc3QgaHR0cHNSZXF1ZXN0ID0gcmVxdWlyZSgnLi9odHRwc1JlcXVlc3QnKTtcblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZiB0aGlzIHVzZXIgaWQgaXMgdmFsaWQuXG5mdW5jdGlvbiB2YWxpZGF0ZUF1dGhEYXRhKGF1dGhEYXRhKSB7XG4gIHJldHVybiByZXF1ZXN0KCdhdXRoL3VzZXJpbmZvJywgYXV0aERhdGEuYWNjZXNzX3Rva2VuKS50aGVuKGRhdGEgPT4ge1xuICAgIGlmIChkYXRhICYmIGRhdGEuc3ViID09IGF1dGhEYXRhLmlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnUGhhbnRBdXRoIGF1dGggaXMgaW52YWxpZCBmb3IgdGhpcyB1c2VyLicpO1xuICB9KTtcbn1cblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZiB0aGlzIGFwcCBpZCBpcyB2YWxpZC5cbmZ1bmN0aW9uIHZhbGlkYXRlQXBwSWQoKSB7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbn1cblxuLy8gQSBwcm9taXNleSB3cmFwcGVyIGZvciBhcGkgcmVxdWVzdHNcbmZ1bmN0aW9uIHJlcXVlc3QocGF0aCwgYWNjZXNzX3Rva2VuKSB7XG4gIHJldHVybiBodHRwc1JlcXVlc3QuZ2V0KHtcbiAgICBob3N0OiAncGhhbnRhdXRoLm5ldCcsXG4gICAgcGF0aDogJy8nICsgcGF0aCxcbiAgICBoZWFkZXJzOiB7XG4gICAgICBBdXRob3JpemF0aW9uOiAnYmVhcmVyICcgKyBhY2Nlc3NfdG9rZW4sXG4gICAgICAnVXNlci1BZ2VudCc6ICdwYXJzZS1zZXJ2ZXInLFxuICAgIH0sXG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgdmFsaWRhdGVBcHBJZDogdmFsaWRhdGVBcHBJZCxcbiAgdmFsaWRhdGVBdXRoRGF0YTogdmFsaWRhdGVBdXRoRGF0YSxcbn07XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL3BoYW50YXV0aC5qcyJdLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJodHRwc1JlcXVlc3QiLCJ2YWxpZGF0ZUF1dGhEYXRhIiwiYXV0aERhdGEiLCJyZXF1ZXN0IiwiYWNjZXNzX3Rva2VuIiwidGhlbiIsImRhdGEiLCJzdWIiLCJpZCIsIkVycm9yIiwiT0JKRUNUX05PVF9GT1VORCIsInZhbGlkYXRlQXBwSWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInBhdGgiLCJnZXQiLCJob3N0IiwiaGVhZGVycyIsIkF1dGhvcml6YXRpb24iLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFZQyxPQUFPLENBQUMsWUFBRCxDQUF6Qjs7QUFDQSxNQUFNQyxZQUFZLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUE1QixDLENBRUE7OztBQUNBLFNBQVNFLGdCQUFULENBQTBCQyxRQUExQixFQUFvQztBQUNsQyxTQUFPQyxPQUFPLENBQUMsZUFBRCxFQUFrQkQsUUFBUSxDQUFDRSxZQUEzQixDQUFQLENBQWdEQyxJQUFoRCxDQUFxREMsSUFBSSxJQUFJO0FBQ2xFLFFBQUlBLElBQUksSUFBSUEsSUFBSSxDQUFDQyxHQUFMLElBQVlMLFFBQVEsQ0FBQ00sRUFBakMsRUFBcUM7QUFDbkM7QUFDRDs7QUFDRCxVQUFNLElBQUlWLEtBQUssQ0FBQ1csS0FBVixDQUFnQlgsS0FBSyxDQUFDVyxLQUFOLENBQVlDLGdCQUE1QixFQUE4QywwQ0FBOUMsQ0FBTjtBQUNELEdBTE0sQ0FBUDtBQU1ELEMsQ0FFRDs7O0FBQ0EsU0FBU0MsYUFBVCxHQUF5QjtBQUN2QixTQUFPQyxPQUFPLENBQUNDLE9BQVIsRUFBUDtBQUNELEMsQ0FFRDs7O0FBQ0EsU0FBU1YsT0FBVCxDQUFpQlcsSUFBakIsRUFBdUJWLFlBQXZCLEVBQXFDO0FBQ25DLFNBQU9KLFlBQVksQ0FBQ2UsR0FBYixDQUFpQjtBQUN0QkMsSUFBQUEsSUFBSSxFQUFFLGVBRGdCO0FBRXRCRixJQUFBQSxJQUFJLEVBQUUsTUFBTUEsSUFGVTtBQUd0QkcsSUFBQUEsT0FBTyxFQUFFO0FBQ1BDLE1BQUFBLGFBQWEsRUFBRSxZQUFZZCxZQURwQjtBQUVQLG9CQUFjO0FBRlA7QUFIYSxHQUFqQixDQUFQO0FBUUQ7O0FBRURlLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNmVCxFQUFBQSxhQUFhLEVBQUVBLGFBREE7QUFFZlYsRUFBQUEsZ0JBQWdCLEVBQUVBO0FBRkgsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUGhhbnRBdXRoIHdhcyBkZXNpZ25lZCB0byBzaW1wbGlmeSB0ZXN0aW5nIGZvciBhcHBsaWNhdGlvbnMgdXNpbmcgT3BlbklEIENvbm5lY3RcbiAqIGF1dGhlbnRpY2F0aW9uIGJ5IG1ha2luZyB1c2Ugb2YgcmFuZG9tIGdlbmVyYXRlZCB1c2Vycy5cbiAqXG4gKiBUbyBsZWFybiBtb3JlLCBwbGVhc2UgZ28gdG86IGh0dHBzOi8vd3d3LnBoYW50YXV0aC5uZXRcbiAqL1xuXG5jb25zdCB7IFBhcnNlIH0gPSByZXF1aXJlKCdwYXJzZS9ub2RlJyk7XG5jb25zdCBodHRwc1JlcXVlc3QgPSByZXF1aXJlKCcuL2h0dHBzUmVxdWVzdCcpO1xuXG4vLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGZ1bGZpbGxzIGlmIHRoaXMgdXNlciBpZCBpcyB2YWxpZC5cbmZ1bmN0aW9uIHZhbGlkYXRlQXV0aERhdGEoYXV0aERhdGEpIHtcbiAgcmV0dXJuIHJlcXVlc3QoJ2F1dGgvdXNlcmluZm8nLCBhdXRoRGF0YS5hY2Nlc3NfdG9rZW4pLnRoZW4oZGF0YSA9PiB7XG4gICAgaWYgKGRhdGEgJiYgZGF0YS5zdWIgPT0gYXV0aERhdGEuaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdQaGFudEF1dGggYXV0aCBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuJyk7XG4gIH0pO1xufVxuXG4vLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGZ1bGZpbGxzIGlmIHRoaXMgYXBwIGlkIGlzIHZhbGlkLlxuZnVuY3Rpb24gdmFsaWRhdGVBcHBJZCgpIHtcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xufVxuXG4vLyBBIHByb21pc2V5IHdyYXBwZXIgZm9yIGFwaSByZXF1ZXN0c1xuZnVuY3Rpb24gcmVxdWVzdChwYXRoLCBhY2Nlc3NfdG9rZW4pIHtcbiAgcmV0dXJuIGh0dHBzUmVxdWVzdC5nZXQoe1xuICAgIGhvc3Q6ICdwaGFudGF1dGgubmV0JyxcbiAgICBwYXRoOiAnLycgKyBwYXRoLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIEF1dGhvcml6YXRpb246ICdiZWFyZXIgJyArIGFjY2Vzc190b2tlbixcbiAgICAgICdVc2VyLUFnZW50JzogJ3BhcnNlLXNlcnZlcicsXG4gICAgfSxcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICB2YWxpZGF0ZUFwcElkOiB2YWxpZGF0ZUFwcElkLFxuICB2YWxpZGF0ZUF1dGhEYXRhOiB2YWxpZGF0ZUF1dGhEYXRhLFxufTtcbiJdfQ==
@@ -47,4 +47,4 @@ class CacheAdapter {
47
47
  }
48
48
 
49
49
  exports.CacheAdapter = CacheAdapter;
50
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9DYWNoZUFkYXB0ZXIuanMiXSwibmFtZXMiOlsiQ2FjaGVBZGFwdGVyIiwiZ2V0Iiwia2V5IiwicHV0IiwidmFsdWUiLCJ0dGwiLCJkZWwiLCJjbGVhciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOzs7O0FBR0E7OztBQUdPLE1BQU1BLFlBQU4sQ0FBbUI7QUFDeEI7Ozs7O0FBS0FDLEVBQUFBLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNLENBQUU7QUFFWDs7Ozs7Ozs7QUFNQUMsRUFBQUEsR0FBRyxDQUFDRCxHQUFELEVBQU1FLEtBQU4sRUFBYUMsR0FBYixFQUFrQixDQUFFO0FBRXZCOzs7Ozs7QUFJQUMsRUFBQUEsR0FBRyxDQUFDSixHQUFELEVBQU0sQ0FBRTtBQUVYOzs7OztBQUdBSyxFQUFBQSxLQUFLLEdBQUcsQ0FBRTs7QUF6QmMiLCJzb3VyY2VzQ29udGVudCI6WyIvKmVzbGludCBuby11bnVzZWQtdmFyczogXCJvZmZcIiovXG4vKipcbiAqIEBtb2R1bGUgQWRhcHRlcnNcbiAqL1xuLyoqXG4gKiBAaW50ZXJmYWNlIENhY2hlQWRhcHRlclxuICovXG5leHBvcnQgY2xhc3MgQ2FjaGVBZGFwdGVyIHtcbiAgLyoqXG4gICAqIEdldCBhIHZhbHVlIGluIHRoZSBjYWNoZVxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IENhY2hlIGtleSB0byBnZXRcbiAgICogQHJldHVybiB7UHJvbWlzZX0gdGhhdCB3aWxsIGV2ZW50dWFsbHkgcmVzb2x2ZSB0byB0aGUgdmFsdWUgaW4gdGhlIGNhY2hlLlxuICAgKi9cbiAgZ2V0KGtleSkge31cblxuICAvKipcbiAgICogU2V0IGEgdmFsdWUgaW4gdGhlIGNhY2hlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgQ2FjaGUga2V5IHRvIHNldFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUgVmFsdWUgdG8gc2V0IHRoZSBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IHR0bCBPcHRpb25hbCBUVExcbiAgICovXG4gIHB1dChrZXksIHZhbHVlLCB0dGwpIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHZhbHVlIGZyb20gdGhlIGNhY2hlLlxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IENhY2hlIGtleSB0byByZW1vdmVcbiAgICovXG4gIGRlbChrZXkpIHt9XG5cbiAgLyoqXG4gICAqIEVtcHR5IGEgY2FjaGVcbiAgICovXG4gIGNsZWFyKCkge31cbn1cbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9DYWNoZUFkYXB0ZXIuanMiXSwibmFtZXMiOlsiQ2FjaGVBZGFwdGVyIiwiZ2V0Iiwia2V5IiwicHV0IiwidmFsdWUiLCJ0dGwiLCJkZWwiLCJjbGVhciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNQSxZQUFOLENBQW1CO0FBQ3hCO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDRUMsRUFBQUEsR0FBRyxDQUFDQyxHQUFELEVBQU0sQ0FBRTtBQUVYO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLEdBQUcsQ0FBQ0QsR0FBRCxFQUFNRSxLQUFOLEVBQWFDLEdBQWIsRUFBa0IsQ0FBRTtBQUV2QjtBQUNGO0FBQ0E7QUFDQTs7O0FBQ0VDLEVBQUFBLEdBQUcsQ0FBQ0osR0FBRCxFQUFNLENBQUU7QUFFWDtBQUNGO0FBQ0E7OztBQUNFSyxFQUFBQSxLQUFLLEdBQUcsQ0FBRTs7QUF6QmMiLCJzb3VyY2VzQ29udGVudCI6WyIvKmVzbGludCBuby11bnVzZWQtdmFyczogXCJvZmZcIiovXG4vKipcbiAqIEBtb2R1bGUgQWRhcHRlcnNcbiAqL1xuLyoqXG4gKiBAaW50ZXJmYWNlIENhY2hlQWRhcHRlclxuICovXG5leHBvcnQgY2xhc3MgQ2FjaGVBZGFwdGVyIHtcbiAgLyoqXG4gICAqIEdldCBhIHZhbHVlIGluIHRoZSBjYWNoZVxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IENhY2hlIGtleSB0byBnZXRcbiAgICogQHJldHVybiB7UHJvbWlzZX0gdGhhdCB3aWxsIGV2ZW50dWFsbHkgcmVzb2x2ZSB0byB0aGUgdmFsdWUgaW4gdGhlIGNhY2hlLlxuICAgKi9cbiAgZ2V0KGtleSkge31cblxuICAvKipcbiAgICogU2V0IGEgdmFsdWUgaW4gdGhlIGNhY2hlXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBrZXkgQ2FjaGUga2V5IHRvIHNldFxuICAgKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUgVmFsdWUgdG8gc2V0IHRoZSBrZXlcbiAgICogQHBhcmFtIHtTdHJpbmd9IHR0bCBPcHRpb25hbCBUVExcbiAgICovXG4gIHB1dChrZXksIHZhbHVlLCB0dGwpIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHZhbHVlIGZyb20gdGhlIGNhY2hlLlxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IENhY2hlIGtleSB0byByZW1vdmVcbiAgICovXG4gIGRlbChrZXkpIHt9XG5cbiAgLyoqXG4gICAqIEVtcHR5IGEgY2FjaGVcbiAgICovXG4gIGNsZWFyKCkge31cbn1cbiJdfQ==
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.RedisCacheAdapter = void 0;
7
+
8
+ var _redis = _interopRequireDefault(require("redis"));
9
+
10
+ var _logger = _interopRequireDefault(require("../../logger"));
11
+
12
+ var _KeyPromiseQueue = require("../../KeyPromiseQueue");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ const DEFAULT_REDIS_TTL = 30 * 1000; // 30 seconds in milliseconds
17
+
18
+ const FLUSH_DB_KEY = '__flush_db__';
19
+
20
+ function debug(...args) {
21
+ const message = ['RedisCacheAdapter: ' + arguments[0]].concat(args.slice(1, args.length));
22
+
23
+ _logger.default.debug.apply(_logger.default, message);
24
+ }
25
+
26
+ const isValidTTL = ttl => typeof ttl === 'number' && ttl > 0;
27
+
28
+ class RedisCacheAdapter {
29
+ constructor(redisCtx, ttl = DEFAULT_REDIS_TTL) {
30
+ this.ttl = isValidTTL(ttl) ? ttl : DEFAULT_REDIS_TTL;
31
+ this.client = _redis.default.createClient(redisCtx);
32
+ this.queue = new _KeyPromiseQueue.KeyPromiseQueue();
33
+ }
34
+
35
+ handleShutdown() {
36
+ if (!this.client) {
37
+ return Promise.resolve();
38
+ }
39
+
40
+ return new Promise(resolve => {
41
+ this.client.quit(err => {
42
+ if (err) {
43
+ _logger.default.error('RedisCacheAdapter error on shutdown', {
44
+ error: err
45
+ });
46
+ }
47
+
48
+ resolve();
49
+ });
50
+ });
51
+ }
52
+
53
+ get(key) {
54
+ debug('get', {
55
+ key
56
+ });
57
+ return this.queue.enqueue(key, () => new Promise(resolve => {
58
+ this.client.get(key, function (err, res) {
59
+ debug('-> get', {
60
+ key,
61
+ res
62
+ });
63
+
64
+ if (!res) {
65
+ return resolve(null);
66
+ }
67
+
68
+ resolve(JSON.parse(res));
69
+ });
70
+ }));
71
+ }
72
+
73
+ put(key, value, ttl = this.ttl) {
74
+ value = JSON.stringify(value);
75
+ debug('put', {
76
+ key,
77
+ value,
78
+ ttl
79
+ });
80
+
81
+ if (ttl === 0) {
82
+ // ttl of zero is a logical no-op, but redis cannot set expire time of zero
83
+ return this.queue.enqueue(key, () => Promise.resolve());
84
+ }
85
+
86
+ if (ttl === Infinity) {
87
+ return this.queue.enqueue(key, () => new Promise(resolve => {
88
+ this.client.set(key, value, function () {
89
+ resolve();
90
+ });
91
+ }));
92
+ }
93
+
94
+ if (!isValidTTL(ttl)) {
95
+ ttl = this.ttl;
96
+ }
97
+
98
+ return this.queue.enqueue(key, () => new Promise(resolve => {
99
+ this.client.psetex(key, ttl, value, function () {
100
+ resolve();
101
+ });
102
+ }));
103
+ }
104
+
105
+ del(key) {
106
+ debug('del', {
107
+ key
108
+ });
109
+ return this.queue.enqueue(key, () => new Promise(resolve => {
110
+ this.client.del(key, function () {
111
+ resolve();
112
+ });
113
+ }));
114
+ }
115
+
116
+ clear() {
117
+ debug('clear');
118
+ return this.queue.enqueue(FLUSH_DB_KEY, () => new Promise(resolve => {
119
+ this.client.flushdb(function () {
120
+ resolve();
121
+ });
122
+ }));
123
+ } // Used for testing
124
+
125
+
126
+ async getAllKeys() {
127
+ return new Promise((resolve, reject) => {
128
+ this.client.keys('*', (err, keys) => {
129
+ if (err) {
130
+ reject(err);
131
+ } else {
132
+ resolve(keys);
133
+ }
134
+ });
135
+ });
136
+ }
137
+
138
+ }
139
+
140
+ exports.RedisCacheAdapter = RedisCacheAdapter;
141
+ var _default = RedisCacheAdapter;
142
+ exports.default = _default;
143
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9SZWRpc0NhY2hlQWRhcHRlci5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX1JFRElTX1RUTCIsIkZMVVNIX0RCX0tFWSIsImRlYnVnIiwiYXJncyIsIm1lc3NhZ2UiLCJhcmd1bWVudHMiLCJjb25jYXQiLCJzbGljZSIsImxlbmd0aCIsImxvZ2dlciIsImFwcGx5IiwiaXNWYWxpZFRUTCIsInR0bCIsIlJlZGlzQ2FjaGVBZGFwdGVyIiwiY29uc3RydWN0b3IiLCJyZWRpc0N0eCIsImNsaWVudCIsInJlZGlzIiwiY3JlYXRlQ2xpZW50IiwicXVldWUiLCJLZXlQcm9taXNlUXVldWUiLCJoYW5kbGVTaHV0ZG93biIsIlByb21pc2UiLCJyZXNvbHZlIiwicXVpdCIsImVyciIsImVycm9yIiwiZ2V0Iiwia2V5IiwiZW5xdWV1ZSIsInJlcyIsIkpTT04iLCJwYXJzZSIsInB1dCIsInZhbHVlIiwic3RyaW5naWZ5IiwiSW5maW5pdHkiLCJzZXQiLCJwc2V0ZXgiLCJkZWwiLCJjbGVhciIsImZsdXNoZGIiLCJnZXRBbGxLZXlzIiwicmVqZWN0Iiwia2V5cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsaUJBQWlCLEdBQUcsS0FBSyxJQUEvQixDLENBQXFDOztBQUNyQyxNQUFNQyxZQUFZLEdBQUcsY0FBckI7O0FBRUEsU0FBU0MsS0FBVCxDQUFlLEdBQUdDLElBQWxCLEVBQTZCO0FBQzNCLFFBQU1DLE9BQU8sR0FBRyxDQUFDLHdCQUF3QkMsU0FBUyxDQUFDLENBQUQsQ0FBbEMsRUFBdUNDLE1BQXZDLENBQThDSCxJQUFJLENBQUNJLEtBQUwsQ0FBVyxDQUFYLEVBQWNKLElBQUksQ0FBQ0ssTUFBbkIsQ0FBOUMsQ0FBaEI7O0FBQ0FDLGtCQUFPUCxLQUFQLENBQWFRLEtBQWIsQ0FBbUJELGVBQW5CLEVBQTJCTCxPQUEzQjtBQUNEOztBQUVELE1BQU1PLFVBQVUsR0FBR0Ms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SW5CLEdBQUosRUFBUztBQUNQa0IsVUFBQUEsTUFBTSxDQUFDbEIsR0FBRCxDQUFOO0FBQ0QsU0FGRCxNQUVPO0FBQ0xGLFVBQUFBLE9BQU8sQ0FBQ3FCLElBQUQsQ0FBUDtBQUNEO0FBQ0YsT0FORDtBQU9ELEtBUk0sQ0FBUDtBQVNEOztBQS9HNEI7OztlQWtIaEIvQixpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZWRpcyBmcm9tICdyZWRpcyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uLy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBLZXlQcm9taXNlUXVldWUgfSBmcm9tICcuLi8uLi9LZXlQcm9taXNlUXVldWUnO1xuXG5jb25zdCBERUZBVUxUX1JFRElTX1RUTCA9IDMwICogMTAwMDsgLy8gMzAgc2Vjb25kcyBpbiBtaWxsaXNlY29uZHNcbmNvbnN0IEZMVVNIX0RCX0tFWSA9ICdfX2ZsdXNoX2RiX18nO1xuXG5mdW5jdGlvbiBkZWJ1ZyguLi5hcmdzOiBhbnkpIHtcbiAgY29uc3QgbWVzc2FnZSA9IFsnUmVkaXNDYWNoZUFkYXB0ZXI6ICcgKyBhcmd1bWVudHNbMF1dLmNvbmNhdChhcmdzLnNsaWNlKDEsIGFyZ3MubGVuZ3RoKSk7XG4gIGxvZ2dlci5kZWJ1Zy5hcHBseShsb2dnZXIsIG1lc3NhZ2UpO1xufVxuXG5jb25zdCBpc1ZhbGlkVFRMID0gdHRsID0+IHR5cGVvZiB0dGwgPT09ICdudW1iZXInICYmIHR0bCA+IDA7XG5cbmV4cG9ydCBjbGFzcyBSZWRpc0NhY2hlQWRhcHRlciB7XG4gIGNvbnN0cnVjdG9yKHJlZGlzQ3R4LCB0dGwgPSBERUZBVUxUX1JFRElTX1RUTCkge1xuICAgIHRoaXMudHRsID0gaXNWYWxpZFRUTCh0dGwpID8gdHRsIDogREVGQVVMVF9SRURJU19UVEw7XG4gICAgdGhpcy5jbGllbnQgPSByZWRpcy5jcmVhdGVDbGllbnQocmVkaXNDdHgpO1xuICAgIHRoaXMucXVldWUgPSBuZXcgS2V5UHJvbWlzZVF1ZXVlKCk7XG4gIH1cblxuICBoYW5kbGVTaHV0ZG93bigpIHtcbiAgICBpZiAoIXRoaXMuY2xpZW50KSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIHRoaXMuY2xpZW50LnF1aXQoZXJyID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcignUmVkaXNDYWNoZUFkYXB0ZXIgZXJyb3Igb24gc2h1dGRvd24nLCB7IGVycm9yOiBlcnIgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQoa2V5KSB7XG4gICAgZGVidWcoJ2dldCcsIHsga2V5IH0pO1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmVucXVldWUoXG4gICAgICBrZXksXG4gICAgICAoKSA9PlxuICAgICAgICBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgICB0aGlzLmNsaWVudC5nZXQoa2V5LCBmdW5jdGlvbiAoZXJyLCByZXMpIHtcbiAgICAgICAgICAgIGRlYnVnKCctPiBnZXQnLCB7IGtleSwgcmVzIH0pO1xuICAgICAgICAgICAgaWYgKCFyZXMpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXNvbHZlKEpTT04ucGFyc2UocmVzKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1dChrZXksIHZhbHVlLCB0dGwgPSB0aGlzLnR0bCkge1xuICAgIHZhbHVlID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIGRlYnVnKCdwdXQnLCB7IGtleSwgdmFsdWUsIHR0bCB9KTtcblxuICAgIGlmICh0dGwgPT09IDApIHtcbiAgICAgIC8vIHR0bCBvZiB6ZXJvIGlzIGEgbG9naWNhbCBuby1vcCwgYnV0IHJlZGlzIGNhbm5vdCBzZXQgZXhwaXJlIHRpbWUgb2YgemVyb1xuICAgICAgcmV0dXJuIHRoaXMucXVldWUuZW5xdWV1ZShrZXksICgpID0+IFByb21pc2UucmVzb2x2ZSgpKTtcbiAgICB9XG5cbiAgICBpZiAodHRsID09PSBJbmZpbml0eSkge1xuICAgICAgcmV0dXJuIHRoaXMucXVldWUuZW5xdWV1ZShcbiAgICAgICAga2V5LFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbGllbnQuc2V0KGtleSwgdmFsdWUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkVFRMKHR0bCkpIHtcbiAgICAgIHR0bCA9IHRoaXMudHRsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnF1ZXVlLmVucXVldWUoXG4gICAgICBrZXksXG4gICAgICAoKSA9PlxuICAgICAgICBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgICB0aGlzLmNsaWVudC5wc2V0ZXgoa2V5LCB0dGwsIHZhbHVlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGRlbChrZXkpIHtcbiAgICBkZWJ1ZygnZGVsJywgeyBrZXkgfSk7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuZW5xdWV1ZShcbiAgICAgIGtleSxcbiAgICAgICgpID0+XG4gICAgICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICAgIHRoaXMuY2xpZW50LmRlbChrZXksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgZGVidWcoJ2NsZWFyJyk7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuZW5xdWV1ZShcbiAgICAgIEZMVVNIX0RCX0tFWSxcbiAgICAgICgpID0+XG4gICAgICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICAgIHRoaXMuY2xpZW50LmZsdXNoZGIoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBVc2VkIGZvciB0ZXN0aW5nXG4gIGFzeW5jIGdldEFsbEtleXMoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY2xpZW50LmtleXMoJyonLCAoZXJyLCBrZXlzKSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNvbHZlKGtleXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZWRpc0NhY2hlQWRhcHRlcjtcbiJdfQ==
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ const SchemaCache = {};
8
+ var _default = {
9
+ all() {
10
+ return [...(SchemaCache.allClasses || [])];
11
+ },
12
+
13
+ get(className) {
14
+ return this.all().find(cached => cached.className === className);
15
+ },
16
+
17
+ put(allSchema) {
18
+ SchemaCache.allClasses = allSchema;
19
+ },
20
+
21
+ del(className) {
22
+ this.put(this.all().filter(cached => cached.className !== className));
23
+ },
24
+
25
+ clear() {
26
+ delete SchemaCache.allClasses;
27
+ }
28
+
29
+ };
30
+ exports.default = _default;
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9DYWNoZS9TY2hlbWFDYWNoZS5qcyJdLCJuYW1lcyI6WyJTY2hlbWFDYWNoZSIsImFsbCIsImFsbENsYXNzZXMiLCJnZXQiLCJjbGFzc05hbWUiLCJmaW5kIiwiY2FjaGVkIiwicHV0IiwiYWxsU2NoZW1hIiwiZGVsIiwiZmlsdGVyIiwiY2xlYXIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE1BQU1BLFdBQVcsR0FBRyxFQUFwQjtlQUVlO0FBQ2JDLEVBQUFBLEdBQUcsR0FBRztBQUNKLFdBQU8sQ0FBQyxJQUFJRCxXQUFXLENBQUNFLFVBQVosSUFBMEIsRUFBOUIsQ0FBRCxDQUFQO0FBQ0QsR0FIWTs7QUFLYkMsRUFBQUEsR0FBRyxDQUFDQyxTQUFELEVBQVk7QUFDYixXQUFPLEtBQUtILEdBQUwsR0FBV0ksSUFBWCxDQUFnQkMsTUFBTSxJQUFJQSxNQUFNLENBQUNGLFNBQVAsS0FBcUJBLFNBQS9DLENBQVA7QUFDRCxHQVBZOztBQVNiRyxFQUFBQSxHQUFHLENBQUNDLFNBQUQsRUFBWTtBQUNiUixJQUFBQSxXQUFXLENBQUNFLFVBQVosR0FBeUJNLFNBQXpCO0FBQ0QsR0FYWTs7QUFhYkMsRUFBQUEsR0FBRyxDQUFDTCxTQUFELEVBQVk7QUFDYixTQUFLRyxHQUFMLENBQVMsS0FBS04sR0FBTCxHQUFXUyxNQUFYLENBQWtCSixNQUFNLElBQUlBLE1BQU0sQ0FBQ0YsU0FBUCxLQUFxQkEsU0FBakQsQ0FBVDtBQUNELEdBZlk7O0FBaUJiTyxFQUFBQSxLQUFLLEdBQUc7QUFDTixXQUFPWCxXQUFXLENBQUNFLFVBQW5CO0FBQ0Q7O0FBbkJZLEMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBTY2hlbWFDYWNoZSA9IHt9O1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGFsbCgpIHtcbiAgICByZXR1cm4gWy4uLihTY2hlbWFDYWNoZS5hbGxDbGFzc2VzIHx8IFtdKV07XG4gIH0sXG5cbiAgZ2V0KGNsYXNzTmFtZSkge1xuICAgIHJldHVybiB0aGlzLmFsbCgpLmZpbmQoY2FjaGVkID0+IGNhY2hlZC5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG4gIH0sXG5cbiAgcHV0KGFsbFNjaGVtYSkge1xuICAgIFNjaGVtYUNhY2hlLmFsbENsYXNzZXMgPSBhbGxTY2hlbWE7XG4gIH0sXG5cbiAgZGVsKGNsYXNzTmFtZSkge1xuICAgIHRoaXMucHV0KHRoaXMuYWxsKCkuZmlsdGVyKGNhY2hlZCA9PiBjYWNoZWQuY2xhc3NOYW1lICE9PSBjbGFzc05hbWUpKTtcbiAgfSxcblxuICBjbGVhcigpIHtcbiAgICBkZWxldGUgU2NoZW1hQ2FjaGUuYWxsQ2xhc3NlcztcbiAgfSxcbn07XG4iXX0=
@@ -37,4 +37,4 @@ class MailAdapter {
37
37
  exports.MailAdapter = MailAdapter;
38
38
  var _default = MailAdapter;
39
39
  exports.default = _default;
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9FbWFpbC9NYWlsQWRhcHRlci5qcyJdLCJuYW1lcyI6WyJNYWlsQWRhcHRlciIsInNlbmRNYWlsIiwib3B0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOzs7O0FBR0E7Ozs7O0FBS08sTUFBTUEsV0FBTixDQUFrQjtBQUN2Qjs7Ozs7OztBQU9BQyxFQUFBQSxRQUFRLENBQUNDLE9BQUQsRUFBVSxDQUFFO0FBRXBCOzs7QUFHQTtBQUNBOzs7QUFkdUI7OztlQWlCVkYsVyIsInNvdXJjZXNDb250ZW50IjpbIi8qZXNsaW50IG5vLXVudXNlZC12YXJzOiBcIm9mZlwiKi9cbi8qKlxuICogQG1vZHVsZSBBZGFwdGVyc1xuICovXG4vKipcbiAqIEBpbnRlcmZhY2UgTWFpbEFkYXB0ZXJcbiAqIE1haWwgQWRhcHRlciBwcm90b3R5cGVcbiAqIEEgTWFpbEFkYXB0ZXIgc2hvdWxkIGltcGxlbWVudCBhdCBsZWFzdCBzZW5kTWFpbCgpXG4gKi9cbmV4cG9ydCBjbGFzcyBNYWlsQWRhcHRlciB7XG4gIC8qKlxuICAgKiBBIG1ldGhvZCBmb3Igc2VuZGluZyBtYWlsXG4gICAqIEBwYXJhbSBvcHRpb25zIHdvdWxkIGhhdmUgdGhlIHBhcmFtZXRlcnNcbiAgICogLSB0bzogdGhlIHJlY2lwaWVudFxuICAgKiAtIHRleHQ6IHRoZSByYXcgdGV4dCBvZiB0aGUgbWVzc2FnZVxuICAgKiAtIHN1YmplY3Q6IHRoZSBzdWJqZWN0IG9mIHRoZSBlbWFpbFxuICAgKi9cbiAgc2VuZE1haWwob3B0aW9ucykge31cblxuICAvKiBZb3UgY2FuIGltcGxlbWVudCB0aG9zZSBtZXRob2RzIGlmIHlvdSB3YW50XG4gICAqIHRvIHByb3ZpZGUgSFRNTCB0ZW1wbGF0ZXMgZXRjLi4uXG4gICAqL1xuICAvLyBzZW5kVmVyaWZpY2F0aW9uRW1haWwoeyBsaW5rLCBhcHBOYW1lLCB1c2VyIH0pIHt9XG4gIC8vIHNlbmRQYXNzd29yZFJlc2V0RW1haWwoeyBsaW5rLCBhcHBOYW1lLCB1c2VyIH0pIHt9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1haWxBZGFwdGVyO1xuIl19
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9FbWFpbC9NYWlsQWRhcHRlci5qcyJdLCJuYW1lcyI6WyJNYWlsQWRhcHRlciIsInNlbmRNYWlsIiwib3B0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUEsV0FBTixDQUFrQjtBQUN2QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFQyxFQUFBQSxRQUFRLENBQUNDLE9BQUQsRUFBVSxDQUFFO0FBRXBCO0FBQ0Y7QUFDQTtBQUNFO0FBQ0E7OztBQWR1Qjs7O2VBaUJWRixXIiwic291cmNlc0NvbnRlbnQiOlsiLyplc2xpbnQgbm8tdW51c2VkLXZhcnM6IFwib2ZmXCIqL1xuLyoqXG4gKiBAbW9kdWxlIEFkYXB0ZXJzXG4gKi9cbi8qKlxuICogQGludGVyZmFjZSBNYWlsQWRhcHRlclxuICogTWFpbCBBZGFwdGVyIHByb3RvdHlwZVxuICogQSBNYWlsQWRhcHRlciBzaG91bGQgaW1wbGVtZW50IGF0IGxlYXN0IHNlbmRNYWlsKClcbiAqL1xuZXhwb3J0IGNsYXNzIE1haWxBZGFwdGVyIHtcbiAgLyoqXG4gICAqIEEgbWV0aG9kIGZvciBzZW5kaW5nIG1haWxcbiAgICogQHBhcmFtIG9wdGlvbnMgd291bGQgaGF2ZSB0aGUgcGFyYW1ldGVyc1xuICAgKiAtIHRvOiB0aGUgcmVjaXBpZW50XG4gICAqIC0gdGV4dDogdGhlIHJhdyB0ZXh0IG9mIHRoZSBtZXNzYWdlXG4gICAqIC0gc3ViamVjdDogdGhlIHN1YmplY3Qgb2YgdGhlIGVtYWlsXG4gICAqL1xuICBzZW5kTWFpbChvcHRpb25zKSB7fVxuXG4gIC8qIFlvdSBjYW4gaW1wbGVtZW50IHRob3NlIG1ldGhvZHMgaWYgeW91IHdhbnRcbiAgICogdG8gcHJvdmlkZSBIVE1MIHRlbXBsYXRlcyBldGMuLi5cbiAgICovXG4gIC8vIHNlbmRWZXJpZmljYXRpb25FbWFpbCh7IGxpbmssIGFwcE5hbWUsIHVzZXIgfSkge31cbiAgLy8gc2VuZFBhc3N3b3JkUmVzZXRFbWFpbCh7IGxpbmssIGFwcE5hbWUsIHVzZXIgfSkge31cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFpbEFkYXB0ZXI7XG4iXX0=
@@ -133,4 +133,4 @@ function validateFilename(filename) {
133
133
 
134
134
  var _default = FilesAdapter;
135
135
  exports.default = _default;
136
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9GaWxlcy9GaWxlc0FkYXB0ZXIuanMiXSwibmFtZXMiOlsiRmlsZXNBZGFwdGVyIiwiY3JlYXRlRmlsZSIsImZpbGVuYW1lIiwiZGF0YSIsImNvbnRlbnRUeXBlIiwib3B0aW9ucyIsImRlbGV0ZUZpbGUiLCJnZXRGaWxlRGF0YSIsImdldEZpbGVMb2NhdGlvbiIsImNvbmZpZyIsInZhbGlkYXRlRmlsZW5hbWUiLCJsZW5ndGgiLCJQYXJzZSIsIkVycm9yIiwiSU5WQUxJRF9GSUxFX05BTUUiLCJyZWd4IiwibWF0Y2giXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBbUJBOzs7O0FBbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUE7Ozs7QUFHQTs7O0FBR08sTUFBTUEsWUFBTixDQUFtQjtBQUN4Qjs7Ozs7Ozs7Ozs7OztBQWFBQyxFQUFBQSxVQUFVLENBQUNDLFFBQUQsRUFBbUJDLElBQW5CLEVBQXlCQyxXQUF6QixFQUE4Q0MsT0FBOUMsRUFBd0UsQ0FBRTtBQUVwRjs7Ozs7Ozs7QUFNQUMsRUFBQUEsVUFBVSxDQUFDSixRQUFELEVBQTRCLENBQUU7QUFFeEM7Ozs7Ozs7O0FBTUFLLEVBQUFBLFdBQVcsQ0FBQ0wsUUFBRCxFQUFpQyxDQUFFO0FBRTlDOzs7Ozs7Ozs7QUFPQU0sRUFBQUEsZUFBZSxDQUFDQyxNQUFELEVBQWlCUCxRQUFqQixFQUEyQyxDQUFFO0FBRTVEOzs7Ozs7QUFNQTs7QUFFQTs7Ozs7Ozs7O0FBU0E7O0FBRUE7Ozs7OztBQU1BOzs7QUFsRXdCO0FBcUUxQjs7Ozs7Ozs7OztBQU1PLFNBQVNRLGdCQUFULENBQTBCUixRQUExQixFQUFrRDtBQUN2RCxNQUFJQSxRQUFRLENBQUNTLE1BQVQsR0FBa0IsR0FBdEIsRUFBMkI7QUFDekIsV0FBTyxJQUFJQyxjQUFNQyxLQUFWLENBQWdCRCxjQUFNQyxLQUFOLENBQVlDLGlCQUE1QixFQUErQyxvQkFBL0MsQ0FBUDtBQUNEOztBQUVELFFBQU1DLElBQUksR0FBRyxrQ0FBYjs7QUFDQSxNQUFJLENBQUNiLFFBQVEsQ0FBQ2MsS0FBVCxDQUFlRCxJQUFmLENBQUwsRUFBMkI7QUFDekIsV0FBTyxJQUFJSCxjQUFNQyxLQUFWLENBQWdCRCxjQUFNQyxLQUFOLENBQVlDLGlCQUE1QixFQUErQyx1Q0FBL0MsQ0FBUDtBQUNEOztBQUNELFNBQU8sSUFBUDtBQUNEOztlQUVjZCxZIiwic291cmNlc0NvbnRlbnQiOlsiLyplc2xpbnQgbm8tdW51c2VkLXZhcnM6IFwib2ZmXCIqL1xuLy8gRmlsZXMgQWRhcHRlclxuLy9cbi8vIEFsbG93cyB5b3UgdG8gY2hhbmdlIHRoZSBmaWxlIHN0b3JhZ2UgbWVjaGFuaXNtLlxuLy9cbi8vIEFkYXB0ZXIgY2xhc3NlcyBtdXN0IGltcGxlbWVudCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczpcbi8vICogY3JlYXRlRmlsZShmaWxlbmFtZSwgZGF0YSwgY29udGVudFR5cGUpXG4vLyAqIGRlbGV0ZUZpbGUoZmlsZW5hbWUpXG4vLyAqIGdldEZpbGVEYXRhKGZpbGVuYW1lKVxuLy8gKiBnZXRGaWxlTG9jYXRpb24oY29uZmlnLCBmaWxlbmFtZSlcbi8vIEFkYXB0ZXIgY2xhc3NlcyBzaG91bGQgaW1wbGVtZW50IHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOlxuLy8gKiB2YWxpZGF0ZUZpbGVuYW1lKGZpbGVuYW1lKVxuLy8gKiBoYW5kbGVGaWxlU3RyZWFtKGZpbGVuYW1lLCByZXEsIHJlcywgY29udGVudFR5cGUpXG4vL1xuLy8gRGVmYXVsdCBpcyBHcmlkRlNCdWNrZXRBZGFwdGVyLCB3aGljaCByZXF1aXJlcyBtb25nb1xuLy8gYW5kIGZvciB0aGUgQVBJIHNlcnZlciB0byBiZSB1c2luZyB0aGUgRGF0YWJhc2VDb250cm9sbGVyIHdpdGggTW9uZ29cbi8vIGRhdGFiYXNlIGFkYXB0ZXIuXG5cbmltcG9ydCB0eXBlIHsgQ29uZmlnIH0gZnJvbSAnLi4vLi4vQ29uZmlnJztcbmltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcbi8qKlxuICogQG1vZHVsZSBBZGFwdGVyc1xuICovXG4vKipcbiAqIEBpbnRlcmZhY2UgRmlsZXNBZGFwdGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBGaWxlc0FkYXB0ZXIge1xuICAvKiogUmVzcG9uc2libGUgZm9yIHN0b3JpbmcgdGhlIGZpbGUgaW4gb3JkZXIgdG8gYmUgcmV0cmlldmVkIGxhdGVyIGJ5IGl0cyBmaWxlbmFtZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZW5hbWUgLSB0aGUgZmlsZW5hbWUgdG8gc2F2ZVxuICAgKiBAcGFyYW0geyp9IGRhdGEgLSB0aGUgYnVmZmVyIG9mIGRhdGEgZnJvbSB0aGUgZmlsZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY29udGVudFR5cGUgLSB0aGUgc3VwcG9zZWQgY29udGVudFR5cGVcbiAgICogQGRpc2N1c3Npb24gdGhlIGNvbnRlbnRUeXBlIGNhbiBiZSB1bmRlZmluZWQgaWYgdGhlIGNvbnRyb2xsZXIgd2FzIG5vdCBhYmxlIHRvIGRldGVybWluZSBpdFxuICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIChPcHRpb25hbCkgb3B0aW9ucyB0byBiZSBwYXNzZWQgdG8gZmlsZSBhZGFwdGVyIChTMyBGaWxlIEFkYXB0ZXIgT25seSlcbiAgICogLSB0YWdzOiBvYmplY3QgY29udGFpbmluZyBrZXkgdmFsdWUgcGFpcnMgdGhhdCB3aWxsIGJlIHN0b3JlZCB3aXRoIGZpbGVcbiAgICogLSBtZXRhZGF0YTogb2JqZWN0IGNvbnRhaW5pbmcga2V5IHZhbHVlIHBhaXJzIHRoYXQgd2lsbCBiZSBzb3RyZWQgd2l0aCBmaWxlIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L3VzZXItZ3VpZGUvYWRkLW9iamVjdC1tZXRhZGF0YS5odG1sKVxuICAgKiBAZGlzY3Vzc2lvbiBvcHRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGFsbCBmaWxlIGFkYXB0ZXJzLiBDaGVjayB0aGUgeW91ciBhZGFwdGVyJ3MgZG9jdW1lbnRhdGlvbiBmb3IgY29tcGF0aWJpbGl0eVxuICAgKlxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHByb21pc2UgdGhhdCBzaG91bGQgZmFpbCBpZiB0aGUgc3RvcmFnZSBkaWRuJ3Qgc3VjY2VlZFxuICAgKi9cbiAgY3JlYXRlRmlsZShmaWxlbmFtZTogc3RyaW5nLCBkYXRhLCBjb250ZW50VHlwZTogc3RyaW5nLCBvcHRpb25zOiBPYmplY3QpOiBQcm9taXNlIHt9XG5cbiAgLyoqIFJlc3BvbnNpYmxlIGZvciBkZWxldGluZyB0aGUgc3BlY2lmaWVkIGZpbGVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lIC0gdGhlIGZpbGVuYW1lIHRvIGRlbGV0ZVxuICAgKlxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHByb21pc2UgdGhhdCBzaG91bGQgZmFpbCBpZiB0aGUgZGVsZXRpb24gZGlkbid0IHN1Y2NlZWRcbiAgICovXG4gIGRlbGV0ZUZpbGUoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2Uge31cblxuICAvKiogUmVzcG9uc2libGUgZm9yIHJldHJpZXZpbmcgdGhlIGRhdGEgb2YgdGhlIHNwZWNpZmllZCBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlbmFtZSAtIHRoZSBuYW1lIG9mIGZpbGUgdG8gcmV0cmlldmVcbiAgICpcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSBwcm9taXNlIHRoYXQgc2hvdWxkIHBhc3Mgd2l0aCB0aGUgZmlsZSBkYXRhIG9yIGZhaWwgb24gZXJyb3JcbiAgICovXG4gIGdldEZpbGVEYXRhKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge31cblxuICAvKiogUmV0dXJucyBhbiBhYnNvbHV0ZSBVUkwgd2hlcmUgdGhlIGZpbGUgY2FuIGJlIGFjY2Vzc2VkXG4gICAqXG4gICAqIEBwYXJhbSB7Q29uZmlnfSBjb25maWcgLSBzZXJ2ZXIgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZW5hbWVcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nfSBBYnNvbHV0ZSBVUkxcbiAgICovXG4gIGdldEZpbGVMb2NhdGlvbihjb25maWc6IENvbmZpZywgZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7fVxuXG4gIC8qKiBWYWxpZGF0ZSBhIGZpbGVuYW1lIGZvciB0aGlzIGFkYXB0ZXIgdHlwZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZW5hbWVcbiAgICpcbiAgICogQHJldHVybnMge251bGx8UGFyc2UuRXJyb3J9IG51bGwgaWYgdGhlcmUgYXJlIG5vIGVycm9yc1xuICAgKi9cbiAgLy8gdmFsaWRhdGVGaWxlbmFtZShmaWxlbmFtZTogc3RyaW5nKTogP1BhcnNlLkVycm9yIHt9XG5cbiAgLyoqIEhhbmRsZXMgQnl0ZS1SYW5nZSBSZXF1ZXN0cyBmb3IgU3RyZWFtaW5nXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlbmFtZVxuICAgKiBAcGFyYW0ge29iamVjdH0gcmVxXG4gICAqIEBwYXJhbSB7b2JqZWN0fSByZXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnRUeXBlXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBEYXRhIGZvciBieXRlIHJhbmdlXG4gICAqL1xuICAvLyBoYW5kbGVGaWxlU3RyZWFtKGZpbGVuYW1lOiBzdHJpbmcsIHJlczogYW55LCByZXE6IGFueSwgY29udGVudFR5cGU6IHN0cmluZyk6IFByb21pc2VcblxuICAvKiogUmVzcG9uc2libGUgZm9yIHJldHJpZXZpbmcgbWV0YWRhdGEgYW5kIHRhZ3NcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lIC0gdGhlIGZpbGVuYW1lIHRvIHJldHJpZXZlIG1ldGFkYXRhXG4gICAqXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEgcHJvbWlzZSB0aGF0IHNob3VsZCBwYXNzIHdpdGggbWV0YWRhdGFcbiAgICovXG4gIC8vIGdldE1ldGFkYXRhKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge31cbn1cblxuLyoqXG4gKiBTaW1wbGUgZmlsZW5hbWUgdmFsaWRhdGlvblxuICpcbiAqIEBwYXJhbSBmaWxlbmFtZVxuICogQHJldHVybnMge251bGx8UGFyc2UuRXJyb3J9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUZpbGVuYW1lKGZpbGVuYW1lKTogP1BhcnNlLkVycm9yIHtcbiAgaWYgKGZpbGVuYW1lLmxlbmd0aCA+IDEyOCkge1xuICAgIHJldHVybiBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9GSUxFX05BTUUsICdGaWxlbmFtZSB0b28gbG9uZy4nKTtcbiAgfVxuXG4gIGNvbnN0IHJlZ3ggPSAvXltfYS16QS1aMC05XVthLXpBLVowLTlALiB+Xy1dKiQvO1xuICBpZiAoIWZpbGVuYW1lLm1hdGNoKHJlZ3gpKSB7XG4gICAgcmV0dXJuIG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0ZJTEVfTkFNRSwgJ0ZpbGVuYW1lIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVycy4nKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRmlsZXNBZGFwdGVyO1xuIl19
136
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9GaWxlcy9GaWxlc0FkYXB0ZXIuanMiXSwibmFtZXMiOlsiRmlsZXNBZGFwdGVyIiwiY3JlYXRlRmlsZSIsImZpbGVuYW1lIiwiZGF0YSIsImNvbnRlbnRUeXBlIiwib3B0aW9ucyIsImRlbGV0ZUZpbGUiLCJnZXRGaWxlRGF0YSIsImdldEZpbGVMb2NhdGlvbiIsImNvbmZpZyIsInZhbGlkYXRlRmlsZW5hbWUiLCJsZW5ndGgiLCJQYXJzZSIsIkVycm9yIiwiSU5WQUxJRF9GSUxFX05BTUUiLCJyZWd4IiwibWF0Y2giXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBbUJBOzs7O0FBbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUE7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1BLFlBQU4sQ0FBbUI7QUFDeEI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRUMsRUFBQUEsVUFBVSxDQUFDQyxRQUFELEVBQW1CQyxJQUFuQixFQUF5QkMsV0FBekIsRUFBOENDLE9BQTlDLEVBQXdFLENBQUU7QUFFcEY7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsVUFBVSxDQUFDSixRQUFELEVBQTRCLENBQUU7QUFFeEM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUssRUFBQUEsV0FBVyxDQUFDTCxRQUFELEVBQWlDLENBQUU7QUFFOUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNFTSxFQUFBQSxlQUFlLENBQUNDLE1BQUQsRUFBaUJQLFFBQWpCLEVBQTJDLENBQUU7QUFFNUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0U7O0FBRUE7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0U7O0FBRUE7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0U7OztBQWxFd0I7QUFxRTFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFDTyxTQUFTUSxnQkFBVCxDQUEwQlIsUUFBMUIsRUFBa0Q7QUFDdkQsTUFBSUEsUUFBUSxDQUFDUyxNQUFULEdBQWtCLEdBQXRCLEVBQTJCO0FBQ3pCLFdBQU8sSUFBSUMsY0FBTUMsS0FBVixDQUFnQkQsY0FBTUMsS0FBTixDQUFZQyxpQkFBNUIsRUFBK0Msb0JBQS9DLENBQVA7QUFDRDs7QUFFRCxRQUFNQyxJQUFJLEdBQUcsa0NBQWI7O0FBQ0EsTUFBSSxDQUFDYixRQUFRLENBQUNjLEtBQVQsQ0FBZUQsSUFBZixDQUFMLEVBQTJCO0FBQ3pCLFdBQU8sSUFBSUgsY0FBTUMsS0FBVixDQUFnQkQsY0FBTUMsS0FBTixDQUFZQyxpQkFBNUIsRUFBK0MsdUNBQS9DLENBQVA7QUFDRDs7QUFDRCxTQUFPLElBQVA7QUFDRDs7ZUFFY2QsWSIsInNvdXJjZXNDb250ZW50IjpbIi8qZXNsaW50IG5vLXVudXNlZC12YXJzOiBcIm9mZlwiKi9cbi8vIEZpbGVzIEFkYXB0ZXJcbi8vXG4vLyBBbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgZmlsZSBzdG9yYWdlIG1lY2hhbmlzbS5cbi8vXG4vLyBBZGFwdGVyIGNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnM6XG4vLyAqIGNyZWF0ZUZpbGUoZmlsZW5hbWUsIGRhdGEsIGNvbnRlbnRUeXBlKVxuLy8gKiBkZWxldGVGaWxlKGZpbGVuYW1lKVxuLy8gKiBnZXRGaWxlRGF0YShmaWxlbmFtZSlcbi8vICogZ2V0RmlsZUxvY2F0aW9uKGNvbmZpZywgZmlsZW5hbWUpXG4vLyBBZGFwdGVyIGNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczpcbi8vICogdmFsaWRhdGVGaWxlbmFtZShmaWxlbmFtZSlcbi8vICogaGFuZGxlRmlsZVN0cmVhbShmaWxlbmFtZSwgcmVxLCByZXMsIGNvbnRlbnRUeXBlKVxuLy9cbi8vIERlZmF1bHQgaXMgR3JpZEZTQnVja2V0QWRhcHRlciwgd2hpY2ggcmVxdWlyZXMgbW9uZ29cbi8vIGFuZCBmb3IgdGhlIEFQSSBzZXJ2ZXIgdG8gYmUgdXNpbmcgdGhlIERhdGFiYXNlQ29udHJvbGxlciB3aXRoIE1vbmdvXG4vLyBkYXRhYmFzZSBhZGFwdGVyLlxuXG5pbXBvcnQgdHlwZSB7IENvbmZpZyB9IGZyb20gJy4uLy4uL0NvbmZpZyc7XG5pbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG4vKipcbiAqIEBtb2R1bGUgQWRhcHRlcnNcbiAqL1xuLyoqXG4gKiBAaW50ZXJmYWNlIEZpbGVzQWRhcHRlclxuICovXG5leHBvcnQgY2xhc3MgRmlsZXNBZGFwdGVyIHtcbiAgLyoqIFJlc3BvbnNpYmxlIGZvciBzdG9yaW5nIHRoZSBmaWxlIGluIG9yZGVyIHRvIGJlIHJldHJpZXZlZCBsYXRlciBieSBpdHMgZmlsZW5hbWVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lIC0gdGhlIGZpbGVuYW1lIHRvIHNhdmVcbiAgICogQHBhcmFtIHsqfSBkYXRhIC0gdGhlIGJ1ZmZlciBvZiBkYXRhIGZyb20gdGhlIGZpbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnRUeXBlIC0gdGhlIHN1cHBvc2VkIGNvbnRlbnRUeXBlXG4gICAqIEBkaXNjdXNzaW9uIHRoZSBjb250ZW50VHlwZSBjYW4gYmUgdW5kZWZpbmVkIGlmIHRoZSBjb250cm9sbGVyIHdhcyBub3QgYWJsZSB0byBkZXRlcm1pbmUgaXRcbiAgICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgLSAoT3B0aW9uYWwpIG9wdGlvbnMgdG8gYmUgcGFzc2VkIHRvIGZpbGUgYWRhcHRlciAoUzMgRmlsZSBBZGFwdGVyIE9ubHkpXG4gICAqIC0gdGFnczogb2JqZWN0IGNvbnRhaW5pbmcga2V5IHZhbHVlIHBhaXJzIHRoYXQgd2lsbCBiZSBzdG9yZWQgd2l0aCBmaWxlXG4gICAqIC0gbWV0YWRhdGE6IG9iamVjdCBjb250YWluaW5nIGtleSB2YWx1ZSBwYWlycyB0aGF0IHdpbGwgYmUgc290cmVkIHdpdGggZmlsZSAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyLWd1aWRlL2FkZC1vYmplY3QtbWV0YWRhdGEuaHRtbClcbiAgICogQGRpc2N1c3Npb24gb3B0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBieSBhbGwgZmlsZSBhZGFwdGVycy4gQ2hlY2sgdGhlIHlvdXIgYWRhcHRlcidzIGRvY3VtZW50YXRpb24gZm9yIGNvbXBhdGliaWxpdHlcbiAgICpcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSBwcm9taXNlIHRoYXQgc2hvdWxkIGZhaWwgaWYgdGhlIHN0b3JhZ2UgZGlkbid0IHN1Y2NlZWRcbiAgICovXG4gIGNyZWF0ZUZpbGUoZmlsZW5hbWU6IHN0cmluZywgZGF0YSwgY29udGVudFR5cGU6IHN0cmluZywgb3B0aW9uczogT2JqZWN0KTogUHJvbWlzZSB7fVxuXG4gIC8qKiBSZXNwb25zaWJsZSBmb3IgZGVsZXRpbmcgdGhlIHNwZWNpZmllZCBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlbmFtZSAtIHRoZSBmaWxlbmFtZSB0byBkZWxldGVcbiAgICpcbiAgICogQHJldHVybiB7UHJvbWlzZX0gYSBwcm9taXNlIHRoYXQgc2hvdWxkIGZhaWwgaWYgdGhlIGRlbGV0aW9uIGRpZG4ndCBzdWNjZWVkXG4gICAqL1xuICBkZWxldGVGaWxlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlIHt9XG5cbiAgLyoqIFJlc3BvbnNpYmxlIGZvciByZXRyaWV2aW5nIHRoZSBkYXRhIG9mIHRoZSBzcGVjaWZpZWQgZmlsZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZW5hbWUgLSB0aGUgbmFtZSBvZiBmaWxlIHRvIHJldHJpZXZlXG4gICAqXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IGEgcHJvbWlzZSB0aGF0IHNob3VsZCBwYXNzIHdpdGggdGhlIGZpbGUgZGF0YSBvciBmYWlsIG9uIGVycm9yXG4gICAqL1xuICBnZXRGaWxlRGF0YShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHt9XG5cbiAgLyoqIFJldHVybnMgYW4gYWJzb2x1dGUgVVJMIHdoZXJlIHRoZSBmaWxlIGNhbiBiZSBhY2Nlc3NlZFxuICAgKlxuICAgKiBAcGFyYW0ge0NvbmZpZ30gY29uZmlnIC0gc2VydmVyIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ30gQWJzb2x1dGUgVVJMXG4gICAqL1xuICBnZXRGaWxlTG9jYXRpb24oY29uZmlnOiBDb25maWcsIGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge31cblxuICAvKiogVmFsaWRhdGUgYSBmaWxlbmFtZSBmb3IgdGhpcyBhZGFwdGVyIHR5cGVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVuYW1lXG4gICAqXG4gICAqIEByZXR1cm5zIHtudWxsfFBhcnNlLkVycm9yfSBudWxsIGlmIHRoZXJlIGFyZSBubyBlcnJvcnNcbiAgICovXG4gIC8vIHZhbGlkYXRlRmlsZW5hbWUoZmlsZW5hbWU6IHN0cmluZyk6ID9QYXJzZS5FcnJvciB7fVxuXG4gIC8qKiBIYW5kbGVzIEJ5dGUtUmFuZ2UgUmVxdWVzdHMgZm9yIFN0cmVhbWluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZW5hbWVcbiAgICogQHBhcmFtIHtvYmplY3R9IHJlcVxuICAgKiBAcGFyYW0ge29iamVjdH0gcmVzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50VHlwZVxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZX0gRGF0YSBmb3IgYnl0ZSByYW5nZVxuICAgKi9cbiAgLy8gaGFuZGxlRmlsZVN0cmVhbShmaWxlbmFtZTogc3RyaW5nLCByZXM6IGFueSwgcmVxOiBhbnksIGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBQcm9taXNlXG5cbiAgLyoqIFJlc3BvbnNpYmxlIGZvciByZXRyaWV2aW5nIG1ldGFkYXRhIGFuZCB0YWdzXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlbmFtZSAtIHRoZSBmaWxlbmFtZSB0byByZXRyaWV2ZSBtZXRhZGF0YVxuICAgKlxuICAgKiBAcmV0dXJuIHtQcm9taXNlfSBhIHByb21pc2UgdGhhdCBzaG91bGQgcGFzcyB3aXRoIG1ldGFkYXRhXG4gICAqL1xuICAvLyBnZXRNZXRhZGF0YShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHt9XG59XG5cbi8qKlxuICogU2ltcGxlIGZpbGVuYW1lIHZhbGlkYXRpb25cbiAqXG4gKiBAcGFyYW0gZmlsZW5hbWVcbiAqIEByZXR1cm5zIHtudWxsfFBhcnNlLkVycm9yfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVGaWxlbmFtZShmaWxlbmFtZSk6ID9QYXJzZS5FcnJvciB7XG4gIGlmIChmaWxlbmFtZS5sZW5ndGggPiAxMjgpIHtcbiAgICByZXR1cm4gbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfRklMRV9OQU1FLCAnRmlsZW5hbWUgdG9vIGxvbmcuJyk7XG4gIH1cblxuICBjb25zdCByZWd4ID0gL15bX2EtekEtWjAtOV1bYS16QS1aMC05QC4gfl8tXSokLztcbiAgaWYgKCFmaWxlbmFtZS5tYXRjaChyZWd4KSkge1xuICAgIHJldHVybiBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9GSUxFX05BTUUsICdGaWxlbmFtZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMuJyk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVzQWRhcHRlcjtcbiJdfQ==
@@ -270,4 +270,4 @@ class GridFSBucketAdapter extends _FilesAdapter.FilesAdapter {
270
270
  exports.GridFSBucketAdapter = GridFSBucketAdapter;
271
271
  var _default = GridFSBucketAdapter;
272
272
  exports.default = _default;
273
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9GaWxlcy9HcmlkRlNCdWNrZXRBZGFwdGVyLmpzIl0sIm5hbWVzIjpbImNyeXB0byIsInJlcXVpcmUiLCJHcmlkRlNCdWNrZXRBZGFwdGVyIiwiRmlsZXNBZGFwdGVyIiwiY29uc3RydWN0b3IiLCJtb25nb0RhdGFiYXNlVVJJIiwiZGVmYXVsdHMiLCJEZWZhdWx0TW9uZ29VUkkiLCJtb25nb09wdGlvbnMiLCJlbmNyeXB0aW9uS2V5IiwidW5kZWZpbmVkIiwiX2RhdGFiYXNlVVJJIiwiX2FsZ29yaXRobSIsIl9lbmNyeXB0aW9uS2V5IiwiY3JlYXRlSGFzaCIsInVwZGF0ZSIsIlN0cmluZyIsImRpZ2VzdCIsInN1YnN0ciIsImRlZmF1bHRNb25nb09wdGlvbnMiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VVbmlmaWVkVG9wb2xvZ3kiLCJfbW9uZ29PcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwiX2Nvbm5lY3QiLCJfY29ubmVjdGlvblByb21pc2UiLCJNb25nb0NsaWVudCIsImNvbm5lY3QiLCJ0aGVuIiwiY2xpZW50IiwiX2NsaWVudCIsImRiIiwicyIsIm9wdGlvbnMiLCJkYk5hbWUiLCJfZ2V0QnVja2V0IiwiZGF0YWJhc2UiLCJHcmlkRlNCdWNrZXQiLCJjcmVhdGVGaWxlIiwiZmlsZW5hbWUiLCJkYXRhIiwiY29udGVudFR5cGUiLCJidWNrZXQiLCJzdHJlYW0iLCJvcGVuVXBsb2FkU3RyZWFtIiwibWV0YWRhdGEiLCJpdiIsInJhbmRvbUJ5dGVzIiwiY2lwaGVyIiwiY3JlYXRlQ2lwaGVyaXYiLCJlbmNyeXB0ZWRSZXN1bHQiLCJCdWZmZXIiLCJjb25jYXQiLCJmaW5hbCIsImdldEF1dGhUYWciLCJ3cml0ZSIsImVyciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZW5kIiwib24iLCJkZWxldGVGaWxlIiwiZG9jdW1lbnRzIiwiZmluZCIsInRvQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsImFsbCIsIm1hcCIsImRvYyIsImRlbGV0ZSIsIl9pZCIsImdldEZpbGVEYXRhIiwib3BlbkRvd25sb2FkU3RyZWFtQnlOYW1lIiwicmVhZCIsImNodW5rcyIsInB1c2giLCJhdXRoVGFnTG9jYXRpb24iLCJpdkxvY2F0aW9uIiwiYXV0aFRhZyIsInNsaWNlIiwiZW5jcnlwdGVkIiwiZGVjaXBoZXIiLCJjcmVhdGVEZWNpcGhlcml2Iiwic2V0QXV0aFRhZyIsImRlY3J5cHRlZCIsInJvdGF0ZUVuY3J5cHRpb25LZXkiLCJmaWxlTmFtZXMiLCJvbGRLZXlGaWxlQWRhcHRlciIsIm9sZEtleSIsImZpbGVOYW1lc0l0ZXJhdG9yIiwiZm9yRWFjaCIsImZpbGUiLCJmaWxlTmFtZXNOb3RSb3RhdGVkIiwiZmlsZU5hbWVzUm90YXRlZCIsImZpbGVOYW1lVG90YWwiLCJmaWxlTmFtZUluZGV4IiwiZmlsZU5hbWUiLCJwbGFpblRleHREYXRhIiwiZmlsdGVyIiwidmFsdWUiLCJyb3RhdGVkIiwibm90Um90YXRlZCIsImNhdGNoIiwiZ2V0RmlsZUxvY2F0aW9uIiwiY29uZmlnIiwibW91bnQiLCJhcHBsaWNhdGlvbklkIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZ2V0TWV0YWRhdGEiLCJmaWxlcyIsImhhbmRsZUZpbGVTdHJlYW0iLCJyZXEiLCJyZXMiLCJwYXJ0cyIsImdldCIsInJlcGxhY2UiLCJzcGxpdCIsInBhcnRpYWxzdGFydCIsInBhcnRpYWxlbmQiLCJzdGFydCIsInBhcnNlSW50Iiwid3JpdGVIZWFkIiwiY2h1bmsiLCJzZW5kU3RhdHVzIiwiaGFuZGxlU2h1dGRvd24iLCJjbG9zZSIsInZhbGlkYXRlRmlsZW5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTQTs7QUFDQTs7QUFDQTs7OztBQVhBOzs7Ozs7O0FBUUE7QUFJQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUVPLE1BQU1DLG1CQUFOLFNBQWtDQywwQkFBbEMsQ0FBK0M7QUFNcERDLEVBQUFBLFdBQVcsQ0FDVEMsZ0JBQWdCLEdBQUdDLGtCQUFTQyxlQURuQixFQUVUQyxZQUFZLEdBQUcsRUFGTixFQUdUQyxhQUFhLEdBQUdDLFNBSFAsRUFJVDtBQUNBO0FBQ0EsU0FBS0MsWUFBTCxHQUFvQk4sZ0JBQXBCO0FBQ0EsU0FBS08sVUFBTCxHQUFrQixhQUFsQjtBQUNBLFNBQUtDLGNBQUwsR0FDRUosYUFBYSxLQUFLQyxTQUFsQixHQUNJVixNQUFNLENBQUNjLFVBQVAsQ0FBa0IsUUFBbEIsRUFBNEJDLE1BQTVCLENBQW1DQyxNQUFNLENBQUNQLGFBQUQsQ0FBekMsRUFBMERRLE1BQTFELENBQWlFLFFBQWpFLEVBQTJFQyxNQUEzRSxDQUFrRixDQUFsRixFQUFxRixFQUFyRixDQURKLEdBRUksSUFITjtBQUlBLFVBQU1DLG1CQUFtQixHQUFHO0FBQzFCQyxNQUFBQSxlQUFlLEVBQUUsSUFEUztBQUUxQkMsTUFBQUEsa0JBQWtCLEVBQUU7QUFGTSxLQUE1QjtBQUlBLFNBQUtDLGFBQUwsR0FBcUJDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjTCxtQkFBZCxFQUFtQ1gsWUFBbkMsQ0FBckI7QUFDRDs7QUFFRGlCLEVBQUFBLFFBQVEsR0FBRztBQUNULFFBQUksQ0FBQyxLQUFLQyxrQkFBVixFQUE4QjtBQUM1QixXQUFLQSxrQkFBTCxHQUEwQkMscUJBQVlDLE9BQVosQ0FBb0IsS0FBS2pCLFlBQXpCLEVBQXVDLEtBQUtXLGFBQTVDLEVBQTJETyxJQUEzRCxDQUN4QkMsTUFBTSxJQUFJO0FBQ1IsYUFBS0MsT0FBTCxHQUFlRCxNQUFmO0FBQ0EsZUFBT0EsTUFBTSxDQUFDRSxFQUFQLENBQVVGLE1BQU0sQ0FBQ0csQ0FBUCxDQUFTQyxPQUFULENBQWlCQyxNQUEzQixDQUFQO0FBQ0QsT0FKdUIsQ0FBMUI7QUFNRDs7QUFDRCxXQUFPLEtBQUtULGtCQUFaO0FBQ0Q7O0FBRURVLEVBQUFBLFVBQVUsR0FBRztBQUNYLFdBQU8sS0FBS1gsUUFBTCxHQUFnQkksSUFBaEIsQ0FBcUJRLFFBQVEsSUFBSSxJQUFJQyxxQkFBSixDQUFpQkQsUUFBakIsQ0FBakMsQ0FBUDtBQUNELEdBdkNtRCxDQXlDcEQ7QUFDQTs7O0FBQ0EsUUFBTUUsVUFBTixDQUFpQkMsUUFBakIsRUFBbUNDLElBQW5DLEVBQXlDQyxXQUF6QyxFQUFzRFIsT0FBTyxHQUFHLEVBQWhFLEVBQW9FO0FBQ2xFLFVBQU1TLE1BQU0sR0FBRyxNQUFNLEtBQUtQLFVBQUwsRUFBckI7QUFDQSxVQUFNUSxNQUFNLEdBQUcsTUFBTUQsTUFBTSxDQUFDRSxnQkFBUCxDQUF3QkwsUUFBeEIsRUFBa0M7QUFDckRNLE1BQUFBLFFBQVEsRUFBRVosT0FBTyxDQUFDWTtBQURtQyxLQUFsQyxDQUFyQjs7QUFHQSxRQUFJLEtBQUtqQyxjQUFMLEtBQXdCLElBQTVCLEVBQWtDO0FBQ2hDLFVBQUk7QUFDRixjQUFNa0MsRUFBRSxHQUFHL0MsTUFBTSxDQUFDZ0QsV0FBUCxDQUFtQixFQUFuQixDQUFYO0FBQ0EsY0FBTUMsTUFBTSxHQUFHakQsTUFBTSxDQUFDa0QsY0FBUCxDQUFzQixLQUFLdEMsVUFBM0IsRUFBdUMsS0FBS0MsY0FBNUMsRUFBNERrQyxFQUE1RCxDQUFmO0FBQ0EsY0FBTUksZUFBZSxHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxDQUNwQ0osTUFBTSxDQUFDbEMsTUFBUCxDQUFjMEIsSUFBZCxDQURvQyxFQUVwQ1EsTUFBTSxDQUFDSyxLQUFQLEVBRm9DLEVBR3BDUCxFQUhvQyxFQUlwQ0UsTUFBTSxDQUFDTSxVQUFQLEVBSm9DLENBQWQsQ0FBeEI7QUFNQSxjQUFNWCxNQUFNLENBQUNZLEtBQVAsQ0FBYUwsZUFBYixDQUFOO0FBQ0QsT0FWRCxDQVVFLE9BQU9NLEdBQVAsRUFBWTtBQUNaLGVBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUN0QyxpQkFBT0EsTUFBTSxDQUFDSCxHQUFELENBQWI7QUFDRCxTQUZNLENBQVA7QUFHRDtBQUNGLEtBaEJELE1BZ0JPO0FBQ0wsWUFBTWIsTUFBTSxDQUFDWSxLQUFQLENBQWFmLElBQWIsQ0FBTjtBQUNEOztBQUNERyxJQUFBQSxNQUFNLENBQUNpQixHQUFQO0FBQ0EsV0FBTyxJQUFJSCxPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3RDaEIsTUFBQUEsTUFBTSxDQUFDa0IsRUFBUCxDQUFVLFFBQVYsRUFBb0JILE9BQXBCO0FBQ0FmLE1BQUFBLE1BQU0sQ0FBQ2tCLEVBQVAsQ0FBVSxPQUFWLEVBQW1CRixNQUFuQjtBQUNELEtBSE0sQ0FBUDtBQUlEOztBQUVELFFBQU1HLFVBQU4sQ0FBaUJ2QixRQUFqQixFQUFtQztBQUNqQyxVQUFNRyxNQUFNLEdBQUcsTUFBTSxLQUFLUCxVQUFMLEVBQXJCO0FBQ0EsVUFBTTRCLFNBQVMsR0FBRyxNQUFNckIsTUFBTSxDQUFDc0IsSUFBUCxDQUFZO0FBQUV6QixNQUFBQTtBQUFGLEtBQVosRUFBMEIwQixPQUExQixFQUF4Qjs7QUFDQSxRQUFJRixTQUFTLENBQUNHLE1BQVYsS0FBcUIsQ0FBekIsRUFBNEI7QUFDMUIsWUFBTSxJQUFJQyxLQUFKLENBQVUsY0FBVixDQUFOO0FBQ0Q7O0FBQ0QsV0FBT1YsT0FBTyxDQUFDVyxHQUFSLENBQ0xMLFNBQVMsQ0FBQ00sR0FBVixDQUFjQyxHQUFHLElBQUk7QUFDbkIsYUFBTzVCLE1BQU0sQ0FBQzZCLE1BQVAsQ0FBY0QsR0FBRyxDQUFDRSxHQUFsQixDQUFQO0FBQ0QsS0FGRCxDQURLLENBQVA7QUFLRDs7QUFFRCxRQUFNQyxXQUFOLENBQWtCbEMsUUFBbEIsRUFBb0M7QUFDbEMsVUFBTUcsTUFBTSxHQUFHLE1BQU0sS0FBS1AsVUFBTCxFQUFyQjtBQUNBLFVBQU1RLE1BQU0sR0FBR0QsTUFBTSxDQUFDZ0Msd0JBQVAsQ0FBZ0NuQyxRQUFoQyxDQUFmO0FBQ0FJLElBQUFBLE1BQU0sQ0FBQ2dDLElBQVA7QUFDQSxXQUFPLElBQUlsQixPQUFKLENBQVksQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO0FBQ3RDLFlBQU1pQixNQUFNLEdBQUcsRUFBZjtBQUNBakMsTUFBQUEsTUFBTSxDQUFDa0IsRUFBUCxDQUFVLE1BQVYsRUFBa0JyQixJQUFJLElBQUk7QUFDeEJvQyxRQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWXJDLElBQVo7QUFDRCxPQUZEO0FBR0FHLE1BQUFBLE1BQU0sQ0FBQ2tCLEVBQVAsQ0FBVSxLQUFWLEVBQWlCLE1BQU07QUFDckIsY0FBTXJCLElBQUksR0FBR1csTUFBTSxDQUFDQyxNQUFQLENBQWN3QixNQUFkLENBQWI7O0FBQ0EsWUFBSSxLQUFLaEUsY0FBTCxLQUF3QixJQUE1QixFQUFrQztBQUNoQyxjQUFJO0FBQ0Ysa0JBQU1rRSxlQUFlLEdBQUd0QyxJQUFJLENBQUMwQixNQUFMLEdBQWMsRUFBdEM7QUFDQSxrQkFBTWEsVUFBVSxHQUFHdkMsSUFBSSxDQUFDMEIsTUFBTCxHQUFjLEVBQWpDO0FBQ0Esa0JBQU1jLE9BQU8sR0FBR3hDLElBQUksQ0FBQ3lDLEtBQUwsQ0FBV0gsZUFBWCxDQUFoQjtBQUNBLGtCQUFNaEMsRUFBRSxHQUFHTixJQUFJLENBQUN5QyxLQUFMLENBQVdGLFVBQVgsRUFBdUJELGVBQXZCLENBQVg7QUFDQSxrQkFBTUksU0FBUyxHQUFHMUMsSUFBSSxDQUFDeUMsS0FBTCxDQUFXLENBQVgsRUFBY0YsVUFBZCxDQUFsQjtBQUNBLGtCQUFNSSxRQUFRLEdBQUdwRixNQUFNLENBQUNxRixnQkFBUCxDQUF3QixLQUFLekUsVUFBN0IsRUFBeUMsS0FBS0MsY0FBOUMsRUFBOERrQyxFQUE5RCxDQUFqQjtBQUNBcUMsWUFBQUEsUUFBUSxDQUFDRSxVQUFULENBQW9CTCxPQUFwQjtBQUNBLGtCQUFNTSxTQUFTLEdBQUduQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxDQUFDK0IsUUFBUSxDQUFDckUsTUFBVCxDQUFnQm9FLFNBQWhCLENBQUQsRUFBNkJDLFFBQVEsQ0FBQzlCLEtBQVQsRUFBN0IsQ0FBZCxDQUFsQjtBQUNBLG1CQUFPSyxPQUFPLENBQUM0QixTQUFELENBQWQ7QUFDRCxXQVZELENBVUUsT0FBTzlCLEdBQVAsRUFBWTtBQUNaLG1CQUFPRyxNQUFNLENBQUNILEdBQUQsQ0FBYjtBQUNEO0FBQ0Y7O0FBQ0RFLFFBQUFBLE9BQU8sQ0FBQ2xCLElBQUQsQ0FBUDtBQUNELE9BbEJEO0FBbUJBRyxNQUFBQSxNQUFNLENBQUNrQixFQUFQLENBQVUsT0FBVixFQUFtQkwsR0FBRyxJQUFJO0FBQ3hCRyxRQUFBQSxNQUFNLENBQUNILEdBQUQsQ0FBTjtBQUNELE9BRkQ7QUFHRCxLQTNCTSxDQUFQO0FBNEJEOztBQUVELFFBQU0rQixtQkFBTixDQUEwQnRELE9BQU8sR0FBRyxFQUFwQyxFQUF3QztBQUN0QyxRQUFJdUQsU0FBUyxHQUFHLEVBQWhCO0FBQ0EsUUFBSUMsaUJBQWlCLEdBQUcsRUFBeEI7QUFDQSxVQUFNL0MsTUFBTSxHQUFHLE1BQU0sS0FBS1AsVUFBTCxFQUFyQjs7QUFDQSxRQUFJRixPQUFPLENBQUN5RCxNQUFSLEtBQW1CakYsU0FBdkIsRUFBa0M7QUFDaENnRixNQUFBQSxpQkFBaUIsR0FBRyxJQUFJeEYsbUJBQUosQ0FDbEIsS0FBS1MsWUFEYSxFQUVsQixLQUFLVyxhQUZhLEVBR2xCWSxPQUFPLENBQUN5RCxNQUhVLENBQXBCO0FBS0QsS0FORCxNQU1PO0FBQ0xELE1BQUFBLGlCQUFpQixHQUFHLElBQUl4RixtQkFBSixDQUF3QixLQUFLUyxZQUE3QixFQUEyQyxLQUFLVyxhQUFoRCxDQUFwQjtBQUNEOztBQUNELFFBQUlZLE9BQU8sQ0FBQ3VELFNBQVIsS0FBc0IvRSxTQUExQixFQUFxQztBQUNuQytFLE1BQUFBLFNBQVMsR0FBR3ZELE9BQU8sQ0FBQ3VELFNBQXBCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsWUFBTUcsaUJBQWlCLEdBQUcsTUFBTWpELE1BQU0sQ0FBQ3NCLElBQVAsR0FBY0MsT0FBZCxFQUFoQztBQUNBMEIsTUFBQUEsaUJBQWlCLENBQUNDLE9BQWxCLENBQTBCQyxJQUFJLElBQUk7QUFDaENMLFFBQUFBLFNBQVMsQ0FBQ1gsSUFBVixDQUFlZ0IsSUFBSSxDQUFDdEQsUUFBcEI7QUFDRCxPQUZEO0FBR0Q7O0FBQ0QsV0FBTyxJQUFJa0IsT0FBSixDQUFZQyxPQUFPLElBQUk7QUFDNUIsVUFBSW9DLG1CQUFtQixHQUFHTixTQUExQjtBQUNBLFVBQUlPLGdCQUFnQixHQUFHLEVBQXZCO0FBQ0EsVUFBSUMsYUFBYSxHQUFHUixTQUFTLENBQUN0QixNQUE5QjtBQUNBLFVBQUkrQixhQUFhLEdBQUcsQ0FBcEI7QUFDQVQsTUFBQUEsU0FBUyxDQUFDSSxPQUFWLENBQWtCTSxRQUFRLElBQUk7QUFDNUJULFFBQUFBLGlCQUFpQixDQUNkaEIsV0FESCxDQUNleUIsUUFEZixFQUVHdEUsSUFGSCxDQUVRdUUsYUFBYSxJQUFJO0FBQ3JCO0FBQ0EsZUFBSzdELFVBQUwsQ0FBZ0I0RCxRQUFoQixFQUEwQkMsYUFBMUIsRUFDR3ZFLElBREgsQ0FDUSxNQUFNO0FBQ1ZtRSxZQUFBQSxnQkFBZ0IsQ0FBQ2xCLElBQWpCLENBQXNCcUIsUUFBdEI7QUFDQUosWUFBQUEsbUJBQW1CLEdBQUdBLG1CQUFtQixDQUFDTSxNQUFwQixDQUEyQixVQUFVQyxLQUFWLEVBQWlCO0FBQ2hFLHFCQUFPQSxLQUFLLEtBQUtILFFBQWpCO0FBQ0QsYUFGcUIsQ0FBdEI7QUFHQUQsWUFBQUEsYUFBYSxJQUFJLENBQWpCOztBQUNBLGdCQUFJQSxhQUFhLElBQUlELGFBQXJCLEVBQW9DO0FBQ2xDdEMsY0FBQUEsT0FBTyxDQUFDO0FBQ040QyxnQkFBQUEsT0FBTyxFQUFFUCxnQkFESDtBQUVOUSxnQkFBQUEsVUFBVSxFQUFFVDtBQUZOLGVBQUQsQ0FBUDtBQUlEO0FBQ0YsV0FiSCxFQWNHVSxLQWRILENBY1MsTUFBTTtBQUNYUCxZQUFBQSxhQUFhLElBQUksQ0FBakI7O0FBQ0EsZ0JBQUlBLGFBQWEsSUFBSUQsYUFBckIsRUFBb0M7QUFDbEN0QyxjQUFBQSxPQUFPLENBQUM7QUFDTjRDLGdCQUFBQSxPQUFPLEVBQUVQLGdCQURIO0FBRU5RLGdCQUFBQSxVQUFVLEVBQUVUO0FBRk4sZUFBRCxDQUFQO0FBSUQ7QUFDRixXQXRCSDtBQXVCRCxTQTNCSCxFQTRCR1UsS0E1QkgsQ0E0QlMsTUFBTTtBQUNYUCxVQUFBQSxhQUFhLElBQUksQ0FBakI7O0FBQ0EsY0FBSUEsYUFBYSxJQUFJRCxhQUFyQixFQUFvQztBQUNsQ3RDLFlBQUFBLE9BQU8sQ0FBQztBQUNONEMsY0FBQUEsT0FBTyxFQUFFUCxnQkFESDtBQUVOUSxjQUFBQSxVQUFVLEVBQUVUO0FBRk4sYUFBRCxDQUFQO0FBSUQ7QUFDRixTQXBDSDtBQXFDRCxPQXRDRDtBQXVDRCxLQTVDTSxDQUFQO0FBNkNEOztBQUVEVyxFQUFBQSxlQUFlLENBQUNDLE1BQUQsRUFBU25FLFFBQVQsRUFBbUI7QUFDaEMsV0FBT21FLE1BQU0sQ0FBQ0MsS0FBUCxHQUFlLFNBQWYsR0FBMkJELE1BQU0sQ0FBQ0UsYUFBbEMsR0FBa0QsR0FBbEQsR0FBd0RDLGtCQUFrQixDQUFDdEUsUUFBRCxDQUFqRjtBQUNEOztBQUVELFFBQU11RSxXQUFOLENBQWtCdkUsUUFBbEIsRUFBNEI7QUFDMUIsVUFBTUcsTUFBTSxHQUFHLE1BQU0sS0FBS1AsVUFBTCxFQUFyQjtBQUNBLFVBQU00RSxLQUFLLEdBQUcsTUFBTXJFLE1BQU0sQ0FBQ3NCLElBQVAsQ0FBWTtBQUFFekIsTUFBQUE7QUFBRixLQUFaLEVBQTBCMEIsT0FBMUIsRUFBcEI7O0FBQ0EsUUFBSThDLEtBQUssQ0FBQzdDLE1BQU4sS0FBaUIsQ0FBckIsRUFBd0I7QUFDdEIsYUFBTyxFQUFQO0FBQ0Q7O0FBQ0QsVUFBTTtBQUFFckIsTUFBQUE7QUFBRixRQUFla0UsS0FBSyxDQUFDLENBQUQsQ0FBMUI7QUFDQSxXQUFPO0FBQUVsRSxNQUFBQTtBQUFGLEtBQVA7QUFDRDs7QUFFRCxRQUFNbUUsZ0JBQU4sQ0FBdUJ6RSxRQUF2QixFQUF5QzBFLEdBQXpDLEVBQThDQyxHQUE5QyxFQUFtRHpFLFdBQW5ELEVBQWdFO0FBQzlELFVBQU1DLE1BQU0sR0FBRyxNQUFNLEtBQUtQLFVBQUwsRUFBckI7QUFDQSxVQUFNNEUsS0FBSyxHQUFHLE1BQU1yRSxNQUFNLENBQUNzQixJQUFQLENBQVk7QUFBRXpCLE1BQUFBO0FBQUYsS0FBWixFQUEwQjBCLE9BQTFCLEVBQXBCOztBQUNBLFFBQUk4QyxLQUFLLENBQUM3QyxNQUFOLEtBQWlCLENBQXJCLEVBQXdCO0FBQ3RCLFlBQU0sSUFBSUMsS0FBSixDQUFVLGNBQVYsQ0FBTjtBQUNEOztBQUNELFVBQU1nRCxLQUFLLEdBQUdGLEdBQUcsQ0FDZEcsR0FEVyxDQUNQLE9BRE8sRUFFWEMsT0FGVyxDQUVILFFBRkcsRUFFTyxFQUZQLEVBR1hDLEtBSFcsQ0FHTCxHQUhLLENBQWQ7QUFJQSxVQUFNQyxZQUFZLEdBQUdKLEtBQUssQ0FBQyxDQUFELENBQTFCO0FBQ0EsVUFBTUssVUFBVSxHQUFHTCxLQUFLLENBQUMsQ0FBRCxDQUF4QjtBQUVBLFVBQU1NLEtBQUssR0FBR0MsUUFBUSxDQUFDSCxZQUFELEVBQWUsRUFBZixDQUF0QjtBQUNBLFVBQU0zRCxHQUFHLEdBQUc0RCxVQUFVLEdBQUdFLFFBQVEsQ0FBQ0YsVUFBRCxFQUFhLEVBQWIsQ0FBWCxHQUE4QlQsS0FBSyxDQUFDLENBQUQsQ0FBTCxDQUFTN0MsTUFBVCxHQUFrQixDQUF0RTtBQUVBZ0QsSUFBQUEsR0FBRyxDQUFDUyxTQUFKLENBQWMsR0FBZCxFQUFtQjtBQUNqQix1QkFBaUIsT0FEQTtBQUVqQix3QkFBa0IvRCxHQUFHLEdBQUc2RCxLQUFOLEdBQWMsQ0FGZjtBQUdqQix1QkFBaUIsV0FBV0EsS0FBWCxHQUFtQixHQUFuQixHQUF5QjdELEdBQXpCLEdBQStCLEdBQS9CLEdBQXFDbUQsS0FBSyxDQUFDLENBQUQsQ0FBTCxDQUFTN0MsTUFIOUM7QUFJakIsc0JBQWdCekI7QUFKQyxLQUFuQjtBQU1BLFVBQU1FLE1BQU0sR0FBR0QsTUFBTSxDQUFDZ0Msd0JBQVAsQ0FBZ0NuQyxRQUFoQyxDQUFmO0FBQ0FJLElBQUFBLE1BQU0sQ0FBQzhFLEtBQVAsQ0FBYUEsS0FBYjtBQUNBOUUsSUFBQUEsTUFBTSxDQUFDa0IsRUFBUCxDQUFVLE1BQVYsRUFBa0IrRCxLQUFLLElBQUk7QUFDekJWLE1BQUFBLEdBQUcsQ0FBQzNELEtBQUosQ0FBVXFFLEtBQVY7QUFDRCxLQUZEO0FBR0FqRixJQUFBQSxNQUFNLENBQUNrQixFQUFQLENBQVUsT0FBVixFQUFtQixNQUFNO0FBQ3ZCcUQsTUFBQUEsR0FBRyxDQUFDVyxVQUFKLENBQWUsR0FBZjtBQUNELEtBRkQ7QUFHQWxGLElBQUFBLE1BQU0sQ0FBQ2tCLEVBQVAsQ0FBVSxLQUFWLEVBQWlCLE1BQU07QUFDckJxRCxNQUFBQSxHQUFHLENBQUN0RCxHQUFKO0FBQ0QsS0FGRDtBQUdEOztBQUVEa0UsRUFBQUEsY0FBYyxHQUFHO0FBQ2YsUUFBSSxDQUFDLEtBQUtoRyxPQUFWLEVBQW1CO0FBQ2pCLGFBQU8yQixPQUFPLENBQUNDLE9BQVIsRUFBUDtBQUNEOztBQUNELFdBQU8sS0FBSzVCLE9BQUwsQ0FBYWlHLEtBQWIsQ0FBbUIsS0FBbkIsQ0FBUDtBQUNEOztBQUVEQyxFQUFBQSxnQkFBZ0IsQ0FBQ3pGLFFBQUQsRUFBVztBQUN6QixXQUFPLG9DQUFpQkEsUUFBakIsQ0FBUDtBQUNEOztBQXZQbUQ7OztlQTBQdkN0QyxtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuIEdyaWRGU0J1Y2tldEFkYXB0ZXJcbiBTdG9yZXMgZmlsZXMgaW4gTW9uZ28gdXNpbmcgR3JpZFN0b3JlXG4gUmVxdWlyZXMgdGhlIGRhdGFiYXNlIGFkYXB0ZXIgdG8gYmUgYmFzZWQgb24gbW9uZ29jbGllbnRcblxuIEBmbG93IHdlYWtcbiAqL1xuXG4vLyBAZmxvdy1kaXNhYmxlLW5leHRcbmltcG9ydCB7IE1vbmdvQ2xpZW50LCBHcmlkRlNCdWNrZXQsIERiIH0gZnJvbSAnbW9uZ29kYic7XG5pbXBvcnQgeyBGaWxlc0FkYXB0ZXIsIHZhbGlkYXRlRmlsZW5hbWUgfSBmcm9tICcuL0ZpbGVzQWRhcHRlcic7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vLi4vZGVmYXVsdHMnO1xuY29uc3QgY3J5cHRvID0gcmVxdWlyZSgnY3J5cHRvJyk7XG5cbmV4cG9ydCBjbGFzcyBHcmlkRlNCdWNrZXRBZGFwdGVyIGV4dGVuZHMgRmlsZXNBZGFwdGVyIHtcbiAgX2RhdGFiYXNlVVJJOiBzdHJpbmc7XG4gIF9jb25uZWN0aW9uUHJvbWlzZTogUHJvbWlzZTxEYj47XG4gIF9tb25nb09wdGlvbnM6IE9iamVjdDtcbiAgX2FsZ29yaXRobTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1vbmdvRGF0YWJhc2VVUkkgPSBkZWZhdWx0cy5EZWZhdWx0TW9uZ29VUkksXG4gICAgbW9uZ29PcHRpb25zID0ge30sXG4gICAgZW5jcnlwdGlvbktleSA9IHVuZGVmaW5lZFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2RhdGFiYXNlVVJJID0gbW9uZ29EYXRhYmFzZVVSSTtcbiAgICB0aGlzLl9hbGdvcml0aG0gPSAnYWVzLTI1Ni1nY20nO1xuICAgIHRoaXMuX2VuY3J5cHRpb25LZXkgPVxuICAgICAgZW5jcnlwdGlvbktleSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShTdHJpbmcoZW5jcnlwdGlvbktleSkpLmRpZ2VzdCgnYmFzZTY0Jykuc3Vic3RyKDAsIDMyKVxuICAgICAgICA6IG51bGw7XG4gICAgY29uc3QgZGVmYXVsdE1vbmdvT3B0aW9ucyA9IHtcbiAgICAgIHVzZU5ld1VybFBhcnNlcjogdHJ1ZSxcbiAgICAgIHVzZVVuaWZpZWRUb3BvbG9neTogdHJ1ZSxcbiAgICB9O1xuICAgIHRoaXMuX21vbmdvT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oZGVmYXVsdE1vbmdvT3B0aW9ucywgbW9uZ29PcHRpb25zKTtcbiAgfVxuXG4gIF9jb25uZWN0KCkge1xuICAgIGlmICghdGhpcy5fY29ubmVjdGlvblByb21pc2UpIHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rpb25Qcm9taXNlID0gTW9uZ29DbGllbnQuY29ubmVjdCh0aGlzLl9kYXRhYmFzZVVSSSwgdGhpcy5fbW9uZ29PcHRpb25zKS50aGVuKFxuICAgICAgICBjbGllbnQgPT4ge1xuICAgICAgICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgICByZXR1cm4gY2xpZW50LmRiKGNsaWVudC5zLm9wdGlvbnMuZGJOYW1lKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25Qcm9taXNlO1xuICB9XG5cbiAgX2dldEJ1Y2tldCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdCgpLnRoZW4oZGF0YWJhc2UgPT4gbmV3IEdyaWRGU0J1Y2tldChkYXRhYmFzZSkpO1xuICB9XG5cbiAgLy8gRm9yIGEgZ2l2ZW4gY29uZmlnIG9iamVjdCwgZmlsZW5hbWUsIGFuZCBkYXRhLCBzdG9yZSBhIGZpbGVcbiAgLy8gUmV0dXJucyBhIHByb21pc2VcbiAgYXN5bmMgY3JlYXRlRmlsZShmaWxlbmFtZTogc3RyaW5nLCBkYXRhLCBjb250ZW50VHlwZSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgYnVja2V0ID0gYXdhaXQgdGhpcy5fZ2V0QnVja2V0KCk7XG4gICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgYnVja2V0Lm9wZW5VcGxvYWRTdHJlYW0oZmlsZW5hbWUsIHtcbiAgICAgIG1ldGFkYXRhOiBvcHRpb25zLm1ldGFkYXRhLFxuICAgIH0pO1xuICAgIGlmICh0aGlzLl9lbmNyeXB0aW9uS2V5ICE9PSBudWxsKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBpdiA9IGNyeXB0by5yYW5kb21CeXRlcygxNik7XG4gICAgICAgIGNvbnN0IGNpcGhlciA9IGNyeXB0by5jcmVhdGVDaXBoZXJpdih0aGlzLl9hbGdvcml0aG0sIHRoaXMuX2VuY3J5cHRpb25LZXksIGl2KTtcbiAgICAgICAgY29uc3QgZW5jcnlwdGVkUmVzdWx0ID0gQnVmZmVyLmNvbmNhdChbXG4gICAgICAgICAgY2lwaGVyLnVwZGF0ZShkYXRhKSxcbiAgICAgICAgICBjaXBoZXIuZmluYWwoKSxcbiAgICAgICAgICBpdixcbiAgICAgICAgICBjaXBoZXIuZ2V0QXV0aFRhZygpLFxuICAgICAgICBdKTtcbiAgICAgICAgYXdhaXQgc3RyZWFtLndyaXRlKGVuY3J5cHRlZFJlc3VsdCk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBzdHJlYW0ud3JpdGUoZGF0YSk7XG4gICAgfVxuICAgIHN0cmVhbS5lbmQoKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgc3RyZWFtLm9uKCdmaW5pc2gnLCByZXNvbHZlKTtcbiAgICAgIHN0cmVhbS5vbignZXJyb3InLCByZWplY3QpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlRmlsZShmaWxlbmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYnVja2V0ID0gYXdhaXQgdGhpcy5fZ2V0QnVja2V0KCk7XG4gICAgY29uc3QgZG9jdW1lbnRzID0gYXdhaXQgYnVja2V0LmZpbmQoeyBmaWxlbmFtZSB9KS50b0FycmF5KCk7XG4gICAgaWYgKGRvY3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmlsZU5vdEZvdW5kJyk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIGRvY3VtZW50cy5tYXAoZG9jID0+IHtcbiAgICAgICAgcmV0dXJuIGJ1Y2tldC5kZWxldGUoZG9jLl9pZCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRGaWxlRGF0YShmaWxlbmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYnVja2V0ID0gYXdhaXQgdGhpcy5fZ2V0QnVja2V0KCk7XG4gICAgY29uc3Qgc3RyZWFtID0gYnVja2V0Lm9wZW5Eb3dubG9hZFN0cmVhbUJ5TmFtZShmaWxlbmFtZSk7XG4gICAgc3RyZWFtLnJlYWQoKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgY2h1bmtzID0gW107XG4gICAgICBzdHJlYW0ub24oJ2RhdGEnLCBkYXRhID0+IHtcbiAgICAgICAgY2h1bmtzLnB1c2goZGF0YSk7XG4gICAgICB9KTtcbiAgICAgIHN0cmVhbS5vbignZW5kJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0gQnVmZmVyLmNvbmNhdChjaHVua3MpO1xuICAgICAgICBpZiAodGhpcy5fZW5jcnlwdGlvbktleSAhPT0gbnVsbCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBhdXRoVGFnTG9jYXRpb24gPSBkYXRhLmxlbmd0aCAtIDE2O1xuICAgICAgICAgICAgY29uc3QgaXZMb2NhdGlvbiA9IGRhdGEubGVuZ3RoIC0gMzI7XG4gICAgICAgICAgICBjb25zdCBhdXRoVGFnID0gZGF0YS5zbGljZShhdXRoVGFnTG9jYXRpb24pO1xuICAgICAgICAgICAgY29uc3QgaXYgPSBkYXRhLnNsaWNlKGl2TG9jYXRpb24sIGF1dGhUYWdMb2NhdGlvbik7XG4gICAgICAgICAgICBjb25zdCBlbmNyeXB0ZWQgPSBkYXRhLnNsaWNlKDAsIGl2TG9jYXRpb24pO1xuICAgICAgICAgICAgY29uc3QgZGVjaXBoZXIgPSBjcnlwdG8uY3JlYXRlRGVjaXBoZXJpdih0aGlzLl9hbGdvcml0aG0sIHRoaXMuX2VuY3J5cHRpb25LZXksIGl2KTtcbiAgICAgICAgICAgIGRlY2lwaGVyLnNldEF1dGhUYWcoYXV0aFRhZyk7XG4gICAgICAgICAgICBjb25zdCBkZWNyeXB0ZWQgPSBCdWZmZXIuY29uY2F0KFtkZWNpcGhlci51cGRhdGUoZW5jcnlwdGVkKSwgZGVjaXBoZXIuZmluYWwoKV0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUoZGVjcnlwdGVkKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZShkYXRhKTtcbiAgICAgIH0pO1xuICAgICAgc3RyZWFtLm9uKCdlcnJvcicsIGVyciA9PiB7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyByb3RhdGVFbmNyeXB0aW9uS2V5KG9wdGlvbnMgPSB7fSkge1xuICAgIHZhciBmaWxlTmFtZXMgPSBbXTtcbiAgICB2YXIgb2xkS2V5RmlsZUFkYXB0ZXIgPSB7fTtcbiAgICBjb25zdCBidWNrZXQgPSBhd2FpdCB0aGlzLl9nZXRCdWNrZXQoKTtcbiAgICBpZiAob3B0aW9ucy5vbGRLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2xkS2V5RmlsZUFkYXB0ZXIgPSBuZXcgR3JpZEZTQnVja2V0QWRhcHRlcihcbiAgICAgICAgdGhpcy5fZGF0YWJhc2VVUkksXG4gICAgICAgIHRoaXMuX21vbmdvT3B0aW9ucyxcbiAgICAgICAgb3B0aW9ucy5vbGRLZXlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9sZEtleUZpbGVBZGFwdGVyID0gbmV3IEdyaWRGU0J1Y2tldEFkYXB0ZXIodGhpcy5fZGF0YWJhc2VVUkksIHRoaXMuX21vbmdvT3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmZpbGVOYW1lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBmaWxlTmFtZXMgPSBvcHRpb25zLmZpbGVOYW1lcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZmlsZU5hbWVzSXRlcmF0b3IgPSBhd2FpdCBidWNrZXQuZmluZCgpLnRvQXJyYXkoKTtcbiAgICAgIGZpbGVOYW1lc0l0ZXJhdG9yLmZvckVhY2goZmlsZSA9PiB7XG4gICAgICAgIGZpbGVOYW1lcy5wdXNoKGZpbGUuZmlsZW5hbWUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIHZhciBmaWxlTmFtZXNOb3RSb3RhdGVkID0gZmlsZU5hbWVzO1xuICAgICAgdmFyIGZpbGVOYW1lc1JvdGF0ZWQgPSBbXTtcbiAgICAgIHZhciBmaWxlTmFtZVRvdGFsID0gZmlsZU5hbWVzLmxlbmd0aDtcbiAgICAgIHZhciBmaWxlTmFtZUluZGV4ID0gMDtcbiAgICAgIGZpbGVOYW1lcy5mb3JFYWNoKGZpbGVOYW1lID0+IHtcbiAgICAgICAgb2xkS2V5RmlsZUFkYXB0ZXJcbiAgICAgICAgICAuZ2V0RmlsZURhdGEoZmlsZU5hbWUpXG4gICAgICAgICAgLnRoZW4ocGxhaW5UZXh0RGF0YSA9PiB7XG4gICAgICAgICAgICAvL092ZXJ3cml0ZSBmaWxlIHdpdGggZGF0YSBlbmNyeXB0ZWQgd2l0aCBuZXcga2V5XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUZpbGUoZmlsZU5hbWUsIHBsYWluVGV4dERhdGEpXG4gICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBmaWxlTmFtZXNSb3RhdGVkLnB1c2goZmlsZU5hbWUpO1xuICAgICAgICAgICAgICAgIGZpbGVOYW1lc05vdFJvdGF0ZWQgPSBmaWxlTmFtZXNOb3RSb3RhdGVkLmZpbHRlcihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSAhPT0gZmlsZU5hbWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZmlsZU5hbWVJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgIGlmIChmaWxlTmFtZUluZGV4ID09IGZpbGVOYW1lVG90YWwpIHtcbiAgICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgICByb3RhdGVkOiBmaWxlTmFtZXNSb3RhdGVkLFxuICAgICAgICAgICAgICAgICAgICBub3RSb3RhdGVkOiBmaWxlTmFtZXNOb3RSb3RhdGVkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZpbGVOYW1lSW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZU5hbWVJbmRleCA9PSBmaWxlTmFtZVRvdGFsKSB7XG4gICAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgcm90YXRlZDogZmlsZU5hbWVzUm90YXRlZCxcbiAgICAgICAgICAgICAgICAgICAgbm90Um90YXRlZDogZmlsZU5hbWVzTm90Um90YXRlZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgZmlsZU5hbWVJbmRleCArPSAxO1xuICAgICAgICAgICAgaWYgKGZpbGVOYW1lSW5kZXggPT0gZmlsZU5hbWVUb3RhbCkge1xuICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICByb3RhdGVkOiBmaWxlTmFtZXNSb3RhdGVkLFxuICAgICAgICAgICAgICAgIG5vdFJvdGF0ZWQ6IGZpbGVOYW1lc05vdFJvdGF0ZWQsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRGaWxlTG9jYXRpb24oY29uZmlnLCBmaWxlbmFtZSkge1xuICAgIHJldHVybiBjb25maWcubW91bnQgKyAnL2ZpbGVzLycgKyBjb25maWcuYXBwbGljYXRpb25JZCArICcvJyArIGVuY29kZVVSSUNvbXBvbmVudChmaWxlbmFtZSk7XG4gIH1cblxuICBhc3luYyBnZXRNZXRhZGF0YShmaWxlbmFtZSkge1xuICAgIGNvbnN0IGJ1Y2tldCA9IGF3YWl0IHRoaXMuX2dldEJ1Y2tldCgpO1xuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgYnVja2V0LmZpbmQoeyBmaWxlbmFtZSB9KS50b0FycmF5KCk7XG4gICAgaWYgKGZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCB7IG1ldGFkYXRhIH0gPSBmaWxlc1swXTtcbiAgICByZXR1cm4geyBtZXRhZGF0YSB9O1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlRmlsZVN0cmVhbShmaWxlbmFtZTogc3RyaW5nLCByZXEsIHJlcywgY29udGVudFR5cGUpIHtcbiAgICBjb25zdCBidWNrZXQgPSBhd2FpdCB0aGlzLl9nZXRCdWNrZXQoKTtcbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGJ1Y2tldC5maW5kKHsgZmlsZW5hbWUgfSkudG9BcnJheSgpO1xuICAgIGlmIChmaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmlsZU5vdEZvdW5kJyk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnRzID0gcmVxXG4gICAgICAuZ2V0KCdSYW5nZScpXG4gICAgICAucmVwbGFjZSgvYnl0ZXM9LywgJycpXG4gICAgICAuc3BsaXQoJy0nKTtcbiAgICBjb25zdCBwYXJ0aWFsc3RhcnQgPSBwYXJ0c1swXTtcbiAgICBjb25zdCBwYXJ0aWFsZW5kID0gcGFydHNbMV07XG5cbiAgICBjb25zdCBzdGFydCA9IHBhcnNlSW50KHBhcnRpYWxzdGFydCwgMTApO1xuICAgIGNvbnN0IGVuZCA9IHBhcnRpYWxlbmQgPyBwYXJzZUludChwYXJ0aWFsZW5kLCAxMCkgOiBmaWxlc1swXS5sZW5ndGggLSAxO1xuXG4gICAgcmVzLndyaXRlSGVhZCgyMDYsIHtcbiAgICAgICdBY2NlcHQtUmFuZ2VzJzogJ2J5dGVzJyxcbiAgICAgICdDb250ZW50LUxlbmd0aCc6IGVuZCAtIHN0YXJ0ICsgMSxcbiAgICAgICdDb250ZW50LVJhbmdlJzogJ2J5dGVzICcgKyBzdGFydCArICctJyArIGVuZCArICcvJyArIGZpbGVzWzBdLmxlbmd0aCxcbiAgICAgICdDb250ZW50LVR5cGUnOiBjb250ZW50VHlwZSxcbiAgICB9KTtcbiAgICBjb25zdCBzdHJlYW0gPSBidWNrZXQub3BlbkRvd25sb2FkU3RyZWFtQnlOYW1lKGZpbGVuYW1lKTtcbiAgICBzdHJlYW0uc3RhcnQoc3RhcnQpO1xuICAgIHN0cmVhbS5vbignZGF0YScsIGNodW5rID0+IHtcbiAgICAgIHJlcy53cml0ZShjaHVuayk7XG4gICAgfSk7XG4gICAgc3RyZWFtLm9uKCdlcnJvcicsICgpID0+IHtcbiAgICAgIHJlcy5zZW5kU3RhdHVzKDQwNCk7XG4gICAgfSk7XG4gICAgc3RyZWFtLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICByZXMuZW5kKCk7XG4gICAgfSk7XG4gIH1cblxuICBoYW5kbGVTaHV0ZG93bigpIHtcbiAgICBpZiAoIXRoaXMuX2NsaWVudCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY2xpZW50LmNsb3NlKGZhbHNlKTtcbiAgfVxuXG4gIHZhbGlkYXRlRmlsZW5hbWUoZmlsZW5hbWUpIHtcbiAgICByZXR1cm4gdmFsaWRhdGVGaWxlbmFtZShmaWxlbmFtZSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgR3JpZEZTQnVja2V0QWRhcHRlcjtcbiJdfQ==
273
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9GaWxlcy9HcmlkRlNCdWNrZXRBZGFwdGVyLmpzIl0sIm5hbWVzIjpbImNyeXB0byIsInJlcXVpcmUiLCJHcmlkRlNCdWNrZXRBZGFwdGVyIiwiRmlsZXNBZGFwdGVyIiwiY29uc3RydWN0b3IiLCJtb25nb0RhdGFiYXNlVVJJIiwiZGVmYXVsdHMiLCJEZWZhdWx0TW9uZ29VUkkiLCJtb25nb09wdGlvbnMiLCJlbmNyeXB0aW9uS2V5IiwidW5kZWZpbmVkIiwiX2RhdGFiYXNlVVJJIiwiX2FsZ29yaXRobSIsIl9lbmNyeXB0aW9uS2V5IiwiY3JlYXRlSGFzaCIsInVwZGF0ZSIsIlN0cmluZyIsImRpZ2VzdCIsInN1YnN0ciIsImRlZmF1bHRNb25nb09wdGlvbnMiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VVbmlmaWVkVG9wb2xvZ3kiLCJfbW9uZ29PcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwiX2Nvbm5lY3QiLCJfY29ubmVjdGlvblByb21pc2UiLCJNb25nb0NsaWVudCIsImNvbm5lY3QiLCJ0aGVuIiwiY2xpZW50IiwiX2NsaWVudCIsImRiIiwicyIsIm9wdGlvbnMiLCJkYk5hbWUiLCJfZ2V0QnVja2V0IiwiZGF0YWJhc2UiLCJHcmlkRlNCdWNrZXQiLCJjcmVhdGVGaWxlIiwiZmlsZW5hbWUiLCJkYXRhIiwiY29udGVudFR5cGUiLCJidWNrZXQiLCJzdHJlYW0iLCJvcGVuVXBsb2FkU3RyZWFtIiwibWV0YWRhdGEiLCJpdiIsInJhbmRvbUJ5dGVzIiwiY2lwaGVyIiwiY3JlYXRlQ2lwaGVyaXYiLCJlbmNyeXB0ZWRSZXN1bHQiLCJCdWZmZXIiLCJjb25jYXQiLCJmaW5hbCIsImdldEF1dGhUYWciLCJ3cml0ZSIsImVyciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZW5kIiwib24iLCJkZWxldGVGaWxlIiwiZG9jdW1lbnRzIiwiZmluZCIsInRvQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsImFsbCIsIm1hcCIsImRvYyIsImRlbGV0ZSIsIl9pZCIsImdldEZpbGVEYXRhIiwib3BlbkRvd25sb2FkU3RyZWFtQnlOYW1lIiwicmVhZCIsImNodW5rcyIsInB1c2giLCJhdXRoVGFnTG9jYXRpb24iLCJpdkxvY2F0aW9uIiwiYXV0aFRhZyIsInNsaWNlIiwiZW5jcnlwdGVkIiwiZGVjaXBoZXIiLCJjcmVhdGVEZWNpcGhlcml2Iiwic2V0QXV0aFRhZyIsImRlY3J5cHRlZCIsInJvdGF0ZUVuY3J5cHRpb25LZXkiLCJmaWxlTmFtZXMiLCJvbGRLZXlGaWxlQWRhcHRlciIsIm9sZEtleSIsImZpbGVOYW1lc0l0ZXJhdG9yIiwiZm9yRWFjaCIsImZpbGUiLCJmaWxlTmFtZXNOb3RSb3RhdGVkIiwiZmlsZU5hbWVzUm90YXRlZCIsImZpbGVOYW1lVG90YWwiLCJmaWxlTmFtZUluZGV4IiwiZmlsZU5hbWUiLCJwbGFpblRleHREYXRhIiwiZmlsdGVyIiwidmFsdWUiLCJyb3RhdGVkIiwibm90Um90YXRlZCIsImNhdGNoIiwiZ2V0RmlsZUxvY2F0aW9uIiwiY29uZmlnIiwibW91bnQiLCJhcHBsaWNhdGlvbklkIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiZ2V0TWV0YWRhdGEiLCJmaWxlcyIsImhhbmRsZUZpbGVTdHJlYW0iLCJyZXEiLCJyZXMiLCJwYXJ0cyIsImdldCIsInJlcGxhY2UiLCJzcGxpdCIsInBhcnRpYWxzdGFydCIsInBhcnRpYWxlbmQiLCJzdGFydCIsInBhcnNlSW50Iiwid3JpdGVIZWFkIiwiY2h1bmsiLCJzZW5kU3RhdHVzIiwiaGFuZGxlU2h1dGRvd24iLCJjbG9zZSIsInZhbGlkYXRlRmlsZW5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTQTs7QUFDQTs7QUFDQTs7OztBQVhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFJQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUVPLE1BQU1DLG1CQUFOLFNBQWtDQywwQkFBbEMsQ0FBK0M7QUFN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Q3pCVixNQUFBQSxHQUFHLENBQUMzRCxLQUFKLENBQVVxRSxLQUFWO0FBQ0QsS0FGRDtBQUdBakYsSUFBQUEsTUFBTSxDQUFDa0IsRUFBUCxDQUFVLE9BQVYsRUFBbUIsTUFBTTtBQUN2QnFELE1BQUFBLEdBQUcsQ0FBQ1csVUFBSixDQUFlLEdBQWY7QUFDRCxLQUZEO0FBR0FsRixJQUFBQSxNQUFNLENBQUNrQixFQUFQLENBQVUsS0FBVixFQUFpQixNQUFNO0FBQ3JCcUQsTUFBQUEsR0FBRyxDQUFDdEQsR0FBSjtBQUNELEtBRkQ7QUFHRDs7QUFFRGtFLEVBQUFBLGNBQWMsR0FBRztBQUNmLFFBQUksQ0FBQyxLQUFLaEcsT0FBVixFQUFtQjtBQUNqQixhQUFPMkIsT0FBTyxDQUFDQyxPQUFSLEVBQVA7QUFDRDs7QUFDRCxXQUFPLEtBQUs1QixPQUFMLENBQWFpRyxLQUFiLENBQW1CLEtBQW5CLENBQVA7QUFDRDs7QUFFREMsRUFBQUEsZ0JBQWdCLENBQUN6RixRQUFELEVBQVc7QUFDekIsV0FBTyxvQ0FBaUJBLFFBQWpCLENBQVA7QUFDRDs7QUF2UG1EOzs7ZUEwUHZDdEMsbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiBHcmlkRlNCdWNrZXRBZGFwdGVyXG4gU3RvcmVzIGZpbGVzIGluIE1vbmdvIHVzaW5nIEdyaWRTdG9yZVxuIFJlcXVpcmVzIHRoZSBkYXRhYmFzZSBhZGFwdGVyIHRvIGJlIGJhc2VkIG9uIG1vbmdvY2xpZW50XG5cbiBAZmxvdyB3ZWFrXG4gKi9cblxuLy8gQGZsb3ctZGlzYWJsZS1uZXh0XG5pbXBvcnQgeyBNb25nb0NsaWVudCwgR3JpZEZTQnVja2V0LCBEYiB9IGZyb20gJ21vbmdvZGInO1xuaW1wb3J0IHsgRmlsZXNBZGFwdGVyLCB2YWxpZGF0ZUZpbGVuYW1lIH0gZnJvbSAnLi9GaWxlc0FkYXB0ZXInO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4uLy4uL2RlZmF1bHRzJztcbmNvbnN0IGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpO1xuXG5leHBvcnQgY2xhc3MgR3JpZEZTQnVja2V0QWRhcHRlciBleHRlbmRzIEZpbGVzQWRhcHRlciB7XG4gIF9kYXRhYmFzZVVSSTogc3RyaW5nO1xuICBfY29ubmVjdGlvblByb21pc2U6IFByb21pc2U8RGI+O1xuICBfbW9uZ29PcHRpb25zOiBPYmplY3Q7XG4gIF9hbGdvcml0aG06IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBtb25nb0RhdGFiYXNlVVJJID0gZGVmYXVsdHMuRGVmYXVsdE1vbmdvVVJJLFxuICAgIG1vbmdvT3B0aW9ucyA9IHt9LFxuICAgIGVuY3J5cHRpb25LZXkgPSB1bmRlZmluZWRcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9kYXRhYmFzZVVSSSA9IG1vbmdvRGF0YWJhc2VVUkk7XG4gICAgdGhpcy5fYWxnb3JpdGhtID0gJ2Flcy0yNTYtZ2NtJztcbiAgICB0aGlzLl9lbmNyeXB0aW9uS2V5ID1cbiAgICAgIGVuY3J5cHRpb25LZXkgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoU3RyaW5nKGVuY3J5cHRpb25LZXkpKS5kaWdlc3QoJ2Jhc2U2NCcpLnN1YnN0cigwLCAzMilcbiAgICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGRlZmF1bHRNb25nb09wdGlvbnMgPSB7XG4gICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICB1c2VVbmlmaWVkVG9wb2xvZ3k6IHRydWUsXG4gICAgfTtcbiAgICB0aGlzLl9tb25nb09wdGlvbnMgPSBPYmplY3QuYXNzaWduKGRlZmF1bHRNb25nb09wdGlvbnMsIG1vbmdvT3B0aW9ucyk7XG4gIH1cblxuICBfY29ubmVjdCgpIHtcbiAgICBpZiAoIXRoaXMuX2Nvbm5lY3Rpb25Qcm9taXNlKSB7XG4gICAgICB0aGlzLl9jb25uZWN0aW9uUHJvbWlzZSA9IE1vbmdvQ2xpZW50LmNvbm5lY3QodGhpcy5fZGF0YWJhc2VVUkksIHRoaXMuX21vbmdvT3B0aW9ucykudGhlbihcbiAgICAgICAgY2xpZW50ID0+IHtcbiAgICAgICAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgICAgICAgcmV0dXJuIGNsaWVudC5kYihjbGllbnQucy5vcHRpb25zLmRiTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uUHJvbWlzZTtcbiAgfVxuXG4gIF9nZXRCdWNrZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3QoKS50aGVuKGRhdGFiYXNlID0+IG5ldyBHcmlkRlNCdWNrZXQoZGF0YWJhc2UpKTtcbiAgfVxuXG4gIC8vIEZvciBhIGdpdmVuIGNvbmZpZyBvYmplY3QsIGZpbGVuYW1lLCBhbmQgZGF0YSwgc3RvcmUgYSBmaWxlXG4gIC8vIFJldHVybnMgYSBwcm9taXNlXG4gIGFzeW5jIGNyZWF0ZUZpbGUoZmlsZW5hbWU6IHN0cmluZywgZGF0YSwgY29udGVudFR5cGUsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IGJ1Y2tldCA9IGF3YWl0IHRoaXMuX2dldEJ1Y2tldCgpO1xuICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IGJ1Y2tldC5vcGVuVXBsb2FkU3RyZWFtKGZpbGVuYW1lLCB7XG4gICAgICBtZXRhZGF0YTogb3B0aW9ucy5tZXRhZGF0YSxcbiAgICB9KTtcbiAgICBpZiAodGhpcy5fZW5jcnlwdGlvbktleSAhPT0gbnVsbCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaXYgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoMTYpO1xuICAgICAgICBjb25zdCBjaXBoZXIgPSBjcnlwdG8uY3JlYXRlQ2lwaGVyaXYodGhpcy5fYWxnb3JpdGhtLCB0aGlzLl9lbmNyeXB0aW9uS2V5LCBpdik7XG4gICAgICAgIGNvbnN0IGVuY3J5cHRlZFJlc3VsdCA9IEJ1ZmZlci5jb25jYXQoW1xuICAgICAgICAgIGNpcGhlci51cGRhdGUoZGF0YSksXG4gICAgICAgICAgY2lwaGVyLmZpbmFsKCksXG4gICAgICAgICAgaXYsXG4gICAgICAgICAgY2lwaGVyLmdldEF1dGhUYWcoKSxcbiAgICAgICAgXSk7XG4gICAgICAgIGF3YWl0IHN0cmVhbS53cml0ZShlbmNyeXB0ZWRSZXN1bHQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgc3RyZWFtLndyaXRlKGRhdGEpO1xuICAgIH1cbiAgICBzdHJlYW0uZW5kKCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHN0cmVhbS5vbignZmluaXNoJywgcmVzb2x2ZSk7XG4gICAgICBzdHJlYW0ub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUZpbGUoZmlsZW5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGJ1Y2tldCA9IGF3YWl0IHRoaXMuX2dldEJ1Y2tldCgpO1xuICAgIGNvbnN0IGRvY3VtZW50cyA9IGF3YWl0IGJ1Y2tldC5maW5kKHsgZmlsZW5hbWUgfSkudG9BcnJheSgpO1xuICAgIGlmIChkb2N1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpbGVOb3RGb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICBkb2N1bWVudHMubWFwKGRvYyA9PiB7XG4gICAgICAgIHJldHVybiBidWNrZXQuZGVsZXRlKGRvYy5faWQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0RmlsZURhdGEoZmlsZW5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGJ1Y2tldCA9IGF3YWl0IHRoaXMuX2dldEJ1Y2tldCgpO1xuICAgIGNvbnN0IHN0cmVhbSA9IGJ1Y2tldC5vcGVuRG93bmxvYWRTdHJlYW1CeU5hbWUoZmlsZW5hbWUpO1xuICAgIHN0cmVhbS5yZWFkKCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGNodW5rcyA9IFtdO1xuICAgICAgc3RyZWFtLm9uKCdkYXRhJywgZGF0YSA9PiB7XG4gICAgICAgIGNodW5rcy5wdXNoKGRhdGEpO1xuICAgICAgfSk7XG4gICAgICBzdHJlYW0ub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IEJ1ZmZlci5jb25jYXQoY2h1bmtzKTtcbiAgICAgICAgaWYgKHRoaXMuX2VuY3J5cHRpb25LZXkgIT09IG51bGwpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgYXV0aFRhZ0xvY2F0aW9uID0gZGF0YS5sZW5ndGggLSAxNjtcbiAgICAgICAgICAgIGNvbnN0IGl2TG9jYXRpb24gPSBkYXRhLmxlbmd0aCAtIDMyO1xuICAgICAgICAgICAgY29uc3QgYXV0aFRhZyA9IGRhdGEuc2xpY2UoYXV0aFRhZ0xvY2F0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IGl2ID0gZGF0YS5zbGljZShpdkxvY2F0aW9uLCBhdXRoVGFnTG9jYXRpb24pO1xuICAgICAgICAgICAgY29uc3QgZW5jcnlwdGVkID0gZGF0YS5zbGljZSgwLCBpdkxvY2F0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IGRlY2lwaGVyID0gY3J5cHRvLmNyZWF0ZURlY2lwaGVyaXYodGhpcy5fYWxnb3JpdGhtLCB0aGlzLl9lbmNyeXB0aW9uS2V5LCBpdik7XG4gICAgICAgICAgICBkZWNpcGhlci5zZXRBdXRoVGFnKGF1dGhUYWcpO1xuICAgICAgICAgICAgY29uc3QgZGVjcnlwdGVkID0gQnVmZmVyLmNvbmNhdChbZGVjaXBoZXIudXBkYXRlKGVuY3J5cHRlZCksIGRlY2lwaGVyLmZpbmFsKCldKTtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKGRlY3J5cHRlZCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICB9KTtcbiAgICAgIHN0cmVhbS5vbignZXJyb3InLCBlcnIgPT4ge1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcm90YXRlRW5jcnlwdGlvbktleShvcHRpb25zID0ge30pIHtcbiAgICB2YXIgZmlsZU5hbWVzID0gW107XG4gICAgdmFyIG9sZEtleUZpbGVBZGFwdGVyID0ge307XG4gICAgY29uc3QgYnVja2V0ID0gYXdhaXQgdGhpcy5fZ2V0QnVja2V0KCk7XG4gICAgaWYgKG9wdGlvbnMub2xkS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9sZEtleUZpbGVBZGFwdGVyID0gbmV3IEdyaWRGU0J1Y2tldEFkYXB0ZXIoXG4gICAgICAgIHRoaXMuX2RhdGFiYXNlVVJJLFxuICAgICAgICB0aGlzLl9tb25nb09wdGlvbnMsXG4gICAgICAgIG9wdGlvbnMub2xkS2V5XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBvbGRLZXlGaWxlQWRhcHRlciA9IG5ldyBHcmlkRlNCdWNrZXRBZGFwdGVyKHRoaXMuX2RhdGFiYXNlVVJJLCB0aGlzLl9tb25nb09wdGlvbnMpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5maWxlTmFtZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZmlsZU5hbWVzID0gb3B0aW9ucy5maWxlTmFtZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpbGVOYW1lc0l0ZXJhdG9yID0gYXdhaXQgYnVja2V0LmZpbmQoKS50b0FycmF5KCk7XG4gICAgICBmaWxlTmFtZXNJdGVyYXRvci5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgICBmaWxlTmFtZXMucHVzaChmaWxlLmZpbGVuYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICB2YXIgZmlsZU5hbWVzTm90Um90YXRlZCA9IGZpbGVOYW1lcztcbiAgICAgIHZhciBmaWxlTmFtZXNSb3RhdGVkID0gW107XG4gICAgICB2YXIgZmlsZU5hbWVUb3RhbCA9IGZpbGVOYW1lcy5sZW5ndGg7XG4gICAgICB2YXIgZmlsZU5hbWVJbmRleCA9IDA7XG4gICAgICBmaWxlTmFtZXMuZm9yRWFjaChmaWxlTmFtZSA9PiB7XG4gICAgICAgIG9sZEtleUZpbGVBZGFwdGVyXG4gICAgICAgICAgLmdldEZpbGVEYXRhKGZpbGVOYW1lKVxuICAgICAgICAgIC50aGVuKHBsYWluVGV4dERhdGEgPT4ge1xuICAgICAgICAgICAgLy9PdmVyd3JpdGUgZmlsZSB3aXRoIGRhdGEgZW5jcnlwdGVkIHdpdGggbmV3IGtleVxuICAgICAgICAgICAgdGhpcy5jcmVhdGVGaWxlKGZpbGVOYW1lLCBwbGFpblRleHREYXRhKVxuICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgZmlsZU5hbWVzUm90YXRlZC5wdXNoKGZpbGVOYW1lKTtcbiAgICAgICAgICAgICAgICBmaWxlTmFtZXNOb3RSb3RhdGVkID0gZmlsZU5hbWVzTm90Um90YXRlZC5maWx0ZXIoZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgIT09IGZpbGVOYW1lO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZpbGVOYW1lSW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZU5hbWVJbmRleCA9PSBmaWxlTmFtZVRvdGFsKSB7XG4gICAgICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICAgICAgcm90YXRlZDogZmlsZU5hbWVzUm90YXRlZCxcbiAgICAgICAgICAgICAgICAgICAgbm90Um90YXRlZDogZmlsZU5hbWVzTm90Um90YXRlZCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICBmaWxlTmFtZUluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgaWYgKGZpbGVOYW1lSW5kZXggPT0gZmlsZU5hbWVUb3RhbCkge1xuICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgICAgIHJvdGF0ZWQ6IGZpbGVOYW1lc1JvdGF0ZWQsXG4gICAgICAgICAgICAgICAgICAgIG5vdFJvdGF0ZWQ6IGZpbGVOYW1lc05vdFJvdGF0ZWQsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIGZpbGVOYW1lSW5kZXggKz0gMTtcbiAgICAgICAgICAgIGlmIChmaWxlTmFtZUluZGV4ID09IGZpbGVOYW1lVG90YWwpIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgICAgcm90YXRlZDogZmlsZU5hbWVzUm90YXRlZCxcbiAgICAgICAgICAgICAgICBub3RSb3RhdGVkOiBmaWxlTmFtZXNOb3RSb3RhdGVkLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RmlsZUxvY2F0aW9uKGNvbmZpZywgZmlsZW5hbWUpIHtcbiAgICByZXR1cm4gY29uZmlnLm1vdW50ICsgJy9maWxlcy8nICsgY29uZmlnLmFwcGxpY2F0aW9uSWQgKyAnLycgKyBlbmNvZGVVUklDb21wb25lbnQoZmlsZW5hbWUpO1xuICB9XG5cbiAgYXN5bmMgZ2V0TWV0YWRhdGEoZmlsZW5hbWUpIHtcbiAgICBjb25zdCBidWNrZXQgPSBhd2FpdCB0aGlzLl9nZXRCdWNrZXQoKTtcbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGJ1Y2tldC5maW5kKHsgZmlsZW5hbWUgfSkudG9BcnJheSgpO1xuICAgIGlmIChmaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgeyBtZXRhZGF0YSB9ID0gZmlsZXNbMF07XG4gICAgcmV0dXJuIHsgbWV0YWRhdGEgfTtcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZUZpbGVTdHJlYW0oZmlsZW5hbWU6IHN0cmluZywgcmVxLCByZXMsIGNvbnRlbnRUeXBlKSB7XG4gICAgY29uc3QgYnVja2V0ID0gYXdhaXQgdGhpcy5fZ2V0QnVja2V0KCk7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCBidWNrZXQuZmluZCh7IGZpbGVuYW1lIH0pLnRvQXJyYXkoKTtcbiAgICBpZiAoZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpbGVOb3RGb3VuZCcpO1xuICAgIH1cbiAgICBjb25zdCBwYXJ0cyA9IHJlcVxuICAgICAgLmdldCgnUmFuZ2UnKVxuICAgICAgLnJlcGxhY2UoL2J5dGVzPS8sICcnKVxuICAgICAgLnNwbGl0KCctJyk7XG4gICAgY29uc3QgcGFydGlhbHN0YXJ0ID0gcGFydHNbMF07XG4gICAgY29uc3QgcGFydGlhbGVuZCA9IHBhcnRzWzFdO1xuXG4gICAgY29uc3Qgc3RhcnQgPSBwYXJzZUludChwYXJ0aWFsc3RhcnQsIDEwKTtcbiAgICBjb25zdCBlbmQgPSBwYXJ0aWFsZW5kID8gcGFyc2VJbnQocGFydGlhbGVuZCwgMTApIDogZmlsZXNbMF0ubGVuZ3RoIC0gMTtcblxuICAgIHJlcy53cml0ZUhlYWQoMjA2LCB7XG4gICAgICAnQWNjZXB0LVJhbmdlcyc6ICdieXRlcycsXG4gICAgICAnQ29udGVudC1MZW5ndGgnOiBlbmQgLSBzdGFydCArIDEsXG4gICAgICAnQ29udGVudC1SYW5nZSc6ICdieXRlcyAnICsgc3RhcnQgKyAnLScgKyBlbmQgKyAnLycgKyBmaWxlc1swXS5sZW5ndGgsXG4gICAgICAnQ29udGVudC1UeXBlJzogY29udGVudFR5cGUsXG4gICAgfSk7XG4gICAgY29uc3Qgc3RyZWFtID0gYnVja2V0Lm9wZW5Eb3dubG9hZFN0cmVhbUJ5TmFtZShmaWxlbmFtZSk7XG4gICAgc3RyZWFtLnN0YXJ0KHN0YXJ0KTtcbiAgICBzdHJlYW0ub24oJ2RhdGEnLCBjaHVuayA9PiB7XG4gICAgICByZXMud3JpdGUoY2h1bmspO1xuICAgIH0pO1xuICAgIHN0cmVhbS5vbignZXJyb3InLCAoKSA9PiB7XG4gICAgICByZXMuc2VuZFN0YXR1cyg0MDQpO1xuICAgIH0pO1xuICAgIHN0cmVhbS5vbignZW5kJywgKCkgPT4ge1xuICAgICAgcmVzLmVuZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlU2h1dGRvd24oKSB7XG4gICAgaWYgKCF0aGlzLl9jbGllbnQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudC5jbG9zZShmYWxzZSk7XG4gIH1cblxuICB2YWxpZGF0ZUZpbGVuYW1lKGZpbGVuYW1lKSB7XG4gICAgcmV0dXJuIHZhbGlkYXRlRmlsZW5hbWUoZmlsZW5hbWUpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEdyaWRGU0J1Y2tldEFkYXB0ZXI7XG4iXX0=
@@ -179,4 +179,4 @@ function handleRangeRequest(stream, req, res, contentType) {
179
179
 
180
180
  var _default = GridStoreAdapter;
181
181
  exports.default = _default;
182
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9GaWxlcy9HcmlkU3RvcmVBZGFwdGVyLmpzIl0sIm5hbWVzIjpbIkdyaWRTdG9yZUFkYXB0ZXIiLCJGaWxlc0FkYXB0ZXIiLCJjb25zdHJ1Y3RvciIsIm1vbmdvRGF0YWJhc2VVUkkiLCJkZWZhdWx0cyIsIkRlZmF1bHRNb25nb1VSSSIsIm1vbmdvT3B0aW9ucyIsIl9kYXRhYmFzZVVSSSIsImRlZmF1bHRNb25nb09wdGlvbnMiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VVbmlmaWVkVG9wb2xvZ3kiLCJfbW9uZ29PcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwiX2Nvbm5lY3QiLCJfY29ubmVjdGlvblByb21pc2UiLCJNb25nb0NsaWVudCIsImNvbm5lY3QiLCJ0aGVuIiwiY2xpZW50IiwiX2NsaWVudCIsImRiIiwicyIsIm9wdGlvbnMiLCJkYk5hbWUiLCJjcmVhdGVGaWxlIiwiZmlsZW5hbWUiLCJkYXRhIiwiZGF0YWJhc2UiLCJncmlkU3RvcmUiLCJHcmlkU3RvcmUiLCJvcGVuIiwid3JpdGUiLCJjbG9zZSIsImRlbGV0ZUZpbGUiLCJ1bmxpbmsiLCJnZXRGaWxlRGF0YSIsImV4aXN0IiwicmVhZCIsImdldEZpbGVMb2NhdGlvbiIsImNvbmZpZyIsIm1vdW50IiwiYXBwbGljYXRpb25JZCIsImVuY29kZVVSSUNvbXBvbmVudCIsImhhbmRsZUZpbGVTdHJlYW0iLCJyZXEiLCJyZXMiLCJjb250ZW50VHlwZSIsInN0cmVhbSIsImhhbmRsZVJhbmdlUmVxdWVzdCIsImhhbmRsZVNodXRkb3duIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ2YWxpZGF0ZUZpbGVuYW1lIiwiYnVmZmVyX3NpemUiLCJwYXJ0cyIsImdldCIsInJlcGxhY2UiLCJzcGxpdCIsInN0YXJ0IiwiZW5kIiwibm90RW5kZWQiLCJub3RTdGFydGVkIiwibGVuZ3RoIiwiY29udGVudExlbmd0aCIsIndyaXRlSGVhZCIsInNlZWsiLCJncmlkRmlsZVN0cmVhbSIsImJ1ZmZlckF2YWlsIiwicmVtYWluaW5nQnl0ZXNUb1dyaXRlIiwidG90YWxCeXRlc1dyaXR0ZW4iLCJvbiIsImJ1ZmZlciIsInNsaWNlIiwiZGVzdHJveSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVVBOztBQUNBOztBQUNBOzs7O0FBWkE7Ozs7Ozs7O0FBU0E7QUFLTyxNQUFNQSxnQkFBTixTQUErQkMsMEJBQS9CLENBQTRDO0FBS2pEQyxFQUFBQSxXQUFXLENBQUNDLGdCQUFnQixHQUFHQyxrQkFBU0MsZUFBN0IsRUFBOENDLFlBQVksR0FBRyxFQUE3RCxFQUFpRTtBQUMxRTtBQUNBLFNBQUtDLFlBQUwsR0FBb0JKLGdCQUFwQjtBQUVBLFVBQU1LLG1CQUFtQixHQUFHO0FBQzFCQyxNQUFBQSxlQUFlLEVBQUUsSUFEUztBQUUxQkMsTUFBQUEsa0JBQWtCLEVBQUU7QUFGTSxLQUE1QjtBQUlBLFNBQUtDLGFBQUwsR0FBcUJDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjTCxtQkFBZCxFQUFtQ0YsWUFBbkMsQ0FBckI7QUFDRDs7QUFFRFEsRUFBQUEsUUFBUSxHQUFHO0FBQ1QsUUFBSSxDQUFDLEtBQUtDLGtCQUFWLEVBQThCO0FBQzVCLFdBQUtBLGtCQUFMLEdBQTBCQyxxQkFBWUMsT0FBWixDQUFvQixLQUFLVixZQUF6QixFQUF1QyxLQUFLSSxhQUE1QyxFQUEyRE8sSUFBM0QsQ0FDeEJDLE1BQU0sSUFBSTtBQUNSLGFBQUtDLE9BQUwsR0FBZUQsTUFBZjtBQUNBLGVBQU9BLE1BQU0sQ0FBQ0UsRUFBUCxDQUFVRixNQUFNLENBQUNHLENBQVAsQ0FBU0MsT0FBVCxDQUFpQkMsTUFBM0IsQ0FBUDtBQUNELE9BSnVCLENBQTFCO0FBTUQ7O0FBQ0QsV0FBTyxLQUFLVCxrQkFBWjtBQUNELEdBMUJnRCxDQTRCakQ7QUFDQTs7O0FBQ0FVLEVBQUFBLFVBQVUsQ0FBQ0MsUUFBRCxFQUFtQkMsSUFBbkIsRUFBeUI7QUFDakMsV0FBTyxLQUFLYixRQUFMLEdBQ0pJLElBREksQ0FDQ1UsUUFBUSxJQUFJO0FBQ2hC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QUFLYyxPQUFMO0FBQ0Q7QUFDRixLQXRCRDtBQXVCRCxHQTlCRDtBQStCRDs7ZUFFYzFFLGdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gR3JpZFN0b3JlQWRhcHRlclxuIFN0b3JlcyBmaWxlcyBpbiBNb25nbyB1c2luZyBHcmlkU3RvcmVcbiBSZXF1aXJlcyB0aGUgZGF0YWJhc2UgYWRhcHRlciB0byBiZSBiYXNlZCBvbiBtb25nb2NsaWVudFxuIChHcmlkU3RvcmUgaXMgZGVwcmVjYXRlZCwgUGxlYXNlIHVzZSBHcmlkRlNCdWNrZXQgaW5zdGVhZClcblxuIEBmbG93IHdlYWtcbiAqL1xuXG4vLyBAZmxvdy1kaXNhYmxlLW5leHRcbmltcG9ydCB7IE1vbmdvQ2xpZW50LCBHcmlkU3RvcmUsIERiIH0gZnJvbSAnbW9uZ29kYic7XG5pbXBvcnQgeyBGaWxlc0FkYXB0ZXIsIHZhbGlkYXRlRmlsZW5hbWUgfSBmcm9tICcuL0ZpbGVzQWRhcHRlcic7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vLi4vZGVmYXVsdHMnO1xuXG5leHBvcnQgY2xhc3MgR3JpZFN0b3JlQWRhcHRlciBleHRlbmRzIEZpbGVzQWRhcHRlciB7XG4gIF9kYXRhYmFzZVVSSTogc3RyaW5nO1xuICBfY29ubmVjdGlvblByb21pc2U6IFByb21pc2U8RGI+O1xuICBfbW9uZ29PcHRpb25zOiBPYmplY3Q7XG5cbiAgY29uc3RydWN0b3IobW9uZ29EYXRhYmFzZVVSSSA9IGRlZmF1bHRzLkRlZmF1bHRNb25nb1VSSSwgbW9uZ29PcHRpb25zID0ge30pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2RhdGFiYXNlVVJJID0gbW9uZ29EYXRhYmFzZVVSSTtcblxuICAgIGNvbnN0IGRlZmF1bHRNb25nb09wdGlvbnMgPSB7XG4gICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICB1c2VVbmlmaWVkVG9wb2xvZ3k6IHRydWUsXG4gICAgfTtcbiAgICB0aGlzLl9tb25nb09wdGlvbnMgPSBPYmplY3QuYXNzaWduKGRlZmF1bHRNb25nb09wdGlvbnMsIG1vbmdvT3B0aW9ucyk7XG4gIH1cblxuICBfY29ubmVjdCgpIHtcbiAgICBpZiAoIXRoaXMuX2Nvbm5lY3Rpb25Qcm9taXNlKSB7XG4gICAgICB0aGlzLl9jb25uZWN0aW9uUHJvbWlzZSA9IE1vbmdvQ2xpZW50LmNvbm5lY3QodGhpcy5fZGF0YWJhc2VVUkksIHRoaXMuX21vbmdvT3B0aW9ucykudGhlbihcbiAgICAgICAgY2xpZW50ID0+IHtcbiAgICAgICAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgICAgICAgcmV0dXJuIGNsaWVudC5kYihjbGllbnQucy5vcHRpb25zLmRiTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uUHJvbWlzZTtcbiAgfVxuXG4gIC8vIEZvciBhIGdpdmVuIGNvbmZpZyBvYmplY3QsIGZpbGVuYW1lLCBhbmQgZGF0YSwgc3RvcmUgYSBmaWxlXG4gIC8vIFJldHVybnMgYSBwcm9taXNlXG4gIGNyZWF0ZUZpbGUoZmlsZW5hbWU6IHN0cmluZywgZGF0YSkge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0KClcbiAgICAgIC50aGVuKGRhdGFiYXNlID0+IHtcbiAgICAgICAgY29uc3QgZ3JpZFN0b3JlID0gbmV3IEdyaWRTdG9yZShkYXRhYmFzZSwgZmlsZW5hbWUsICd3Jyk7XG4gICAgICAgIHJldHVybiBncmlkU3RvcmUub3BlbigpO1xuICAgICAgfSlcbiAgICAgIC50aGVuKGdyaWRTdG9yZSA9PiB7XG4gICAgICAgIHJldHVybiBncmlkU3RvcmUud3JpdGUoZGF0YSk7XG4gICAgICB9KVxuICAgICAgLnRoZW4oZ3JpZFN0b3JlID0+IHtcbiAgICAgICAgcmV0dXJuIGdyaWRTdG9yZS5jbG9zZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBkZWxldGVGaWxlKGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdCgpXG4gICAgICAudGhlbihkYXRhYmFzZSA9PiB7XG4gICAgICAgIGNvbnN0IGdyaWRTdG9yZSA9IG5ldyBHcmlkU3RvcmUoZGF0YWJhc2UsIGZpbGVuYW1lLCAncicpO1xuICAgICAgICByZXR1cm4gZ3JpZFN0b3JlLm9wZW4oKTtcbiAgICAgIH0pXG4gICAgICAudGhlbihncmlkU3RvcmUgPT4ge1xuICAgICAgICByZXR1cm4gZ3JpZFN0b3JlLnVubGluaygpO1xuICAgICAgfSlcbiAgICAgIC50aGVuKGdyaWRTdG9yZSA9PiB7XG4gICAgICAgIHJldHVybiBncmlkU3RvcmUuY2xvc2UoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0RmlsZURhdGEoZmlsZW5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0KClcbiAgICAgIC50aGVuKGRhdGFiYXNlID0+IHtcbiAgICAgICAgcmV0dXJuIEdyaWRTdG9yZS5leGlzdChkYXRhYmFzZSwgZmlsZW5hbWUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGdyaWRTdG9yZSA9IG5ldyBHcmlkU3RvcmUoZGF0YWJhc2UsIGZpbGVuYW1lLCAncicpO1xuICAgICAgICAgIHJldHVybiBncmlkU3RvcmUub3BlbigpO1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAudGhlbihncmlkU3RvcmUgPT4ge1xuICAgICAgICByZXR1cm4gZ3JpZFN0b3JlLnJlYWQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0RmlsZUxvY2F0aW9uKGNvbmZpZywgZmlsZW5hbWUpIHtcbiAgICByZXR1cm4gY29uZmlnLm1vdW50ICsgJy9maWxlcy8nICsgY29uZmlnLmFwcGxpY2F0aW9uSWQgKyAnLycgKyBlbmNvZGVVUklDb21wb25lbnQoZmlsZW5hbWUpO1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlRmlsZVN0cmVhbShmaWxlbmFtZTogc3RyaW5nLCByZXEsIHJlcywgY29udGVudFR5cGUpIHtcbiAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCB0aGlzLl9jb25uZWN0KCkudGhlbihkYXRhYmFzZSA9PiB7XG4gICAgICByZXR1cm4gR3JpZFN0b3JlLmV4aXN0KGRhdGFiYXNlLCBmaWxlbmFtZSkudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGdyaWRTdG9yZSA9IG5ldyBHcmlkU3RvcmUoZGF0YWJhc2UsIGZpbGVuYW1lLCAncicpO1xuICAgICAgICByZXR1cm4gZ3JpZFN0b3JlLm9wZW4oKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGhhbmRsZVJhbmdlUmVxdWVzdChzdHJlYW0sIHJlcSwgcmVzLCBjb250ZW50VHlwZSk7XG4gIH1cblxuICBoYW5kbGVTaHV0ZG93bigpIHtcbiAgICBpZiAoIXRoaXMuX2NsaWVudCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY2xpZW50LmNsb3NlKGZhbHNlKTtcbiAgfVxuXG4gIHZhbGlkYXRlRmlsZW5hbWUoZmlsZW5hbWUpIHtcbiAgICByZXR1cm4gdmFsaWRhdGVGaWxlbmFtZShmaWxlbmFtZSk7XG4gIH1cbn1cblxuLy8gaGFuZGxlUmFuZ2VSZXF1ZXN0IGlzIGxpY2Vuc2VkIHVuZGVyIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24gNC4wIEludGVybmF0aW9uYWwgTGljZW5zZSAoaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzQuMC8pLlxuLy8gQXV0aG9yOiBMRVJPSUIgYXQgd2VpZ2h0aW5nZm9ybXlwaXp6YSAoaHR0cHM6Ly93ZWlnaHRpbmdmb3JteXBpenphLndvcmRwcmVzcy5jb20vMjAxNS8wNi8yNC9zdHJlYW0taHRtbDUtbWVkaWEtY29udGVudC1saWtlLXZpZGVvLWF1ZGlvLWZyb20tbW9uZ29kYi11c2luZy1leHByZXNzLWFuZC1ncmlkc3RvcmUvKS5cbmZ1bmN0aW9uIGhhbmRsZVJhbmdlUmVxdWVzdChzdHJlYW0sIHJlcSwgcmVzLCBjb250ZW50VHlwZSkge1xuICBjb25zdCBidWZmZXJfc2l6ZSA9IDEwMjQgKiAxMDI0OyAvLzEwMjRLYlxuICAvLyBSYW5nZSByZXF1ZXN0LCBwYXJ0aWFsIHN0cmVhbSB0aGUgZmlsZVxuICBjb25zdCBwYXJ0cyA9IHJlcVxuICAgIC5nZXQoJ1JhbmdlJylcbiAgICAucmVwbGFjZSgvYnl0ZXM9LywgJycpXG4gICAgLnNwbGl0KCctJyk7XG4gIGxldCBbc3RhcnQsIGVuZF0gPSBwYXJ0cztcbiAgY29uc3Qgbm90RW5kZWQgPSAhZW5kICYmIGVuZCAhPT0gMDtcbiAgY29uc3Qgbm90U3RhcnRlZCA9ICFzdGFydCAmJiBzdGFydCAhPT0gMDtcbiAgLy8gTm8gZW5kIHByb3ZpZGVkLCB3ZSB3YW50IGFsbCBieXRlc1xuICBpZiAobm90RW5kZWQpIHtcbiAgICBlbmQgPSBzdHJlYW0ubGVuZ3RoIC0gMTtcbiAgfVxuICAvLyBObyBzdGFydCBwcm92aWRlZCwgd2UncmUgcmVhZGluZyBiYWNrd2FyZHNcbiAgaWYgKG5vdFN0YXJ0ZWQpIHtcbiAgICBzdGFydCA9IHN0cmVhbS5sZW5ndGggLSBlbmQ7XG4gICAgZW5kID0gc3RhcnQgKyBlbmQgLSAxO1xuICB9XG5cbiAgLy8gRGF0YSBleGNlZWRzIHRoZSBidWZmZXJfc2l6ZSwgY2FwXG4gIGlmIChlbmQgLSBzdGFydCA+PSBidWZmZXJfc2l6ZSkge1xuICAgIGVuZCA9IHN0YXJ0ICsgYnVmZmVyX3NpemUgLSAxO1xuICB9XG5cbiAgY29uc3QgY29udGVudExlbmd0aCA9IGVuZCAtIHN0YXJ0ICsgMTtcblxuICByZXMud3JpdGVIZWFkKDIwNiwge1xuICAgICdDb250ZW50LVJhbmdlJzogJ2J5dGVzICcgKyBzdGFydCArICctJyArIGVuZCArICcvJyArIHN0cmVhbS5sZW5ndGgsXG4gICAgJ0FjY2VwdC1SYW5nZXMnOiAnYnl0ZXMnLFxuICAgICdDb250ZW50LUxlbmd0aCc6IGNvbnRlbnRMZW5ndGgsXG4gICAgJ0NvbnRlbnQtVHlwZSc6IGNvbnRlbnRUeXBlLFxuICB9KTtcblxuICBzdHJlYW0uc2VlayhzdGFydCwgZnVuY3Rpb24gKCkge1xuICAgIC8vIEdldCBncmlkRmlsZSBzdHJlYW1cbiAgICBjb25zdCBncmlkRmlsZVN0cmVhbSA9IHN0cmVhbS5zdHJlYW0odHJ1ZSk7XG4gICAgbGV0IGJ1ZmZlckF2YWlsID0gMDtcbiAgICBsZXQgcmVtYWluaW5nQnl0ZXNUb1dyaXRlID0gY29udGVudExlbmd0aDtcbiAgICBsZXQgdG90YWxCeXRlc1dyaXR0ZW4gPSAwO1xuICAgIC8vIFdyaXRlIHRvIHJlc3BvbnNlXG4gICAgZ3JpZEZpbGVTdHJlYW0ub24oJ2RhdGEnLCBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgYnVmZmVyQXZhaWwgKz0gZGF0YS5sZW5ndGg7XG4gICAgICBpZiAoYnVmZmVyQXZhaWwgPiAwKSB7XG4gICAgICAgIC8vIHNsaWNlIHJldHVybnMgdGhlIHNhbWUgYnVmZmVyIGlmIG92ZXJmbG93aW5nXG4gICAgICAgIC8vIHNhZmUgdG8gY2FsbCBpbiBhbnkgY2FzZVxuICAgICAgICBjb25zdCBidWZmZXIgPSBkYXRhLnNsaWNlKDAsIHJlbWFpbmluZ0J5dGVzVG9Xcml0ZSk7XG4gICAgICAgIC8vIFdyaXRlIHRoZSBidWZmZXJcbiAgICAgICAgcmVzLndyaXRlKGJ1ZmZlcik7XG4gICAgICAgIC8vIEluY3JlbWVudCB0b3RhbFxuICAgICAgICB0b3RhbEJ5dGVzV3JpdHRlbiArPSBidWZmZXIubGVuZ3RoO1xuICAgICAgICAvLyBEZWNyZW1lbnQgcmVtYWluaW5nXG4gICAgICAgIHJlbWFpbmluZ0J5dGVzVG9Xcml0ZSAtPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgLy8gRGVjcmVtZW50IHRoZSBhdmFpbGFibGUgYnVmZmVyXG4gICAgICAgIGJ1ZmZlckF2YWlsIC09IGJ1ZmZlci5sZW5ndGg7XG4gICAgICB9XG4gICAgICAvLyBJbiBjYXNlIG9mIHNtYWxsIHNsaWNlcywgYWxsIHZhbHVlcyB3aWxsIGJlIGdvb2QgYXQgdGhhdCBwb2ludFxuICAgICAgLy8gd2UndmUgd3JpdHRlbiBlbm91Z2gsIGVuZC4uLlxuICAgICAgaWYgKHRvdGFsQnl0ZXNXcml0dGVuID49IGNvbnRlbnRMZW5ndGgpIHtcbiAgICAgICAgc3RyZWFtLmNsb3NlKCk7XG4gICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBHcmlkU3RvcmVBZGFwdGVyO1xuIl19
182
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9GaWxlcy9HcmlkU3RvcmVBZGFwdGVyLmpzIl0sIm5hbWVzIjpbIkdyaWRTdG9yZUFkYXB0ZXIiLCJGaWxlc0FkYXB0ZXIiLCJjb25zdHJ1Y3RvciIsIm1vbmdvRGF0YWJhc2VVUkkiLCJkZWZhdWx0cyIsIkRlZmF1bHRNb25nb1VSSSIsIm1vbmdvT3B0aW9ucyIsIl9kYXRhYmFzZVVSSSIsImRlZmF1bHRNb25nb09wdGlvbnMiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VVbmlmaWVkVG9wb2xvZ3kiLCJfbW9uZ29PcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwiX2Nvbm5lY3QiLCJfY29ubmVjdGlvblByb21pc2UiLCJNb25nb0NsaWVudCIsImNvbm5lY3QiLCJ0aGVuIiwiY2xpZW50IiwiX2NsaWVudCIsImRiIiwicyIsIm9wdGlvbnMiLCJkYk5hbWUiLCJjcmVhdGVGaWxlIiwiZmlsZW5hbWUiLCJkYXRhIiwiZGF0YWJhc2UiLCJncmlkU3RvcmUiLCJHcmlkU3RvcmUiLCJvcGVuIiwid3JpdGUiLCJjbG9zZSIsImRlbGV0ZUZpbGUiLCJ1bmxpbmsiLCJnZXRGaWxlRGF0YSIsImV4aXN0IiwicmVhZCIsImdldEZpbGVMb2NhdGlvbiIsImNvbmZpZyIsIm1vdW50IiwiYXBwbGljYXRpb25JZCIsImVuY29kZVVSSUNvbXBvbmVudCIsImhhbmRsZUZpbGVTdHJlYW0iLCJyZXEiLCJyZXMiLCJjb250ZW50VHlwZSIsInN0cmVhbSIsImhhbmRsZVJhbmdlUmVxdWVzdCIsImhhbmRsZVNodXRkb3duIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ2YWxpZGF0ZUZpbGVuYW1lIiwiYnVmZmVyX3NpemUiLCJwYXJ0cyIsImdldCIsInJlcGxhY2UiLCJzcGxpdCIsInN0YXJ0IiwiZW5kIiwibm90RW5kZWQiLCJub3RTdGFydGVkIiwibGVuZ3RoIiwiY29udGVudExlbmd0aCIsIndyaXRlSGVhZCIsInNlZWsiLCJncmlkRmlsZVN0cmVhbSIsImJ1ZmZlckF2YWlsIiwicmVtYWluaW5nQnl0ZXNUb1dyaXRlIiwidG90YWxCeXRlc1dyaXR0ZW4iLCJvbiIsImJ1ZmZlciIsInNsaWNlIiwiZGVzdHJveSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVVBOztBQUNBOztBQUNBOzs7O0FBWkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBS08sTUFBTUEsZ0JBQU4sU0FBK0JDLDBCQUEvQixDQUE0QztBQUtqREMsRUFBQUEsV0FBVyxDQUFDQyxnQkFBZ0IsR0FBR0Msa0JBQVNDLGVBQTdCLEVBQThDQyxZQUFZLEdBQUcsRUFBN0QsRUFBaUU7QUFDMUU7QUFDQSxTQUFLQyxZQUFMLEdBQW9CSixnQkFBcEI7QUFFQSxVQUFNSyxtQkFBbUIsR0FBRztBQUMxQkMsTUFBQUEsZUFBZSxFQUFFLElBRFM7QUFFMUJDLE1BQUFBLGtCQUFrQixFQUFFO0FBRk0sS0FBNUI7QUFJQSxTQUFLQyxhQUFMLEdBQXFCQyxNQUFNLENBQUNDLE1BQVAsQ0FBY0wsbUJBQWQsRUFBbUNGLFlBQW5DLENBQXJCO0FBQ0Q7O0FBRURRLEVBQUFBLFFBQVEsR0FBRztBQUNULFFBQUksQ0FBQyxLQUFLQyxrQkFBVixFQUE4QjtBQUM1QixXQUFLQSxrQkFBTCxHQUEwQkMscUJBQVlDLE9BQVosQ0FBb0IsS0FBS1YsWUFBekIsRUFBdUMsS0FBS0ksYUFBNUMsRUFBMkRPLElBQTNELENBQ3hCQyxNQUFNLElBQUk7QUFDUixhQUFLQyxPQUFMLEdBQWVELE1BQWY7QUFDQSxlQUFPQSxNQUFNLENBQUNFLEVBQVAsQ0FBVUYsTUFBTSxDQUFDRyxDQUFQLENBQVNDLE9BQVQsQ0FBaUJDLE1BQTNCLENBQVA7QUFDRCxPQUp1QixDQUExQjtBQU1EOztBQUNELFdBQU8sS0FBS1Qsa0JBQVo7QUFDRCxHQTFCZ0QsQ0E0QmpEO0FBQ0E7OztBQUNBVSxFQUFBQSxVQUFVLENBQUNDLFFBQUQsRUFBbUJDLElBQW5CLEVBQXlCO0FBQ2pDLFdBQU8sS0FBS2IsUUFBTCxHQUNK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LFFBQUFBLEdBQUcsQ0FBQ2MsR0FBSjtBQUNBLGFBQUtjLE9BQUw7QUFDRDtBQUNGLEtBdEJEO0FBdUJELEdBOUJEO0FBK0JEOztlQUVjMUUsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiBHcmlkU3RvcmVBZGFwdGVyXG4gU3RvcmVzIGZpbGVzIGluIE1vbmdvIHVzaW5nIEdyaWRTdG9yZVxuIFJlcXVpcmVzIHRoZSBkYXRhYmFzZSBhZGFwdGVyIHRvIGJlIGJhc2VkIG9uIG1vbmdvY2xpZW50XG4gKEdyaWRTdG9yZSBpcyBkZXByZWNhdGVkLCBQbGVhc2UgdXNlIEdyaWRGU0J1Y2tldCBpbnN0ZWFkKVxuXG4gQGZsb3cgd2Vha1xuICovXG5cbi8vIEBmbG93LWRpc2FibGUtbmV4dFxuaW1wb3J0IHsgTW9uZ29DbGllbnQsIEdyaWRTdG9yZSwgRGIgfSBmcm9tICdtb25nb2RiJztcbmltcG9ydCB7IEZpbGVzQWRhcHRlciwgdmFsaWRhdGVGaWxlbmFtZSB9IGZyb20gJy4vRmlsZXNBZGFwdGVyJztcbmltcG9ydCBkZWZhdWx0cyBmcm9tICcuLi8uLi9kZWZhdWx0cyc7XG5cbmV4cG9ydCBjbGFzcyBHcmlkU3RvcmVBZGFwdGVyIGV4dGVuZHMgRmlsZXNBZGFwdGVyIHtcbiAgX2RhdGFiYXNlVVJJOiBzdHJpbmc7XG4gIF9jb25uZWN0aW9uUHJvbWlzZTogUHJvbWlzZTxEYj47XG4gIF9tb25nb09wdGlvbnM6IE9iamVjdDtcblxuICBjb25zdHJ1Y3Rvcihtb25nb0RhdGFiYXNlVVJJID0gZGVmYXVsdHMuRGVmYXVsdE1vbmdvVVJJLCBtb25nb09wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fZGF0YWJhc2VVUkkgPSBtb25nb0RhdGFiYXNlVVJJO1xuXG4gICAgY29uc3QgZGVmYXVsdE1vbmdvT3B0aW9ucyA9IHtcbiAgICAgIHVzZU5ld1VybFBhcnNlcjogdHJ1ZSxcbiAgICAgIHVzZVVuaWZpZWRUb3BvbG9neTogdHJ1ZSxcbiAgICB9O1xuICAgIHRoaXMuX21vbmdvT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oZGVmYXVsdE1vbmdvT3B0aW9ucywgbW9uZ29PcHRpb25zKTtcbiAgfVxuXG4gIF9jb25uZWN0KCkge1xuICAgIGlmICghdGhpcy5fY29ubmVjdGlvblByb21pc2UpIHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rpb25Qcm9taXNlID0gTW9uZ29DbGllbnQuY29ubmVjdCh0aGlzLl9kYXRhYmFzZVVSSSwgdGhpcy5fbW9uZ29PcHRpb25zKS50aGVuKFxuICAgICAgICBjbGllbnQgPT4ge1xuICAgICAgICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgICByZXR1cm4gY2xpZW50LmRiKGNsaWVudC5zLm9wdGlvbnMuZGJOYW1lKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25Qcm9taXNlO1xuICB9XG5cbiAgLy8gRm9yIGEgZ2l2ZW4gY29uZmlnIG9iamVjdCwgZmlsZW5hbWUsIGFuZCBkYXRhLCBzdG9yZSBhIGZpbGVcbiAgLy8gUmV0dXJucyBhIHByb21pc2VcbiAgY3JlYXRlRmlsZShmaWxlbmFtZTogc3RyaW5nLCBkYXRhKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3QoKVxuICAgICAgLnRoZW4oZGF0YWJhc2UgPT4ge1xuICAgICAgICBjb25zdCBncmlkU3RvcmUgPSBuZXcgR3JpZFN0b3JlKGRhdGFiYXNlLCBmaWxlbmFtZSwgJ3cnKTtcbiAgICAgICAgcmV0dXJuIGdyaWRTdG9yZS5vcGVuKCk7XG4gICAgICB9KVxuICAgICAgLnRoZW4oZ3JpZFN0b3JlID0+IHtcbiAgICAgICAgcmV0dXJuIGdyaWRTdG9yZS53cml0ZShkYXRhKTtcbiAgICAgIH0pXG4gICAgICAudGhlbihncmlkU3RvcmUgPT4ge1xuICAgICAgICByZXR1cm4gZ3JpZFN0b3JlLmNsb3NlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoZmlsZW5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0KClcbiAgICAgIC50aGVuKGRhdGFiYXNlID0+IHtcbiAgICAgICAgY29uc3QgZ3JpZFN0b3JlID0gbmV3IEdyaWRTdG9yZShkYXRhYmFzZSwgZmlsZW5hbWUsICdyJyk7XG4gICAgICAgIHJldHVybiBncmlkU3RvcmUub3BlbigpO1xuICAgICAgfSlcbiAgICAgIC50aGVuKGdyaWRTdG9yZSA9PiB7XG4gICAgICAgIHJldHVybiBncmlkU3RvcmUudW5saW5rKCk7XG4gICAgICB9KVxuICAgICAgLnRoZW4oZ3JpZFN0b3JlID0+IHtcbiAgICAgICAgcmV0dXJuIGdyaWRTdG9yZS5jbG9zZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXRGaWxlRGF0YShmaWxlbmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3QoKVxuICAgICAgLnRoZW4oZGF0YWJhc2UgPT4ge1xuICAgICAgICByZXR1cm4gR3JpZFN0b3JlLmV4aXN0KGRhdGFiYXNlLCBmaWxlbmFtZSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZ3JpZFN0b3JlID0gbmV3IEdyaWRTdG9yZShkYXRhYmFzZSwgZmlsZW5hbWUsICdyJyk7XG4gICAgICAgICAgcmV0dXJuIGdyaWRTdG9yZS5vcGVuKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC50aGVuKGdyaWRTdG9yZSA9PiB7XG4gICAgICAgIHJldHVybiBncmlkU3RvcmUucmVhZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBnZXRGaWxlTG9jYXRpb24oY29uZmlnLCBmaWxlbmFtZSkge1xuICAgIHJldHVybiBjb25maWcubW91bnQgKyAnL2ZpbGVzLycgKyBjb25maWcuYXBwbGljYXRpb25JZCArICcvJyArIGVuY29kZVVSSUNvbXBvbmVudChmaWxlbmFtZSk7XG4gIH1cblxuICBhc3luYyBoYW5kbGVGaWxlU3RyZWFtKGZpbGVuYW1lOiBzdHJpbmcsIHJlcSwgcmVzLCBjb250ZW50VHlwZSkge1xuICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IHRoaXMuX2Nvbm5lY3QoKS50aGVuKGRhdGFiYXNlID0+IHtcbiAgICAgIHJldHVybiBHcmlkU3RvcmUuZXhpc3QoZGF0YWJhc2UsIGZpbGVuYW1lKS50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgZ3JpZFN0b3JlID0gbmV3IEdyaWRTdG9yZShkYXRhYmFzZSwgZmlsZW5hbWUsICdyJyk7XG4gICAgICAgIHJldHVybiBncmlkU3RvcmUub3BlbigpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgaGFuZGxlUmFuZ2VSZXF1ZXN0KHN0cmVhbSwgcmVxLCByZXMsIGNvbnRlbnRUeXBlKTtcbiAgfVxuXG4gIGhhbmRsZVNodXRkb3duKCkge1xuICAgIGlmICghdGhpcy5fY2xpZW50KSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jbGllbnQuY2xvc2UoZmFsc2UpO1xuICB9XG5cbiAgdmFsaWRhdGVGaWxlbmFtZShmaWxlbmFtZSkge1xuICAgIHJldHVybiB2YWxpZGF0ZUZpbGVuYW1lKGZpbGVuYW1lKTtcbiAgfVxufVxuXG4vLyBoYW5kbGVSYW5nZVJlcXVlc3QgaXMgbGljZW5zZWQgdW5kZXIgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlIChodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvNC4wLykuXG4vLyBBdXRob3I6IExFUk9JQiBhdCB3ZWlnaHRpbmdmb3JteXBpenphIChodHRwczovL3dlaWdodGluZ2Zvcm15cGl6emEud29yZHByZXNzLmNvbS8yMDE1LzA2LzI0L3N0cmVhbS1odG1sNS1tZWRpYS1jb250ZW50LWxpa2UtdmlkZW8tYXVkaW8tZnJvbS1tb25nb2RiLXVzaW5nLWV4cHJlc3MtYW5kLWdyaWRzdG9yZS8pLlxuZnVuY3Rpb24gaGFuZGxlUmFuZ2VSZXF1ZXN0KHN0cmVhbSwgcmVxLCByZXMsIGNvbnRlbnRUeXBlKSB7XG4gIGNvbnN0IGJ1ZmZlcl9zaXplID0gMTAyNCAqIDEwMjQ7IC8vMTAyNEtiXG4gIC8vIFJhbmdlIHJlcXVlc3QsIHBhcnRpYWwgc3RyZWFtIHRoZSBmaWxlXG4gIGNvbnN0IHBhcnRzID0gcmVxXG4gICAgLmdldCgnUmFuZ2UnKVxuICAgIC5yZXBsYWNlKC9ieXRlcz0vLCAnJylcbiAgICAuc3BsaXQoJy0nKTtcbiAgbGV0IFtzdGFydCwgZW5kXSA9IHBhcnRzO1xuICBjb25zdCBub3RFbmRlZCA9ICFlbmQgJiYgZW5kICE9PSAwO1xuICBjb25zdCBub3RTdGFydGVkID0gIXN0YXJ0ICYmIHN0YXJ0ICE9PSAwO1xuICAvLyBObyBlbmQgcHJvdmlkZWQsIHdlIHdhbnQgYWxsIGJ5dGVzXG4gIGlmIChub3RFbmRlZCkge1xuICAgIGVuZCA9IHN0cmVhbS5sZW5ndGggLSAxO1xuICB9XG4gIC8vIE5vIHN0YXJ0IHByb3ZpZGVkLCB3ZSdyZSByZWFkaW5nIGJhY2t3YXJkc1xuICBpZiAobm90U3RhcnRlZCkge1xuICAgIHN0YXJ0ID0gc3RyZWFtLmxlbmd0aCAtIGVuZDtcbiAgICBlbmQgPSBzdGFydCArIGVuZCAtIDE7XG4gIH1cblxuICAvLyBEYXRhIGV4Y2VlZHMgdGhlIGJ1ZmZlcl9zaXplLCBjYXBcbiAgaWYgKGVuZCAtIHN0YXJ0ID49IGJ1ZmZlcl9zaXplKSB7XG4gICAgZW5kID0gc3RhcnQgKyBidWZmZXJfc2l6ZSAtIDE7XG4gIH1cblxuICBjb25zdCBjb250ZW50TGVuZ3RoID0gZW5kIC0gc3RhcnQgKyAxO1xuXG4gIHJlcy53cml0ZUhlYWQoMjA2LCB7XG4gICAgJ0NvbnRlbnQtUmFuZ2UnOiAnYnl0ZXMgJyArIHN0YXJ0ICsgJy0nICsgZW5kICsgJy8nICsgc3RyZWFtLmxlbmd0aCxcbiAgICAnQWNjZXB0LVJhbmdlcyc6ICdieXRlcycsXG4gICAgJ0NvbnRlbnQtTGVuZ3RoJzogY29udGVudExlbmd0aCxcbiAgICAnQ29udGVudC1UeXBlJzogY29udGVudFR5cGUsXG4gIH0pO1xuXG4gIHN0cmVhbS5zZWVrKHN0YXJ0LCBmdW5jdGlvbiAoKSB7XG4gICAgLy8gR2V0IGdyaWRGaWxlIHN0cmVhbVxuICAgIGNvbnN0IGdyaWRGaWxlU3RyZWFtID0gc3RyZWFtLnN0cmVhbSh0cnVlKTtcbiAgICBsZXQgYnVmZmVyQXZhaWwgPSAwO1xuICAgIGxldCByZW1haW5pbmdCeXRlc1RvV3JpdGUgPSBjb250ZW50TGVuZ3RoO1xuICAgIGxldCB0b3RhbEJ5dGVzV3JpdHRlbiA9IDA7XG4gICAgLy8gV3JpdGUgdG8gcmVzcG9uc2VcbiAgICBncmlkRmlsZVN0cmVhbS5vbignZGF0YScsIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICBidWZmZXJBdmFpbCArPSBkYXRhLmxlbmd0aDtcbiAgICAgIGlmIChidWZmZXJBdmFpbCA+IDApIHtcbiAgICAgICAgLy8gc2xpY2UgcmV0dXJucyB0aGUgc2FtZSBidWZmZXIgaWYgb3ZlcmZsb3dpbmdcbiAgICAgICAgLy8gc2FmZSB0byBjYWxsIGluIGFueSBjYXNlXG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IGRhdGEuc2xpY2UoMCwgcmVtYWluaW5nQnl0ZXNUb1dyaXRlKTtcbiAgICAgICAgLy8gV3JpdGUgdGhlIGJ1ZmZlclxuICAgICAgICByZXMud3JpdGUoYnVmZmVyKTtcbiAgICAgICAgLy8gSW5jcmVtZW50IHRvdGFsXG4gICAgICAgIHRvdGFsQnl0ZXNXcml0dGVuICs9IGJ1ZmZlci5sZW5ndGg7XG4gICAgICAgIC8vIERlY3JlbWVudCByZW1haW5pbmdcbiAgICAgICAgcmVtYWluaW5nQnl0ZXNUb1dyaXRlIC09IGRhdGEubGVuZ3RoO1xuICAgICAgICAvLyBEZWNyZW1lbnQgdGhlIGF2YWlsYWJsZSBidWZmZXJcbiAgICAgICAgYnVmZmVyQXZhaWwgLT0gYnVmZmVyLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIC8vIEluIGNhc2Ugb2Ygc21hbGwgc2xpY2VzLCBhbGwgdmFsdWVzIHdpbGwgYmUgZ29vZCBhdCB0aGF0IHBvaW50XG4gICAgICAvLyB3ZSd2ZSB3cml0dGVuIGVub3VnaCwgZW5kLi4uXG4gICAgICBpZiAodG90YWxCeXRlc1dyaXR0ZW4gPj0gY29udGVudExlbmd0aCkge1xuICAgICAgICBzdHJlYW0uY2xvc2UoKTtcbiAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEdyaWRTdG9yZUFkYXB0ZXI7XG4iXX0=
@@ -36,4 +36,4 @@ class LoggerAdapter {
36
36
  exports.LoggerAdapter = LoggerAdapter;
37
37
  var _default = LoggerAdapter;
38
38
  exports.default = _default;
39
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9Mb2dnZXIvTG9nZ2VyQWRhcHRlci5qcyJdLCJuYW1lcyI6WyJMb2dnZXJBZGFwdGVyIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwibG9nIiwibGV2ZWwiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7Ozs7QUFHQTs7Ozs7O0FBTU8sTUFBTUEsYUFBTixDQUFvQjtBQUN6QkMsRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQVUsQ0FBRTtBQUN2Qjs7Ozs7Ozs7QUFNQUMsRUFBQUEsR0FBRyxDQUFDQyxLQUFELEVBQVFDO0FBQVE7QUFBaEIsSUFBNEIsQ0FBRTs7QUFSUjs7O2VBV1pMLGEiLCJzb3VyY2VzQ29udGVudCI6WyIvKmVzbGludCBuby11bnVzZWQtdmFyczogXCJvZmZcIiovXG4vKipcbiAqIEBtb2R1bGUgQWRhcHRlcnNcbiAqL1xuLyoqXG4gKiBAaW50ZXJmYWNlIExvZ2dlckFkYXB0ZXJcbiAqIExvZ2dlciBBZGFwdGVyXG4gKiBBbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgbG9nZ2VyIG1lY2hhbmlzbVxuICogRGVmYXVsdCBpcyBXaW5zdG9uTG9nZ2VyQWRhcHRlci5qc1xuICovXG5leHBvcnQgY2xhc3MgTG9nZ2VyQWRhcHRlciB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHt9XG4gIC8qKlxuICAgKiBsb2dcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxldmVsXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBtZXNzYWdlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBtZXRhZGF0YVxuICAgKi9cbiAgbG9nKGxldmVsLCBtZXNzYWdlIC8qIG1ldGEgKi8pIHt9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExvZ2dlckFkYXB0ZXI7XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9Mb2dnZXIvTG9nZ2VyQWRhcHRlci5qcyJdLCJuYW1lcyI6WyJMb2dnZXJBZGFwdGVyIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwibG9nIiwibGV2ZWwiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1BLGFBQU4sQ0FBb0I7QUFDekJDLEVBQUFBLFdBQVcsQ0FBQ0MsT0FBRCxFQUFVLENBQUU7QUFDdkI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDRUMsRUFBQUEsR0FBRyxDQUFDQyxLQUFELEVBQVFDO0FBQVE7QUFBaEIsSUFBNEIsQ0FBRTs7QUFSUjs7O2VBV1pMLGEiLCJzb3VyY2VzQ29udGVudCI6WyIvKmVzbGludCBuby11bnVzZWQtdmFyczogXCJvZmZcIiovXG4vKipcbiAqIEBtb2R1bGUgQWRhcHRlcnNcbiAqL1xuLyoqXG4gKiBAaW50ZXJmYWNlIExvZ2dlckFkYXB0ZXJcbiAqIExvZ2dlciBBZGFwdGVyXG4gKiBBbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgbG9nZ2VyIG1lY2hhbmlzbVxuICogRGVmYXVsdCBpcyBXaW5zdG9uTG9nZ2VyQWRhcHRlci5qc1xuICovXG5leHBvcnQgY2xhc3MgTG9nZ2VyQWRhcHRlciB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHt9XG4gIC8qKlxuICAgKiBsb2dcbiAgICogQHBhcmFtIHtTdHJpbmd9IGxldmVsXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBtZXNzYWdlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBtZXRhZGF0YVxuICAgKi9cbiAgbG9nKGxldmVsLCBtZXNzYWdlIC8qIG1ldGEgKi8pIHt9XG59XG5cbmV4cG9ydCBkZWZhdWx0IExvZ2dlckFkYXB0ZXI7XG4iXX0=