parse-server 7.0.0-alpha.8 → 7.0.0-beta.1
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.
- package/README.md +8 -11
- package/lib/AccountLockout.js +2 -3
- package/lib/Adapters/AdapterLoader.js +2 -3
- package/lib/Adapters/Analytics/AnalyticsAdapter.js +2 -3
- package/lib/Adapters/Auth/AuthAdapter.js +2 -3
- package/lib/Adapters/Auth/janraincapture.js +1 -2
- package/lib/Adapters/Auth/ldap.js +2 -2
- package/lib/Adapters/Auth/mfa.js +2 -3
- package/lib/Adapters/Cache/InMemoryCache.js +2 -3
- package/lib/Adapters/Cache/InMemoryCacheAdapter.js +2 -3
- package/lib/Adapters/Cache/LRUCache.js +2 -3
- package/lib/Adapters/Cache/NullCacheAdapter.js +2 -3
- package/lib/Adapters/Cache/RedisCacheAdapter.js +2 -3
- package/lib/Adapters/Cache/SchemaCache.js +2 -3
- package/lib/Adapters/Email/MailAdapter.js +2 -3
- package/lib/Adapters/Files/FilesAdapter.js +2 -3
- package/lib/Adapters/Files/GridFSBucketAdapter.js +2 -3
- package/lib/Adapters/Logger/LoggerAdapter.js +2 -3
- package/lib/Adapters/Logger/WinstonLogger.js +5 -7
- package/lib/Adapters/Logger/WinstonLoggerAdapter.js +2 -3
- package/lib/Adapters/MessageQueue/EventEmitterMQ.js +2 -3
- package/lib/Adapters/PubSub/EventEmitterPubSub.js +2 -3
- package/lib/Adapters/PubSub/PubSubAdapter.js +2 -3
- package/lib/Adapters/PubSub/RedisPubSub.js +6 -7
- package/lib/Adapters/Push/PushAdapter.js +2 -3
- package/lib/Adapters/Storage/Mongo/MongoCollection.js +19 -10
- package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +6 -7
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +16 -13
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +5 -5
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +7 -12
- package/lib/Adapters/Storage/StorageAdapter.js +1 -1
- package/lib/Adapters/WebSocketServer/WSAdapter.js +2 -3
- package/lib/Adapters/WebSocketServer/WSSAdapter.js +2 -3
- package/lib/Auth.js +5 -12
- package/lib/Config.js +10 -4
- package/lib/Controllers/AdaptableController.js +2 -3
- package/lib/Controllers/AnalyticsController.js +2 -3
- package/lib/Controllers/CacheController.js +2 -3
- package/lib/Controllers/DatabaseController.js +15 -13
- package/lib/Controllers/FilesController.js +2 -3
- package/lib/Controllers/HooksController.js +4 -5
- package/lib/Controllers/LiveQueryController.js +2 -3
- package/lib/Controllers/LoggerController.js +5 -9
- package/lib/Controllers/ParseGraphQLController.js +9 -13
- package/lib/Controllers/PushController.js +2 -3
- package/lib/Controllers/SchemaController.js +9 -14
- package/lib/Controllers/UserController.js +6 -8
- package/lib/Controllers/index.js +5 -5
- package/lib/Deprecator/Deprecations.js +1 -7
- package/lib/GraphQL/ParseGraphQLSchema.js +3 -3
- package/lib/GraphQL/ParseGraphQLServer.js +61 -30
- package/lib/GraphQL/loaders/defaultGraphQLMutations.js +3 -3
- package/lib/GraphQL/loaders/defaultGraphQLQueries.js +3 -3
- package/lib/GraphQL/loaders/defaultGraphQLTypes.js +87 -153
- package/lib/GraphQL/loaders/defaultRelaySchema.js +8 -9
- package/lib/GraphQL/loaders/filesMutations.js +55 -17
- package/lib/GraphQL/loaders/functionsMutations.js +7 -7
- package/lib/GraphQL/loaders/parseClassMutations.js +9 -7
- package/lib/GraphQL/loaders/parseClassQueries.js +3 -3
- package/lib/GraphQL/loaders/parseClassTypes.js +7 -7
- package/lib/GraphQL/loaders/schemaDirectives.js +2 -3
- package/lib/GraphQL/loaders/schemaMutations.js +3 -3
- package/lib/GraphQL/loaders/schemaQueries.js +3 -3
- package/lib/GraphQL/loaders/schemaTypes.js +32 -63
- package/lib/GraphQL/loaders/usersMutations.js +9 -7
- package/lib/GraphQL/parseGraphQLUtils.js +6 -4
- package/lib/GraphQL/transformers/constraintType.js +3 -3
- package/lib/GraphQL/transformers/inputType.js +3 -3
- package/lib/GraphQL/transformers/mutation.js +19 -14
- package/lib/GraphQL/transformers/outputType.js +3 -3
- package/lib/GraphQL/transformers/query.js +5 -5
- package/lib/GraphQL/transformers/schemaFields.js +5 -5
- package/lib/LiveQuery/ParseLiveQueryServer.js +3 -12
- package/lib/LiveQuery/ParsePubSub.js +2 -3
- package/lib/LiveQuery/RequestSchema.js +2 -19
- package/lib/Options/Definitions.js +11 -11
- package/lib/Options/docs.js +7 -7
- package/lib/Options/index.js +1 -1
- package/lib/Page.js +2 -3
- package/lib/ParseMessageQueue.js +2 -3
- package/lib/ParseServer.js +23 -16
- package/lib/ParseServerRESTController.js +6 -7
- package/lib/Push/PushWorker.js +4 -5
- package/lib/RestQuery.js +2 -3
- package/lib/RestWrite.js +7 -8
- package/lib/Routers/AggregateRouter.js +8 -5
- package/lib/Routers/AudiencesRouter.js +4 -5
- package/lib/Routers/ClassesRouter.js +6 -4
- package/lib/Routers/FeaturesRouter.js +3 -3
- package/lib/Routers/FilesRouter.js +5 -5
- package/lib/Routers/FunctionsRouter.js +2 -2
- package/lib/Routers/GlobalConfigRouter.js +4 -5
- package/lib/Routers/GraphQLRouter.js +4 -5
- package/lib/Routers/HooksRouter.js +4 -5
- package/lib/Routers/InstallationsRouter.js +2 -3
- package/lib/Routers/LogsRouter.js +4 -5
- package/lib/Routers/PagesRouter.js +2 -3
- package/lib/Routers/PublicAPIRouter.js +2 -3
- package/lib/Routers/PurgeRouter.js +4 -5
- package/lib/Routers/PushRouter.js +4 -5
- package/lib/Routers/RolesRouter.js +2 -3
- package/lib/Routers/SchemasRouter.js +5 -5
- package/lib/Routers/SecurityRouter.js +4 -5
- package/lib/Routers/SessionsRouter.js +2 -3
- package/lib/Routers/UsersRouter.js +22 -15
- package/lib/SchemaMigrations/DefinedSchemas.js +7 -7
- package/lib/Security/Check.js +2 -3
- package/lib/Security/CheckRunner.js +3 -3
- package/lib/StatusHandler.js +5 -5
- package/lib/TestUtils.js +2 -2
- package/lib/cache.js +3 -5
- package/lib/cli/definitions/parse-live-query-server.js +2 -3
- package/lib/cli/definitions/parse-server.js +2 -3
- package/lib/cli/utils/commander.js +2 -3
- package/lib/cli/utils/runner.js +1 -2
- package/lib/cloud-code/Parse.Cloud.js +9 -135
- package/lib/defaults.js +3 -5
- package/lib/index.js +6 -9
- package/lib/middlewares.js +8 -5
- package/lib/triggers.js +16 -8
- package/package.json +32 -32
|
@@ -12,14 +12,14 @@ var _Options = require("../Options");
|
|
|
12
12
|
var Migrations = _interopRequireWildcard(require("./Migrations"));
|
|
13
13
|
var _Auth = _interopRequireDefault(require("../Auth"));
|
|
14
14
|
var _rest = _interopRequireDefault(require("../rest"));
|
|
15
|
-
function _getRequireWildcardCache(
|
|
16
|
-
function _interopRequireWildcard(
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
-
function ownKeys(
|
|
19
|
-
function _objectSpread(
|
|
18
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
19
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
20
20
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
21
|
-
function _toPropertyKey(
|
|
22
|
-
function _toPrimitive(
|
|
21
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
22
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
23
23
|
// -disable-next Cannot resolve module `parse/node`.
|
|
24
24
|
const Parse = require('parse/node');
|
|
25
25
|
class DefinedSchemas {
|
|
@@ -369,4 +369,4 @@ class DefinedSchemas {
|
|
|
369
369
|
}
|
|
370
370
|
}
|
|
371
371
|
exports.DefinedSchemas = DefinedSchemas;
|
|
372
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIl9Db25maWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NjaGVtYXNSb3V0ZXIiLCJfU2NoZW1hQ29udHJvbGxlciIsIl9PcHRpb25zIiwiTWlncmF0aW9ucyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0F1dGgiLCJfcmVzdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJvd25LZXlzIiwib2JqZWN0IiwiZW51bWVyYWJsZU9ubHkiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic3ltYm9scyIsImZpbHRlciIsInN5bSIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsIlR5cGVFcnJvciIsIk51bWJlciIsIlBhcnNlIiwiRGVmaW5lZFNjaGVtYXMiLCJjb25zdHJ1Y3RvciIsInNjaGVtYU9wdGlvbnMiLCJjb25maWciLCJsb2NhbFNjaGVtYXMiLCJDb25maWciLCJhcHBJZCIsImRlZmluaXRpb25zIiwiQXJyYXkiLCJpc0FycmF5IiwicmV0cmllcyIsIm1heFJldHJpZXMiLCJzYXZlU2NoZW1hVG9EQiIsInNjaGVtYSIsInBheWxvYWQiLCJjbGFzc05hbWUiLCJmaWVsZHMiLCJfZmllbGRzIiwiaW5kZXhlcyIsIl9pbmRleGVzIiwiY2xhc3NMZXZlbFBlcm1pc3Npb25zIiwiX2NscCIsImludGVybmFsQ3JlYXRlU2NoZW1hIiwicmVzZXRTY2hlbWFPcHMiLCJ1cGRhdGVTY2hlbWFUb0RCIiwiaW50ZXJuYWxVcGRhdGVTY2hlbWEiLCJleGVjdXRlIiwibG9nZ2VyIiwiaW5mbyIsImJlZm9yZU1pZ3JhdGlvbiIsIlByb21pc2UiLCJyZXNvbHZlIiwiZXhlY3V0ZU1pZ3JhdGlvbnMiLCJhZnRlck1pZ3JhdGlvbiIsImUiLCJlcnJvciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImV4aXQiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImNyZWF0ZURlbGV0ZVNlc3Npb24iLCJzY2hlbWFDb250cm9sbGVyIiwiZGF0YWJhc2UiLCJsb2FkU2NoZW1hIiwiYWxsQ2xvdWRTY2hlbWFzIiwiZ2V0QWxsQ2xhc3NlcyIsImNsZWFyVGltZW91dCIsImFsbCIsIm1hcCIsImxvY2FsU2NoZW1hIiwic2F2ZU9yVXBkYXRlIiwiY2hlY2tGb3JNaXNzaW5nU2NoZW1hcyIsImVuZm9yY2VDTFBGb3JOb25Qcm92aWRlZENsYXNzIiwid2FpdCIsInN0cmljdCIsImNsb3VkU2NoZW1hcyIsInMiLCJtaXNzaW5nU2NoZW1hcyIsImMiLCJpbmNsdWRlcyIsInN5c3RlbUNsYXNzZXMiLCJTZXQiLCJzaXplIiwiam9pbiIsIndhcm4iLCJ0aW1lIiwibm9uUHJvdmlkZWRDbGFzc2VzIiwiY2xvdWRTY2hlbWEiLCJzb21lIiwicGFyc2VTY2hlbWEiLCJTY2hlbWEiLCJoYW5kbGVDTFAiLCJyZXNwb25zZSIsInJlc3QiLCJjcmVhdGUiLCJBdXRoIiwibWFzdGVyIiwiZGVsIiwib2JqZWN0SWQiLCJmaW5kIiwic2MiLCJ1cGRhdGVTY2hlbWEiLCJzYXZlU2NoZW1hIiwibmV3TG9jYWxTY2hlbWEiLCJmaWVsZE5hbWUiLCJpc1Byb3RlY3RlZEZpZWxkcyIsImZpZWxkIiwiaGFuZGxlRmllbGRzIiwiaW5kZXhOYW1lIiwiaXNQcm90ZWN0ZWRJbmRleCIsImFkZEluZGV4IiwiZmllbGRzVG9EZWxldGUiLCJmaWVsZHNUb1JlY3JlYXRlIiwiZmllbGRzV2l0aENoYW5nZWRQYXJhbXMiLCJsb2NhbEZpZWxkIiwicGFyYW1zQXJlRXF1YWxzIiwidHlwZSIsInRhcmdldENsYXNzIiwiZnJvbSIsInRvIiwiZGVsZXRlRXh0cmFGaWVsZHMiLCJkZWxldGVGaWVsZCIsInJlY3JlYXRlTW9kaWZpZWRGaWVsZHMiLCJmaWVsZEluZm8iLCJpbmRleGVzVG9BZGQiLCJkZWxldGVJbmRleCIsImluZGV4IiwiZGVidWciLCJvIiwiY2xwIiwiYWRkRmllbGQiLCJzZXRDTFAiLCJkZWZhdWx0Q29sdW1ucyIsIl9EZWZhdWx0IiwiaW5kZXhPZiIsIm9iakEiLCJvYmpCIiwia2V5c0EiLCJrZXlzQiIsImV2ZXJ5IiwiayIsImFkZFJlbGF0aW9uIiwiYWRkUG9pbnRlciIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvU2NoZW1hTWlncmF0aW9ucy9EZWZpbmVkU2NoZW1hcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLy8gQGZsb3ctZGlzYWJsZS1uZXh0IENhbm5vdCByZXNvbHZlIG1vZHVsZSBgcGFyc2Uvbm9kZWAuXG5jb25zdCBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKTtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgQ29uZmlnIGZyb20gJy4uL0NvbmZpZyc7XG5pbXBvcnQgeyBpbnRlcm5hbENyZWF0ZVNjaGVtYSwgaW50ZXJuYWxVcGRhdGVTY2hlbWEgfSBmcm9tICcuLi9Sb3V0ZXJzL1NjaGVtYXNSb3V0ZXInO1xuaW1wb3J0IHsgZGVmYXVsdENvbHVtbnMsIHN5c3RlbUNsYXNzZXMgfSBmcm9tICcuLi9Db250cm9sbGVycy9TY2hlbWFDb250cm9sbGVyJztcbmltcG9ydCB7IFBhcnNlU2VydmVyT3B0aW9ucyB9IGZyb20gJy4uL09wdGlvbnMnO1xuaW1wb3J0ICogYXMgTWlncmF0aW9ucyBmcm9tICcuL01pZ3JhdGlvbnMnO1xuaW1wb3J0IEF1dGggZnJvbSAnLi4vQXV0aCc7XG5pbXBvcnQgcmVzdCBmcm9tICcuLi9yZXN0JztcblxuZXhwb3J0IGNsYXNzIERlZmluZWRTY2hlbWFzIHtcbiAgY29uZmlnOiBQYXJzZVNlcnZlck9wdGlvbnM7XG4gIHNjaGVtYU9wdGlvbnM6IE1pZ3JhdGlvbnMuU2NoZW1hT3B0aW9ucztcbiAgbG9jYWxTY2hlbWFzOiBNaWdyYXRpb25zLkpTT05TY2hlbWFbXTtcbiAgcmV0cmllczogbnVtYmVyO1xuICBtYXhSZXRyaWVzOiBudW1iZXI7XG4gIGFsbENsb3VkU2NoZW1hczogUGFyc2UuU2NoZW1hW107XG5cbiAgY29uc3RydWN0b3Ioc2NoZW1hT3B0aW9uczogTWlncmF0aW9ucy5TY2hlbWFPcHRpb25zLCBjb25maWc6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICAgIHRoaXMubG9jYWxTY2hlbWFzID0gW107XG4gICAgdGhpcy5jb25maWcgPSBDb25maWcuZ2V0KGNvbmZpZy5hcHBJZCk7XG4gICAgdGhpcy5zY2hlbWFPcHRpb25zID0gc2NoZW1hT3B0aW9ucztcbiAgICBpZiAoc2NoZW1hT3B0aW9ucyAmJiBzY2hlbWFPcHRpb25zLmRlZmluaXRpb25zKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hT3B0aW9ucy5kZWZpbml0aW9ucykpIHtcbiAgICAgICAgdGhyb3cgYFwic2NoZW1hLmRlZmluaXRpb25zXCIgbXVzdCBiZSBhbiBhcnJheSBvZiBzY2hlbWFzYDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2NhbFNjaGVtYXMgPSBzY2hlbWFPcHRpb25zLmRlZmluaXRpb25zO1xuICAgIH1cblxuICAgIHRoaXMucmV0cmllcyA9IDA7XG4gICAgdGhpcy5tYXhSZXRyaWVzID0gMztcbiAgfVxuXG4gIGFzeW5jIHNhdmVTY2hlbWFUb0RCKHNjaGVtYTogUGFyc2UuU2NoZW1hKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGNsYXNzTmFtZTogc2NoZW1hLmNsYXNzTmFtZSxcbiAgICAgIGZpZWxkczogc2NoZW1hLl9maWVsZHMsXG4gICAgICBpbmRleGVzOiBzY2hlbWEuX2luZGV4ZXMsXG4gICAgICBjbGFzc0xldmVsUGVybWlzc2lvbnM6IHNjaGVtYS5fY2xwLFxuICAgIH07XG4gICAgYXdhaXQgaW50ZXJuYWxDcmVhdGVTY2hlbWEoc2NoZW1hLmNsYXNzTmFtZSwgcGF5bG9hZCwgdGhpcy5jb25maWcpO1xuICAgIHRoaXMucmVzZXRTY2hlbWFPcHMoc2NoZW1hKTtcbiAgfVxuXG4gIHJlc2V0U2NoZW1hT3BzKHNjaGVtYTogUGFyc2UuU2NoZW1hKSB7XG4gICAgLy8gUmVzZXQgb3BzIGxpa2UgU0RLXG4gICAgc2NoZW1hLl9maWVsZHMgPSB7fTtcbiAgICBzY2hlbWEuX2luZGV4ZXMgPSB7fTtcbiAgfVxuXG4gIC8vIFNpbXVsYXRlIHVwZGF0ZSBsaWtlIHRoZSBTREtcbiAgLy8gV2UgY2Fubm90IHVzZSBTREsgc2luY2Ugcm91dGVzIGFyZSBkaXNhYmxlZFxuICBhc3luYyB1cGRhdGVTY2hlbWFUb0RCKHNjaGVtYTogUGFyc2UuU2NoZW1hKSB7XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGNsYXNzTmFtZTogc2NoZW1hLmNsYXNzTmFtZSxcbiAgICAgIGZpZWxkczogc2NoZW1hLl9maWVsZHMsXG4gICAgICBpbmRleGVzOiBzY2hlbWEuX2luZGV4ZXMsXG4gICAgICBjbGFzc0xldmVsUGVybWlzc2lvbnM6IHNjaGVtYS5fY2xwLFxuICAgIH07XG4gICAgYXdhaXQgaW50ZXJuYWxVcGRhdGVTY2hlbWEoc2NoZW1hLmNsYXNzTmFtZSwgcGF5bG9hZCwgdGhpcy5jb25maWcpO1xuICAgIHRoaXMucmVzZXRTY2hlbWFPcHMoc2NoZW1hKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxvZ2dlci5pbmZvKCdSdW5uaW5nIE1pZ3JhdGlvbnMnKTtcbiAgICAgIGlmICh0aGlzLnNjaGVtYU9wdGlvbnMgJiYgdGhpcy5zY2hlbWFPcHRpb25zLmJlZm9yZU1pZ3JhdGlvbikge1xuICAgICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUodGhpcy5zY2hlbWFPcHRpb25zLmJlZm9yZU1pZ3JhdGlvbigpKTtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5leGVjdXRlTWlncmF0aW9ucygpO1xuXG4gICAgICBpZiAodGhpcy5zY2hlbWFPcHRpb25zICYmIHRoaXMuc2NoZW1hT3B0aW9ucy5hZnRlck1pZ3JhdGlvbikge1xuICAgICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUodGhpcy5zY2hlbWFPcHRpb25zLmFmdGVyTWlncmF0aW9uKCkpO1xuICAgICAgfVxuXG4gICAgICBsb2dnZXIuaW5mbygnUnVubmluZyBNaWdyYXRpb25zIENvbXBsZXRlZCcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHJ1biBtaWdyYXRpb25zOiAke2V9YCk7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVNaWdyYXRpb25zKCkge1xuICAgIGxldCB0aW1lb3V0ID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgLy8gU2V0IHVwIGEgdGltZSBvdXQgaW4gcHJvZHVjdGlvblxuICAgICAgLy8gaWYgd2UgZmFpbCB0byBnZXQgc2NoZW1hXG4gICAgICAvLyBwbTIgb3IgSzhzIGFuZCBtYW55IG90aGVyIHByb2Nlc3MgbWFuYWdlcnMgd2lsbCB0cnkgdG8gcmVzdGFydCB0aGUgcHJvY2Vzc1xuICAgICAgLy8gYWZ0ZXIgdGhlIGV4aXRcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ1RpbWVvdXQgb2NjdXJyZWQgZHVyaW5nIGV4ZWN1dGlvbiBvZiBtaWdyYXRpb25zLiBFeGl0aW5nLi4uJyk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICB9LCAyMDAwMCk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlRGVsZXRlU2Vzc2lvbigpO1xuICAgICAgLy8gQGZsb3ctZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIGNvbnN0IHNjaGVtYUNvbnRyb2xsZXIgPSBhd2FpdCB0aGlzLmNvbmZpZy5kYXRhYmFzZS5sb2FkU2NoZW1hKCk7XG4gICAgICB0aGlzLmFsbENsb3VkU2NoZW1hcyA9IGF3YWl0IHNjaGVtYUNvbnRyb2xsZXIuZ2V0QWxsQ2xhc3NlcygpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5sb2NhbFNjaGVtYXMubWFwKGFzeW5jIGxvY2FsU2NoZW1hID0+IHRoaXMuc2F2ZU9yVXBkYXRlKGxvY2FsU2NoZW1hKSkpO1xuXG4gICAgICB0aGlzLmNoZWNrRm9yTWlzc2luZ1NjaGVtYXMoKTtcbiAgICAgIGF3YWl0IHRoaXMuZW5mb3JjZUNMUEZvck5vblByb3ZpZGVkQ2xhc3MoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAodGltZW91dCkgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgaWYgKHRoaXMucmV0cmllcyA8IHRoaXMubWF4UmV0cmllcykge1xuICAgICAgICB0aGlzLnJldHJpZXMrKztcbiAgICAgICAgLy8gZmlyc3QgcmV0cnkgMXNlYywgMnNlYywgM3NlYyB0b3RhbCA2c2VjIHJldHJ5IHNlcXVlbmNlXG4gICAgICAgIC8vIHJldHJ5IHdpbGwgb25seSBoYXBwZW4gaW4gY2FzZSBvZiBkZXBsb3lpbmcgbXVsdGkgcGFyc2Ugc2VydmVyIGluc3RhbmNlXG4gICAgICAgIC8vIGF0IHRoZSBzYW1lIHRpbWUuIE1vZGVybiBzeXN0ZW1zIGxpa2UgazggYXZvaWQgdGhpcyBieSBkb2luZyByb2xsaW5nIHVwZGF0ZXNcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0KDEwMDAgKiB0aGlzLnJldHJpZXMpO1xuICAgICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVNaWdyYXRpb25zKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBydW4gbWlncmF0aW9uczogJHtlfWApO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoZWNrRm9yTWlzc2luZ1NjaGVtYXMoKSB7XG4gICAgaWYgKHRoaXMuc2NoZW1hT3B0aW9ucy5zdHJpY3QgIT09IHRydWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjbG91ZFNjaGVtYXMgPSB0aGlzLmFsbENsb3VkU2NoZW1hcy5tYXAocyA9PiBzLmNsYXNzTmFtZSk7XG4gICAgY29uc3QgbG9jYWxTY2hlbWFzID0gdGhpcy5sb2NhbFNjaGVtYXMubWFwKHMgPT4gcy5jbGFzc05hbWUpO1xuICAgIGNvbnN0IG1pc3NpbmdTY2hlbWFzID0gY2xvdWRTY2hlbWFzLmZpbHRlcihcbiAgICAgIGMgPT4gIWxvY2FsU2NoZW1hcy5pbmNsdWRlcyhjKSAmJiAhc3lzdGVtQ2xhc3Nlcy5pbmNsdWRlcyhjKVxuICAgICk7XG5cbiAgICBpZiAobmV3IFNldChsb2NhbFNjaGVtYXMpLnNpemUgIT09IGxvY2FsU2NoZW1hcy5sZW5ndGgpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgYFRoZSBsaXN0IG9mIHNjaGVtYXMgcHJvdmlkZWQgY29udGFpbnMgZHVwbGljYXRlZCBcImNsYXNzTmFtZVwiICBcIiR7bG9jYWxTY2hlbWFzLmpvaW4oXG4gICAgICAgICAgJ1wiLFwiJ1xuICAgICAgICApfVwiYFxuICAgICAgKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zY2hlbWFPcHRpb25zLnN0cmljdCAmJiBtaXNzaW5nU2NoZW1hcy5sZW5ndGgpIHtcbiAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICBgVGhlIGZvbGxvd2luZyBzY2hlbWFzIGFyZSBjdXJyZW50bHkgcHJlc2VudCBpbiB0aGUgZGF0YWJhc2UsIGJ1dCBub3QgZXhwbGljaXRseSBkZWZpbmVkIGluIGEgc2NoZW1hOiBcIiR7bWlzc2luZ1NjaGVtYXMuam9pbihcbiAgICAgICAgICAnXCIsIFwiJ1xuICAgICAgICApfVwiYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXF1aXJlZCBmb3IgdGVzdGluZyBwdXJwb3NlXG4gIHdhaXQodGltZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCB0aW1lKSk7XG4gIH1cblxuICBhc3luYyBlbmZvcmNlQ0xQRm9yTm9uUHJvdmlkZWRDbGFzcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBub25Qcm92aWRlZENsYXNzZXMgPSB0aGlzLmFsbENsb3VkU2NoZW1hcy5maWx0ZXIoXG4gICAgICBjbG91ZFNjaGVtYSA9PlxuICAgICAgICAhdGhpcy5sb2NhbFNjaGVtYXMuc29tZShsb2NhbFNjaGVtYSA9PiBsb2NhbFNjaGVtYS5jbGFzc05hbWUgPT09IGNsb3VkU2NoZW1hLmNsYXNzTmFtZSlcbiAgICApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbm9uUHJvdmlkZWRDbGFzc2VzLm1hcChhc3luYyBzY2hlbWEgPT4ge1xuICAgICAgICBjb25zdCBwYXJzZVNjaGVtYSA9IG5ldyBQYXJzZS5TY2hlbWEoc2NoZW1hLmNsYXNzTmFtZSk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ0xQKHNjaGVtYSwgcGFyc2VTY2hlbWEpO1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZVNjaGVtYVRvREIocGFyc2VTY2hlbWEpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLy8gQ3JlYXRlIGEgZmFrZSBzZXNzaW9uIHNpbmNlIFBhcnNlIGRvIG5vdCBjcmVhdGUgdGhlIF9TZXNzaW9uIHVudGlsXG4gIC8vIGEgc2Vzc2lvbiBpcyBjcmVhdGVkXG4gIGFzeW5jIGNyZWF0ZURlbGV0ZVNlc3Npb24oKSB7XG4gICAgY29uc3QgeyByZXNwb25zZSB9ID0gYXdhaXQgcmVzdC5jcmVhdGUodGhpcy5jb25maWcsIEF1dGgubWFzdGVyKHRoaXMuY29uZmlnKSwgJ19TZXNzaW9uJywge30pO1xuICAgIGF3YWl0IHJlc3QuZGVsKHRoaXMuY29uZmlnLCBBdXRoLm1hc3Rlcih0aGlzLmNvbmZpZyksICdfU2Vzc2lvbicsIHJlc3BvbnNlLm9iamVjdElkKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVPclVwZGF0ZShsb2NhbFNjaGVtYTogTWlncmF0aW9ucy5KU09OU2NoZW1hKSB7XG4gICAgY29uc3QgY2xvdWRTY2hlbWEgPSB0aGlzLmFsbENsb3VkU2NoZW1hcy5maW5kKHNjID0+IHNjLmNsYXNzTmFtZSA9PT0gbG9jYWxTY2hlbWEuY2xhc3NOYW1lKTtcbiAgICBpZiAoY2xvdWRTY2hlbWEpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlU2NoZW1hKGxvY2FsU2NoZW1hLCBjbG91ZFNjaGVtYSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IGBFcnJvciBkdXJpbmcgdXBkYXRlIG9mIHNjaGVtYSBmb3IgdHlwZSAke2Nsb3VkU2NoZW1hLmNsYXNzTmFtZX06ICR7ZX1gO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnNhdmVTY2hlbWEobG9jYWxTY2hlbWEpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBgRXJyb3Igd2hpbGUgc2F2aW5nIFNjaGVtYSBmb3IgdHlwZSAke2xvY2FsU2NoZW1hLmNsYXNzTmFtZX06ICR7ZX1gO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNhdmVTY2hlbWEobG9jYWxTY2hlbWE6IE1pZ3JhdGlvbnMuSlNPTlNjaGVtYSkge1xuICAgIGNvbnN0IG5ld0xvY2FsU2NoZW1hID0gbmV3IFBhcnNlLlNjaGVtYShsb2NhbFNjaGVtYS5jbGFzc05hbWUpO1xuICAgIGlmIChsb2NhbFNjaGVtYS5maWVsZHMpIHtcbiAgICAgIC8vIEhhbmRsZSBmaWVsZHNcbiAgICAgIE9iamVjdC5rZXlzKGxvY2FsU2NoZW1hLmZpZWxkcylcbiAgICAgICAgLmZpbHRlcihmaWVsZE5hbWUgPT4gIXRoaXMuaXNQcm90ZWN0ZWRGaWVsZHMobG9jYWxTY2hlbWEuY2xhc3NOYW1lLCBmaWVsZE5hbWUpKVxuICAgICAgICAuZm9yRWFjaChmaWVsZE5hbWUgPT4ge1xuICAgICAgICAgIGlmIChsb2NhbFNjaGVtYS5maWVsZHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gbG9jYWxTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV07XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUZpZWxkcyhuZXdMb2NhbFNjaGVtYSwgZmllbGROYW1lLCBmaWVsZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLy8gSGFuZGxlIGluZGV4ZXNcbiAgICBpZiAobG9jYWxTY2hlbWEuaW5kZXhlcykge1xuICAgICAgT2JqZWN0LmtleXMobG9jYWxTY2hlbWEuaW5kZXhlcykuZm9yRWFjaChpbmRleE5hbWUgPT4ge1xuICAgICAgICBpZiAobG9jYWxTY2hlbWEuaW5kZXhlcyAmJiAhdGhpcy5pc1Byb3RlY3RlZEluZGV4KGxvY2FsU2NoZW1hLmNsYXNzTmFtZSwgaW5kZXhOYW1lKSkge1xuICAgICAgICAgIG5ld0xvY2FsU2NoZW1hLmFkZEluZGV4KGluZGV4TmFtZSwgbG9jYWxTY2hlbWEuaW5kZXhlc1tpbmRleE5hbWVdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5oYW5kbGVDTFAobG9jYWxTY2hlbWEsIG5ld0xvY2FsU2NoZW1hKTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnNhdmVTY2hlbWFUb0RCKG5ld0xvY2FsU2NoZW1hKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVNjaGVtYShsb2NhbFNjaGVtYTogTWlncmF0aW9ucy5KU09OU2NoZW1hLCBjbG91ZFNjaGVtYTogUGFyc2UuU2NoZW1hKSB7XG4gICAgY29uc3QgbmV3TG9jYWxTY2hlbWEgPSBuZXcgUGFyc2UuU2NoZW1hKGxvY2FsU2NoZW1hLmNsYXNzTmFtZSk7XG5cbiAgICAvLyBIYW5kbGUgZmllbGRzXG4gICAgLy8gQ2hlY2sgYWRkaXRpb25cbiAgICBpZiAobG9jYWxTY2hlbWEuZmllbGRzKSB7XG4gICAgICBPYmplY3Qua2V5cyhsb2NhbFNjaGVtYS5maWVsZHMpXG4gICAgICAgIC5maWx0ZXIoZmllbGROYW1lID0+ICF0aGlzLmlzUHJvdGVjdGVkRmllbGRzKGxvY2FsU2NoZW1hLmNsYXNzTmFtZSwgZmllbGROYW1lKSlcbiAgICAgICAgLmZvckVhY2goZmllbGROYW1lID0+IHtcbiAgICAgICAgICAvLyBAZmxvdy1kaXNhYmxlLW5leHRcbiAgICAgICAgICBjb25zdCBmaWVsZCA9IGxvY2FsU2NoZW1hLmZpZWxkc1tmaWVsZE5hbWVdO1xuICAgICAgICAgIGlmICghY2xvdWRTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV0pIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRmllbGRzKG5ld0xvY2FsU2NoZW1hLCBmaWVsZE5hbWUsIGZpZWxkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGZpZWxkc1RvRGVsZXRlOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGZpZWxkc1RvUmVjcmVhdGU6IHtcbiAgICAgIGZpZWxkTmFtZTogc3RyaW5nLFxuICAgICAgZnJvbTogeyB0eXBlOiBzdHJpbmcsIHRhcmdldENsYXNzPzogc3RyaW5nIH0sXG4gICAgICB0bzogeyB0eXBlOiBzdHJpbmcsIHRhcmdldENsYXNzPzogc3RyaW5nIH0sXG4gICAgfVtdID0gW107XG4gICAgY29uc3QgZmllbGRzV2l0aENoYW5nZWRQYXJhbXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBDaGVjayBkZWxldGlvblxuICAgIE9iamVjdC5rZXlzKGNsb3VkU2NoZW1hLmZpZWxkcylcbiAgICAgIC5maWx0ZXIoZmllbGROYW1lID0+ICF0aGlzLmlzUHJvdGVjdGVkRmllbGRzKGxvY2FsU2NoZW1hLmNsYXNzTmFtZSwgZmllbGROYW1lKSlcbiAgICAgIC5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gY2xvdWRTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV07XG4gICAgICAgIGlmICghbG9jYWxTY2hlbWEuZmllbGRzIHx8ICFsb2NhbFNjaGVtYS5maWVsZHNbZmllbGROYW1lXSkge1xuICAgICAgICAgIGZpZWxkc1RvRGVsZXRlLnB1c2goZmllbGROYW1lKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsb2NhbEZpZWxkID0gbG9jYWxTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV07XG4gICAgICAgIC8vIENoZWNrIGlmIGZpZWxkIGhhcyBhIGNoYW5nZWQgdHlwZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgIXRoaXMucGFyYW1zQXJlRXF1YWxzKFxuICAgICAgICAgICAgeyB0eXBlOiBmaWVsZC50eXBlLCB0YXJnZXRDbGFzczogZmllbGQudGFyZ2V0Q2xhc3MgfSxcbiAgICAgICAgICAgIHsgdHlwZTogbG9jYWxGaWVsZC50eXBlLCB0YXJnZXRDbGFzczogbG9jYWxGaWVsZC50YXJnZXRDbGFzcyB9XG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBmaWVsZHNUb1JlY3JlYXRlLnB1c2goe1xuICAgICAgICAgICAgZmllbGROYW1lLFxuICAgICAgICAgICAgZnJvbTogeyB0eXBlOiBmaWVsZC50eXBlLCB0YXJnZXRDbGFzczogZmllbGQudGFyZ2V0Q2xhc3MgfSxcbiAgICAgICAgICAgIHRvOiB7IHR5cGU6IGxvY2FsRmllbGQudHlwZSwgdGFyZ2V0Q2xhc3M6IGxvY2FsRmllbGQudGFyZ2V0Q2xhc3MgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiBzb21ldGhpbmcgY2hhbmdlZCBvdGhlciB0aGFuIHRoZSB0eXBlIChsaWtlIHJlcXVpcmVkLCBkZWZhdWx0VmFsdWUpXG4gICAgICAgIGlmICghdGhpcy5wYXJhbXNBcmVFcXVhbHMoZmllbGQsIGxvY2FsRmllbGQpKSB7XG4gICAgICAgICAgZmllbGRzV2l0aENoYW5nZWRQYXJhbXMucHVzaChmaWVsZE5hbWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLnNjaGVtYU9wdGlvbnMuZGVsZXRlRXh0cmFGaWVsZHMgPT09IHRydWUpIHtcbiAgICAgIGZpZWxkc1RvRGVsZXRlLmZvckVhY2goZmllbGROYW1lID0+IHtcbiAgICAgICAgbmV3TG9jYWxTY2hlbWEuZGVsZXRlRmllbGQoZmllbGROYW1lKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBEZWxldGUgZmllbGRzIGZyb20gdGhlIHNjaGVtYSB0aGVuIGFwcGx5IGNoYW5nZXNcbiAgICAgIGF3YWl0IHRoaXMudXBkYXRlU2NoZW1hVG9EQihuZXdMb2NhbFNjaGVtYSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNjaGVtYU9wdGlvbnMuc3RyaWN0ID09PSB0cnVlICYmIGZpZWxkc1RvRGVsZXRlLmxlbmd0aCkge1xuICAgICAgbG9nZ2VyLndhcm4oXG4gICAgICAgIGBUaGUgZm9sbG93aW5nIGZpZWxkcyBleGlzdCBpbiB0aGUgZGF0YWJhc2UgZm9yIFwiJHtcbiAgICAgICAgICBsb2NhbFNjaGVtYS5jbGFzc05hbWVcbiAgICAgICAgfVwiLCBidXQgYXJlIG1pc3NpbmcgaW4gdGhlIHNjaGVtYSA6IFwiJHtmaWVsZHNUb0RlbGV0ZS5qb2luKCdcIiAsXCInKX1cImBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2NoZW1hT3B0aW9ucy5yZWNyZWF0ZU1vZGlmaWVkRmllbGRzID09PSB0cnVlKSB7XG4gICAgICBmaWVsZHNUb1JlY3JlYXRlLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBuZXdMb2NhbFNjaGVtYS5kZWxldGVGaWVsZChmaWVsZC5maWVsZE5hbWUpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIERlbGV0ZSBmaWVsZHMgZnJvbSB0aGUgc2NoZW1hIHRoZW4gYXBwbHkgY2hhbmdlc1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVTY2hlbWFUb0RCKG5ld0xvY2FsU2NoZW1hKTtcblxuICAgICAgZmllbGRzVG9SZWNyZWF0ZS5mb3JFYWNoKGZpZWxkSW5mbyA9PiB7XG4gICAgICAgIGlmIChsb2NhbFNjaGVtYS5maWVsZHMpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZCA9IGxvY2FsU2NoZW1hLmZpZWxkc1tmaWVsZEluZm8uZmllbGROYW1lXTtcbiAgICAgICAgICB0aGlzLmhhbmRsZUZpZWxkcyhuZXdMb2NhbFNjaGVtYSwgZmllbGRJbmZvLmZpZWxkTmFtZSwgZmllbGQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2NoZW1hT3B0aW9ucy5zdHJpY3QgPT09IHRydWUgJiYgZmllbGRzVG9SZWNyZWF0ZS5sZW5ndGgpIHtcbiAgICAgIGZpZWxkc1RvUmVjcmVhdGUuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGNvbnN0IGZyb20gPVxuICAgICAgICAgIGZpZWxkLmZyb20udHlwZSArIChmaWVsZC5mcm9tLnRhcmdldENsYXNzID8gYCAoJHtmaWVsZC5mcm9tLnRhcmdldENsYXNzfSlgIDogJycpO1xuICAgICAgICBjb25zdCB0byA9IGZpZWxkLnRvLnR5cGUgKyAoZmllbGQudG8udGFyZ2V0Q2xhc3MgPyBgICgke2ZpZWxkLnRvLnRhcmdldENsYXNzfSlgIDogJycpO1xuXG4gICAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICAgIGBUaGUgZmllbGQgXCIke2ZpZWxkLmZpZWxkTmFtZX1cIiB0eXBlIGRpZmZlciBiZXR3ZWVuIHRoZSBzY2hlbWEgYW5kIHRoZSBkYXRhYmFzZSBmb3IgXCIke2xvY2FsU2NoZW1hLmNsYXNzTmFtZX1cIjsgU2NoZW1hIGlzIGRlZmluZWQgYXMgXCIke3RvfVwiIGFuZCBjdXJyZW50IGRhdGFiYXNlIHR5cGUgaXMgXCIke2Zyb219XCJgXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmaWVsZHNXaXRoQ2hhbmdlZFBhcmFtcy5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XG4gICAgICBpZiAobG9jYWxTY2hlbWEuZmllbGRzKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gbG9jYWxTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV07XG4gICAgICAgIHRoaXMuaGFuZGxlRmllbGRzKG5ld0xvY2FsU2NoZW1hLCBmaWVsZE5hbWUsIGZpZWxkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEhhbmRsZSBJbmRleGVzXG4gICAgLy8gQ2hlY2sgYWRkaXRpb25cbiAgICBpZiAobG9jYWxTY2hlbWEuaW5kZXhlcykge1xuICAgICAgT2JqZWN0LmtleXMobG9jYWxTY2hlbWEuaW5kZXhlcykuZm9yRWFjaChpbmRleE5hbWUgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKCFjbG91ZFNjaGVtYS5pbmRleGVzIHx8ICFjbG91ZFNjaGVtYS5pbmRleGVzW2luZGV4TmFtZV0pICYmXG4gICAgICAgICAgIXRoaXMuaXNQcm90ZWN0ZWRJbmRleChsb2NhbFNjaGVtYS5jbGFzc05hbWUsIGluZGV4TmFtZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGxvY2FsU2NoZW1hLmluZGV4ZXMpIHtcbiAgICAgICAgICAgIG5ld0xvY2FsU2NoZW1hLmFkZEluZGV4KGluZGV4TmFtZSwgbG9jYWxTY2hlbWEuaW5kZXhlc1tpbmRleE5hbWVdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGluZGV4ZXNUb0FkZCA9IFtdO1xuXG4gICAgLy8gQ2hlY2sgZGVsZXRpb25cbiAgICBpZiAoY2xvdWRTY2hlbWEuaW5kZXhlcykge1xuICAgICAgT2JqZWN0LmtleXMoY2xvdWRTY2hlbWEuaW5kZXhlcykuZm9yRWFjaChpbmRleE5hbWUgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNQcm90ZWN0ZWRJbmRleChsb2NhbFNjaGVtYS5jbGFzc05hbWUsIGluZGV4TmFtZSkpIHtcbiAgICAgICAgICBpZiAoIWxvY2FsU2NoZW1hLmluZGV4ZXMgfHwgIWxvY2FsU2NoZW1hLmluZGV4ZXNbaW5kZXhOYW1lXSkge1xuICAgICAgICAgICAgbmV3TG9jYWxTY2hlbWEuZGVsZXRlSW5kZXgoaW5kZXhOYW1lKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgIXRoaXMucGFyYW1zQXJlRXF1YWxzKGxvY2FsU2NoZW1hLmluZGV4ZXNbaW5kZXhOYW1lXSwgY2xvdWRTY2hlbWEuaW5kZXhlc1tpbmRleE5hbWVdKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgbmV3TG9jYWxTY2hlbWEuZGVsZXRlSW5kZXgoaW5kZXhOYW1lKTtcbiAgICAgICAgICAgIGlmIChsb2NhbFNjaGVtYS5pbmRleGVzKSB7XG4gICAgICAgICAgICAgIGluZGV4ZXNUb0FkZC5wdXNoKHtcbiAgICAgICAgICAgICAgICBpbmRleE5hbWUsXG4gICAgICAgICAgICAgICAgaW5kZXg6IGxvY2FsU2NoZW1hLmluZGV4ZXNbaW5kZXhOYW1lXSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZUNMUChsb2NhbFNjaGVtYSwgbmV3TG9jYWxTY2hlbWEsIGNsb3VkU2NoZW1hKTtcbiAgICAvLyBBcHBseSBjaGFuZ2VzXG4gICAgYXdhaXQgdGhpcy51cGRhdGVTY2hlbWFUb0RCKG5ld0xvY2FsU2NoZW1hKTtcbiAgICAvLyBBcHBseSBuZXcvY2hhbmdlZCBpbmRleGVzXG4gICAgaWYgKGluZGV4ZXNUb0FkZC5sZW5ndGgpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYFVwZGF0aW5nIGluZGV4ZXMgZm9yIFwiJHtuZXdMb2NhbFNjaGVtYS5jbGFzc05hbWV9XCIgOiAgJHtpbmRleGVzVG9BZGQuam9pbignICwnKX1gXG4gICAgICApO1xuICAgICAgaW5kZXhlc1RvQWRkLmZvckVhY2gobyA9PiBuZXdMb2NhbFNjaGVtYS5hZGRJbmRleChvLmluZGV4TmFtZSwgby5pbmRleCkpO1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVTY2hlbWFUb0RCKG5ld0xvY2FsU2NoZW1hKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDTFAoXG4gICAgbG9jYWxTY2hlbWE6IE1pZ3JhdGlvbnMuSlNPTlNjaGVtYSxcbiAgICBuZXdMb2NhbFNjaGVtYTogUGFyc2UuU2NoZW1hLFxuICAgIGNsb3VkU2NoZW1hOiBQYXJzZS5TY2hlbWFcbiAgKSB7XG4gICAgaWYgKCFsb2NhbFNjaGVtYS5jbGFzc0xldmVsUGVybWlzc2lvbnMgJiYgIWNsb3VkU2NoZW1hKSB7XG4gICAgICBsb2dnZXIud2FybihgY2xhc3NMZXZlbFBlcm1pc3Npb25zIG5vdCBwcm92aWRlZCBmb3IgJHtsb2NhbFNjaGVtYS5jbGFzc05hbWV9LmApO1xuICAgIH1cbiAgICAvLyBVc2Ugc3ByZWFkIHRvIGF2b2lkIHJlYWQgb25seSBpc3N1ZSAoZW5jb3VudGVyZWQgYnkgTW91bW91bHMgdXNpbmcgZGlyZWN0QWNjZXNzKVxuICAgIGNvbnN0IGNscCA9ICh7IC4uLmxvY2FsU2NoZW1hLmNsYXNzTGV2ZWxQZXJtaXNzaW9ucyB9IHx8IHt9OiBQYXJzZS5DTFAuUGVybWlzc2lvbnNNYXApO1xuICAgIC8vIFRvIGF2b2lkIGluY29uc2lzdGVuY3kgd2UgbmVlZCB0byByZW1vdmUgYWxsIHJpZ2h0cyBvbiBhZGRGaWVsZFxuICAgIGNscC5hZGRGaWVsZCA9IHt9O1xuICAgIG5ld0xvY2FsU2NoZW1hLnNldENMUChjbHApO1xuICB9XG5cbiAgaXNQcm90ZWN0ZWRGaWVsZHMoY2xhc3NOYW1lOiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhZGVmYXVsdENvbHVtbnMuX0RlZmF1bHRbZmllbGROYW1lXSB8fFxuICAgICAgISEoZGVmYXVsdENvbHVtbnNbY2xhc3NOYW1lXSAmJiBkZWZhdWx0Q29sdW1uc1tjbGFzc05hbWVdW2ZpZWxkTmFtZV0pXG4gICAgKTtcbiAgfVxuXG4gIGlzUHJvdGVjdGVkSW5kZXgoY2xhc3NOYW1lOiBzdHJpbmcsIGluZGV4TmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5kZXhlcyA9IFsnX2lkXyddO1xuICAgIHN3aXRjaCAoY2xhc3NOYW1lKSB7XG4gICAgICBjYXNlICdfVXNlcic6XG4gICAgICAgIGluZGV4ZXMucHVzaChcbiAgICAgICAgICAnY2FzZV9pbnNlbnNpdGl2ZV91c2VybmFtZScsXG4gICAgICAgICAgJ2Nhc2VfaW5zZW5zaXRpdmVfZW1haWwnLFxuICAgICAgICAgICd1c2VybmFtZV8xJyxcbiAgICAgICAgICAnZW1haWxfMSdcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdfUm9sZSc6XG4gICAgICAgIGluZGV4ZXMucHVzaCgnbmFtZV8xJyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdfSWRlbXBvdGVuY3knOlxuICAgICAgICBpbmRleGVzLnB1c2goJ3JlcUlkXzEnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZGV4ZXMuaW5kZXhPZihpbmRleE5hbWUpICE9PSAtMTtcbiAgfVxuXG4gIHBhcmFtc0FyZUVxdWFsczxUOiB7IFtrZXk6IHN0cmluZ106IGFueSB9PihvYmpBOiBULCBvYmpCOiBUKSB7XG4gICAgY29uc3Qga2V5c0E6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMob2JqQSk7XG4gICAgY29uc3Qga2V5c0I6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMob2JqQik7XG5cbiAgICAvLyBDaGVjayBrZXkgbmFtZVxuICAgIGlmIChrZXlzQS5sZW5ndGggIT09IGtleXNCLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBrZXlzQS5ldmVyeShrID0+IG9iakFba10gPT09IG9iakJba10pO1xuICB9XG5cbiAgaGFuZGxlRmllbGRzKG5ld0xvY2FsU2NoZW1hOiBQYXJzZS5TY2hlbWEsIGZpZWxkTmFtZTogc3RyaW5nLCBmaWVsZDogTWlncmF0aW9ucy5GaWVsZFR5cGUpIHtcbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ1JlbGF0aW9uJykge1xuICAgICAgbmV3TG9jYWxTY2hlbWEuYWRkUmVsYXRpb24oZmllbGROYW1lLCBmaWVsZC50YXJnZXRDbGFzcyk7XG4gICAgfSBlbHNlIGlmIChmaWVsZC50eXBlID09PSAnUG9pbnRlcicpIHtcbiAgICAgIG5ld0xvY2FsU2NoZW1hLmFkZFBvaW50ZXIoZmllbGROYW1lLCBmaWVsZC50YXJnZXRDbGFzcywgZmllbGQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdMb2NhbFNjaGVtYS5hZGRGaWVsZChmaWVsZE5hbWUsIGZpZWxkLnR5cGUsIGZpZWxkKTtcbiAgICB9XG4gIH1cbn1c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
|
|
372
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIl9Db25maWciLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NjaGVtYXNSb3V0ZXIiLCJfU2NoZW1hQ29udHJvbGxlciIsIl9PcHRpb25zIiwiTWlncmF0aW9ucyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0F1dGgiLCJfcmVzdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm9iaiIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwia2V5IiwidmFsdWUiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJQYXJzZSIsIkRlZmluZWRTY2hlbWFzIiwiY29uc3RydWN0b3IiLCJzY2hlbWFPcHRpb25zIiwiY29uZmlnIiwibG9jYWxTY2hlbWFzIiwiQ29uZmlnIiwiYXBwSWQiLCJkZWZpbml0aW9ucyIsIkFycmF5IiwiaXNBcnJheSIsInJldHJpZXMiLCJtYXhSZXRyaWVzIiwic2F2ZVNjaGVtYVRvREIiLCJzY2hlbWEiLCJwYXlsb2FkIiwiY2xhc3NOYW1lIiwiZmllbGRzIiwiX2ZpZWxkcyIsImluZGV4ZXMiLCJfaW5kZXhlcyIsImNsYXNzTGV2ZWxQZXJtaXNzaW9ucyIsIl9jbHAiLCJpbnRlcm5hbENyZWF0ZVNjaGVtYSIsInJlc2V0U2NoZW1hT3BzIiwidXBkYXRlU2NoZW1hVG9EQiIsImludGVybmFsVXBkYXRlU2NoZW1hIiwiZXhlY3V0ZSIsImxvZ2dlciIsImluZm8iLCJiZWZvcmVNaWdyYXRpb24iLCJQcm9taXNlIiwicmVzb2x2ZSIsImV4ZWN1dGVNaWdyYXRpb25zIiwiYWZ0ZXJNaWdyYXRpb24iLCJlcnJvciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImV4aXQiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImNyZWF0ZURlbGV0ZVNlc3Npb24iLCJzY2hlbWFDb250cm9sbGVyIiwiZGF0YWJhc2UiLCJsb2FkU2NoZW1hIiwiYWxsQ2xvdWRTY2hlbWFzIiwiZ2V0QWxsQ2xhc3NlcyIsImNsZWFyVGltZW91dCIsImFsbCIsIm1hcCIsImxvY2FsU2NoZW1hIiwic2F2ZU9yVXBkYXRlIiwiY2hlY2tGb3JNaXNzaW5nU2NoZW1hcyIsImVuZm9yY2VDTFBGb3JOb25Qcm92aWRlZENsYXNzIiwid2FpdCIsInN0cmljdCIsImNsb3VkU2NoZW1hcyIsInMiLCJtaXNzaW5nU2NoZW1hcyIsImMiLCJpbmNsdWRlcyIsInN5c3RlbUNsYXNzZXMiLCJTZXQiLCJzaXplIiwiam9pbiIsIndhcm4iLCJ0aW1lIiwibm9uUHJvdmlkZWRDbGFzc2VzIiwiY2xvdWRTY2hlbWEiLCJzb21lIiwicGFyc2VTY2hlbWEiLCJTY2hlbWEiLCJoYW5kbGVDTFAiLCJyZXNwb25zZSIsInJlc3QiLCJjcmVhdGUiLCJBdXRoIiwibWFzdGVyIiwiZGVsIiwib2JqZWN0SWQiLCJmaW5kIiwic2MiLCJ1cGRhdGVTY2hlbWEiLCJzYXZlU2NoZW1hIiwibmV3TG9jYWxTY2hlbWEiLCJmaWVsZE5hbWUiLCJpc1Byb3RlY3RlZEZpZWxkcyIsImZpZWxkIiwiaGFuZGxlRmllbGRzIiwiaW5kZXhOYW1lIiwiaXNQcm90ZWN0ZWRJbmRleCIsImFkZEluZGV4IiwiZmllbGRzVG9EZWxldGUiLCJmaWVsZHNUb1JlY3JlYXRlIiwiZmllbGRzV2l0aENoYW5nZWRQYXJhbXMiLCJsb2NhbEZpZWxkIiwicGFyYW1zQXJlRXF1YWxzIiwidHlwZSIsInRhcmdldENsYXNzIiwiZnJvbSIsInRvIiwiZGVsZXRlRXh0cmFGaWVsZHMiLCJkZWxldGVGaWVsZCIsInJlY3JlYXRlTW9kaWZpZWRGaWVsZHMiLCJmaWVsZEluZm8iLCJpbmRleGVzVG9BZGQiLCJkZWxldGVJbmRleCIsImluZGV4IiwiZGVidWciLCJjbHAiLCJhZGRGaWVsZCIsInNldENMUCIsImRlZmF1bHRDb2x1bW5zIiwiX0RlZmF1bHQiLCJpbmRleE9mIiwib2JqQSIsIm9iakIiLCJrZXlzQSIsImtleXNCIiwiZXZlcnkiLCJrIiwiYWRkUmVsYXRpb24iLCJhZGRQb2ludGVyIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TY2hlbWFNaWdyYXRpb25zL0RlZmluZWRTY2hlbWFzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG4vLyBAZmxvdy1kaXNhYmxlLW5leHQgQ2Fubm90IHJlc29sdmUgbW9kdWxlIGBwYXJzZS9ub2RlYC5cbmNvbnN0IFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCBDb25maWcgZnJvbSAnLi4vQ29uZmlnJztcbmltcG9ydCB7IGludGVybmFsQ3JlYXRlU2NoZW1hLCBpbnRlcm5hbFVwZGF0ZVNjaGVtYSB9IGZyb20gJy4uL1JvdXRlcnMvU2NoZW1hc1JvdXRlcic7XG5pbXBvcnQgeyBkZWZhdWx0Q29sdW1ucywgc3lzdGVtQ2xhc3NlcyB9IGZyb20gJy4uL0NvbnRyb2xsZXJzL1NjaGVtYUNvbnRyb2xsZXInO1xuaW1wb3J0IHsgUGFyc2VTZXJ2ZXJPcHRpb25zIH0gZnJvbSAnLi4vT3B0aW9ucyc7XG5pbXBvcnQgKiBhcyBNaWdyYXRpb25zIGZyb20gJy4vTWlncmF0aW9ucyc7XG5pbXBvcnQgQXV0aCBmcm9tICcuLi9BdXRoJztcbmltcG9ydCByZXN0IGZyb20gJy4uL3Jlc3QnO1xuXG5leHBvcnQgY2xhc3MgRGVmaW5lZFNjaGVtYXMge1xuICBjb25maWc6IFBhcnNlU2VydmVyT3B0aW9ucztcbiAgc2NoZW1hT3B0aW9uczogTWlncmF0aW9ucy5TY2hlbWFPcHRpb25zO1xuICBsb2NhbFNjaGVtYXM6IE1pZ3JhdGlvbnMuSlNPTlNjaGVtYVtdO1xuICByZXRyaWVzOiBudW1iZXI7XG4gIG1heFJldHJpZXM6IG51bWJlcjtcbiAgYWxsQ2xvdWRTY2hlbWFzOiBQYXJzZS5TY2hlbWFbXTtcblxuICBjb25zdHJ1Y3RvcihzY2hlbWFPcHRpb25zOiBNaWdyYXRpb25zLlNjaGVtYU9wdGlvbnMsIGNvbmZpZzogUGFyc2VTZXJ2ZXJPcHRpb25zKSB7XG4gICAgdGhpcy5sb2NhbFNjaGVtYXMgPSBbXTtcbiAgICB0aGlzLmNvbmZpZyA9IENvbmZpZy5nZXQoY29uZmlnLmFwcElkKTtcbiAgICB0aGlzLnNjaGVtYU9wdGlvbnMgPSBzY2hlbWFPcHRpb25zO1xuICAgIGlmIChzY2hlbWFPcHRpb25zICYmIHNjaGVtYU9wdGlvbnMuZGVmaW5pdGlvbnMpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShzY2hlbWFPcHRpb25zLmRlZmluaXRpb25zKSkge1xuICAgICAgICB0aHJvdyBgXCJzY2hlbWEuZGVmaW5pdGlvbnNcIiBtdXN0IGJlIGFuIGFycmF5IG9mIHNjaGVtYXNgO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxvY2FsU2NoZW1hcyA9IHNjaGVtYU9wdGlvbnMuZGVmaW5pdGlvbnM7XG4gICAgfVxuXG4gICAgdGhpcy5yZXRyaWVzID0gMDtcbiAgICB0aGlzLm1heFJldHJpZXMgPSAzO1xuICB9XG5cbiAgYXN5bmMgc2F2ZVNjaGVtYVRvREIoc2NoZW1hOiBQYXJzZS5TY2hlbWEpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgY2xhc3NOYW1lOiBzY2hlbWEuY2xhc3NOYW1lLFxuICAgICAgZmllbGRzOiBzY2hlbWEuX2ZpZWxkcyxcbiAgICAgIGluZGV4ZXM6IHNjaGVtYS5faW5kZXhlcyxcbiAgICAgIGNsYXNzTGV2ZWxQZXJtaXNzaW9uczogc2NoZW1hLl9jbHAsXG4gICAgfTtcbiAgICBhd2FpdCBpbnRlcm5hbENyZWF0ZVNjaGVtYShzY2hlbWEuY2xhc3NOYW1lLCBwYXlsb2FkLCB0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5yZXNldFNjaGVtYU9wcyhzY2hlbWEpO1xuICB9XG5cbiAgcmVzZXRTY2hlbWFPcHMoc2NoZW1hOiBQYXJzZS5TY2hlbWEpIHtcbiAgICAvLyBSZXNldCBvcHMgbGlrZSBTREtcbiAgICBzY2hlbWEuX2ZpZWxkcyA9IHt9O1xuICAgIHNjaGVtYS5faW5kZXhlcyA9IHt9O1xuICB9XG5cbiAgLy8gU2ltdWxhdGUgdXBkYXRlIGxpa2UgdGhlIFNES1xuICAvLyBXZSBjYW5ub3QgdXNlIFNESyBzaW5jZSByb3V0ZXMgYXJlIGRpc2FibGVkXG4gIGFzeW5jIHVwZGF0ZVNjaGVtYVRvREIoc2NoZW1hOiBQYXJzZS5TY2hlbWEpIHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgY2xhc3NOYW1lOiBzY2hlbWEuY2xhc3NOYW1lLFxuICAgICAgZmllbGRzOiBzY2hlbWEuX2ZpZWxkcyxcbiAgICAgIGluZGV4ZXM6IHNjaGVtYS5faW5kZXhlcyxcbiAgICAgIGNsYXNzTGV2ZWxQZXJtaXNzaW9uczogc2NoZW1hLl9jbHAsXG4gICAgfTtcbiAgICBhd2FpdCBpbnRlcm5hbFVwZGF0ZVNjaGVtYShzY2hlbWEuY2xhc3NOYW1lLCBwYXlsb2FkLCB0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5yZXNldFNjaGVtYU9wcyhzY2hlbWEpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZSgpIHtcbiAgICB0cnkge1xuICAgICAgbG9nZ2VyLmluZm8oJ1J1bm5pbmcgTWlncmF0aW9ucycpO1xuICAgICAgaWYgKHRoaXMuc2NoZW1hT3B0aW9ucyAmJiB0aGlzLnNjaGVtYU9wdGlvbnMuYmVmb3JlTWlncmF0aW9uKSB7XG4gICAgICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZSh0aGlzLnNjaGVtYU9wdGlvbnMuYmVmb3JlTWlncmF0aW9uKCkpO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLmV4ZWN1dGVNaWdyYXRpb25zKCk7XG5cbiAgICAgIGlmICh0aGlzLnNjaGVtYU9wdGlvbnMgJiYgdGhpcy5zY2hlbWFPcHRpb25zLmFmdGVyTWlncmF0aW9uKSB7XG4gICAgICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZSh0aGlzLnNjaGVtYU9wdGlvbnMuYWZ0ZXJNaWdyYXRpb24oKSk7XG4gICAgICB9XG5cbiAgICAgIGxvZ2dlci5pbmZvKCdSdW5uaW5nIE1pZ3JhdGlvbnMgQ29tcGxldGVkJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gcnVuIG1pZ3JhdGlvbnM6ICR7ZX1gKTtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZU1pZ3JhdGlvbnMoKSB7XG4gICAgbGV0IHRpbWVvdXQgPSBudWxsO1xuICAgIHRyeSB7XG4gICAgICAvLyBTZXQgdXAgYSB0aW1lIG91dCBpbiBwcm9kdWN0aW9uXG4gICAgICAvLyBpZiB3ZSBmYWlsIHRvIGdldCBzY2hlbWFcbiAgICAgIC8vIHBtMiBvciBLOHMgYW5kIG1hbnkgb3RoZXIgcHJvY2VzcyBtYW5hZ2VycyB3aWxsIHRyeSB0byByZXN0YXJ0IHRoZSBwcm9jZXNzXG4gICAgICAvLyBhZnRlciB0aGUgZXhpdFxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcignVGltZW91dCBvY2N1cnJlZCBkdXJpbmcgZXhlY3V0aW9uIG9mIG1pZ3JhdGlvbnMuIEV4aXRpbmcuLi4nKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgIH0sIDIwMDAwKTtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVEZWxldGVTZXNzaW9uKCk7XG4gICAgICAvLyBAZmxvdy1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgY29uc3Qgc2NoZW1hQ29udHJvbGxlciA9IGF3YWl0IHRoaXMuY29uZmlnLmRhdGFiYXNlLmxvYWRTY2hlbWEoKTtcbiAgICAgIHRoaXMuYWxsQ2xvdWRTY2hlbWFzID0gYXdhaXQgc2NoZW1hQ29udHJvbGxlci5nZXRBbGxDbGFzc2VzKCk7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmxvY2FsU2NoZW1hcy5tYXAoYXN5bmMgbG9jYWxTY2hlbWEgPT4gdGhpcy5zYXZlT3JVcGRhdGUobG9jYWxTY2hlbWEpKSk7XG5cbiAgICAgIHRoaXMuY2hlY2tGb3JNaXNzaW5nU2NoZW1hcygpO1xuICAgICAgYXdhaXQgdGhpcy5lbmZvcmNlQ0xQRm9yTm9uUHJvdmlkZWRDbGFzcygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICh0aW1lb3V0KSBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICBpZiAodGhpcy5yZXRyaWVzIDwgdGhpcy5tYXhSZXRyaWVzKSB7XG4gICAgICAgIHRoaXMucmV0cmllcysrO1xuICAgICAgICAvLyBmaXJzdCByZXRyeSAxc2VjLCAyc2VjLCAzc2VjIHRvdGFsIDZzZWMgcmV0cnkgc2VxdWVuY2VcbiAgICAgICAgLy8gcmV0cnkgd2lsbCBvbmx5IGhhcHBlbiBpbiBjYXNlIG9mIGRlcGxveWluZyBtdWx0aSBwYXJzZSBzZXJ2ZXIgaW5zdGFuY2VcbiAgICAgICAgLy8gYXQgdGhlIHNhbWUgdGltZS4gTW9kZXJuIHN5c3RlbXMgbGlrZSBrOCBhdm9pZCB0aGlzIGJ5IGRvaW5nIHJvbGxpbmcgdXBkYXRlc1xuICAgICAgICBhd2FpdCB0aGlzLndhaXQoMTAwMCAqIHRoaXMucmV0cmllcyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZXhlY3V0ZU1pZ3JhdGlvbnMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHJ1biBtaWdyYXRpb25zOiAke2V9YCk7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2hlY2tGb3JNaXNzaW5nU2NoZW1hcygpIHtcbiAgICBpZiAodGhpcy5zY2hlbWFPcHRpb25zLnN0cmljdCAhPT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb3VkU2NoZW1hcyA9IHRoaXMuYWxsQ2xvdWRTY2hlbWFzLm1hcChzID0+IHMuY2xhc3NOYW1lKTtcbiAgICBjb25zdCBsb2NhbFNjaGVtYXMgPSB0aGlzLmxvY2FsU2NoZW1hcy5tYXAocyA9PiBzLmNsYXNzTmFtZSk7XG4gICAgY29uc3QgbWlzc2luZ1NjaGVtYXMgPSBjbG91ZFNjaGVtYXMuZmlsdGVyKFxuICAgICAgYyA9PiAhbG9jYWxTY2hlbWFzLmluY2x1ZGVzKGMpICYmICFzeXN0ZW1DbGFzc2VzLmluY2x1ZGVzKGMpXG4gICAgKTtcblxuICAgIGlmIChuZXcgU2V0KGxvY2FsU2NoZW1hcykuc2l6ZSAhPT0gbG9jYWxTY2hlbWFzLmxlbmd0aCkge1xuICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICBgVGhlIGxpc3Qgb2Ygc2NoZW1hcyBwcm92aWRlZCBjb250YWlucyBkdXBsaWNhdGVkIFwiY2xhc3NOYW1lXCIgIFwiJHtsb2NhbFNjaGVtYXMuam9pbihcbiAgICAgICAgICAnXCIsXCInXG4gICAgICAgICl9XCJgXG4gICAgICApO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNjaGVtYU9wdGlvbnMuc3RyaWN0ICYmIG1pc3NpbmdTY2hlbWFzLmxlbmd0aCkge1xuICAgICAgbG9nZ2VyLndhcm4oXG4gICAgICAgIGBUaGUgZm9sbG93aW5nIHNjaGVtYXMgYXJlIGN1cnJlbnRseSBwcmVzZW50IGluIHRoZSBkYXRhYmFzZSwgYnV0IG5vdCBleHBsaWNpdGx5IGRlZmluZWQgaW4gYSBzY2hlbWE6IFwiJHttaXNzaW5nU2NoZW1hcy5qb2luKFxuICAgICAgICAgICdcIiwgXCInXG4gICAgICAgICl9XCJgXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlcXVpcmVkIGZvciB0ZXN0aW5nIHB1cnBvc2VcbiAgd2FpdCh0aW1lOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWUpKTtcbiAgfVxuXG4gIGFzeW5jIGVuZm9yY2VDTFBGb3JOb25Qcm92aWRlZENsYXNzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG5vblByb3ZpZGVkQ2xhc3NlcyA9IHRoaXMuYWxsQ2xvdWRTY2hlbWFzLmZpbHRlcihcbiAgICAgIGNsb3VkU2NoZW1hID0+XG4gICAgICAgICF0aGlzLmxvY2FsU2NoZW1hcy5zb21lKGxvY2FsU2NoZW1hID0+IGxvY2FsU2NoZW1hLmNsYXNzTmFtZSA9PT0gY2xvdWRTY2hlbWEuY2xhc3NOYW1lKVxuICAgICk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBub25Qcm92aWRlZENsYXNzZXMubWFwKGFzeW5jIHNjaGVtYSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlU2NoZW1hID0gbmV3IFBhcnNlLlNjaGVtYShzY2hlbWEuY2xhc3NOYW1lKTtcbiAgICAgICAgdGhpcy5oYW5kbGVDTFAoc2NoZW1hLCBwYXJzZVNjaGVtYSk7XG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlU2NoZW1hVG9EQihwYXJzZVNjaGVtYSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvLyBDcmVhdGUgYSBmYWtlIHNlc3Npb24gc2luY2UgUGFyc2UgZG8gbm90IGNyZWF0ZSB0aGUgX1Nlc3Npb24gdW50aWxcbiAgLy8gYSBzZXNzaW9uIGlzIGNyZWF0ZWRcbiAgYXN5bmMgY3JlYXRlRGVsZXRlU2Vzc2lvbigpIHtcbiAgICBjb25zdCB7IHJlc3BvbnNlIH0gPSBhd2FpdCByZXN0LmNyZWF0ZSh0aGlzLmNvbmZpZywgQXV0aC5tYXN0ZXIodGhpcy5jb25maWcpLCAnX1Nlc3Npb24nLCB7fSk7XG4gICAgYXdhaXQgcmVzdC5kZWwodGhpcy5jb25maWcsIEF1dGgubWFzdGVyKHRoaXMuY29uZmlnKSwgJ19TZXNzaW9uJywgcmVzcG9uc2Uub2JqZWN0SWQpO1xuICB9XG5cbiAgYXN5bmMgc2F2ZU9yVXBkYXRlKGxvY2FsU2NoZW1hOiBNaWdyYXRpb25zLkpTT05TY2hlbWEpIHtcbiAgICBjb25zdCBjbG91ZFNjaGVtYSA9IHRoaXMuYWxsQ2xvdWRTY2hlbWFzLmZpbmQoc2MgPT4gc2MuY2xhc3NOYW1lID09PSBsb2NhbFNjaGVtYS5jbGFzc05hbWUpO1xuICAgIGlmIChjbG91ZFNjaGVtYSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVTY2hlbWEobG9jYWxTY2hlbWEsIGNsb3VkU2NoZW1hKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgYEVycm9yIGR1cmluZyB1cGRhdGUgb2Ygc2NoZW1hIGZvciB0eXBlICR7Y2xvdWRTY2hlbWEuY2xhc3NOYW1lfTogJHtlfWA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZVNjaGVtYShsb2NhbFNjaGVtYSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IGBFcnJvciB3aGlsZSBzYXZpbmcgU2NoZW1hIGZvciB0eXBlICR7bG9jYWxTY2hlbWEuY2xhc3NOYW1lfTogJHtlfWA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2F2ZVNjaGVtYShsb2NhbFNjaGVtYTogTWlncmF0aW9ucy5KU09OU2NoZW1hKSB7XG4gICAgY29uc3QgbmV3TG9jYWxTY2hlbWEgPSBuZXcgUGFyc2UuU2NoZW1hKGxvY2FsU2NoZW1hLmNsYXNzTmFtZSk7XG4gICAgaWYgKGxvY2FsU2NoZW1hLmZpZWxkcykge1xuICAgICAgLy8gSGFuZGxlIGZpZWxkc1xuICAgICAgT2JqZWN0LmtleXMobG9jYWxTY2hlbWEuZmllbGRzKVxuICAgICAgICAuZmlsdGVyKGZpZWxkTmFtZSA9PiAhdGhpcy5pc1Byb3RlY3RlZEZpZWxkcyhsb2NhbFNjaGVtYS5jbGFzc05hbWUsIGZpZWxkTmFtZSkpXG4gICAgICAgIC5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XG4gICAgICAgICAgaWYgKGxvY2FsU2NoZW1hLmZpZWxkcykge1xuICAgICAgICAgICAgY29uc3QgZmllbGQgPSBsb2NhbFNjaGVtYS5maWVsZHNbZmllbGROYW1lXTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRmllbGRzKG5ld0xvY2FsU2NoZW1hLCBmaWVsZE5hbWUsIGZpZWxkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBIYW5kbGUgaW5kZXhlc1xuICAgIGlmIChsb2NhbFNjaGVtYS5pbmRleGVzKSB7XG4gICAgICBPYmplY3Qua2V5cyhsb2NhbFNjaGVtYS5pbmRleGVzKS5mb3JFYWNoKGluZGV4TmFtZSA9PiB7XG4gICAgICAgIGlmIChsb2NhbFNjaGVtYS5pbmRleGVzICYmICF0aGlzLmlzUHJvdGVjdGVkSW5kZXgobG9jYWxTY2hlbWEuY2xhc3NOYW1lLCBpbmRleE5hbWUpKSB7XG4gICAgICAgICAgbmV3TG9jYWxTY2hlbWEuYWRkSW5kZXgoaW5kZXhOYW1lLCBsb2NhbFNjaGVtYS5pbmRleGVzW2luZGV4TmFtZV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZUNMUChsb2NhbFNjaGVtYSwgbmV3TG9jYWxTY2hlbWEpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc2F2ZVNjaGVtYVRvREIobmV3TG9jYWxTY2hlbWEpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlU2NoZW1hKGxvY2FsU2NoZW1hOiBNaWdyYXRpb25zLkpTT05TY2hlbWEsIGNsb3VkU2NoZW1hOiBQYXJzZS5TY2hlbWEpIHtcbiAgICBjb25zdCBuZXdMb2NhbFNjaGVtYSA9IG5ldyBQYXJzZS5TY2hlbWEobG9jYWxTY2hlbWEuY2xhc3NOYW1lKTtcblxuICAgIC8vIEhhbmRsZSBmaWVsZHNcbiAgICAvLyBDaGVjayBhZGRpdGlvblxuICAgIGlmIChsb2NhbFNjaGVtYS5maWVsZHMpIHtcbiAgICAgIE9iamVjdC5rZXlzKGxvY2FsU2NoZW1hLmZpZWxkcylcbiAgICAgICAgLmZpbHRlcihmaWVsZE5hbWUgPT4gIXRoaXMuaXNQcm90ZWN0ZWRGaWVsZHMobG9jYWxTY2hlbWEuY2xhc3NOYW1lLCBmaWVsZE5hbWUpKVxuICAgICAgICAuZm9yRWFjaChmaWVsZE5hbWUgPT4ge1xuICAgICAgICAgIC8vIEBmbG93LWRpc2FibGUtbmV4dFxuICAgICAgICAgIGNvbnN0IGZpZWxkID0gbG9jYWxTY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV07XG4gICAgICAgICAgaWYgKCFjbG91ZFNjaGVtYS5maWVsZHNbZmllbGROYW1lXSkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVGaWVsZHMobmV3TG9jYWxTY2hlbWEsIGZpZWxkTmFtZSwgZmllbGQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmllbGRzVG9EZWxldGU6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3QgZmllbGRzVG9SZWNyZWF0ZToge1xuICAgICAgZmllbGROYW1lOiBzdHJpbmcsXG4gICAgICBmcm9tOiB7IHR5cGU6IHN0cmluZywgdGFyZ2V0Q2xhc3M/OiBzdHJpbmcgfSxcbiAgICAgIHRvOiB7IHR5cGU6IHN0cmluZywgdGFyZ2V0Q2xhc3M/OiBzdHJpbmcgfSxcbiAgICB9W10gPSBbXTtcbiAgICBjb25zdCBmaWVsZHNXaXRoQ2hhbmdlZFBhcmFtczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIENoZWNrIGRlbGV0aW9uXG4gICAgT2JqZWN0LmtleXMoY2xvdWRTY2hlbWEuZmllbGRzKVxuICAgICAgLmZpbHRlcihmaWVsZE5hbWUgPT4gIXRoaXMuaXNQcm90ZWN0ZWRGaWVsZHMobG9jYWxTY2hlbWEuY2xhc3NOYW1lLCBmaWVsZE5hbWUpKVxuICAgICAgLmZvckVhY2goZmllbGROYW1lID0+IHtcbiAgICAgICAgY29uc3QgZmllbGQgPSBjbG91ZFNjaGVtYS5maWVsZHNbZmllbGROYW1lXTtcbiAgICAgICAgaWYgKCFsb2NhbFNjaGVtYS5maWVsZHMgfHwgIWxvY2FsU2NoZW1hLmZpZWxkc1tmaWVsZE5hbWVdKSB7XG4gICAgICAgICAgZmllbGRzVG9EZWxldGUucHVzaChmaWVsZE5hbWUpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSBsb2NhbFNjaGVtYS5maWVsZHNbZmllbGROYW1lXTtcbiAgICAgICAgLy8gQ2hlY2sgaWYgZmllbGQgaGFzIGEgY2hhbmdlZCB0eXBlXG4gICAgICAgIGlmIChcbiAgICAgICAgICAhdGhpcy5wYXJhbXNBcmVFcXVhbHMoXG4gICAgICAgICAgICB7IHR5cGU6IGZpZWxkLnR5cGUsIHRhcmdldENsYXNzOiBmaWVsZC50YXJnZXRDbGFzcyB9LFxuICAgICAgICAgICAgeyB0eXBlOiBsb2NhbEZpZWxkLnR5cGUsIHRhcmdldENsYXNzOiBsb2NhbEZpZWxkLnRhcmdldENsYXNzIH1cbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIGZpZWxkc1RvUmVjcmVhdGUucHVzaCh7XG4gICAgICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgICAgICBmcm9tOiB7IHR5cGU6IGZpZWxkLnR5cGUsIHRhcmdldENsYXNzOiBmaWVsZC50YXJnZXRDbGFzcyB9LFxuICAgICAgICAgICAgdG86IHsgdHlwZTogbG9jYWxGaWVsZC50eXBlLCB0YXJnZXRDbGFzczogbG9jYWxGaWVsZC50YXJnZXRDbGFzcyB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIHNvbWV0aGluZyBjaGFuZ2VkIG90aGVyIHRoYW4gdGhlIHR5cGUgKGxpa2UgcmVxdWlyZWQsIGRlZmF1bHRWYWx1ZSlcbiAgICAgICAgaWYgKCF0aGlzLnBhcmFtc0FyZUVxdWFscyhmaWVsZCwgbG9jYWxGaWVsZCkpIHtcbiAgICAgICAgICBmaWVsZHNXaXRoQ2hhbmdlZFBhcmFtcy5wdXNoKGZpZWxkTmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuc2NoZW1hT3B0aW9ucy5kZWxldGVFeHRyYUZpZWxkcyA9PT0gdHJ1ZSkge1xuICAgICAgZmllbGRzVG9EZWxldGUuZm9yRWFjaChmaWVsZE5hbWUgPT4ge1xuICAgICAgICBuZXdMb2NhbFNjaGVtYS5kZWxldGVGaWVsZChmaWVsZE5hbWUpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIERlbGV0ZSBmaWVsZHMgZnJvbSB0aGUgc2NoZW1hIHRoZW4gYXBwbHkgY2hhbmdlc1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVTY2hlbWFUb0RCKG5ld0xvY2FsU2NoZW1hKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2NoZW1hT3B0aW9ucy5zdHJpY3QgPT09IHRydWUgJiYgZmllbGRzVG9EZWxldGUubGVuZ3RoKSB7XG4gICAgICBsb2dnZXIud2FybihcbiAgICAgICAgYFRoZSBmb2xsb3dpbmcgZmllbGRzIGV4aXN0IGluIHRoZSBkYXRhYmFzZSBmb3IgXCIke1xuICAgICAgICAgIGxvY2FsU2NoZW1hLmNsYXNzTmFtZVxuICAgICAgICB9XCIsIGJ1dCBhcmUgbWlzc2luZyBpbiB0aGUgc2NoZW1hIDogXCIke2ZpZWxkc1RvRGVsZXRlLmpvaW4oJ1wiICxcIicpfVwiYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zY2hlbWFPcHRpb25zLnJlY3JlYXRlTW9kaWZpZWRGaWVsZHMgPT09IHRydWUpIHtcbiAgICAgIGZpZWxkc1RvUmVjcmVhdGUuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIG5ld0xvY2FsU2NoZW1hLmRlbGV0ZUZpZWxkKGZpZWxkLmZpZWxkTmFtZSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gRGVsZXRlIGZpZWxkcyBmcm9tIHRoZSBzY2hlbWEgdGhlbiBhcHBseSBjaGFuZ2VzXG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVNjaGVtYVRvREIobmV3TG9jYWxTY2hlbWEpO1xuXG4gICAgICBmaWVsZHNUb1JlY3JlYXRlLmZvckVhY2goZmllbGRJbmZvID0+IHtcbiAgICAgICAgaWYgKGxvY2FsU2NoZW1hLmZpZWxkcykge1xuICAgICAgICAgIGNvbnN0IGZpZWxkID0gbG9jYWxTY2hlbWEuZmllbGRzW2ZpZWxkSW5mby5maWVsZE5hbWVdO1xuICAgICAgICAgIHRoaXMuaGFuZGxlRmllbGRzKG5ld0xvY2FsU2NoZW1hLCBmaWVsZEluZm8uZmllbGROYW1lLCBmaWVsZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zY2hlbWFPcHRpb25zLnN0cmljdCA9PT0gdHJ1ZSAmJiBmaWVsZHNUb1JlY3JlYXRlLmxlbmd0aCkge1xuICAgICAgZmllbGRzVG9SZWNyZWF0ZS5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgY29uc3QgZnJvbSA9XG4gICAgICAgICAgZmllbGQuZnJvbS50eXBlICsgKGZpZWxkLmZyb20udGFyZ2V0Q2xhc3MgPyBgICgke2ZpZWxkLmZyb20udGFyZ2V0Q2xhc3N9KWAgOiAnJyk7XG4gICAgICAgIGNvbnN0IHRvID0gZmllbGQudG8udHlwZSArIChmaWVsZC50by50YXJnZXRDbGFzcyA/IGAgKCR7ZmllbGQudG8udGFyZ2V0Q2xhc3N9KWAgOiAnJyk7XG5cbiAgICAgICAgbG9nZ2VyLndhcm4oXG4gICAgICAgICAgYFRoZSBmaWVsZCBcIiR7ZmllbGQuZmllbGROYW1lfVwiIHR5cGUgZGlmZmVyIGJldHdlZW4gdGhlIHNjaGVtYSBhbmQgdGhlIGRhdGFiYXNlIGZvciBcIiR7bG9jYWxTY2hlbWEuY2xhc3NOYW1lfVwiOyBTY2hlbWEgaXMgZGVmaW5lZCBhcyBcIiR7dG99XCIgYW5kIGN1cnJlbnQgZGF0YWJhc2UgdHlwZSBpcyBcIiR7ZnJvbX1cImBcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZpZWxkc1dpdGhDaGFuZ2VkUGFyYW1zLmZvckVhY2goZmllbGROYW1lID0+IHtcbiAgICAgIGlmIChsb2NhbFNjaGVtYS5maWVsZHMpIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSBsb2NhbFNjaGVtYS5maWVsZHNbZmllbGROYW1lXTtcbiAgICAgICAgdGhpcy5oYW5kbGVGaWVsZHMobmV3TG9jYWxTY2hlbWEsIGZpZWxkTmFtZSwgZmllbGQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gSGFuZGxlIEluZGV4ZXNcbiAgICAvLyBDaGVjayBhZGRpdGlvblxuICAgIGlmIChsb2NhbFNjaGVtYS5pbmRleGVzKSB7XG4gICAgICBPYmplY3Qua2V5cyhsb2NhbFNjaGVtYS5pbmRleGVzKS5mb3JFYWNoKGluZGV4TmFtZSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAoIWNsb3VkU2NoZW1hLmluZGV4ZXMgfHwgIWNsb3VkU2NoZW1hLmluZGV4ZXNbaW5kZXhOYW1lXSkgJiZcbiAgICAgICAgICAhdGhpcy5pc1Byb3RlY3RlZEluZGV4KGxvY2FsU2NoZW1hLmNsYXNzTmFtZSwgaW5kZXhOYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAobG9jYWxTY2hlbWEuaW5kZXhlcykge1xuICAgICAgICAgICAgbmV3TG9jYWxTY2hlbWEuYWRkSW5kZXgoaW5kZXhOYW1lLCBsb2NhbFNjaGVtYS5pbmRleGVzW2luZGV4TmFtZV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5kZXhlc1RvQWRkID0gW107XG5cbiAgICAvLyBDaGVjayBkZWxldGlvblxuICAgIGlmIChjbG91ZFNjaGVtYS5pbmRleGVzKSB7XG4gICAgICBPYmplY3Qua2V5cyhjbG91ZFNjaGVtYS5pbmRleGVzKS5mb3JFYWNoKGluZGV4TmFtZSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc1Byb3RlY3RlZEluZGV4KGxvY2FsU2NoZW1hLmNsYXNzTmFtZSwgaW5kZXhOYW1lKSkge1xuICAgICAgICAgIGlmICghbG9jYWxTY2hlbWEuaW5kZXhlcyB8fCAhbG9jYWxTY2hlbWEuaW5kZXhlc1tpbmRleE5hbWVdKSB7XG4gICAgICAgICAgICBuZXdMb2NhbFNjaGVtYS5kZWxldGVJbmRleChpbmRleE5hbWUpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAhdGhpcy5wYXJhbXNBcmVFcXVhbHMobG9jYWxTY2hlbWEuaW5kZXhlc1tpbmRleE5hbWVdLCBjbG91ZFNjaGVtYS5pbmRleGVzW2luZGV4TmFtZV0pXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBuZXdMb2NhbFNjaGVtYS5kZWxldGVJbmRleChpbmRleE5hbWUpO1xuICAgICAgICAgICAgaWYgKGxvY2FsU2NoZW1hLmluZGV4ZXMpIHtcbiAgICAgICAgICAgICAgaW5kZXhlc1RvQWRkLnB1c2goe1xuICAgICAgICAgICAgICAgIGluZGV4TmFtZSxcbiAgICAgICAgICAgICAgICBpbmRleDogbG9jYWxTY2hlbWEuaW5kZXhlc1tpbmRleE5hbWVdLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlQ0xQKGxvY2FsU2NoZW1hLCBuZXdMb2NhbFNjaGVtYSwgY2xvdWRTY2hlbWEpO1xuICAgIC8vIEFwcGx5IGNoYW5nZXNcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVNjaGVtYVRvREIobmV3TG9jYWxTY2hlbWEpO1xuICAgIC8vIEFwcGx5IG5ldy9jaGFuZ2VkIGluZGV4ZXNcbiAgICBpZiAoaW5kZXhlc1RvQWRkLmxlbmd0aCkge1xuICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICBgVXBkYXRpbmcgaW5kZXhlcyBmb3IgXCIke25ld0xvY2FsU2NoZW1hLmNsYXNzTmFtZX1cIiA6ICAke2luZGV4ZXNUb0FkZC5qb2luKCcgLCcpfWBcbiAgICAgICk7XG4gICAgICBpbmRleGVzVG9BZGQuZm9yRWFjaChvID0+IG5ld0xvY2FsU2NoZW1hLmFkZEluZGV4KG8uaW5kZXhOYW1lLCBvLmluZGV4KSk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVNjaGVtYVRvREIobmV3TG9jYWxTY2hlbWEpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNMUChcbiAgICBsb2NhbFNjaGVtYTogTWlncmF0aW9ucy5KU09OU2NoZW1hLFxuICAgIG5ld0xvY2FsU2NoZW1hOiBQYXJzZS5TY2hlbWEsXG4gICAgY2xvdWRTY2hlbWE6IFBhcnNlLlNjaGVtYVxuICApIHtcbiAgICBpZiAoIWxvY2FsU2NoZW1hLmNsYXNzTGV2ZWxQZXJtaXNzaW9ucyAmJiAhY2xvdWRTY2hlbWEpIHtcbiAgICAgIGxvZ2dlci53YXJuKGBjbGFzc0xldmVsUGVybWlzc2lvbnMgbm90IHByb3ZpZGVkIGZvciAke2xvY2FsU2NoZW1hLmNsYXNzTmFtZX0uYCk7XG4gICAgfVxuICAgIC8vIFVzZSBzcHJlYWQgdG8gYXZvaWQgcmVhZCBvbmx5IGlzc3VlIChlbmNvdW50ZXJlZCBieSBNb3Vtb3VscyB1c2luZyBkaXJlY3RBY2Nlc3MpXG4gICAgY29uc3QgY2xwID0gKHsgLi4ubG9jYWxTY2hlbWEuY2xhc3NMZXZlbFBlcm1pc3Npb25zIH0gfHwge306IFBhcnNlLkNMUC5QZXJtaXNzaW9uc01hcCk7XG4gICAgLy8gVG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB3ZSBuZWVkIHRvIHJlbW92ZSBhbGwgcmlnaHRzIG9uIGFkZEZpZWxkXG4gICAgY2xwLmFkZEZpZWxkID0ge307XG4gICAgbmV3TG9jYWxTY2hlbWEuc2V0Q0xQKGNscCk7XG4gIH1cblxuICBpc1Byb3RlY3RlZEZpZWxkcyhjbGFzc05hbWU6IHN0cmluZywgZmllbGROYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgISFkZWZhdWx0Q29sdW1ucy5fRGVmYXVsdFtmaWVsZE5hbWVdIHx8XG4gICAgICAhIShkZWZhdWx0Q29sdW1uc1tjbGFzc05hbWVdICYmIGRlZmF1bHRDb2x1bW5zW2NsYXNzTmFtZV1bZmllbGROYW1lXSlcbiAgICApO1xuICB9XG5cbiAgaXNQcm90ZWN0ZWRJbmRleChjbGFzc05hbWU6IHN0cmluZywgaW5kZXhOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBpbmRleGVzID0gWydfaWRfJ107XG4gICAgc3dpdGNoIChjbGFzc05hbWUpIHtcbiAgICAgIGNhc2UgJ19Vc2VyJzpcbiAgICAgICAgaW5kZXhlcy5wdXNoKFxuICAgICAgICAgICdjYXNlX2luc2Vuc2l0aXZlX3VzZXJuYW1lJyxcbiAgICAgICAgICAnY2FzZV9pbnNlbnNpdGl2ZV9lbWFpbCcsXG4gICAgICAgICAgJ3VzZXJuYW1lXzEnLFxuICAgICAgICAgICdlbWFpbF8xJ1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ19Sb2xlJzpcbiAgICAgICAgaW5kZXhlcy5wdXNoKCduYW1lXzEnKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ19JZGVtcG90ZW5jeSc6XG4gICAgICAgIGluZGV4ZXMucHVzaCgncmVxSWRfMScpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gaW5kZXhlcy5pbmRleE9mKGluZGV4TmFtZSkgIT09IC0xO1xuICB9XG5cbiAgcGFyYW1zQXJlRXF1YWxzPFQ6IHsgW2tleTogc3RyaW5nXTogYW55IH0+KG9iakE6IFQsIG9iakI6IFQpIHtcbiAgICBjb25zdCBrZXlzQTogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhvYmpBKTtcbiAgICBjb25zdCBrZXlzQjogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhvYmpCKTtcblxuICAgIC8vIENoZWNrIGtleSBuYW1lXG4gICAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGtleXNBLmV2ZXJ5KGsgPT4gb2JqQVtrXSA9PT0gb2JqQltrXSk7XG4gIH1cblxuICBoYW5kbGVGaWVsZHMobmV3TG9jYWxTY2hlbWE6IFBhcnNlLlNjaGVtYSwgZmllbGROYW1lOiBzdHJpbmcsIGZpZWxkOiBNaWdyYXRpb25zLkZpZWxkVHlwZSkge1xuICAgIGlmIChmaWVsZC50eXBlID09PSAnUmVsYXRpb24nKSB7XG4gICAgICBuZXdMb2NhbFNjaGVtYS5hZGRSZWxhdGlvbihmaWVsZE5hbWUsIGZpZWxkLnRhcmdldENsYXNzKTtcbiAgICB9IGVsc2UgaWYgKGZpZWxkLnR5cGUgPT09ICdQb2ludGVyJykge1xuICAgICAgbmV3TG9jYWxTY2hlbWEuYWRkUG9pbnRlcihmaWVsZE5hbWUsIGZpZWxkLnRhcmdldENsYXNzLCBmaWVsZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0xvY2FsU2NoZW1hLmFkZEZpZWxkKGZpZWxkTmFtZSwgZmllbGQudHlwZSwgZmllbGQpO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxpQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0Es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
|
package/lib/Security/Check.js
CHANGED
|
@@ -101,10 +101,9 @@ const CheckState = Object.freeze({
|
|
|
101
101
|
fail: 'fail',
|
|
102
102
|
success: 'success'
|
|
103
103
|
});
|
|
104
|
-
var _default = Check;
|
|
105
|
-
exports.default = _default;
|
|
104
|
+
var _default = exports.default = Check;
|
|
106
105
|
module.exports = {
|
|
107
106
|
Check,
|
|
108
107
|
CheckState
|
|
109
108
|
};
|
|
110
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkNoZWNrIiwiY29uc3RydWN0b3IiLCJwYXJhbXMiLCJfdmFsaWRhdGVQYXJhbXMiLCJ0aXRsZSIsIndhcm5pbmciLCJzb2x1dGlvbiIsImNoZWNrIiwiX2NoZWNrU3RhdGUiLCJDaGVja1N0YXRlIiwibm9uZSIsImVycm9yIiwiY2hlY2tTdGF0ZSIsInJ1biIsIlByb21pc2UiLCJzdWNjZXNzIiwiZSIsInN0YXRlRmFpbEVycm9yIiwiZmFpbCIsIlV0aWxzIiwidmFsaWRhdGVQYXJhbXMiLCJncm91cCIsInQiLCJ2IiwiaXNTdHJpbmciLCJpc0Z1bmN0aW9uIiwiT2JqZWN0IiwiZnJlZXplIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NlY3VyaXR5L0NoZWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBTZWN1cml0eUNoZWNrXG4gKi9cblxuaW1wb3J0IFV0aWxzIGZyb20gJy4uL1V0aWxzJztcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzU3RyaW5nIH0gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBBIHNlY3VyaXR5IGNoZWNrLlxuICogQGNsYXNzXG4gKi9cbmNsYXNzIENoZWNrIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBuZXcgc2VjdXJpdHkgY2hlY2suXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgVGhlIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMudGl0bGUgVGhlIHRpdGxlLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gcGFyYW1zLndhcm5pbmcgVGhlIHdhcm5pbmcgbWVzc2FnZSBpZiB0aGUgY2hlY2sgZmFpbHMuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMuc29sdXRpb24gVGhlIHNvbHV0aW9uIHRvIGZpeCB0aGUgY2hlY2suXG4gICAqIEBwYXJhbSB7UHJvbWlzZX0gcGFyYW1zLmNoZWNrIFRoZSBjaGVjayBhcyBzeW5jaHJvbm91cyBvciBhc3luY2hyb25vdXMgZnVuY3Rpb24uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwYXJhbXMpIHtcbiAgICB0aGlzLl92YWxpZGF0ZVBhcmFtcyhwYXJhbXMpO1xuICAgIGNvbnN0IHsgdGl0bGUsIHdhcm5pbmcsIHNvbHV0aW9uLCBjaGVjayB9ID0gcGFyYW1zO1xuXG4gICAgdGhpcy50aXRsZSA9IHRpdGxlO1xuICAgIHRoaXMud2FybmluZyA9IHdhcm5pbmc7XG4gICAgdGhpcy5zb2x1dGlvbiA9IHNvbHV0aW9uO1xuICAgIHRoaXMuY2hlY2sgPSBjaGVjaztcblxuICAgIC8vIFNldCBkZWZhdWx0IHByb3BlcnRpZXNcbiAgICB0aGlzLl9jaGVja1N0YXRlID0gQ2hlY2tTdGF0ZS5ub25lO1xuICAgIHRoaXMuZXJyb3I7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBjaGVjayBzdGF0ZS5cbiAgICogQHJldHVybiB7Q2hlY2tTdGF0ZX0gVGhlIGNoZWNrIHN0YXRlLlxuICAgKi9cbiAgY2hlY2tTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2hlY2tTdGF0ZTtcbiAgfVxuXG4gIGFzeW5jIHJ1bigpIHtcbiAgICAvLyBHZXQgY2hlY2sgYXMgc3luY2hyb25vdXMgb3IgYXN5bmNocm9ub3VzIGZ1bmN0aW9uXG4gICAgY29uc3QgY2hlY2sgPSB0aGlzLmNoZWNrIGluc3RhbmNlb2YgUHJvbWlzZSA/
|
|
109
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkNoZWNrIiwiY29uc3RydWN0b3IiLCJwYXJhbXMiLCJfdmFsaWRhdGVQYXJhbXMiLCJ0aXRsZSIsIndhcm5pbmciLCJzb2x1dGlvbiIsImNoZWNrIiwiX2NoZWNrU3RhdGUiLCJDaGVja1N0YXRlIiwibm9uZSIsImVycm9yIiwiY2hlY2tTdGF0ZSIsInJ1biIsIlByb21pc2UiLCJzdWNjZXNzIiwiZSIsInN0YXRlRmFpbEVycm9yIiwiZmFpbCIsIlV0aWxzIiwidmFsaWRhdGVQYXJhbXMiLCJncm91cCIsInQiLCJ2IiwiaXNTdHJpbmciLCJpc0Z1bmN0aW9uIiwiT2JqZWN0IiwiZnJlZXplIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NlY3VyaXR5L0NoZWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBTZWN1cml0eUNoZWNrXG4gKi9cblxuaW1wb3J0IFV0aWxzIGZyb20gJy4uL1V0aWxzJztcbmltcG9ydCB7IGlzRnVuY3Rpb24sIGlzU3RyaW5nIH0gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBBIHNlY3VyaXR5IGNoZWNrLlxuICogQGNsYXNzXG4gKi9cbmNsYXNzIENoZWNrIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBuZXcgc2VjdXJpdHkgY2hlY2suXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgVGhlIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMudGl0bGUgVGhlIHRpdGxlLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gcGFyYW1zLndhcm5pbmcgVGhlIHdhcm5pbmcgbWVzc2FnZSBpZiB0aGUgY2hlY2sgZmFpbHMuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMuc29sdXRpb24gVGhlIHNvbHV0aW9uIHRvIGZpeCB0aGUgY2hlY2suXG4gICAqIEBwYXJhbSB7UHJvbWlzZX0gcGFyYW1zLmNoZWNrIFRoZSBjaGVjayBhcyBzeW5jaHJvbm91cyBvciBhc3luY2hyb25vdXMgZnVuY3Rpb24uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwYXJhbXMpIHtcbiAgICB0aGlzLl92YWxpZGF0ZVBhcmFtcyhwYXJhbXMpO1xuICAgIGNvbnN0IHsgdGl0bGUsIHdhcm5pbmcsIHNvbHV0aW9uLCBjaGVjayB9ID0gcGFyYW1zO1xuXG4gICAgdGhpcy50aXRsZSA9IHRpdGxlO1xuICAgIHRoaXMud2FybmluZyA9IHdhcm5pbmc7XG4gICAgdGhpcy5zb2x1dGlvbiA9IHNvbHV0aW9uO1xuICAgIHRoaXMuY2hlY2sgPSBjaGVjaztcblxuICAgIC8vIFNldCBkZWZhdWx0IHByb3BlcnRpZXNcbiAgICB0aGlzLl9jaGVja1N0YXRlID0gQ2hlY2tTdGF0ZS5ub25lO1xuICAgIHRoaXMuZXJyb3I7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBjaGVjayBzdGF0ZS5cbiAgICogQHJldHVybiB7Q2hlY2tTdGF0ZX0gVGhlIGNoZWNrIHN0YXRlLlxuICAgKi9cbiAgY2hlY2tTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2hlY2tTdGF0ZTtcbiAgfVxuXG4gIGFzeW5jIHJ1bigpIHtcbiAgICAvLyBHZXQgY2hlY2sgYXMgc3luY2hyb25vdXMgb3IgYXN5bmNocm9ub3VzIGZ1bmN0aW9uXG4gICAgY29uc3QgY2hlY2sgPSB0aGlzLmNoZWNrIGluc3RhbmNlb2YgUHJvbWlzZSA/IGF3YWl0IHRoaXMuY2hlY2sgOiB0aGlzLmNoZWNrO1xuXG4gICAgLy8gUnVuIGNoZWNrXG4gICAgdHJ5IHtcbiAgICAgIGNoZWNrKCk7XG4gICAgICB0aGlzLl9jaGVja1N0YXRlID0gQ2hlY2tTdGF0ZS5zdWNjZXNzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuc3RhdGVGYWlsRXJyb3IgPSBlO1xuICAgICAgdGhpcy5fY2hlY2tTdGF0ZSA9IENoZWNrU3RhdGUuZmFpbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzIHRvIHZhbGlkYXRlLlxuICAgKi9cbiAgX3ZhbGlkYXRlUGFyYW1zKHBhcmFtcykge1xuICAgIFV0aWxzLnZhbGlkYXRlUGFyYW1zKHBhcmFtcywge1xuICAgICAgZ3JvdXA6IHsgdDogJ3N0cmluZycsIHY6IGlzU3RyaW5nIH0sXG4gICAgICB0aXRsZTogeyB0OiAnc3RyaW5nJywgdjogaXNTdHJpbmcgfSxcbiAgICAgIHdhcm5pbmc6IHsgdDogJ3N0cmluZycsIHY6IGlzU3RyaW5nIH0sXG4gICAgICBzb2x1dGlvbjogeyB0OiAnc3RyaW5nJywgdjogaXNTdHJpbmcgfSxcbiAgICAgIGNoZWNrOiB7IHQ6ICdmdW5jdGlvbicsIHY6IGlzRnVuY3Rpb24gfSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBjaGVjayBzdGF0ZS5cbiAqL1xuY29uc3QgQ2hlY2tTdGF0ZSA9IE9iamVjdC5mcmVlemUoe1xuICBub25lOiAnbm9uZScsXG4gIGZhaWw6ICdmYWlsJyxcbiAgc3VjY2VzczogJ3N1Y2Nlc3MnLFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrO1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIENoZWNrLFxuICBDaGVja1N0YXRlLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBSUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQThDLFNBQUFELHVCQUFBRyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBTDlDO0FBQ0E7QUFDQTs7QUFLQTtBQUNB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
|
|
@@ -5,8 +5,8 @@ var _Check = require("./Check");
|
|
|
5
5
|
var CheckGroups = _interopRequireWildcard(require("./CheckGroups/CheckGroups"));
|
|
6
6
|
var _logger = _interopRequireDefault(require("../logger"));
|
|
7
7
|
var _lodash = require("lodash");
|
|
8
|
-
function _getRequireWildcardCache(
|
|
9
|
-
function _interopRequireWildcard(
|
|
8
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
9
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
11
|
/**
|
|
12
12
|
* The security check runner.
|
|
@@ -211,4 +211,4 @@ class CheckRunner {
|
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
module.exports = CheckRunner;
|
|
214
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9DaGVjayIsIkNoZWNrR3JvdXBzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfbG9nZ2VyIiwiX2xvZGFzaCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJDaGVja1J1bm5lciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwiX3ZhbGlkYXRlUGFyYW1zIiwiZW5hYmxlQ2hlY2siLCJlbmFibGVDaGVja0xvZyIsImNoZWNrR3JvdXBzIiwicnVuIiwidmVyc2lvbiIsImdyb3VwcyIsInZhbHVlcyIsImZpbHRlciIsImMiLCJtYXAiLCJDaGVja0dyb3VwIiwiZm9yRWFjaCIsImdyb3VwIiwicmVwb3J0IiwiX2dlbmVyYXRlUmVwb3J0IiwiX2xvZ1JlcG9ydCIsInN0YXRlIiwiQ2hlY2tTdGF0ZSIsInN1Y2Nlc3MiLCJncm91cFJlcG9ydCIsIm5hbWUiLCJjaGVja3MiLCJjaGVjayIsImNoZWNrUmVwb3J0IiwidGl0bGUiLCJjaGVja1N0YXRlIiwiZmFpbCIsIndhcm5pbmciLCJzb2x1dGlvbiIsInB1c2giLCJsb2ciLCJzIiwibG9nZ2VyIiwiaW5mbyIsIndhcm4iLCJpbmRlbnQiLCJvdXRwdXQiLCJjaGVja3NDb3VudCIsImZhaWxlZENoZWNrc0NvdW50Iiwic2tpcHBlZENoZWNrQ291bnQiLCJfZ2V0TG9nSWNvbkZvclN0YXRlIiwibm9uZSIsInBhcmFtcyIsIlV0aWxzIiwidmFsaWRhdGVQYXJhbXMiLCJ0IiwidiIsImlzQm9vbGVhbiIsIm8iLCJpc0FycmF5IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZWN1cml0eS9DaGVja1J1bm5lci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IHsgQ2hlY2tTdGF0ZSB9IGZyb20gJy4vQ2hlY2snO1xuaW1wb3J0ICogYXMgQ2hlY2tHcm91cHMgZnJvbSAnLi9DaGVja0dyb3Vwcy9DaGVja0dyb3Vwcyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBpc0FycmF5LCBpc0Jvb2xlYW4gfSBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIFRoZSBzZWN1cml0eSBjaGVjayBydW5uZXIuXG4gKiBAbWVtYmVyb2YgbW9kdWxlOlNlY3VyaXR5Q2hlY2tcbiAqL1xuY2xhc3MgQ2hlY2tSdW5uZXIge1xuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGNoZWNrIHJ1bm5lci5cbiAgICogQHBhcmFtIHtPYmplY3R9IFtjb25maWddIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAqIEBwYXJhbSB7Qm9vbGVhbn0gW2NvbmZpZy5lbmFibGVDaGVjaz1mYWxzZV0gSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIHJlcG9ydCB3ZWFrIHNlY3VyaXR5IHNldHRpbmdzLlxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtjb25maWcuZW5hYmxlQ2hlY2tMb2c9ZmFsc2VdIElzIHRydWUgaWYgdGhlIHNlY3VyaXR5IGNoZWNrIHJlcG9ydCBzaG91bGQgYmUgd3JpdHRlbiB0byBsb2dzLlxuICAgKiBAcGFyYW0ge09iamVjdH0gW2NvbmZpZy5jaGVja0dyb3Vwc10gVGhlIGNoZWNrIGdyb3VwcyB0byBydW4uIERlZmF1bHQgYXJlIHRoZSBncm91cHMgZGVmaW5lZCBpbiBgLi9DaGVja0dyb3Vwcy9DaGVja0dyb3Vwcy5qc2AuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWcgPSB7fSkge1xuICAgIHRoaXMuX3ZhbGlkYXRlUGFyYW1zKGNvbmZpZyk7XG4gICAgY29uc3QgeyBlbmFibGVDaGVjayA9IGZhbHNlLCBlbmFibGVDaGVja0xvZyA9IGZhbHNlLCBjaGVja0dyb3VwcyA9IENoZWNrR3JvdXBzIH0gPSBjb25maWc7XG4gICAgdGhpcy5lbmFibGVDaGVjayA9IGVuYWJsZUNoZWNrO1xuICAgIHRoaXMuZW5hYmxlQ2hlY2tMb2cgPSBlbmFibGVDaGVja0xvZztcbiAgICB0aGlzLmNoZWNrR3JvdXBzID0gY2hlY2tHcm91cHM7XG4gIH1cblxuICAvKipcbiAgICogUnVucyBhbGwgc2VjdXJpdHkgY2hlY2tzIGFuZCByZXR1cm5zIHRoZSByZXN1bHRzLlxuICAgKiBAcGFyYW1zXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBzZWN1cml0eSBjaGVjayByZXBvcnQuXG4gICAqL1xuICBhc3luYyBydW4oeyB2ZXJzaW9uID0gJzEuMC4wJyB9ID0ge30pIHtcbiAgICAvLyBJbnN0YW50aWF0ZSBjaGVjayBncm91cHNcbiAgICBjb25zdCBncm91cHMgPSBPYmplY3QudmFsdWVzKHRoaXMuY2hlY2tHcm91cHMpXG4gICAgICAuZmlsdGVyKGMgPT4gdHlwZW9mIGMgPT09ICdmdW5jdGlvbicpXG4gICAgICAubWFwKENoZWNrR3JvdXAgPT4gbmV3IENoZWNrR3JvdXAoKSk7XG5cbiAgICAvLyBSdW4gY2hlY2tzXG4gICAgZ3JvdXBzLmZvckVhY2goZ3JvdXAgPT4gZ3JvdXAucnVuKCkpO1xuXG4gICAgLy8gR2VuZXJhdGUgSlNPTiByZXBvcnRcbiAgICBjb25zdCByZXBvcnQgPSB0aGlzLl9nZW5lcmF0ZVJlcG9ydCh7IGdyb3VwcywgdmVyc2lvbiB9KTtcblxuICAgIC8vIElmIHJlcG9ydCBzaG91bGQgYmUgd3JpdHRlbiB0byBsb2dzXG4gICAgaWYgKHRoaXMuZW5hYmxlQ2hlY2tMb2cpIHtcbiAgICAgIHRoaXMuX2xvZ1JlcG9ydChyZXBvcnQpO1xuICAgIH1cbiAgICByZXR1cm4gcmVwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHNlY3VyaXR5IGNoZWNrIHJlcG9ydCBpbiBKU09OIGZvcm1hdCB3aXRoIHNjaGVtYTpcbiAgICogYGBgXG4gICAqIHtcbiAgICogICAgcmVwb3J0OiB7XG4gICAqICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLCAvLyBUaGUgcmVwb3J0IHZlcnNpb24sIGRlZmluZXMgdGhlIHNjaGVtYVxuICAgKiAgICAgIHN0YXRlOiBcImZhaWxcIiAgICAgLy8gVGhlIGRpc2p1bmN0aXZlIGluZGljYXRvciBvZiBmYWlsZWQgY2hlY2tzIGluIGFsbCBncm91cHMuXG4gICAqICAgICAgZ3JvdXBzOiBbICAgICAgICAgLy8gVGhlIGNoZWNrIGdyb3Vwc1xuICAgKiAgICAgICAge1xuICAgKiAgICAgICAgICBuYW1lOiBcIkhvdXNlXCIsICAgICAgICAgICAgLy8gVGhlIGdyb3VwIG5hbWVcbiAgICogICAgICAgICAgc3RhdGU6IFwiZmFpbFwiICAgICAgICAgICAgIC8vIFRoZSBkaXNqdW5jdGl2ZSBpbmRpY2F0b3Igb2YgZmFpbGVkIGNoZWNrcyBpbiB0aGlzIGdyb3VwLlxuICAgKiAgICAgICAgICBjaGVja3M6IFsgICAgICAgICAgICAgICAgIC8vIFRoZSBjaGVja3NcbiAgICogICAgICAgICAgICB0aXRsZTogXCJEb29yIGxvY2tlZFwiLCAgIC8vIFRoZSBjaGVjayB0aXRsZVxuICAgKiAgICAgICAgICAgIHN0YXRlOiBcImZhaWxcIiAgICAgICAgICAgLy8gVGhlIGNoZWNrIHN0YXRlXG4gICAqICAgICAgICAgICAgd2FybmluZzogXCJBbnlvbmUgY2FuIGVudGVyIHlvdXIgaG91c2UuXCIgICAvLyBUaGUgd2FybmluZy5cbiAgICogICAgICAgICAgICBzb2x1dGlvbjogXCJMb2NrIHlvdXIgZG9vci5cIiAgICAgICAgICAgICAgIC8vIFRoZSBzb2x1dGlvbi5cbiAgICogICAgICAgICAgXVxuICAgKiAgICAgICAgfSxcbiAgICogICAgICAgIC4uLlxuICAgKiAgICAgIF1cbiAgICogICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0ge0FycmF5PENoZWNrR3JvdXA+fSBwYXJhbXMuZ3JvdXBzIFRoZSBjaGVjayBncm91cHMuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwYXJhbXMudmVyc2lvbjogVGhlIHJlcG9ydCBzY2hlbWEgdmVyc2lvbi5cbiAgICogQHJldHVybnMge09iamVjdH0gVGhlIHJlcG9ydC5cbiAgICovXG4gIF9nZW5lcmF0ZVJlcG9ydCh7IGdyb3VwcywgdmVyc2lvbiB9KSB7XG4gICAgLy8gQ3JlYXRlIHJlcG9ydCB0ZW1wbGF0ZVxuICAgIGNvbnN0IHJlcG9ydCA9IHtcbiAgICAgIHJlcG9ydDoge1xuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBzdGF0ZTogQ2hlY2tTdGF0ZS5zdWNjZXNzLFxuICAgICAgICBncm91cHM6IFtdLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gSWRlbnRpZnkgcmVwb3J0IHZlcnNpb25cbiAgICBzd2l0Y2ggKHZlcnNpb24pIHtcbiAgICAgIGNhc2UgJzEuMC4wJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIEZvciBlYWNoIGNoZWNrIGdyb3VwXG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzKSB7XG4gICAgICAgICAgLy8gQ3JlYXRlIGdyb3VwIHJlcG9ydFxuICAgICAgICAgIGNvbnN0IGdyb3VwUmVwb3J0ID0ge1xuICAgICAgICAgICAgbmFtZTogZ3JvdXAubmFtZSgpLFxuICAgICAgICAgICAgc3RhdGU6IENoZWNrU3RhdGUuc3VjY2VzcyxcbiAgICAgICAgICAgIGNoZWNrczogW10sXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIC8vIENyZWF0ZSBjaGVjayByZXBvcnRzXG4gICAgICAgICAgZ3JvdXBSZXBvcnQuY2hlY2tzID0gZ3JvdXAuY2hlY2tzKCkubWFwKGNoZWNrID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNoZWNrUmVwb3J0ID0ge1xuICAgICAgICAgICAgICB0aXRsZTogY2hlY2sudGl0bGUsXG4gICAgICAgICAgICAgIHN0YXRlOiBjaGVjay5jaGVja1N0YXRlKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKGNoZWNrLmNoZWNrU3RhdGUoKSA9PSBDaGVja1N0YXRlLmZhaWwpIHtcbiAgICAgICAgICAgICAgY2hlY2tSZXBvcnQud2FybmluZyA9IGNoZWNrLndhcm5pbmc7XG4gICAgICAgICAgICAgIGNoZWNrUmVwb3J0LnNvbHV0aW9uID0gY2hlY2suc29sdXRpb247XG4gICAgICAgICAgICAgIHJlcG9ydC5yZXBvcnQuc3RhdGUgPSBDaGVja1N0YXRlLmZhaWw7XG4gICAgICAgICAgICAgIGdyb3VwUmVwb3J0LnN0YXRlID0gQ2hlY2tTdGF0ZS5mYWlsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNoZWNrUmVwb3J0O1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmVwb3J0LnJlcG9ydC5ncm91cHMucHVzaChncm91cFJlcG9ydCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlcG9ydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIHRoZSBzZWN1cml0eSBjaGVjayByZXBvcnQuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSByZXBvcnQgVGhlIHJlcG9ydCB0byBsb2cuXG4gICAqL1xuICBfbG9nUmVwb3J0KHJlcG9ydCkge1xuICAgIC8vIERldGVybWluZSBsb2cgbGV2ZWwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgYW55IGNoZWNrIGZhaWxlZFxuICAgIGNvbnN0IGxvZyA9XG4gICAgICByZXBvcnQucmVwb3J0LnN0YXRlID09IENoZWNrU3RhdGUuc3VjY2VzcyA/IHMgPT4gbG9nZ2VyLmluZm8ocykgOiBzID0+IGxvZ2dlci53YXJuKHMpO1xuXG4gICAgLy8gRGVjbGFyZSBvdXRwdXRcbiAgICBjb25zdCBpbmRlbnQgPSAnICAgJztcbiAgICBsZXQgb3V0cHV0ID0gJyc7XG4gICAgbGV0IGNoZWNrc0NvdW50ID0gMDtcbiAgICBsZXQgZmFpbGVkQ2hlY2tzQ291bnQgPSAwO1xuICAgIGxldCBza2lwcGVkQ2hlY2tDb3VudCA9IDA7XG5cbiAgICAvLyBUcmF2ZXJzZSBhbGwgZ3JvdXBzIGFuZCBjaGVja3MgZm9yIGNvbXBvc2Ugb3V0cHV0XG4gICAgZm9yIChjb25zdCBncm91cCBvZiByZXBvcnQucmVwb3J0Lmdyb3Vwcykge1xuICAgICAgb3V0cHV0ICs9IGBcXG4tICR7Z3JvdXAubmFtZX1gO1xuXG4gICAgICBmb3IgKGNvbnN0IGNoZWNrIG9mIGdyb3VwLmNoZWNrcykge1xuICAgICAgICBjaGVja3NDb3VudCsrO1xuICAgICAgICBvdXRwdXQgKz0gYFxcbiR7aW5kZW50fSR7dGhpcy5fZ2V0TG9nSWNvbkZvclN0YXRlKGNoZWNrLnN0YXRlKX0gJHtjaGVjay50aXRsZX1gO1xuXG4gICAgICAgIGlmIChjaGVjay5zdGF0ZSA9PSBDaGVja1N0YXRlLmZhaWwpIHtcbiAgICAgICAgICBmYWlsZWRDaGVja3NDb3VudCsrO1xuICAgICAgICAgIG91dHB1dCArPSBgXFxuJHtpbmRlbnR9JHtpbmRlbnR9V2FybmluZzogJHtjaGVjay53YXJuaW5nfWA7XG4gICAgICAgICAgb3V0cHV0ICs9IGAgJHtjaGVjay5zb2x1dGlvbn1gO1xuICAgICAgICB9IGVsc2UgaWYgKGNoZWNrLnN0YXRlID09IENoZWNrU3RhdGUubm9uZSkge1xuICAgICAgICAgIHNraXBwZWRDaGVja0NvdW50Kys7XG4gICAgICAgICAgb3V0cHV0ICs9IGBcXG4ke2luZGVudH0ke2luZGVudH1UZXN0IGRpZCBub3QgZXhlY3V0ZSwgdGhpcyBpcyBsaWtlbHkgYW4gaW50ZXJuYWwgc2VydmVyIGlzc3VlLCBwbGVhc2UgcmVwb3J0LmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBvdXRwdXQgPVxuICAgICAgYFxcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjYCArXG4gICAgICBgXFxuIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNgICtcbiAgICAgIGBcXG4jICAgUGFyc2UgU2VydmVyIFNlY3VyaXR5IENoZWNrICAgI2AgK1xuICAgICAgYFxcbiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYCArXG4gICAgICBgXFxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNgICtcbiAgICAgIGBcXG5gICtcbiAgICAgIGBcXG4ke1xuICAgICAgICBmYWlsZWRDaGVja3NDb3VudCA+IDAgPyAnV2FybmluZzogJyA6ICcnXG4gICAgICB9JHtmYWlsZWRDaGVja3NDb3VudH0gd2VhayBzZWN1cml0eSBzZXR0aW5nKHMpIGZvdW5kJHtmYWlsZWRDaGVja3NDb3VudCA+IDAgPyAnIScgOiAnJ31gICtcbiAgICAgIGBcXG4ke2NoZWNrc0NvdW50fSBjaGVjayhzKSBleGVjdXRlZGAgK1xuICAgICAgYFxcbiR7c2tpcHBlZENoZWNrQ291bnR9IGNoZWNrKHMpIHNraXBwZWRgICtcbiAgICAgIGBcXG5gICtcbiAgICAgIGAke291dHB1dH1gO1xuXG4gICAgLy8gV3JpdGUgbG9nXG4gICAgbG9nKG91dHB1dCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBpY29uIGZvciB1c2UgaW4gdGhlIHJlcG9ydCBsb2cgb3V0cHV0LlxuICAgKiBAcGFyYW0ge0NoZWNrU3RhdGV9IHN0YXRlIFRoZSBjaGVjayBzdGF0ZS5cbiAgICogQHJldHVybnMge1N0cmluZ30gVGhlIGljb24uXG4gICAqL1xuICBfZ2V0TG9nSWNvbkZvclN0YXRlKHN0YXRlKSB7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBDaGVja1N0YXRlLnN1Y2Nlc3M6XG4gICAgICAgIHJldHVybiAn4pyFJztcbiAgICAgIGNhc2UgQ2hlY2tTdGF0ZS5mYWlsOlxuICAgICAgICByZXR1cm4gJ+KdjCc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ+KEue+4jyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgY29uc3RydWN0b3IgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyBUaGUgcGFyYW1ldGVycyB0byB2YWxpZGF0ZS5cbiAgICovXG4gIF92YWxpZGF0ZVBhcmFtcyhwYXJhbXMpIHtcbiAgICBVdGlscy52YWxpZGF0ZVBhcmFtcyhwYXJhbXMsIHtcbiAgICAgIGVuYWJsZUNoZWNrOiB7IHQ6ICdib29sZWFuJywgdjogaXNCb29sZWFuLCBvOiB0cnVlIH0sXG4gICAgICBlbmFibGVDaGVja0xvZzogeyB0OiAnYm9vbGVhbicsIHY6IGlzQm9vbGVhbiwgbzogdHJ1ZSB9LFxuICAgICAgY2hlY2tHcm91cHM6IHsgdDogJ2FycmF5JywgdjogaXNBcnJheSwgbzogdHJ1ZSB9LFxuICAgIH0pO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gQ2hlY2tSdW5uZXI7XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBQTRDLFNBQUFNLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNB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
|
|
214
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9DaGVjayIsIkNoZWNrR3JvdXBzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfbG9nZ2VyIiwiX2xvZGFzaCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm9iaiIsIkNoZWNrUnVubmVyIiwiY29uc3RydWN0b3IiLCJjb25maWciLCJfdmFsaWRhdGVQYXJhbXMiLCJlbmFibGVDaGVjayIsImVuYWJsZUNoZWNrTG9nIiwiY2hlY2tHcm91cHMiLCJydW4iLCJ2ZXJzaW9uIiwiZ3JvdXBzIiwidmFsdWVzIiwiZmlsdGVyIiwiYyIsIm1hcCIsIkNoZWNrR3JvdXAiLCJmb3JFYWNoIiwiZ3JvdXAiLCJyZXBvcnQiLCJfZ2VuZXJhdGVSZXBvcnQiLCJfbG9nUmVwb3J0Iiwic3RhdGUiLCJDaGVja1N0YXRlIiwic3VjY2VzcyIsImdyb3VwUmVwb3J0IiwibmFtZSIsImNoZWNrcyIsImNoZWNrIiwiY2hlY2tSZXBvcnQiLCJ0aXRsZSIsImNoZWNrU3RhdGUiLCJmYWlsIiwid2FybmluZyIsInNvbHV0aW9uIiwicHVzaCIsImxvZyIsInMiLCJsb2dnZXIiLCJpbmZvIiwid2FybiIsImluZGVudCIsIm91dHB1dCIsImNoZWNrc0NvdW50IiwiZmFpbGVkQ2hlY2tzQ291bnQiLCJza2lwcGVkQ2hlY2tDb3VudCIsIl9nZXRMb2dJY29uRm9yU3RhdGUiLCJub25lIiwicGFyYW1zIiwiVXRpbHMiLCJ2YWxpZGF0ZVBhcmFtcyIsInYiLCJpc0Jvb2xlYW4iLCJvIiwiaXNBcnJheSIsIm1vZHVsZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvU2VjdXJpdHkvQ2hlY2tSdW5uZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFV0aWxzIGZyb20gJy4uL1V0aWxzJztcbmltcG9ydCB7IENoZWNrU3RhdGUgfSBmcm9tICcuL0NoZWNrJztcbmltcG9ydCAqIGFzIENoZWNrR3JvdXBzIGZyb20gJy4vQ2hlY2tHcm91cHMvQ2hlY2tHcm91cHMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgaXNBcnJheSwgaXNCb29sZWFuIH0gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBUaGUgc2VjdXJpdHkgY2hlY2sgcnVubmVyLlxuICogQG1lbWJlcm9mIG1vZHVsZTpTZWN1cml0eUNoZWNrXG4gKi9cbmNsYXNzIENoZWNrUnVubmVyIHtcbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBjaGVjayBydW5uZXIuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbY29uZmlnXSBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuICAgKiBAcGFyYW0ge0Jvb2xlYW59IFtjb25maWcuZW5hYmxlQ2hlY2s9ZmFsc2VdIElzIHRydWUgaWYgUGFyc2UgU2VydmVyIHNob3VsZCByZXBvcnQgd2VhayBzZWN1cml0eSBzZXR0aW5ncy5cbiAgICogQHBhcmFtIHtCb29sZWFufSBbY29uZmlnLmVuYWJsZUNoZWNrTG9nPWZhbHNlXSBJcyB0cnVlIGlmIHRoZSBzZWN1cml0eSBjaGVjayByZXBvcnQgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbG9ncy5cbiAgICogQHBhcmFtIHtPYmplY3R9IFtjb25maWcuY2hlY2tHcm91cHNdIFRoZSBjaGVjayBncm91cHMgdG8gcnVuLiBEZWZhdWx0IGFyZSB0aGUgZ3JvdXBzIGRlZmluZWQgaW4gYC4vQ2hlY2tHcm91cHMvQ2hlY2tHcm91cHMuanNgLlxuICAgKi9cbiAgY29uc3RydWN0b3IoY29uZmlnID0ge30pIHtcbiAgICB0aGlzLl92YWxpZGF0ZVBhcmFtcyhjb25maWcpO1xuICAgIGNvbnN0IHsgZW5hYmxlQ2hlY2sgPSBmYWxzZSwgZW5hYmxlQ2hlY2tMb2cgPSBmYWxzZSwgY2hlY2tHcm91cHMgPSBDaGVja0dyb3VwcyB9ID0gY29uZmlnO1xuICAgIHRoaXMuZW5hYmxlQ2hlY2sgPSBlbmFibGVDaGVjaztcbiAgICB0aGlzLmVuYWJsZUNoZWNrTG9nID0gZW5hYmxlQ2hlY2tMb2c7XG4gICAgdGhpcy5jaGVja0dyb3VwcyA9IGNoZWNrR3JvdXBzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgYWxsIHNlY3VyaXR5IGNoZWNrcyBhbmQgcmV0dXJucyB0aGUgcmVzdWx0cy5cbiAgICogQHBhcmFtc1xuICAgKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgc2VjdXJpdHkgY2hlY2sgcmVwb3J0LlxuICAgKi9cbiAgYXN5bmMgcnVuKHsgdmVyc2lvbiA9ICcxLjAuMCcgfSA9IHt9KSB7XG4gICAgLy8gSW5zdGFudGlhdGUgY2hlY2sgZ3JvdXBzXG4gICAgY29uc3QgZ3JvdXBzID0gT2JqZWN0LnZhbHVlcyh0aGlzLmNoZWNrR3JvdXBzKVxuICAgICAgLmZpbHRlcihjID0+IHR5cGVvZiBjID09PSAnZnVuY3Rpb24nKVxuICAgICAgLm1hcChDaGVja0dyb3VwID0+IG5ldyBDaGVja0dyb3VwKCkpO1xuXG4gICAgLy8gUnVuIGNoZWNrc1xuICAgIGdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IGdyb3VwLnJ1bigpKTtcblxuICAgIC8vIEdlbmVyYXRlIEpTT04gcmVwb3J0XG4gICAgY29uc3QgcmVwb3J0ID0gdGhpcy5fZ2VuZXJhdGVSZXBvcnQoeyBncm91cHMsIHZlcnNpb24gfSk7XG5cbiAgICAvLyBJZiByZXBvcnQgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gbG9nc1xuICAgIGlmICh0aGlzLmVuYWJsZUNoZWNrTG9nKSB7XG4gICAgICB0aGlzLl9sb2dSZXBvcnQocmVwb3J0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcG9ydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBzZWN1cml0eSBjaGVjayByZXBvcnQgaW4gSlNPTiBmb3JtYXQgd2l0aCBzY2hlbWE6XG4gICAqIGBgYFxuICAgKiB7XG4gICAqICAgIHJlcG9ydDoge1xuICAgKiAgICAgIHZlcnNpb246IFwiMS4wLjBcIiwgLy8gVGhlIHJlcG9ydCB2ZXJzaW9uLCBkZWZpbmVzIHRoZSBzY2hlbWFcbiAgICogICAgICBzdGF0ZTogXCJmYWlsXCIgICAgIC8vIFRoZSBkaXNqdW5jdGl2ZSBpbmRpY2F0b3Igb2YgZmFpbGVkIGNoZWNrcyBpbiBhbGwgZ3JvdXBzLlxuICAgKiAgICAgIGdyb3VwczogWyAgICAgICAgIC8vIFRoZSBjaGVjayBncm91cHNcbiAgICogICAgICAgIHtcbiAgICogICAgICAgICAgbmFtZTogXCJIb3VzZVwiLCAgICAgICAgICAgIC8vIFRoZSBncm91cCBuYW1lXG4gICAqICAgICAgICAgIHN0YXRlOiBcImZhaWxcIiAgICAgICAgICAgICAvLyBUaGUgZGlzanVuY3RpdmUgaW5kaWNhdG9yIG9mIGZhaWxlZCBjaGVja3MgaW4gdGhpcyBncm91cC5cbiAgICogICAgICAgICAgY2hlY2tzOiBbICAgICAgICAgICAgICAgICAvLyBUaGUgY2hlY2tzXG4gICAqICAgICAgICAgICAgdGl0bGU6IFwiRG9vciBsb2NrZWRcIiwgICAvLyBUaGUgY2hlY2sgdGl0bGVcbiAgICogICAgICAgICAgICBzdGF0ZTogXCJmYWlsXCIgICAgICAgICAgIC8vIFRoZSBjaGVjayBzdGF0ZVxuICAgKiAgICAgICAgICAgIHdhcm5pbmc6IFwiQW55b25lIGNhbiBlbnRlciB5b3VyIGhvdXNlLlwiICAgLy8gVGhlIHdhcm5pbmcuXG4gICAqICAgICAgICAgICAgc29sdXRpb246IFwiTG9jayB5b3VyIGRvb3IuXCIgICAgICAgICAgICAgICAvLyBUaGUgc29sdXRpb24uXG4gICAqICAgICAgICAgIF1cbiAgICogICAgICAgIH0sXG4gICAqICAgICAgICAuLi5cbiAgICogICAgICBdXG4gICAqICAgIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyBUaGUgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHtBcnJheTxDaGVja0dyb3VwPn0gcGFyYW1zLmdyb3VwcyBUaGUgY2hlY2sgZ3JvdXBzLlxuICAgKiBAcGFyYW0ge1N0cmluZ30gcGFyYW1zLnZlcnNpb246IFRoZSByZXBvcnQgc2NoZW1hIHZlcnNpb24uXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSByZXBvcnQuXG4gICAqL1xuICBfZ2VuZXJhdGVSZXBvcnQoeyBncm91cHMsIHZlcnNpb24gfSkge1xuICAgIC8vIENyZWF0ZSByZXBvcnQgdGVtcGxhdGVcbiAgICBjb25zdCByZXBvcnQgPSB7XG4gICAgICByZXBvcnQ6IHtcbiAgICAgICAgdmVyc2lvbixcbiAgICAgICAgc3RhdGU6IENoZWNrU3RhdGUuc3VjY2VzcyxcbiAgICAgICAgZ3JvdXBzOiBbXSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIElkZW50aWZ5IHJlcG9ydCB2ZXJzaW9uXG4gICAgc3dpdGNoICh2ZXJzaW9uKSB7XG4gICAgICBjYXNlICcxLjAuMCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBGb3IgZWFjaCBjaGVjayBncm91cFxuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIGdyb3Vwcykge1xuICAgICAgICAgIC8vIENyZWF0ZSBncm91cCByZXBvcnRcbiAgICAgICAgICBjb25zdCBncm91cFJlcG9ydCA9IHtcbiAgICAgICAgICAgIG5hbWU6IGdyb3VwLm5hbWUoKSxcbiAgICAgICAgICAgIHN0YXRlOiBDaGVja1N0YXRlLnN1Y2Nlc3MsXG4gICAgICAgICAgICBjaGVja3M6IFtdLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICAvLyBDcmVhdGUgY2hlY2sgcmVwb3J0c1xuICAgICAgICAgIGdyb3VwUmVwb3J0LmNoZWNrcyA9IGdyb3VwLmNoZWNrcygpLm1hcChjaGVjayA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGVja1JlcG9ydCA9IHtcbiAgICAgICAgICAgICAgdGl0bGU6IGNoZWNrLnRpdGxlLFxuICAgICAgICAgICAgICBzdGF0ZTogY2hlY2suY2hlY2tTdGF0ZSgpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChjaGVjay5jaGVja1N0YXRlKCkgPT0gQ2hlY2tTdGF0ZS5mYWlsKSB7XG4gICAgICAgICAgICAgIGNoZWNrUmVwb3J0Lndhcm5pbmcgPSBjaGVjay53YXJuaW5nO1xuICAgICAgICAgICAgICBjaGVja1JlcG9ydC5zb2x1dGlvbiA9IGNoZWNrLnNvbHV0aW9uO1xuICAgICAgICAgICAgICByZXBvcnQucmVwb3J0LnN0YXRlID0gQ2hlY2tTdGF0ZS5mYWlsO1xuICAgICAgICAgICAgICBncm91cFJlcG9ydC5zdGF0ZSA9IENoZWNrU3RhdGUuZmFpbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjaGVja1JlcG9ydDtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJlcG9ydC5yZXBvcnQuZ3JvdXBzLnB1c2goZ3JvdXBSZXBvcnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXBvcnQ7XG4gIH1cblxuICAvKipcbiAgICogTG9ncyB0aGUgc2VjdXJpdHkgY2hlY2sgcmVwb3J0LlxuICAgKiBAcGFyYW0ge09iamVjdH0gcmVwb3J0IFRoZSByZXBvcnQgdG8gbG9nLlxuICAgKi9cbiAgX2xvZ1JlcG9ydChyZXBvcnQpIHtcbiAgICAvLyBEZXRlcm1pbmUgbG9nIGxldmVsIGRlcGVuZGluZyBvbiB3aGV0aGVyIGFueSBjaGVjayBmYWlsZWRcbiAgICBjb25zdCBsb2cgPVxuICAgICAgcmVwb3J0LnJlcG9ydC5zdGF0ZSA9PSBDaGVja1N0YXRlLnN1Y2Nlc3MgPyBzID0+IGxvZ2dlci5pbmZvKHMpIDogcyA9PiBsb2dnZXIud2FybihzKTtcblxuICAgIC8vIERlY2xhcmUgb3V0cHV0XG4gICAgY29uc3QgaW5kZW50ID0gJyAgICc7XG4gICAgbGV0IG91dHB1dCA9ICcnO1xuICAgIGxldCBjaGVja3NDb3VudCA9IDA7XG4gICAgbGV0IGZhaWxlZENoZWNrc0NvdW50ID0gMDtcbiAgICBsZXQgc2tpcHBlZENoZWNrQ291bnQgPSAwO1xuXG4gICAgLy8gVHJhdmVyc2UgYWxsIGdyb3VwcyBhbmQgY2hlY2tzIGZvciBjb21wb3NlIG91dHB1dFxuICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgcmVwb3J0LnJlcG9ydC5ncm91cHMpIHtcbiAgICAgIG91dHB1dCArPSBgXFxuLSAke2dyb3VwLm5hbWV9YDtcblxuICAgICAgZm9yIChjb25zdCBjaGVjayBvZiBncm91cC5jaGVja3MpIHtcbiAgICAgICAgY2hlY2tzQ291bnQrKztcbiAgICAgICAgb3V0cHV0ICs9IGBcXG4ke2luZGVudH0ke3RoaXMuX2dldExvZ0ljb25Gb3JTdGF0ZShjaGVjay5zdGF0ZSl9ICR7Y2hlY2sudGl0bGV9YDtcblxuICAgICAgICBpZiAoY2hlY2suc3RhdGUgPT0gQ2hlY2tTdGF0ZS5mYWlsKSB7XG4gICAgICAgICAgZmFpbGVkQ2hlY2tzQ291bnQrKztcbiAgICAgICAgICBvdXRwdXQgKz0gYFxcbiR7aW5kZW50fSR7aW5kZW50fVdhcm5pbmc6ICR7Y2hlY2sud2FybmluZ31gO1xuICAgICAgICAgIG91dHB1dCArPSBgICR7Y2hlY2suc29sdXRpb259YDtcbiAgICAgICAgfSBlbHNlIGlmIChjaGVjay5zdGF0ZSA9PSBDaGVja1N0YXRlLm5vbmUpIHtcbiAgICAgICAgICBza2lwcGVkQ2hlY2tDb3VudCsrO1xuICAgICAgICAgIG91dHB1dCArPSBgXFxuJHtpbmRlbnR9JHtpbmRlbnR9VGVzdCBkaWQgbm90IGV4ZWN1dGUsIHRoaXMgaXMgbGlrZWx5IGFuIGludGVybmFsIHNlcnZlciBpc3N1ZSwgcGxlYXNlIHJlcG9ydC5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgb3V0cHV0ID1cbiAgICAgIGBcXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI2AgK1xuICAgICAgYFxcbiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYCArXG4gICAgICBgXFxuIyAgIFBhcnNlIFNlcnZlciBTZWN1cml0eSBDaGVjayAgICNgICtcbiAgICAgIGBcXG4jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2AgK1xuICAgICAgYFxcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjYCArXG4gICAgICBgXFxuYCArXG4gICAgICBgXFxuJHtcbiAgICAgICAgZmFpbGVkQ2hlY2tzQ291bnQgPiAwID8gJ1dhcm5pbmc6ICcgOiAnJ1xuICAgICAgfSR7ZmFpbGVkQ2hlY2tzQ291bnR9IHdlYWsgc2VjdXJpdHkgc2V0dGluZyhzKSBmb3VuZCR7ZmFpbGVkQ2hlY2tzQ291bnQgPiAwID8gJyEnIDogJyd9YCArXG4gICAgICBgXFxuJHtjaGVja3NDb3VudH0gY2hlY2socykgZXhlY3V0ZWRgICtcbiAgICAgIGBcXG4ke3NraXBwZWRDaGVja0NvdW50fSBjaGVjayhzKSBza2lwcGVkYCArXG4gICAgICBgXFxuYCArXG4gICAgICBgJHtvdXRwdXR9YDtcblxuICAgIC8vIFdyaXRlIGxvZ1xuICAgIGxvZyhvdXRwdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gaWNvbiBmb3IgdXNlIGluIHRoZSByZXBvcnQgbG9nIG91dHB1dC5cbiAgICogQHBhcmFtIHtDaGVja1N0YXRlfSBzdGF0ZSBUaGUgY2hlY2sgc3RhdGUuXG4gICAqIEByZXR1cm5zIHtTdHJpbmd9IFRoZSBpY29uLlxuICAgKi9cbiAgX2dldExvZ0ljb25Gb3JTdGF0ZShzdGF0ZSkge1xuICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgIGNhc2UgQ2hlY2tTdGF0ZS5zdWNjZXNzOlxuICAgICAgICByZXR1cm4gJ+KchSc7XG4gICAgICBjYXNlIENoZWNrU3RhdGUuZmFpbDpcbiAgICAgICAgcmV0dXJuICfinYwnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICfihLnvuI8nO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgVGhlIHBhcmFtZXRlcnMgdG8gdmFsaWRhdGUuXG4gICAqL1xuICBfdmFsaWRhdGVQYXJhbXMocGFyYW1zKSB7XG4gICAgVXRpbHMudmFsaWRhdGVQYXJhbXMocGFyYW1zLCB7XG4gICAgICBlbmFibGVDaGVjazogeyB0OiAnYm9vbGVhbicsIHY6IGlzQm9vbGVhbiwgbzogdHJ1ZSB9LFxuICAgICAgZW5hYmxlQ2hlY2tMb2c6IHsgdDogJ2Jvb2xlYW4nLCB2OiBpc0Jvb2xlYW4sIG86IHRydWUgfSxcbiAgICAgIGNoZWNrR3JvdXBzOiB7IHQ6ICdhcnJheScsIHY6IGlzQXJyYXksIG86IHRydWUgfSxcbiAgICB9KTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IENoZWNrUnVubmVyO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUE0QyxTQUFBTSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBSix3QkFBQUksQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FB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
|
package/lib/StatusHandler.js
CHANGED
|
@@ -12,11 +12,11 @@ var _logger = require("./logger");
|
|
|
12
12
|
var _rest = _interopRequireDefault(require("./rest"));
|
|
13
13
|
var _Auth = _interopRequireDefault(require("./Auth"));
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
function ownKeys(
|
|
16
|
-
function _objectSpread(
|
|
15
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
17
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18
|
-
function _toPropertyKey(
|
|
19
|
-
function _toPrimitive(
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
19
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
20
20
|
const PUSH_STATUS_COLLECTION = '_PushStatus';
|
|
21
21
|
const JOB_STATUS_COLLECTION = '_JobStatus';
|
|
22
22
|
const pushPromiseQueue = new _KeyPromiseQueue.KeyPromiseQueue();
|
|
@@ -317,4 +317,4 @@ function pushStatusHandler(config, existingObjectId) {
|
|
|
317
317
|
});
|
|
318
318
|
return Object.freeze(rval);
|
|
319
319
|
}
|
|
320
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvVXRpbHMiLCJyZXF1aXJlIiwiX0tleVByb21pc2VRdWV1ZSIsIl9sb2dnZXIiLCJfcmVzdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXV0aCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsImNhbGwiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJQVVNIX1NUQVRVU19DT0xMRUNUSU9OIiwiSk9CX1NUQVRVU19DT0xMRUNUSU9OIiwicHVzaFByb21pc2VRdWV1ZSIsIktleVByb21pc2VRdWV1ZSIsImpvYlByb21pc2VRdWV1ZSIsImluY3JlbWVudE9wIiwiYW1vdW50IiwiX19vcCIsImZsYXR0ZW4iLCJhcnJheSIsImZsYXR0ZW5lZCIsIkFycmF5IiwiaXNBcnJheSIsImNvbmNhdCIsInN0YXR1c0hhbmRsZXIiLCJjbGFzc05hbWUiLCJkYXRhYmFzZSIsImNyZWF0ZSIsInRoZW4iLCJQcm9taXNlIiwicmVzb2x2ZSIsInVwZGF0ZSIsIndoZXJlIiwiZW5xdWV1ZSIsIm9iamVjdElkIiwiZnJlZXplIiwicmVzdFN0YXR1c0hhbmRsZXIiLCJjb25maWciLCJhdXRoIiwiQXV0aCIsIm1hc3RlciIsInJlc3QiLCJyZXNwb25zZSIsImpvYlN0YXR1c0hhbmRsZXIiLCJqb2JTdGF0dXMiLCJuZXdPYmplY3RJZCIsIm9iamVjdElkU2l6ZSIsImhhbmRsZXIiLCJzZXRSdW5uaW5nIiwiam9iTmFtZSIsInBhcmFtcyIsIm5vdyIsIkRhdGUiLCJzdGF0dXMiLCJjcmVhdGVkQXQiLCJBQ0wiLCJzZXRNZXNzYWdlIiwibWVzc2FnZSIsInNldFN1Y2NlZWRlZCIsInNldEZpbmFsU3RhdHVzIiwic2V0RmFpbGVkIiwiZmluaXNoZWRBdCIsIkVycm9yIiwicHVzaFN0YXR1c0hhbmRsZXIiLCJleGlzdGluZ09iamVjdElkIiwicHVzaFN0YXR1cyIsInNldEluaXRpYWwiLCJib2R5Iiwib3B0aW9ucyIsInB1c2hUaW1lIiwidG9JU09TdHJpbmciLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0IiwicHVzaF90aW1lIiwibG9nZ2VyIiwid2FybiIsImRhdGEiLCJwYXlsb2FkU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsInB1c2hIYXNoIiwiYWxlcnQiLCJtZDVIYXNoIiwicXVlcnkiLCJwYXlsb2FkIiwidGl0bGUiLCJleHBpcnkiLCJleHBpcmF0aW9uX3RpbWUiLCJleHBpcmF0aW9uX2ludGVydmFsIiwibnVtU2VudCIsInJlc3VsdCIsImJhdGNoZXMiLCJ2ZXJib3NlIiwiY291bnQiLCJ0cmFja1NlbnQiLCJyZXN1bHRzIiwiVVRDT2Zmc2V0IiwiY2xlYW51cEluc3RhbGxhdGlvbnMiLCJwcm9jZXNzIiwiZW52IiwiUEFSU0VfU0VSVkVSX0NMRUFOVVBfSU5WQUxJRF9JTlNUQUxMQVRJT05TIiwibnVtRmFpbGVkIiwiZGV2aWNlc1RvUmVtb3ZlIiwicmVkdWNlIiwibWVtbyIsImRldmljZSIsImRldmljZVR5cGUiLCJ0cmFuc21pdHRlZCIsIm9mZnNldEtleSIsImVycm9yIiwiZGV2aWNlVG9rZW4iLCJ0b2tlbiIsImluZm8iLCIkaW4iLCJhY2wiLCJtYW55IiwiY29tcGxldGUiLCJmYWlsIiwiZXJyIiwiZXJyb3JNZXNzYWdlIiwicnZhbCIsImdldCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9TdGF0dXNIYW5kbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1kNUhhc2gsIG5ld09iamVjdElkIH0gZnJvbSAnLi9jcnlwdG9VdGlscyc7XG5pbXBvcnQgeyBLZXlQcm9taXNlUXVldWUgfSBmcm9tICcuL0tleVByb21pc2VRdWV1ZSc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgcmVzdCBmcm9tICcuL3Jlc3QnO1xuaW1wb3J0IEF1dGggZnJvbSAnLi9BdXRoJztcblxuY29uc3QgUFVTSF9TVEFUVVNfQ09MTEVDVElPTiA9ICdfUHVzaFN0YXR1cyc7XG5jb25zdCBKT0JfU1RBVFVTX0NPTExFQ1RJT04gPSAnX0pvYlN0YXR1cyc7XG5cbmNvbnN0IHB1c2hQcm9taXNlUXVldWUgPSBuZXcgS2V5UHJvbWlzZVF1ZXVlKCk7XG5jb25zdCBqb2JQcm9taXNlUXVldWUgPSBuZXcgS2V5UHJvbWlzZVF1ZXVlKCk7XG5cbmNvbnN0IGluY3JlbWVudE9wID0gZnVuY3Rpb24gKG9iamVjdCA9IHt9LCBrZXksIGFtb3VudCA9IDEpIHtcbiAgaWYgKCFvYmplY3Rba2V5XSkge1xuICAgIG9iamVjdFtrZXldID0geyBfX29wOiAnSW5jcmVtZW50JywgYW1vdW50OiBhbW91bnQgfTtcbiAgfSBlbHNlIHtcbiAgICBvYmplY3Rba2V5XS5hbW91bnQgKz0gYW1vdW50O1xuICB9XG4gIHJldHVybiBvYmplY3Rba2V5XTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuKGFycmF5KSB7XG4gIHZhciBmbGF0dGVuZWQgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGFycmF5W2ldKSkge1xuICAgICAgZmxhdHRlbmVkID0gZmxhdHRlbmVkLmNvbmNhdChmbGF0dGVuKGFycmF5W2ldKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsYXR0ZW5lZC5wdXNoKGFycmF5W2ldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZsYXR0ZW5lZDtcbn1cblxuZnVuY3Rpb24gc3RhdHVzSGFuZGxlcihjbGFzc05hbWUsIGRhdGFiYXNlKSB7XG4gIGZ1bmN0aW9uIGNyZWF0ZShvYmplY3QpIHtcbiAgICByZXR1cm4gZGF0YWJhc2UuY3JlYXRlKGNsYXNzTmFtZSwgb2JqZWN0KS50aGVuKCgpID0+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUob2JqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZSh3aGVyZSwgb2JqZWN0KSB7XG4gICAgcmV0dXJuIGpvYlByb21pc2VRdWV1ZS5lbnF1ZXVlKHdoZXJlLm9iamVjdElkLCAoKSA9PiBkYXRhYmFzZS51cGRhdGUoY2xhc3NOYW1lLCB3aGVyZSwgb2JqZWN0KSk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmZyZWV6ZSh7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlc3RTdGF0dXNIYW5kbGVyKGNsYXNzTmFtZSwgY29uZmlnKSB7XG4gIGNvbnN0IGF1dGggPSBBdXRoLm1hc3Rlcihjb25maWcpO1xuICBmdW5jdGlvbiBjcmVhdGUob2JqZWN0KSB7XG4gICAgcmV0dXJuIHJlc3QuY3JlYXRlKGNvbmZpZywgYXV0aCwgY2xhc3NOYW1lLCBvYmplY3QpLnRoZW4oKHsgcmVzcG9uc2UgfSkgPT4ge1xuICAgICAgcmV0dXJuIHsgLi4ub2JqZWN0LCAuLi5yZXNwb25zZSB9O1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlKHdoZXJlLCBvYmplY3QpIHtcbiAgICByZXR1cm4gcHVzaFByb21pc2VRdWV1ZS5lbnF1ZXVlKHdoZXJlLm9iamVjdElkLCAoKSA9PlxuICAgICAgcmVzdFxuICAgICAgICAudXBkYXRlKGNvbmZpZywgYXV0aCwgY2xhc3NOYW1lLCB7IG9iamVjdElkOiB3aGVyZS5vYmplY3RJZCB9LCBvYmplY3QpXG4gICAgICAgIC50aGVuKCh7IHJlc3BvbnNlIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4geyAuLi5vYmplY3QsIC4uLnJlc3BvbnNlIH07XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHtcbiAgICBjcmVhdGUsXG4gICAgdXBkYXRlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGpvYlN0YXR1c0hhbmRsZXIoY29uZmlnKSB7XG4gIGxldCBqb2JTdGF0dXM7XG4gIGNvbnN0IG9iamVjdElkID0gbmV3T2JqZWN0SWQoY29uZmlnLm9iamVjdElkU2l6ZSk7XG4gIGNvbnN0IGRhdGFiYXNlID0gY29uZmlnLmRhdGFiYXNlO1xuICBjb25zdCBoYW5kbGVyID0gc3RhdHVzSGFuZGxlcihKT0JfU1RBVFVTX0NPTExFQ1RJT04sIGRhdGFiYXNlKTtcbiAgY29uc3Qgc2V0UnVubmluZyA9IGZ1bmN0aW9uIChqb2JOYW1lLCBwYXJhbXMpIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGpvYlN0YXR1cyA9IHtcbiAgICAgIG9iamVjdElkLFxuICAgICAgam9iTmFtZSxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHN0YXR1czogJ3J1bm5pbmcnLFxuICAgICAgc291cmNlOiAnYXBpJyxcbiAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgLy8gbG9ja2Rvd24hXG4gICAgICBBQ0w6IHt9LFxuICAgIH07XG5cbiAgICByZXR1cm4gaGFuZGxlci5jcmVhdGUoam9iU3RhdHVzKTtcbiAgfTtcblxuICBjb25zdCBzZXRNZXNzYWdlID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICBpZiAoIW1lc3NhZ2UgfHwgdHlwZW9mIG1lc3NhZ2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVyLnVwZGF0ZSh7IG9iamVjdElkIH0sIHsgbWVzc2FnZSB9KTtcbiAgfTtcblxuICBjb25zdCBzZXRTdWNjZWVkZWQgPSBmdW5jdGlvbiAobWVzc2FnZSkge1xuICAgIHJldHVybiBzZXRGaW5hbFN0YXR1cygnc3VjY2VlZGVkJywgbWVzc2FnZSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0RmFpbGVkID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gc2V0RmluYWxTdGF0dXMoJ2ZhaWxlZCcsIG1lc3NhZ2UpO1xuICB9O1xuXG4gIGNvbnN0IHNldEZpbmFsU3RhdHVzID0gZnVuY3Rpb24gKHN0YXR1cywgbWVzc2FnZSA9IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGZpbmlzaGVkQXQgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHVwZGF0ZSA9IHsgc3RhdHVzLCBmaW5pc2hlZEF0IH07XG4gICAgaWYgKG1lc3NhZ2UgJiYgdHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICB1cGRhdGUubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlIGluc3RhbmNlb2YgRXJyb3IgJiYgdHlwZW9mIG1lc3NhZ2UubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHVwZGF0ZS5tZXNzYWdlID0gbWVzc2FnZS5tZXNzYWdlO1xuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoeyBvYmplY3RJZCB9LCB1cGRhdGUpO1xuICB9O1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHtcbiAgICBzZXRSdW5uaW5nLFxuICAgIHNldFN1Y2NlZWRlZCxcbiAgICBzZXRNZXNzYWdlLFxuICAgIHNldEZhaWxlZCxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwdXNoU3RhdHVzSGFuZGxlcihjb25maWcsIGV4aXN0aW5nT2JqZWN0SWQpIHtcbiAgbGV0IHB1c2hTdGF0dXM7XG4gIGNvbnN0IGRhdGFiYXNlID0gY29uZmlnLmRhdGFiYXNlO1xuICBjb25zdCBoYW5kbGVyID0gcmVzdFN0YXR1c0hhbmRsZXIoUFVTSF9TVEFUVVNfQ09MTEVDVElPTiwgY29uZmlnKTtcbiAgbGV0IG9iamVjdElkID0gZXhpc3RpbmdPYmplY3RJZDtcbiAgY29uc3Qgc2V0SW5pdGlhbCA9IGZ1bmN0aW9uIChib2R5ID0ge30sIHdoZXJlLCBvcHRpb25zID0geyBzb3VyY2U6ICdyZXN0JyB9KSB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBsZXQgcHVzaFRpbWUgPSBub3cudG9JU09TdHJpbmcoKTtcbiAgICBsZXQgc3RhdHVzID0gJ3BlbmRpbmcnO1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYm9keSwgJ3B1c2hfdGltZScpKSB7XG4gICAgICBpZiAoY29uZmlnLmhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0KSB7XG4gICAgICAgIHB1c2hUaW1lID0gYm9keS5wdXNoX3RpbWU7XG4gICAgICAgIHN0YXR1cyA9ICdzY2hlZHVsZWQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oJ1RyeWluZyB0byBzY2hlZHVsZSBhIHB1c2ggd2hpbGUgc2VydmVyIGlzIG5vdCBjb25maWd1cmVkLicpO1xuICAgICAgICBsb2dnZXIud2FybignUHVzaCB3aWxsIGJlIHNlbnQgaW1tZWRpYXRlbHknKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gYm9keS5kYXRhIHx8IHt9O1xuICAgIGNvbnN0IHBheWxvYWRTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICBsZXQgcHVzaEhhc2g7XG4gICAgaWYgKHR5cGVvZiBkYXRhLmFsZXJ0ID09PSAnc3RyaW5nJykge1xuICAgICAgcHVzaEhhc2ggPSBtZDVIYXNoKGRhdGEuYWxlcnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEuYWxlcnQgPT09ICdvYmplY3QnKSB7XG4gICAgICBwdXNoSGFzaCA9IG1kNUhhc2goSlNPTi5zdHJpbmdpZnkoZGF0YS5hbGVydCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwdXNoSGFzaCA9ICdkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZSc7XG4gICAgfVxuICAgIGNvbnN0IG9iamVjdCA9IHtcbiAgICAgIHB1c2hUaW1lLFxuICAgICAgcXVlcnk6IEpTT04uc3RyaW5naWZ5KHdoZXJlKSxcbiAgICAgIHBheWxvYWQ6IHBheWxvYWRTdHJpbmcsXG4gICAgICBzb3VyY2U6IG9wdGlvbnMuc291cmNlLFxuICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICBleHBpcnk6IGJvZHkuZXhwaXJhdGlvbl90aW1lLFxuICAgICAgZXhwaXJhdGlvbl9pbnRlcnZhbDogYm9keS5leHBpcmF0aW9uX2ludGVydmFsLFxuICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICBudW1TZW50OiAwLFxuICAgICAgcHVzaEhhc2gsXG4gICAgICAvLyBsb2NrZG93biFcbiAgICAgIEFDTDoge30sXG4gICAgfTtcbiAgICByZXR1cm4gaGFuZGxlci5jcmVhdGUob2JqZWN0KS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICBvYmplY3RJZCA9IHJlc3VsdC5vYmplY3RJZDtcbiAgICAgIHB1c2hTdGF0dXMgPSB7XG4gICAgICAgIG9iamVjdElkLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocHVzaFN0YXR1cyk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0UnVubmluZyA9IGZ1bmN0aW9uIChiYXRjaGVzKSB7XG4gICAgbG9nZ2VyLnZlcmJvc2UoXG4gICAgICBgX1B1c2hTdGF0dXMgJHtvYmplY3RJZH06IHNlbmRpbmcgcHVzaCB0byBpbnN0YWxsYXRpb25zIHdpdGggJWQgYmF0Y2hlc2AsXG4gICAgICBiYXRjaGVzXG4gICAgKTtcbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogJ3BlbmRpbmcnLFxuICAgICAgICBvYmplY3RJZDogb2JqZWN0SWQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGF0dXM6ICdydW5uaW5nJyxcbiAgICAgICAgY291bnQ6IGJhdGNoZXMsXG4gICAgICB9XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCB0cmFja1NlbnQgPSBmdW5jdGlvbiAoXG4gICAgcmVzdWx0cyxcbiAgICBVVENPZmZzZXQsXG4gICAgY2xlYW51cEluc3RhbGxhdGlvbnMgPSBwcm9jZXNzLmVudi5QQVJTRV9TRVJWRVJfQ0xFQU5VUF9JTlZBTElEX0lOU1RBTExBVElPTlNcbiAgKSB7XG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgbnVtU2VudDogMCxcbiAgICAgIG51bUZhaWxlZDogMCxcbiAgICB9O1xuICAgIGNvbnN0IGRldmljZXNUb1JlbW92ZSA9IFtdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdHMpKSB7XG4gICAgICByZXN1bHRzID0gZmxhdHRlbihyZXN1bHRzKTtcbiAgICAgIHJlc3VsdHMucmVkdWNlKChtZW1vLCByZXN1bHQpID0+IHtcbiAgICAgICAgLy8gQ2Fubm90IGhhbmRsZSB0aGF0XG4gICAgICAgIGlmICghcmVzdWx0IHx8ICFyZXN1bHQuZGV2aWNlIHx8ICFyZXN1bHQuZGV2aWNlLmRldmljZVR5cGUpIHtcbiAgICAgICAgICByZXR1cm4gbWVtbztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXZpY2VUeXBlID0gcmVzdWx0LmRldmljZS5kZXZpY2VUeXBlO1xuICAgICAgICBjb25zdCBrZXkgPSByZXN1bHQudHJhbnNtaXR0ZWRcbiAgICAgICAgICA/IGBzZW50UGVyVHlwZS4ke2RldmljZVR5cGV9YFxuICAgICAgICAgIDogYGZhaWxlZFBlclR5cGUuJHtkZXZpY2VUeXBlfWA7XG4gICAgICAgIG1lbW9ba2V5XSA9IGluY3JlbWVudE9wKG1lbW8sIGtleSk7XG4gICAgICAgIGlmICh0eXBlb2YgVVRDT2Zmc2V0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGNvbnN0IG9mZnNldEtleSA9IHJlc3VsdC50cmFuc21pdHRlZFxuICAgICAgICAgICAgPyBgc2VudFBlclVUQ09mZnNldC4ke1VUQ09mZnNldH1gXG4gICAgICAgICAgICA6IGBmYWlsZWRQZXJVVENPZmZzZXQuJHtVVENPZmZzZXR9YDtcbiAgICAgICAgICBtZW1vW29mZnNldEtleV0gPSBpbmNyZW1lbnRPcChtZW1vLCBvZmZzZXRLZXkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXN1bHQudHJhbnNtaXR0ZWQpIHtcbiAgICAgICAgICBtZW1vLm51bVNlbnQrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICByZXN1bHQgJiZcbiAgICAgICAgICAgIHJlc3VsdC5yZXNwb25zZSAmJlxuICAgICAgICAgICAgcmVzdWx0LnJlc3BvbnNlLmVycm9yICYmXG4gICAgICAgICAgICByZXN1bHQuZGV2aWNlICYmXG4gICAgICAgICAgICByZXN1bHQuZGV2aWNlLmRldmljZVRva2VuXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHJlc3VsdC5kZXZpY2UuZGV2aWNlVG9rZW47XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IHJlc3VsdC5yZXNwb25zZS5lcnJvcjtcbiAgICAgICAgICAgIC8vIEdDTSBlcnJvcnNcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gJ05vdFJlZ2lzdGVyZWQnIHx8IGVycm9yID09PSAnSW52YWxpZFJlZ2lzdHJhdGlvbicpIHtcbiAgICAgICAgICAgICAgZGV2aWNlc1RvUmVtb3ZlLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQVBOUyBlcnJvcnNcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gJ1VucmVnaXN0ZXJlZCcgfHwgZXJyb3IgPT09ICdCYWREZXZpY2VUb2tlbicpIHtcbiAgICAgICAgICAgICAgZGV2aWNlc1RvUmVtb3ZlLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBtZW1vLm51bUZhaWxlZCsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZW1vO1xuICAgICAgfSwgdXBkYXRlKTtcbiAgICB9XG5cbiAgICBsb2dnZXIudmVyYm9zZShcbiAgICAgIGBfUHVzaFN0YXR1cyAke29iamVjdElkfTogc2VudCBwdXNoISAlZCBzdWNjZXNzLCAlZCBmYWlsdXJlc2AsXG4gICAgICB1cGRhdGUubnVtU2VudCxcbiAgICAgIHVwZGF0ZS5udW1GYWlsZWRcbiAgICApO1xuICAgIGxvZ2dlci52ZXJib3NlKGBfUHVzaFN0YXR1cyAke29iamVjdElkfTogbmVlZHMgY2xlYW51cGAsIHtcbiAgICAgIGRldmljZXNUb1JlbW92ZSxcbiAgICB9KTtcbiAgICBbJ251bVNlbnQnLCAnbnVtRmFpbGVkJ10uZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKHVwZGF0ZVtrZXldID4gMCkge1xuICAgICAgICB1cGRhdGVba2V5XSA9IHtcbiAgICAgICAgICBfX29wOiAnSW5jcmVtZW50JyxcbiAgICAgICAgICBhbW91bnQ6IHVwZGF0ZVtrZXldLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZVtrZXldO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGRldmljZXNUb1JlbW92ZS5sZW5ndGggPiAwICYmIGNsZWFudXBJbnN0YWxsYXRpb25zKSB7XG4gICAgICBsb2dnZXIuaW5mbyhgUmVtb3ZpbmcgZGV2aWNlIHRva2VucyBvbiAke2RldmljZXNUb1JlbW92ZS5sZW5ndGh9IF9JbnN0YWxsYXRpb25zYCk7XG4gICAgICBkYXRhYmFzZS51cGRhdGUoXG4gICAgICAgICdfSW5zdGFsbGF0aW9uJyxcbiAgICAgICAgeyBkZXZpY2VUb2tlbjogeyAkaW46IGRldmljZXNUb1JlbW92ZSB9IH0sXG4gICAgICAgIHsgZGV2aWNlVG9rZW46IHsgX19vcDogJ0RlbGV0ZScgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgYWNsOiB1bmRlZmluZWQsXG4gICAgICAgICAgbWFueTogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgaW5jcmVtZW50T3AodXBkYXRlLCAnY291bnQnLCAtMSk7XG4gICAgdXBkYXRlLnN0YXR1cyA9ICdydW5uaW5nJztcblxuICAgIHJldHVybiBoYW5kbGVyLnVwZGF0ZSh7IG9iamVjdElkIH0sIHVwZGF0ZSkudGhlbihyZXMgPT4ge1xuICAgICAgaWYgKHJlcyAmJiByZXMuY291bnQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBjb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoXG4gICAgICB7IG9iamVjdElkIH0sXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogJ3N1Y2NlZWRlZCcsXG4gICAgICAgIGNvdW50OiB7IF9fb3A6ICdEZWxldGUnIH0sXG4gICAgICB9XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBmYWlsID0gZnVuY3Rpb24gKGVycikge1xuICAgIGlmICh0eXBlb2YgZXJyID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyID0geyBtZXNzYWdlOiBlcnIgfTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgZXJyb3JNZXNzYWdlOiBlcnIsXG4gICAgICBzdGF0dXM6ICdmYWlsZWQnLFxuICAgIH07XG4gICAgcmV0dXJuIGhhbmRsZXIudXBkYXRlKHsgb2JqZWN0SWQgfSwgdXBkYXRlKTtcbiAgfTtcblxuICBjb25zdCBydmFsID0ge1xuICAgIHNldEluaXRpYWwsXG4gICAgc2V0UnVubmluZyxcbiAgICB0cmFja1NlbnQsXG4gICAgY29tcGxldGUsXG4gICAgZmFpbCxcbiAgfTtcblxuICAvLyBkZWZpbmUgb2JqZWN0SWQgdG8gYmUgZHluYW1pY1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocnZhbCwgJ29iamVjdElkJywge1xuICAgIGdldDogKCkgPT4gb2JqZWN0SWQsXG4gIH0pO1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHJ2YWwpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFlBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFELHNCQUFBLENBQUFKLE9BQUE7QUFBMEIsU0FBQUksdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFBQSxTQUFBRyxRQUFBQyxNQUFBLEVBQUFDLGNBQUEsUUFBQUMsSUFBQSxHQUFBQyxNQUFBLENBQUFELElBQUEsQ0FBQUYsTUFBQSxPQUFBRyxNQUFBLENBQUFDLHFCQUFBLFFBQUFDLE9BQUEsR0FBQUYsTUFBQSxDQUFBQyxxQkFBQSxDQUFBSixNQUFBLEdBQUFDLGNBQUEsS0FBQUksT0FBQSxHQUFBQSxPQUFBLENBQUFDLE1BQUEsV0FBQUMsR0FBQSxXQUFBSixNQUFBLENBQUFLLHdCQUFBLENBQUFSLE1BQUEsRUFBQU8sR0FBQSxFQUFBRSxVQUFBLE9BQUFQLElBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULElBQUEsRUFBQUcsT0FBQSxZQUFBSCxJQUFBO0FBQUEsU0FBQVUsY0FBQUMsTUFBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBQUFGLENBQUEsVUFBQUcsTUFBQSxXQUFBRixTQUFBLENBQUFE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
|
|
320
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvVXRpbHMiLCJyZXF1aXJlIiwiX0tleVByb21pc2VRdWV1ZSIsIl9sb2dnZXIiLCJfcmVzdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXV0aCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImtleSIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJQVVNIX1NUQVRVU19DT0xMRUNUSU9OIiwiSk9CX1NUQVRVU19DT0xMRUNUSU9OIiwicHVzaFByb21pc2VRdWV1ZSIsIktleVByb21pc2VRdWV1ZSIsImpvYlByb21pc2VRdWV1ZSIsImluY3JlbWVudE9wIiwib2JqZWN0IiwiYW1vdW50IiwiX19vcCIsImZsYXR0ZW4iLCJhcnJheSIsImZsYXR0ZW5lZCIsIkFycmF5IiwiaXNBcnJheSIsImNvbmNhdCIsInN0YXR1c0hhbmRsZXIiLCJjbGFzc05hbWUiLCJkYXRhYmFzZSIsImNyZWF0ZSIsInRoZW4iLCJQcm9taXNlIiwicmVzb2x2ZSIsInVwZGF0ZSIsIndoZXJlIiwiZW5xdWV1ZSIsIm9iamVjdElkIiwiZnJlZXplIiwicmVzdFN0YXR1c0hhbmRsZXIiLCJjb25maWciLCJhdXRoIiwiQXV0aCIsIm1hc3RlciIsInJlc3QiLCJyZXNwb25zZSIsImpvYlN0YXR1c0hhbmRsZXIiLCJqb2JTdGF0dXMiLCJuZXdPYmplY3RJZCIsIm9iamVjdElkU2l6ZSIsImhhbmRsZXIiLCJzZXRSdW5uaW5nIiwiam9iTmFtZSIsInBhcmFtcyIsIm5vdyIsIkRhdGUiLCJzdGF0dXMiLCJzb3VyY2UiLCJjcmVhdGVkQXQiLCJBQ0wiLCJzZXRNZXNzYWdlIiwibWVzc2FnZSIsInNldFN1Y2NlZWRlZCIsInNldEZpbmFsU3RhdHVzIiwic2V0RmFpbGVkIiwidW5kZWZpbmVkIiwiZmluaXNoZWRBdCIsIkVycm9yIiwicHVzaFN0YXR1c0hhbmRsZXIiLCJleGlzdGluZ09iamVjdElkIiwicHVzaFN0YXR1cyIsInNldEluaXRpYWwiLCJib2R5Iiwib3B0aW9ucyIsInB1c2hUaW1lIiwidG9JU09TdHJpbmciLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0IiwicHVzaF90aW1lIiwibG9nZ2VyIiwid2FybiIsImRhdGEiLCJwYXlsb2FkU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsInB1c2hIYXNoIiwiYWxlcnQiLCJtZDVIYXNoIiwicXVlcnkiLCJwYXlsb2FkIiwidGl0bGUiLCJleHBpcnkiLCJleHBpcmF0aW9uX3RpbWUiLCJleHBpcmF0aW9uX2ludGVydmFsIiwibnVtU2VudCIsInJlc3VsdCIsImJhdGNoZXMiLCJ2ZXJib3NlIiwiY291bnQiLCJ0cmFja1NlbnQiLCJyZXN1bHRzIiwiVVRDT2Zmc2V0IiwiY2xlYW51cEluc3RhbGxhdGlvbnMiLCJwcm9jZXNzIiwiZW52IiwiUEFSU0VfU0VSVkVSX0NMRUFOVVBfSU5WQUxJRF9JTlNUQUxMQVRJT05TIiwibnVtRmFpbGVkIiwiZGV2aWNlc1RvUmVtb3ZlIiwicmVkdWNlIiwibWVtbyIsImRldmljZSIsImRldmljZVR5cGUiLCJ0cmFuc21pdHRlZCIsIm9mZnNldEtleSIsImVycm9yIiwiZGV2aWNlVG9rZW4iLCJ0b2tlbiIsImluZm8iLCIkaW4iLCJhY2wiLCJtYW55IiwicmVzIiwiY29tcGxldGUiLCJmYWlsIiwiZXJyIiwiZXJyb3JNZXNzYWdlIiwicnZhbCIsImdldCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9TdGF0dXNIYW5kbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1kNUhhc2gsIG5ld09iamVjdElkIH0gZnJvbSAnLi9jcnlwdG9VdGlscyc7XG5pbXBvcnQgeyBLZXlQcm9taXNlUXVldWUgfSBmcm9tICcuL0tleVByb21pc2VRdWV1ZSc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgcmVzdCBmcm9tICcuL3Jlc3QnO1xuaW1wb3J0IEF1dGggZnJvbSAnLi9BdXRoJztcblxuY29uc3QgUFVTSF9TVEFUVVNfQ09MTEVDVElPTiA9ICdfUHVzaFN0YXR1cyc7XG5jb25zdCBKT0JfU1RBVFVTX0NPTExFQ1RJT04gPSAnX0pvYlN0YXR1cyc7XG5cbmNvbnN0IHB1c2hQcm9taXNlUXVldWUgPSBuZXcgS2V5UHJvbWlzZVF1ZXVlKCk7XG5jb25zdCBqb2JQcm9taXNlUXVldWUgPSBuZXcgS2V5UHJvbWlzZVF1ZXVlKCk7XG5cbmNvbnN0IGluY3JlbWVudE9wID0gZnVuY3Rpb24gKG9iamVjdCA9IHt9LCBrZXksIGFtb3VudCA9IDEpIHtcbiAgaWYgKCFvYmplY3Rba2V5XSkge1xuICAgIG9iamVjdFtrZXldID0geyBfX29wOiAnSW5jcmVtZW50JywgYW1vdW50OiBhbW91bnQgfTtcbiAgfSBlbHNlIHtcbiAgICBvYmplY3Rba2V5XS5hbW91bnQgKz0gYW1vdW50O1xuICB9XG4gIHJldHVybiBvYmplY3Rba2V5XTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuKGFycmF5KSB7XG4gIHZhciBmbGF0dGVuZWQgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGFycmF5W2ldKSkge1xuICAgICAgZmxhdHRlbmVkID0gZmxhdHRlbmVkLmNvbmNhdChmbGF0dGVuKGFycmF5W2ldKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsYXR0ZW5lZC5wdXNoKGFycmF5W2ldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZsYXR0ZW5lZDtcbn1cblxuZnVuY3Rpb24gc3RhdHVzSGFuZGxlcihjbGFzc05hbWUsIGRhdGFiYXNlKSB7XG4gIGZ1bmN0aW9uIGNyZWF0ZShvYmplY3QpIHtcbiAgICByZXR1cm4gZGF0YWJhc2UuY3JlYXRlKGNsYXNzTmFtZSwgb2JqZWN0KS50aGVuKCgpID0+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUob2JqZWN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZSh3aGVyZSwgb2JqZWN0KSB7XG4gICAgcmV0dXJuIGpvYlByb21pc2VRdWV1ZS5lbnF1ZXVlKHdoZXJlLm9iamVjdElkLCAoKSA9PiBkYXRhYmFzZS51cGRhdGUoY2xhc3NOYW1lLCB3aGVyZSwgb2JqZWN0KSk7XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmZyZWV6ZSh7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlc3RTdGF0dXNIYW5kbGVyKGNsYXNzTmFtZSwgY29uZmlnKSB7XG4gIGNvbnN0IGF1dGggPSBBdXRoLm1hc3Rlcihjb25maWcpO1xuICBmdW5jdGlvbiBjcmVhdGUob2JqZWN0KSB7XG4gICAgcmV0dXJuIHJlc3QuY3JlYXRlKGNvbmZpZywgYXV0aCwgY2xhc3NOYW1lLCBvYmplY3QpLnRoZW4oKHsgcmVzcG9uc2UgfSkgPT4ge1xuICAgICAgcmV0dXJuIHsgLi4ub2JqZWN0LCAuLi5yZXNwb25zZSB9O1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBkYXRlKHdoZXJlLCBvYmplY3QpIHtcbiAgICByZXR1cm4gcHVzaFByb21pc2VRdWV1ZS5lbnF1ZXVlKHdoZXJlLm9iamVjdElkLCAoKSA9PlxuICAgICAgcmVzdFxuICAgICAgICAudXBkYXRlKGNvbmZpZywgYXV0aCwgY2xhc3NOYW1lLCB7IG9iamVjdElkOiB3aGVyZS5vYmplY3RJZCB9LCBvYmplY3QpXG4gICAgICAgIC50aGVuKCh7IHJlc3BvbnNlIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4geyAuLi5vYmplY3QsIC4uLnJlc3BvbnNlIH07XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHtcbiAgICBjcmVhdGUsXG4gICAgdXBkYXRlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGpvYlN0YXR1c0hhbmRsZXIoY29uZmlnKSB7XG4gIGxldCBqb2JTdGF0dXM7XG4gIGNvbnN0IG9iamVjdElkID0gbmV3T2JqZWN0SWQoY29uZmlnLm9iamVjdElkU2l6ZSk7XG4gIGNvbnN0IGRhdGFiYXNlID0gY29uZmlnLmRhdGFiYXNlO1xuICBjb25zdCBoYW5kbGVyID0gc3RhdHVzSGFuZGxlcihKT0JfU1RBVFVTX0NPTExFQ1RJT04sIGRhdGFiYXNlKTtcbiAgY29uc3Qgc2V0UnVubmluZyA9IGZ1bmN0aW9uIChqb2JOYW1lLCBwYXJhbXMpIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGpvYlN0YXR1cyA9IHtcbiAgICAgIG9iamVjdElkLFxuICAgICAgam9iTmFtZSxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHN0YXR1czogJ3J1bm5pbmcnLFxuICAgICAgc291cmNlOiAnYXBpJyxcbiAgICAgIGNyZWF0ZWRBdDogbm93LFxuICAgICAgLy8gbG9ja2Rvd24hXG4gICAgICBBQ0w6IHt9LFxuICAgIH07XG5cbiAgICByZXR1cm4gaGFuZGxlci5jcmVhdGUoam9iU3RhdHVzKTtcbiAgfTtcblxuICBjb25zdCBzZXRNZXNzYWdlID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICBpZiAoIW1lc3NhZ2UgfHwgdHlwZW9mIG1lc3NhZ2UgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVyLnVwZGF0ZSh7IG9iamVjdElkIH0sIHsgbWVzc2FnZSB9KTtcbiAgfTtcblxuICBjb25zdCBzZXRTdWNjZWVkZWQgPSBmdW5jdGlvbiAobWVzc2FnZSkge1xuICAgIHJldHVybiBzZXRGaW5hbFN0YXR1cygnc3VjY2VlZGVkJywgbWVzc2FnZSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0RmFpbGVkID0gZnVuY3Rpb24gKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gc2V0RmluYWxTdGF0dXMoJ2ZhaWxlZCcsIG1lc3NhZ2UpO1xuICB9O1xuXG4gIGNvbnN0IHNldEZpbmFsU3RhdHVzID0gZnVuY3Rpb24gKHN0YXR1cywgbWVzc2FnZSA9IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGZpbmlzaGVkQXQgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHVwZGF0ZSA9IHsgc3RhdHVzLCBmaW5pc2hlZEF0IH07XG4gICAgaWYgKG1lc3NhZ2UgJiYgdHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICB1cGRhdGUubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlIGluc3RhbmNlb2YgRXJyb3IgJiYgdHlwZW9mIG1lc3NhZ2UubWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHVwZGF0ZS5tZXNzYWdlID0gbWVzc2FnZS5tZXNzYWdlO1xuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoeyBvYmplY3RJZCB9LCB1cGRhdGUpO1xuICB9O1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHtcbiAgICBzZXRSdW5uaW5nLFxuICAgIHNldFN1Y2NlZWRlZCxcbiAgICBzZXRNZXNzYWdlLFxuICAgIHNldEZhaWxlZCxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwdXNoU3RhdHVzSGFuZGxlcihjb25maWcsIGV4aXN0aW5nT2JqZWN0SWQpIHtcbiAgbGV0IHB1c2hTdGF0dXM7XG4gIGNvbnN0IGRhdGFiYXNlID0gY29uZmlnLmRhdGFiYXNlO1xuICBjb25zdCBoYW5kbGVyID0gcmVzdFN0YXR1c0hhbmRsZXIoUFVTSF9TVEFUVVNfQ09MTEVDVElPTiwgY29uZmlnKTtcbiAgbGV0IG9iamVjdElkID0gZXhpc3RpbmdPYmplY3RJZDtcbiAgY29uc3Qgc2V0SW5pdGlhbCA9IGZ1bmN0aW9uIChib2R5ID0ge30sIHdoZXJlLCBvcHRpb25zID0geyBzb3VyY2U6ICdyZXN0JyB9KSB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBsZXQgcHVzaFRpbWUgPSBub3cudG9JU09TdHJpbmcoKTtcbiAgICBsZXQgc3RhdHVzID0gJ3BlbmRpbmcnO1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYm9keSwgJ3B1c2hfdGltZScpKSB7XG4gICAgICBpZiAoY29uZmlnLmhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0KSB7XG4gICAgICAgIHB1c2hUaW1lID0gYm9keS5wdXNoX3RpbWU7XG4gICAgICAgIHN0YXR1cyA9ICdzY2hlZHVsZWQnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oJ1RyeWluZyB0byBzY2hlZHVsZSBhIHB1c2ggd2hpbGUgc2VydmVyIGlzIG5vdCBjb25maWd1cmVkLicpO1xuICAgICAgICBsb2dnZXIud2FybignUHVzaCB3aWxsIGJlIHNlbnQgaW1tZWRpYXRlbHknKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gYm9keS5kYXRhIHx8IHt9O1xuICAgIGNvbnN0IHBheWxvYWRTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICBsZXQgcHVzaEhhc2g7XG4gICAgaWYgKHR5cGVvZiBkYXRhLmFsZXJ0ID09PSAnc3RyaW5nJykge1xuICAgICAgcHVzaEhhc2ggPSBtZDVIYXNoKGRhdGEuYWxlcnQpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEuYWxlcnQgPT09ICdvYmplY3QnKSB7XG4gICAgICBwdXNoSGFzaCA9IG1kNUhhc2goSlNPTi5zdHJpbmdpZnkoZGF0YS5hbGVydCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwdXNoSGFzaCA9ICdkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZSc7XG4gICAgfVxuICAgIGNvbnN0IG9iamVjdCA9IHtcbiAgICAgIHB1c2hUaW1lLFxuICAgICAgcXVlcnk6IEpTT04uc3RyaW5naWZ5KHdoZXJlKSxcbiAgICAgIHBheWxvYWQ6IHBheWxvYWRTdHJpbmcsXG4gICAgICBzb3VyY2U6IG9wdGlvbnMuc291cmNlLFxuICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgICBleHBpcnk6IGJvZHkuZXhwaXJhdGlvbl90aW1lLFxuICAgICAgZXhwaXJhdGlvbl9pbnRlcnZhbDogYm9keS5leHBpcmF0aW9uX2ludGVydmFsLFxuICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICBudW1TZW50OiAwLFxuICAgICAgcHVzaEhhc2gsXG4gICAgICAvLyBsb2NrZG93biFcbiAgICAgIEFDTDoge30sXG4gICAgfTtcbiAgICByZXR1cm4gaGFuZGxlci5jcmVhdGUob2JqZWN0KS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICBvYmplY3RJZCA9IHJlc3VsdC5vYmplY3RJZDtcbiAgICAgIHB1c2hTdGF0dXMgPSB7XG4gICAgICAgIG9iamVjdElkLFxuICAgICAgfTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocHVzaFN0YXR1cyk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0UnVubmluZyA9IGZ1bmN0aW9uIChiYXRjaGVzKSB7XG4gICAgbG9nZ2VyLnZlcmJvc2UoXG4gICAgICBgX1B1c2hTdGF0dXMgJHtvYmplY3RJZH06IHNlbmRpbmcgcHVzaCB0byBpbnN0YWxsYXRpb25zIHdpdGggJWQgYmF0Y2hlc2AsXG4gICAgICBiYXRjaGVzXG4gICAgKTtcbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogJ3BlbmRpbmcnLFxuICAgICAgICBvYmplY3RJZDogb2JqZWN0SWQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGF0dXM6ICdydW5uaW5nJyxcbiAgICAgICAgY291bnQ6IGJhdGNoZXMsXG4gICAgICB9XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCB0cmFja1NlbnQgPSBmdW5jdGlvbiAoXG4gICAgcmVzdWx0cyxcbiAgICBVVENPZmZzZXQsXG4gICAgY2xlYW51cEluc3RhbGxhdGlvbnMgPSBwcm9jZXNzLmVudi5QQVJTRV9TRVJWRVJfQ0xFQU5VUF9JTlZBTElEX0lOU1RBTExBVElPTlNcbiAgKSB7XG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgbnVtU2VudDogMCxcbiAgICAgIG51bUZhaWxlZDogMCxcbiAgICB9O1xuICAgIGNvbnN0IGRldmljZXNUb1JlbW92ZSA9IFtdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdHMpKSB7XG4gICAgICByZXN1bHRzID0gZmxhdHRlbihyZXN1bHRzKTtcbiAgICAgIHJlc3VsdHMucmVkdWNlKChtZW1vLCByZXN1bHQpID0+IHtcbiAgICAgICAgLy8gQ2Fubm90IGhhbmRsZSB0aGF0XG4gICAgICAgIGlmICghcmVzdWx0IHx8ICFyZXN1bHQuZGV2aWNlIHx8ICFyZXN1bHQuZGV2aWNlLmRldmljZVR5cGUpIHtcbiAgICAgICAgICByZXR1cm4gbWVtbztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZXZpY2VUeXBlID0gcmVzdWx0LmRldmljZS5kZXZpY2VUeXBlO1xuICAgICAgICBjb25zdCBrZXkgPSByZXN1bHQudHJhbnNtaXR0ZWRcbiAgICAgICAgICA/IGBzZW50UGVyVHlwZS4ke2RldmljZVR5cGV9YFxuICAgICAgICAgIDogYGZhaWxlZFBlclR5cGUuJHtkZXZpY2VUeXBlfWA7XG4gICAgICAgIG1lbW9ba2V5XSA9IGluY3JlbWVudE9wKG1lbW8sIGtleSk7XG4gICAgICAgIGlmICh0eXBlb2YgVVRDT2Zmc2V0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIGNvbnN0IG9mZnNldEtleSA9IHJlc3VsdC50cmFuc21pdHRlZFxuICAgICAgICAgICAgPyBgc2VudFBlclVUQ09mZnNldC4ke1VUQ09mZnNldH1gXG4gICAgICAgICAgICA6IGBmYWlsZWRQZXJVVENPZmZzZXQuJHtVVENPZmZzZXR9YDtcbiAgICAgICAgICBtZW1vW29mZnNldEtleV0gPSBpbmNyZW1lbnRPcChtZW1vLCBvZmZzZXRLZXkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXN1bHQudHJhbnNtaXR0ZWQpIHtcbiAgICAgICAgICBtZW1vLm51bVNlbnQrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICByZXN1bHQgJiZcbiAgICAgICAgICAgIHJlc3VsdC5yZXNwb25zZSAmJlxuICAgICAgICAgICAgcmVzdWx0LnJlc3BvbnNlLmVycm9yICYmXG4gICAgICAgICAgICByZXN1bHQuZGV2aWNlICYmXG4gICAgICAgICAgICByZXN1bHQuZGV2aWNlLmRldmljZVRva2VuXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCB0b2tlbiA9IHJlc3VsdC5kZXZpY2UuZGV2aWNlVG9rZW47XG4gICAgICAgICAgICBjb25zdCBlcnJvciA9IHJlc3VsdC5yZXNwb25zZS5lcnJvcjtcbiAgICAgICAgICAgIC8vIEdDTSBlcnJvcnNcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gJ05vdFJlZ2lzdGVyZWQnIHx8IGVycm9yID09PSAnSW52YWxpZFJlZ2lzdHJhdGlvbicpIHtcbiAgICAgICAgICAgICAgZGV2aWNlc1RvUmVtb3ZlLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQVBOUyBlcnJvcnNcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gJ1VucmVnaXN0ZXJlZCcgfHwgZXJyb3IgPT09ICdCYWREZXZpY2VUb2tlbicpIHtcbiAgICAgICAgICAgICAgZGV2aWNlc1RvUmVtb3ZlLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBtZW1vLm51bUZhaWxlZCsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZW1vO1xuICAgICAgfSwgdXBkYXRlKTtcbiAgICB9XG5cbiAgICBsb2dnZXIudmVyYm9zZShcbiAgICAgIGBfUHVzaFN0YXR1cyAke29iamVjdElkfTogc2VudCBwdXNoISAlZCBzdWNjZXNzLCAlZCBmYWlsdXJlc2AsXG4gICAgICB1cGRhdGUubnVtU2VudCxcbiAgICAgIHVwZGF0ZS5udW1GYWlsZWRcbiAgICApO1xuICAgIGxvZ2dlci52ZXJib3NlKGBfUHVzaFN0YXR1cyAke29iamVjdElkfTogbmVlZHMgY2xlYW51cGAsIHtcbiAgICAgIGRldmljZXNUb1JlbW92ZSxcbiAgICB9KTtcbiAgICBbJ251bVNlbnQnLCAnbnVtRmFpbGVkJ10uZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKHVwZGF0ZVtrZXldID4gMCkge1xuICAgICAgICB1cGRhdGVba2V5XSA9IHtcbiAgICAgICAgICBfX29wOiAnSW5jcmVtZW50JyxcbiAgICAgICAgICBhbW91bnQ6IHVwZGF0ZVtrZXldLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIHVwZGF0ZVtrZXldO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGRldmljZXNUb1JlbW92ZS5sZW5ndGggPiAwICYmIGNsZWFudXBJbnN0YWxsYXRpb25zKSB7XG4gICAgICBsb2dnZXIuaW5mbyhgUmVtb3ZpbmcgZGV2aWNlIHRva2VucyBvbiAke2RldmljZXNUb1JlbW92ZS5sZW5ndGh9IF9JbnN0YWxsYXRpb25zYCk7XG4gICAgICBkYXRhYmFzZS51cGRhdGUoXG4gICAgICAgICdfSW5zdGFsbGF0aW9uJyxcbiAgICAgICAgeyBkZXZpY2VUb2tlbjogeyAkaW46IGRldmljZXNUb1JlbW92ZSB9IH0sXG4gICAgICAgIHsgZGV2aWNlVG9rZW46IHsgX19vcDogJ0RlbGV0ZScgfSB9LFxuICAgICAgICB7XG4gICAgICAgICAgYWNsOiB1bmRlZmluZWQsXG4gICAgICAgICAgbWFueTogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgaW5jcmVtZW50T3AodXBkYXRlLCAnY291bnQnLCAtMSk7XG4gICAgdXBkYXRlLnN0YXR1cyA9ICdydW5uaW5nJztcblxuICAgIHJldHVybiBoYW5kbGVyLnVwZGF0ZSh7IG9iamVjdElkIH0sIHVwZGF0ZSkudGhlbihyZXMgPT4ge1xuICAgICAgaWYgKHJlcyAmJiByZXMuY291bnQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGxldGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBjb21wbGV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gaGFuZGxlci51cGRhdGUoXG4gICAgICB7IG9iamVjdElkIH0sXG4gICAgICB7XG4gICAgICAgIHN0YXR1czogJ3N1Y2NlZWRlZCcsXG4gICAgICAgIGNvdW50OiB7IF9fb3A6ICdEZWxldGUnIH0sXG4gICAgICB9XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBmYWlsID0gZnVuY3Rpb24gKGVycikge1xuICAgIGlmICh0eXBlb2YgZXJyID09PSAnc3RyaW5nJykge1xuICAgICAgZXJyID0geyBtZXNzYWdlOiBlcnIgfTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlID0ge1xuICAgICAgZXJyb3JNZXNzYWdlOiBlcnIsXG4gICAgICBzdGF0dXM6ICdmYWlsZWQnLFxuICAgIH07XG4gICAgcmV0dXJuIGhhbmRsZXIudXBkYXRlKHsgb2JqZWN0SWQgfSwgdXBkYXRlKTtcbiAgfTtcblxuICBjb25zdCBydmFsID0ge1xuICAgIHNldEluaXRpYWwsXG4gICAgc2V0UnVubmluZyxcbiAgICB0cmFja1NlbnQsXG4gICAgY29tcGxldGUsXG4gICAgZmFpbCxcbiAgfTtcblxuICAvLyBkZWZpbmUgb2JqZWN0SWQgdG8gYmUgZHluYW1pY1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocnZhbCwgJ29iamVjdElkJywge1xuICAgIGdldDogKCkgPT4gb2JqZWN0SWQsXG4gIH0pO1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHJ2YWwpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFlBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFELHNCQUFBLENBQUFKLE9BQUE7QUFBMEIsU0FBQUksdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFBQSxTQUFBRyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFB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
|
package/lib/TestUtils.js
CHANGED
|
@@ -18,7 +18,7 @@ function destroyAllDataPermanently(fast) {
|
|
|
18
18
|
return Promise.all(Object.keys(_cache.default.cache).map(appId => {
|
|
19
19
|
const app = _cache.default.get(appId);
|
|
20
20
|
const deletePromises = [];
|
|
21
|
-
if (app.cacheAdapter) {
|
|
21
|
+
if (app.cacheAdapter && app.cacheAdapter.clear) {
|
|
22
22
|
deletePromises.push(app.cacheAdapter.clear());
|
|
23
23
|
}
|
|
24
24
|
if (app.databaseController) {
|
|
@@ -30,4 +30,4 @@ function destroyAllDataPermanently(fast) {
|
|
|
30
30
|
return Promise.all(deletePromises);
|
|
31
31
|
}));
|
|
32
32
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2FjaGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9TY2hlbWFDYWNoZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiZGVzdHJveUFsbERhdGFQZXJtYW5lbnRseSIsImZhc3QiLCJwcm9jZXNzIiwiZW52IiwiVEVTVElORyIsIlByb21pc2UiLCJhbGwiLCJPYmplY3QiLCJrZXlzIiwiQXBwQ2FjaGUiLCJjYWNoZSIsIm1hcCIsImFwcElkIiwiYXBwIiwiZ2V0IiwiZGVsZXRlUHJvbWlzZXMiLCJjYWNoZUFkYXB0ZXIiLCJjbGVhciIsInB1c2giLCJkYXRhYmFzZUNvbnRyb2xsZXIiLCJkZWxldGVFdmVyeXRoaW5nIiwiZGF0YWJhc2VBZGFwdGVyIiwiU2NoZW1hQ2FjaGUiLCJkZWxldGVBbGxDbGFzc2VzIl0sInNvdXJjZXMiOlsiLi4vc3JjL1Rlc3RVdGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXBwQ2FjaGUgZnJvbSAnLi9jYWNoZSc7XG5pbXBvcnQgU2NoZW1hQ2FjaGUgZnJvbSAnLi9BZGFwdGVycy9DYWNoZS9TY2hlbWFDYWNoZSc7XG5cbi8qKlxuICogRGVzdHJveXMgYWxsIGRhdGEgaW4gdGhlIGRhdGFiYXNlXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGZhc3Qgc2V0IHRvIHRydWUgaWYgaXQncyBvayB0byBqdXN0IGRyb3Agb2JqZWN0cyBhbmQgbm90IGluZGV4ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXN0cm95QWxsRGF0YVBlcm1hbmVudGx5KGZhc3QpIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5URVNUSU5HKSB7XG4gICAgdGhyb3cgJ09ubHkgc3VwcG9ydGVkIGluIHRlc3QgZW52aXJvbm1lbnQnO1xuICB9XG4gIHJldHVybiBQcm9taXNlLmFsbChcbiAgICBPYmplY3Qua2V5cyhBcHBDYWNoZS5jYWNoZSkubWFwKGFwcElkID0+IHtcbiAgICAgIGNvbnN0IGFwcCA9IEFwcENhY2hlLmdldChhcHBJZCk7XG4gICAgICBjb25zdCBkZWxldGVQcm9taXNlcyA9IFtdO1xuICAgICAgaWYgKGFwcC5jYWNoZUFkYXB0ZXIgJiYgYXBwLmNhY2hlQWRhcHRlci5jbGVhcikge1xuICAgICAgICBkZWxldGVQcm9taXNlcy5wdXNoKGFwcC5jYWNoZUFkYXB0ZXIuY2xlYXIoKSk7XG4gICAgICB9XG4gICAgICBpZiAoYXBwLmRhdGFiYXNlQ29udHJvbGxlcikge1xuICAgICAgICBkZWxldGVQcm9taXNlcy5wdXNoKGFwcC5kYXRhYmFzZUNvbnRyb2xsZXIuZGVsZXRlRXZlcnl0aGluZyhmYXN0KSk7XG4gICAgICB9IGVsc2UgaWYgKGFwcC5kYXRhYmFzZUFkYXB0ZXIpIHtcbiAgICAgICAgU2NoZW1hQ2FjaGUuY2xlYXIoKTtcbiAgICAgICAgZGVsZXRlUHJvbWlzZXMucHVzaChhcHAuZGF0YWJhc2VBZGFwdGVyLmRlbGV0ZUFsbENsYXNzZXMoZmFzdCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGRlbGV0ZVByb21pc2VzKTtcbiAgICB9KVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFBdUQsU0FBQUQsdUJBQUFHLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTRyx5QkFBeUJBLENBQUNDLElBQUksRUFBRTtFQUM5QyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxPQUFPLEVBQUU7SUFDeEIsTUFBTSxvQ0FBb0M7RUFDNUM7RUFDQSxPQUFPQyxPQUFPLENBQUNDLEdBQUcsQ0FDaEJDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDQyxjQUFRLENBQUNDLEtBQUssQ0FBQyxDQUFDQyxHQUFHLENBQUNDLEtBQUssSUFBSTtJQUN2QyxNQUFNQyxHQUFHLEdBQUdKLGNBQVEsQ0FBQ0ssR0FBRyxDQUFDRixLQUFLLENBQUM7SUFDL0IsTUFBTUcsY0FBYyxHQUFHLEVBQUU7SUFDekIsSUFBSUYsR0FBRyxDQUFDRyxZQUFZLElBQUlILEdBQUcsQ0FBQ0csWUFBWSxDQUFDQyxLQUFLLEVBQUU7TUFDOUNGLGNBQWMsQ0FBQ0csSUFBSSxDQUFDTCxHQUFHLENBQUNHLFlBQVksQ0FBQ0MsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQztJQUNBLElBQUlKLEdBQUcsQ0FBQ00sa0JBQWtCLEVBQUU7TUFDMUJKLGNBQWMsQ0FBQ0csSUFBSSxDQUFDTCxHQUFHLENBQUNNLGtCQUFrQixDQUFDQyxnQkFBZ0IsQ0FBQ25CLElBQUksQ0FBQyxDQUFDO0lBQ3BFLENBQUMsTUFBTSxJQUFJWSxHQUFHLENBQUNRLGVBQWUsRUFBRTtNQUM5QkMsb0JBQVcsQ0FBQ0wsS0FBSyxDQUFDLENBQUM7TUFDbkJGLGNBQWMsQ0FBQ0csSUFBSSxDQUFDTCxHQUFHLENBQUNRLGVBQWUsQ0FBQ0UsZ0JBQWdCLENBQUN0QixJQUFJLENBQUMsQ0FBQztJQUNqRTtJQUNBLE9BQU9JLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDUyxjQUFjLENBQUM7RUFDcEMsQ0FBQyxDQUNILENBQUM7QUFDSCJ9
|
package/lib/cache.js
CHANGED
|
@@ -5,10 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.AppCache = void 0;
|
|
7
7
|
var _InMemoryCache = require("./Adapters/Cache/InMemoryCache");
|
|
8
|
-
var AppCache = new _InMemoryCache.InMemoryCache({
|
|
8
|
+
var AppCache = exports.AppCache = new _InMemoryCache.InMemoryCache({
|
|
9
9
|
ttl: NaN
|
|
10
10
|
});
|
|
11
|
-
exports.
|
|
12
|
-
|
|
13
|
-
exports.default = _default;
|
|
14
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSW5NZW1vcnlDYWNoZSIsInJlcXVpcmUiLCJBcHBDYWNoZSIsIkluTWVtb3J5Q2FjaGUiLCJ0dGwiLCJOYU4iLCJleHBvcnRzIiwiX2RlZmF1bHQiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2NhY2hlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluTWVtb3J5Q2FjaGUgfSBmcm9tICcuL0FkYXB0ZXJzL0NhY2hlL0luTWVtb3J5Q2FjaGUnO1xuXG5leHBvcnQgdmFyIEFwcENhY2hlID0gbmV3IEluTWVtb3J5Q2FjaGUoeyB0dGw6IE5hTiB9KTtcbmV4cG9ydCBkZWZhdWx0IEFwcENhY2hlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLE9BQUE7QUFFTyxJQUFJQyxRQUFRLEdBQUcsSUFBSUMsNEJBQWEsQ0FBQztFQUFFQyxHQUFHLEVBQUVDO0FBQUksQ0FBQyxDQUFDO0FBQUNDLE9BQUEsQ0FBQUosUUFBQSxHQUFBQSxRQUFBO0FBQUEsSUFBQUssUUFBQSxHQUN2Q0wsUUFBUTtBQUFBSSxPQUFBLENBQUFFLE9BQUEsR0FBQUQsUUFBQSJ9
|
|
11
|
+
var _default = exports.default = AppCache;
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSW5NZW1vcnlDYWNoZSIsInJlcXVpcmUiLCJBcHBDYWNoZSIsImV4cG9ydHMiLCJJbk1lbW9yeUNhY2hlIiwidHRsIiwiTmFOIiwiX2RlZmF1bHQiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2NhY2hlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluTWVtb3J5Q2FjaGUgfSBmcm9tICcuL0FkYXB0ZXJzL0NhY2hlL0luTWVtb3J5Q2FjaGUnO1xuXG5leHBvcnQgdmFyIEFwcENhY2hlID0gbmV3IEluTWVtb3J5Q2FjaGUoeyB0dGw6IE5hTiB9KTtcbmV4cG9ydCBkZWZhdWx0IEFwcENhY2hlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLE9BQUE7QUFFTyxJQUFJQyxRQUFRLEdBQUFDLE9BQUEsQ0FBQUQsUUFBQSxHQUFHLElBQUlFLDRCQUFhLENBQUM7RUFBRUMsR0FBRyxFQUFFQztBQUFJLENBQUMsQ0FBQztBQUFDLElBQUFDLFFBQUEsR0FBQUosT0FBQSxDQUFBSyxPQUFBLEdBQ3ZDTixRQUFRIn0=
|