@rudderstack/integrations-lib 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/constants.js +1 -1
- package/build/errors/aborted_error.d.ts +1 -1
- package/build/errors/aborted_error.d.ts.map +1 -1
- package/build/errors/aborted_error.js +1 -1
- package/build/errors/base.d.ts.map +1 -1
- package/build/errors/base.js +2 -2
- package/build/errors/configuration_auth_error.d.ts +1 -1
- package/build/errors/configuration_auth_error.d.ts.map +1 -1
- package/build/errors/configuration_auth_error.js +1 -1
- package/build/errors/configuration_error.d.ts +1 -1
- package/build/errors/configuration_error.js +1 -1
- package/build/errors/instrumentation_error.d.ts +1 -1
- package/build/errors/instrumentation_error.js +1 -1
- package/build/errors/invalid_auth_token_error.d.ts +1 -1
- package/build/errors/invalid_auth_token_error.d.ts.map +1 -1
- package/build/errors/invalid_auth_token_error.js +1 -1
- package/build/errors/network_error.d.ts +1 -1
- package/build/errors/network_error.d.ts.map +1 -1
- package/build/errors/network_error.js +2 -2
- package/build/errors/oauth_secret_error.d.ts +1 -1
- package/build/errors/oauth_secret_error.js +1 -1
- package/build/errors/platform_error.d.ts +1 -1
- package/build/errors/platform_error.js +1 -1
- package/build/errors/redis_error.d.ts +1 -1
- package/build/errors/redis_error.js +1 -1
- package/build/errors/retryable_error.d.ts +1 -1
- package/build/errors/retryable_error.d.ts.map +1 -1
- package/build/errors/retryable_error.js +1 -1
- package/build/errors/throttled_error.d.ts +1 -1
- package/build/errors/throttled_error.js +1 -1
- package/build/errors/unauthorized_error.d.ts +1 -1
- package/build/errors/unauthorized_error.d.ts.map +1 -1
- package/build/errors/unauthorized_error.js +1 -1
- package/build/errors/unhandled_status_code_error.d.ts +1 -1
- package/build/errors/unhandled_status_code_error.js +1 -1
- package/build/errors/unsupported_event_error.d.ts +1 -1
- package/build/errors/unsupported_event_error.js +1 -1
- package/build/logger.js +1 -1
- package/build/network/clients/axios_client.d.ts.map +1 -1
- package/build/network/clients/axios_client.js +9 -7
- package/build/network/clients/axios_client.test.js +12 -24
- package/build/network/clients/types.d.ts.map +1 -1
- package/build/network/clients/types.js +1 -1
- package/build/network/factory.d.ts +1 -1
- package/build/network/factory.d.ts.map +1 -1
- package/build/network/factory.js +1 -1
- package/build/network/factory.test.js +3 -2
- package/build/network/index.d.ts.map +1 -1
- package/build/network/index.js +1 -1
- package/build/structured-logger.js +1 -1
- package/build/tags.js +43 -43
- package/build/types.d.ts.map +1 -1
- package/build/types.js +4 -10
- package/build/utils/json.d.ts.map +1 -1
- package/build/utils/json.js +5 -2
- package/build/utils/json.test.js +1 -1
- package/build/utils/misc.d.ts +8 -1
- package/build/utils/misc.d.ts.map +1 -1
- package/build/utils/misc.js +16 -10
- package/build/utils/misc.test.js +33 -1
- package/build/utils/sem.d.ts.map +1 -1
- package/build/utils/sem.js +1 -1
- package/mock/index.d.ts.map +1 -1
- package/mock/index.js +1 -1
- package/package.json +22 -6
package/build/types.js
CHANGED
|
@@ -14,21 +14,15 @@ var MessageType;
|
|
|
14
14
|
MessageType["ALIAS"] = "alias";
|
|
15
15
|
MessageType["AUDIENCE_LIST"] = "audiencelist";
|
|
16
16
|
})(MessageType || (exports.MessageType = MessageType = {}));
|
|
17
|
-
const isBatch = (plugin) =>
|
|
18
|
-
return plugin.type === 'batch';
|
|
19
|
-
};
|
|
17
|
+
const isBatch = (plugin) => plugin.type === 'batch';
|
|
20
18
|
exports.isBatch = isBatch;
|
|
21
|
-
const isMultiplex = (plugin) =>
|
|
22
|
-
return plugin.type === 'multiplex';
|
|
23
|
-
};
|
|
19
|
+
const isMultiplex = (plugin) => plugin.type === 'multiplex';
|
|
24
20
|
exports.isMultiplex = isMultiplex;
|
|
25
|
-
const isProcess = (plugin) =>
|
|
26
|
-
return plugin.type === 'process';
|
|
27
|
-
};
|
|
21
|
+
const isProcess = (plugin) => plugin.type === 'process';
|
|
28
22
|
exports.isProcess = isProcess;
|
|
29
23
|
var WorkflowType;
|
|
30
24
|
(function (WorkflowType) {
|
|
31
25
|
WorkflowType["STREAM"] = "stream";
|
|
32
26
|
WorkflowType["RETL"] = "retl";
|
|
33
27
|
})(WorkflowType || (exports.WorkflowType = WorkflowType = {}));
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxJQUFZLFdBUVg7QUFSRCxXQUFZLFdBQVc7SUFDckIsb0NBQXFCLENBQUE7SUFDckIsOEJBQWUsQ0FBQTtJQUNmLDRCQUFhLENBQUE7SUFDYixnQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBZSxDQUFBO0lBQ2YsOEJBQWUsQ0FBQTtJQUNmLDZDQUE4QixDQUFBO0FBQ2hDLENBQUMsRUFSVyxXQUFXLDJCQUFYLFdBQVcsUUFRdEI7QUF5T00sTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFjLEVBQW1CLEVBQUU7SUFDekQsT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUNqQyxDQUFDLENBQUM7QUFGVyxRQUFBLE9BQU8sV0FFbEI7QUFFSyxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQWMsRUFBc0IsRUFBRTtJQUNoRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUZXLFFBQUEsV0FBVyxlQUV0QjtBQUVLLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBYyxFQUFxQixFQUFFO0lBQzdELE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBRlcsUUFBQSxTQUFTLGFBRXBCO0FBNkNGLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QixpQ0FBaUIsQ0FBQTtJQUNqQiw2QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLFlBQVksNEJBQVosWUFBWSxRQUd2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGVjbGFyZSB0eXBlcyBvZiBldmVudHMgZm9yIHJ1ZGRlcnN0YWNrXG4gKi9cbmV4cG9ydCBlbnVtIE1lc3NhZ2VUeXBlIHtcbiAgSURFTlRJRlkgPSAnaWRlbnRpZnknLFxuICBUUkFDSyA9ICd0cmFjaycsXG4gIFBBR0UgPSAncGFnZScsXG4gIFNDUkVFTiA9ICdzY3JlZW4nLFxuICBHUk9VUCA9ICdncm91cCcsXG4gIEFMSUFTID0gJ2FsaWFzJyxcbiAgQVVESUVOQ0VfTElTVCA9ICdhdWRpZW5jZWxpc3QnLFxufVxuXG50eXBlIEV4Y2x1c2l2ZVByb3BlcnRpZXM8VCwgVT4gPSBUIGV4dGVuZHMgdW5kZWZpbmVkID8gVSA6IFUgZXh0ZW5kcyB1bmRlZmluZWQgPyBUIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIEV4dGVybmFsSWQgPSB7XG4gIGlkZW50aWZpZXJUeXBlPzogc3RyaW5nO1xuICBpZDogdW5rbm93bjtcbiAgdHlwZTogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBkZWZpbmUgdGhlIGNvbnRleHQgb2YgdGhlIGV2ZW50XG4gKiBAc2VlIGh0dHBzOi8vd3d3LnJ1ZGRlcnN0YWNrLmNvbS9kb2NzL2V2ZW50LXNwZWMvc3RhbmRhcmQtZXZlbnRzL2NvbW1vbi1maWVsZHMvI2NvbnRleHR1YWwtZmllbGRzXG4gKi9cbnR5cGUgQ29udGV4dCA9IHtcbiAgYXBwOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBidWlsZDogc3RyaW5nO1xuICAgIG5hbWVzcGFjZTogc3RyaW5nO1xuICB9O1xuICBjYW1wYWlnbjoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgc291cmNlPzogc3RyaW5nO1xuICAgIG1lZGl1bT86IHN0cmluZztcbiAgICB0ZXJtPzogc3RyaW5nO1xuICAgIGNvbnRlbnQ/OiBzdHJpbmc7XG4gIH07XG4gIGRldmljZToge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIG1hbnVmYWN0dXJlcj86IHN0cmluZztcbiAgICBtb2RlbD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICB0b2tlbj86IHN0cmluZztcbiAgICBhZHZlcnRpc2luZ0lkPzogc3RyaW5nO1xuICAgIGFkVHJhY2tpbmdFbmFibGVkPzogYm9vbGVhbjtcbiAgICBhdHRUcmFja2luZ1N0YXR1cz86IHN0cmluZztcbiAgfTtcbiAgbGlicmFyeToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gIH07XG4gIGxvY2FsZTogc3RyaW5nO1xuICBuZXR3b3JrOiB7XG4gICAgYmx1ZXRvb3RoPzogc3RyaW5nO1xuICAgIGNhcnJpZXI/OiBzdHJpbmc7XG4gICAgY2VsbHVsYXI/OiBzdHJpbmc7XG4gICAgd2lmaT86IHN0cmluZztcbiAgfTtcbiAgb3M6IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gIH07XG4gIHNjcmVlbjoge1xuICAgIGRlbnNpdHk6IG51bWJlcjtcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xuICAgIGlubmVyV2lkdGg/OiBudW1iZXI7XG4gICAgaW5uZXJIZWlnaHQ/OiBudW1iZXI7XG4gIH07XG4gIHRpbWV6b25lPzogc3RyaW5nO1xuICB0cmFpdHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdXNlckFnZW50Pzogc3RyaW5nO1xuICBpcD86IHN0cmluZztcbiAgbWFwcGVkVG9EZXN0aW5hdGlvbj86IGJvb2xlYW47XG4gIHBhZ2U6IHtcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIHJlZmVycmVyPzogc3RyaW5nO1xuICAgIHJlZmVycmluZ19kb21haW4/OiBzdHJpbmc7XG4gICAgaW5pdGlhbF9yZWZlcnJlcj86IHN0cmluZztcbiAgICBpbml0aWFsX3JlZmVycmluZ19kb21haW4/OiBzdHJpbmc7XG4gICAgc2VhcmNoPzogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbiAgfTtcbiAgbG9jYXRpb24/OiB7XG4gICAgY2l0eT86IHN0cmluZztcbiAgICBjb3VudHJ5Pzogc3RyaW5nO1xuICAgIGxhdGl0dWRlPzogbnVtYmVyO1xuICAgIGxvbmdpdHVkZT86IG51bWJlcjtcbiAgICB0aW1lem9uZT86IHN0cmluZztcbiAgICBnZW9Tb3VyY2U/OiBzdHJpbmc7XG4gIH07XG4gIGV4dGVybmFsSWQ/OiBFeHRlcm5hbElkW107XG59O1xuXG4vKipcbiAqIGEgbG9vc2UgZGVmaW5pdGlvbiBvZiBydWRkZXJzdGFjayBldmVudCB3aXRob3V0IGNvbnNpZGVyaW5nXG4gKiB0aGUgZXhjbHVzaXZpdHkgb2YgdXNlcklkIGFuZCBhbm9ueW1vdXNJZFxuICovXG50eXBlIExvb3NlUnVkZGVyU3RhY2tFdmVudCA9IHtcbiAgY2hhbm5lbDogc3RyaW5nO1xuICBjb250ZXh0OiBDb250ZXh0O1xuICB0eXBlOiBNZXNzYWdlVHlwZTtcbiAgb3JpZ2luYWxUaW1lc3RhbXA6IHN0cmluZztcbiAgc2VudEF0OiBzdHJpbmc7XG4gIHRyYWl0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBldmVudD86IHN0cmluZztcbiAgaW50ZWdyYXRpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIG1lc3NhZ2VJZD86IHN0cmluZztcbiAgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICByZWNlaXZlZEF0Pzogc3RyaW5nO1xuICB0aW1lc3RhbXA/OiBzdHJpbmc7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgYW5vbnltb3VzSWQ/OiBzdHJpbmc7XG4gIHJlcXVlc3RfaXA/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIGEgc3RyaWN0IGRlZmluaXRpb24gb2YgcnVkZGVyc3RhY2sgZXZlbnRcbiAqIEBzZWUgaHR0cHM6Ly93d3cucnVkZGVyc3RhY2suY29tL2RvY3MvZXZlbnQtc3BlYy9zdGFuZGFyZC1ldmVudHMvY29tbW9uLWZpZWxkcy8jY29udGV4dHVhbC1maWVsZHNcbiAqL1xuZXhwb3J0IHR5cGUgUnVkZGVyU3RhY2tFdmVudCA9IExvb3NlUnVkZGVyU3RhY2tFdmVudCAmIHtcbiAgYW5vbnltb3VzSWQ/OiBFeGNsdXNpdmVQcm9wZXJ0aWVzPExvb3NlUnVkZGVyU3RhY2tFdmVudFsnYW5vbnltb3VzSWQnXSwgdW5kZWZpbmVkPjtcbiAgdXNlcklkPzogRXhjbHVzaXZlUHJvcGVydGllczxMb29zZVJ1ZGRlclN0YWNrRXZlbnRbJ3VzZXJJZCddLCB1bmRlZmluZWQ+O1xufTtcblxuZXhwb3J0IHR5cGUgUnVkZGVyU3RhY2tFdmVudFBheWxvYWQgPSB7IG1lc3NhZ2U6IFJ1ZGRlclN0YWNrRXZlbnQgfTtcblxuLyoqXG4gKiBkZWZpbmUgbWV0YWRhdGEgb2YgdGhlIGV2ZW50IHVzZWQgYnkgcnMtc2VydmVyXG4gKi9cbmV4cG9ydCB0eXBlIE1ldGFkYXRhID0ge1xuICBzb3VyY2VJZDogc3RyaW5nO1xuICB3b3Jrc3BhY2VJZDogc3RyaW5nO1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgaW5zdGFuY2VJZDogc3RyaW5nO1xuICBzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIHNvdXJjZUNhdGVnb3J5OiBzdHJpbmc7XG4gIHRyYWNraW5nUGxhbklkOiBzdHJpbmc7XG4gIHRyYWNraW5nUGxhblZlcnNpb246IG51bWJlcjtcbiAgc291cmNlVHBDb25maWc6IE9iamVjdDtcbiAgbWVyZ2VkVHBDb25maWc6IE9iamVjdDtcbiAgZGVzdGluYXRpb25JZDogc3RyaW5nO1xuICBqb2JSdW5JZDogc3RyaW5nO1xuICBqb2JJZDogbnVtYmVyO1xuICBzb3VyY2VCYXRjaElkOiBzdHJpbmc7XG4gIHNvdXJjZUpvYklkOiBzdHJpbmc7XG4gIHNvdXJjZUpvYlJ1bklkOiBzdHJpbmc7XG4gIHNvdXJjZVRhc2tJZDogc3RyaW5nO1xuICBzb3VyY2VUYXNrUnVuSWQ6IHN0cmluZztcbiAgcmVjb3JkSWQ6IE9iamVjdDtcbiAgZGVzdGluYXRpb25UeXBlOiBzdHJpbmc7XG4gIG1lc3NhZ2VJZDogc3RyaW5nO1xuICBvYXV0aEFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG1lc3NhZ2VJZHM6IHN0cmluZ1tdO1xuICBydWRkZXJJZDogc3RyaW5nO1xuICByZWNlaXZlZEF0OiBzdHJpbmc7XG4gIGV2ZW50TmFtZTogc3RyaW5nO1xuICBldmVudFR5cGU6IHN0cmluZztcbiAgc291cmNlRGVmaW5pdGlvbklkOiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uRGVmaW5pdGlvbklkOiBzdHJpbmc7XG4gIHRyYW5zZm9ybWF0aW9uSWQ6IHN0cmluZztcbn07XG5cbi8qKlxuICogZGVmaW5lIHRoZSB0cmFuc2Zvcm1hdGlvbiB2ZXJzaW9uXG4gKi9cbnR5cGUgVXNlclRyYW5zZm9ybWF0aW9uVmVyc2lvbiA9IHtcbiAgVmVyc2lvbklEOiBzdHJpbmc7XG4gIElEOiBzdHJpbmc7XG4gIENvbmZpZzogT2JqZWN0O1xufTtcblxuLyoqXG4gKiBkZWZpbmUgdGhlIGRlc3RpbmF0aW9uIGRlZmluaXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgRGVzdGluYXRpb25EZWZpbml0aW9uID0ge1xuICBJRDogc3RyaW5nO1xuICBOYW1lOiBzdHJpbmc7XG4gIERpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIENvbmZpZzogT2JqZWN0O1xufTtcblxuLyoqXG4gKiBkZWZpbmUgdGhlIGRlc3RpbmF0aW9uIG9iamVjdFxuICovXG5leHBvcnQgdHlwZSBEZXN0aW5hdGlvbiA9IHtcbiAgSUQ6IHN0cmluZztcbiAgTmFtZTogc3RyaW5nO1xuICBEZXN0aW5hdGlvbkRlZmluaXRpb246IERlc3RpbmF0aW9uRGVmaW5pdGlvbjtcbiAgQ29uZmlnOiBPYmplY3Q7XG4gIEVuYWJsZWQ6IGJvb2xlYW47XG4gIFdvcmtzcGFjZUlEOiBzdHJpbmc7XG4gIFRyYW5zZm9ybWF0aW9ucz86IFVzZXJUcmFuc2Zvcm1hdGlvblZlcnNpb25bXTtcbiAgUmV2aXNpb25JRD86IHN0cmluZztcbiAgSXNQcm9jZXNzb3JFbmFibGVkOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgUGF5bG9hZCA9IGFueTtcbmV4cG9ydCB0eXBlIE91dHB1dCA9IGFueTtcblxuLy8gQWxsIHBsdWdpbiByZWxhdGVkIHR5cGVzIHN0YXJ0IGhlcmVcblxuZXhwb3J0IHR5cGUgUGx1Z2luVHlwZSA9ICdwcm9jZXNzJyB8ICdiYXRjaCcgfCAnbXVsdGlwbGV4JztcbmV4cG9ydCB0eXBlIFBsdWdpbkltcGxlbWVudGF0aW9uID0gJ2pzJyB8ICd0ZW1wbGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luIHtcbiAgdHlwZTogUGx1Z2luVHlwZTtcbiAgaW1wbGVudGF0aW9uOiBQbHVnaW5JbXBsZW1lbnRhdGlvbjtcbiAgYXBwbHkoXG4gICAgZXZlbnQ6IFBheWxvYWQgfCBQYXlsb2FkW10sXG4gICAgZGVzdGluYXRpb246IERlc3RpbmF0aW9uLFxuICAgIHN0YXRlOiB7IHN0b3JlOiBNYXA8c3RyaW5nLCBhbnk+OyBza2lwTmV4dDogYm9vbGVhbjsgZXhpdDogYm9vbGVhbiB9LFxuICApOiBPdXRwdXQgfCBPdXRwdXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNdWxpcGxleCBleHRlbmRzIFBsdWdpbiB7XG4gIGFwcGx5KFxuICAgIGV2ZW50OiBQYXlsb2FkLFxuICAgIGRlc3RpbmF0aW9uOiBEZXN0aW5hdGlvbixcbiAgICBzdGF0ZTogeyBzdG9yZTogTWFwPHN0cmluZywgYW55Pjsgc2tpcE5leHQ6IGJvb2xlYW47IGV4aXQ6IGJvb2xlYW4gfSxcbiAgKTogT3V0cHV0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2ggZXh0ZW5kcyBQbHVnaW4ge1xuICBhcHBseShcbiAgICBldmVudDogUGF5bG9hZFtdLFxuICAgIGRlc3RpbmF0aW9uOiBEZXN0aW5hdGlvbixcbiAgICBzdGF0ZTogeyBzdG9yZTogTWFwPHN0cmluZywgYW55Pjsgc2tpcE5leHQ6IGJvb2xlYW47IGV4aXQ6IGJvb2xlYW4gfSxcbiAgKTogT3V0cHV0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2VzcyBleHRlbmRzIFBsdWdpbiB7XG4gIGFwcGx5KFxuICAgIGV2ZW50OiBQYXlsb2FkLFxuICAgIGRlc3RpbmF0aW9uOiBEZXN0aW5hdGlvbixcbiAgICBzdGF0ZTogeyBzdG9yZTogTWFwPHN0cmluZywgYW55Pjsgc2tpcE5leHQ6IGJvb2xlYW47IGV4aXQ6IGJvb2xlYW4gfSxcbiAgKTogT3V0cHV0O1xufVxuXG5leHBvcnQgY29uc3QgaXNCYXRjaCA9IChwbHVnaW46IFBsdWdpbik6IHBsdWdpbiBpcyBCYXRjaCA9PiB7XG4gIHJldHVybiBwbHVnaW4udHlwZSA9PT0gJ2JhdGNoJztcbn07XG5cbmV4cG9ydCBjb25zdCBpc011bHRpcGxleCA9IChwbHVnaW46IFBsdWdpbik6IHBsdWdpbiBpcyBNdWxpcGxleCA9PiB7XG4gIHJldHVybiBwbHVnaW4udHlwZSA9PT0gJ211bHRpcGxleCc7XG59O1xuXG5leHBvcnQgY29uc3QgaXNQcm9jZXNzID0gKHBsdWdpbjogUGx1Z2luKTogcGx1Z2luIGlzIFByb2Nlc3MgPT4ge1xuICByZXR1cm4gcGx1Z2luLnR5cGUgPT09ICdwcm9jZXNzJztcbn07XG5cbmV4cG9ydCB0eXBlIERlbGl2ZXJ5UmVzcG9uc2UgPSB7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkZXN0aW5hdGlvblJlc3BvbnNlOiBPYmplY3Q7XG4gIHN0YXRUYWdzOiBPYmplY3Q7XG4gIGF1dGhFcnJvckNhdGVnb3J5Pzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFJlZ3VsYXRpb25SZXNwb25zZSA9IHtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBlcnJvcj86IHN0cmluZztcbiAgc3RhdHVzPzogc3RyaW5nO1xuICBhdXRoRXJyb3JDYXRlZ29yeT86IHN0cmluZztcbiAgc3RhdFRhZ3M6IE9iamVjdDtcbn07XG5cbi8vIEFsbCBwbHVnaW4gcmVsYXRlZCB0eXBlcyBlbmQgaGVyZVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVncmF0aW9uIHtcbiAgZ2V0TmFtZSgpOiBzdHJpbmc7XG4gIGV4ZWN1dGUoXG4gICAgaW5wdXRzRGF0YTogeyBldmVudDogUnVkZGVyU3RhY2tFdmVudFBheWxvYWRbXTsgbWV0YWRhdGE6IE1ldGFkYXRhW10gfVtdLFxuICAgIGRlc3RpbmF0aW9uOiBEZXN0aW5hdGlvbixcbiAgKTogUHJvbWlzZTx7XG4gICAgcmVzdWx0Q29udGV4dDoge1xuICAgICAgcGF5bG9hZDogUGF5bG9hZFtdO1xuICAgICAgbWV0YWRhdGE6IE1ldGFkYXRhW107XG4gICAgfVtdO1xuICAgIGVycm9yUmVzdWx0czoge1xuICAgICAgZXJyb3I6IGFueTtcbiAgICAgIG1ldGFkYXRhOiBNZXRhZGF0YVtdO1xuICAgIH1bXTtcbiAgfT47XG59XG5cbmV4cG9ydCB0eXBlIEludGVncmF0aW9uQ29uZmlnID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNhdmVSZXNwb25zZTogYm9vbGVhbjtcbiAgZXZlbnRPcmRlcmluZzogYm9vbGVhbjtcbiAgcGx1Z2luczogc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBKU09OVmFsdWUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgeyBbeDogc3RyaW5nXTogSlNPTlZhbHVlIH0gfCBBcnJheTxKU09OVmFsdWU+O1xuXG5leHBvcnQgZW51bSBXb3JrZmxvd1R5cGUge1xuICBTVFJFQU0gPSAnc3RyZWFtJyxcbiAgUkVUTCA9ICdyZXRsJyxcbn1cblxuZXhwb3J0IHR5cGUgTG9nZ2FibGVFeHRyYURhdGEgPSB7XG4gIGRlc3RpbmF0aW9uSWQ6IHN0cmluZztcbiAgd29ya3NwYWNlSWQ6IHN0cmluZztcbiAgbW9kdWxlOiBzdHJpbmc7XG4gIGltcGxlbWVudGF0aW9uOiBzdHJpbmc7XG4gIHNvdXJjZUlkOiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uVHlwZTogc3RyaW5nO1xufVxuIl19
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxJQUFZLFdBUVg7QUFSRCxXQUFZLFdBQVc7SUFDckIsb0NBQXFCLENBQUE7SUFDckIsOEJBQWUsQ0FBQTtJQUNmLDRCQUFhLENBQUE7SUFDYixnQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBZSxDQUFBO0lBQ2YsOEJBQWUsQ0FBQTtJQUNmLDZDQUE4QixDQUFBO0FBQ2hDLENBQUMsRUFSVyxXQUFXLDJCQUFYLFdBQVcsUUFRdEI7QUF5T00sTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFjLEVBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUF2RSxRQUFBLE9BQU8sV0FBZ0U7QUFFN0UsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFjLEVBQXNCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQztBQUFsRixRQUFBLFdBQVcsZUFBdUU7QUFFeEYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQXFCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztBQUE3RSxRQUFBLFNBQVMsYUFBb0U7QUE2QzFGLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QixpQ0FBaUIsQ0FBQTtJQUNqQiw2QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLFlBQVksNEJBQVosWUFBWSxRQUd2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGVjbGFyZSB0eXBlcyBvZiBldmVudHMgZm9yIHJ1ZGRlcnN0YWNrXG4gKi9cbmV4cG9ydCBlbnVtIE1lc3NhZ2VUeXBlIHtcbiAgSURFTlRJRlkgPSAnaWRlbnRpZnknLFxuICBUUkFDSyA9ICd0cmFjaycsXG4gIFBBR0UgPSAncGFnZScsXG4gIFNDUkVFTiA9ICdzY3JlZW4nLFxuICBHUk9VUCA9ICdncm91cCcsXG4gIEFMSUFTID0gJ2FsaWFzJyxcbiAgQVVESUVOQ0VfTElTVCA9ICdhdWRpZW5jZWxpc3QnLFxufVxuXG50eXBlIEV4Y2x1c2l2ZVByb3BlcnRpZXM8VCwgVT4gPSBUIGV4dGVuZHMgdW5kZWZpbmVkID8gVSA6IFUgZXh0ZW5kcyB1bmRlZmluZWQgPyBUIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIEV4dGVybmFsSWQgPSB7XG4gIGlkZW50aWZpZXJUeXBlPzogc3RyaW5nO1xuICBpZDogdW5rbm93bjtcbiAgdHlwZTogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBkZWZpbmUgdGhlIGNvbnRleHQgb2YgdGhlIGV2ZW50XG4gKiBAc2VlIGh0dHBzOi8vd3d3LnJ1ZGRlcnN0YWNrLmNvbS9kb2NzL2V2ZW50LXNwZWMvc3RhbmRhcmQtZXZlbnRzL2NvbW1vbi1maWVsZHMvI2NvbnRleHR1YWwtZmllbGRzXG4gKi9cbnR5cGUgQ29udGV4dCA9IHtcbiAgYXBwOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBidWlsZDogc3RyaW5nO1xuICAgIG5hbWVzcGFjZTogc3RyaW5nO1xuICB9O1xuICBjYW1wYWlnbjoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgc291cmNlPzogc3RyaW5nO1xuICAgIG1lZGl1bT86IHN0cmluZztcbiAgICB0ZXJtPzogc3RyaW5nO1xuICAgIGNvbnRlbnQ/OiBzdHJpbmc7XG4gIH07XG4gIGRldmljZToge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIG1hbnVmYWN0dXJlcj86IHN0cmluZztcbiAgICBtb2RlbD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICB0b2tlbj86IHN0cmluZztcbiAgICBhZHZlcnRpc2luZ0lkPzogc3RyaW5nO1xuICAgIGFkVHJhY2tpbmdFbmFibGVkPzogYm9vbGVhbjtcbiAgICBhdHRUcmFja2luZ1N0YXR1cz86IHN0cmluZztcbiAgfTtcbiAgbGlicmFyeToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gIH07XG4gIGxvY2FsZTogc3RyaW5nO1xuICBuZXR3b3JrOiB7XG4gICAgYmx1ZXRvb3RoPzogc3RyaW5nO1xuICAgIGNhcnJpZXI/OiBzdHJpbmc7XG4gICAgY2VsbHVsYXI/OiBzdHJpbmc7XG4gICAgd2lmaT86IHN0cmluZztcbiAgfTtcbiAgb3M6IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG4gIH07XG4gIHNjcmVlbjoge1xuICAgIGRlbnNpdHk6IG51bWJlcjtcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xuICAgIGlubmVyV2lkdGg/OiBudW1iZXI7XG4gICAgaW5uZXJIZWlnaHQ/OiBudW1iZXI7XG4gIH07XG4gIHRpbWV6b25lPzogc3RyaW5nO1xuICB0cmFpdHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdXNlckFnZW50Pzogc3RyaW5nO1xuICBpcD86IHN0cmluZztcbiAgbWFwcGVkVG9EZXN0aW5hdGlvbj86IGJvb2xlYW47XG4gIHBhZ2U6IHtcbiAgICBwYXRoPzogc3RyaW5nO1xuICAgIHJlZmVycmVyPzogc3RyaW5nO1xuICAgIHJlZmVycmluZ19kb21haW4/OiBzdHJpbmc7XG4gICAgaW5pdGlhbF9yZWZlcnJlcj86IHN0cmluZztcbiAgICBpbml0aWFsX3JlZmVycmluZ19kb21haW4/OiBzdHJpbmc7XG4gICAgc2VhcmNoPzogc3RyaW5nO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbiAgfTtcbiAgbG9jYXRpb24/OiB7XG4gICAgY2l0eT86IHN0cmluZztcbiAgICBjb3VudHJ5Pzogc3RyaW5nO1xuICAgIGxhdGl0dWRlPzogbnVtYmVyO1xuICAgIGxvbmdpdHVkZT86IG51bWJlcjtcbiAgICB0aW1lem9uZT86IHN0cmluZztcbiAgICBnZW9Tb3VyY2U/OiBzdHJpbmc7XG4gIH07XG4gIGV4dGVybmFsSWQ/OiBFeHRlcm5hbElkW107XG59O1xuXG4vKipcbiAqIGEgbG9vc2UgZGVmaW5pdGlvbiBvZiBydWRkZXJzdGFjayBldmVudCB3aXRob3V0IGNvbnNpZGVyaW5nXG4gKiB0aGUgZXhjbHVzaXZpdHkgb2YgdXNlcklkIGFuZCBhbm9ueW1vdXNJZFxuICovXG50eXBlIExvb3NlUnVkZGVyU3RhY2tFdmVudCA9IHtcbiAgY2hhbm5lbDogc3RyaW5nO1xuICBjb250ZXh0OiBDb250ZXh0O1xuICB0eXBlOiBNZXNzYWdlVHlwZTtcbiAgb3JpZ2luYWxUaW1lc3RhbXA6IHN0cmluZztcbiAgc2VudEF0OiBzdHJpbmc7XG4gIHRyYWl0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBldmVudD86IHN0cmluZztcbiAgaW50ZWdyYXRpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIG1lc3NhZ2VJZD86IHN0cmluZztcbiAgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICByZWNlaXZlZEF0Pzogc3RyaW5nO1xuICB0aW1lc3RhbXA/OiBzdHJpbmc7XG4gIHVzZXJJZD86IHN0cmluZztcbiAgYW5vbnltb3VzSWQ/OiBzdHJpbmc7XG4gIHJlcXVlc3RfaXA/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIGEgc3RyaWN0IGRlZmluaXRpb24gb2YgcnVkZGVyc3RhY2sgZXZlbnRcbiAqIEBzZWUgaHR0cHM6Ly93d3cucnVkZGVyc3RhY2suY29tL2RvY3MvZXZlbnQtc3BlYy9zdGFuZGFyZC1ldmVudHMvY29tbW9uLWZpZWxkcy8jY29udGV4dHVhbC1maWVsZHNcbiAqL1xuZXhwb3J0IHR5cGUgUnVkZGVyU3RhY2tFdmVudCA9IExvb3NlUnVkZGVyU3RhY2tFdmVudCAmIHtcbiAgYW5vbnltb3VzSWQ/OiBFeGNsdXNpdmVQcm9wZXJ0aWVzPExvb3NlUnVkZGVyU3RhY2tFdmVudFsnYW5vbnltb3VzSWQnXSwgdW5kZWZpbmVkPjtcbiAgdXNlcklkPzogRXhjbHVzaXZlUHJvcGVydGllczxMb29zZVJ1ZGRlclN0YWNrRXZlbnRbJ3VzZXJJZCddLCB1bmRlZmluZWQ+O1xufTtcblxuZXhwb3J0IHR5cGUgUnVkZGVyU3RhY2tFdmVudFBheWxvYWQgPSB7IG1lc3NhZ2U6IFJ1ZGRlclN0YWNrRXZlbnQgfTtcblxuLyoqXG4gKiBkZWZpbmUgbWV0YWRhdGEgb2YgdGhlIGV2ZW50IHVzZWQgYnkgcnMtc2VydmVyXG4gKi9cbmV4cG9ydCB0eXBlIE1ldGFkYXRhID0ge1xuICBzb3VyY2VJZDogc3RyaW5nO1xuICB3b3Jrc3BhY2VJZDogc3RyaW5nO1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgaW5zdGFuY2VJZDogc3RyaW5nO1xuICBzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIHNvdXJjZUNhdGVnb3J5OiBzdHJpbmc7XG4gIHRyYWNraW5nUGxhbklkOiBzdHJpbmc7XG4gIHRyYWNraW5nUGxhblZlcnNpb246IG51bWJlcjtcbiAgc291cmNlVHBDb25maWc6IE9iamVjdDtcbiAgbWVyZ2VkVHBDb25maWc6IE9iamVjdDtcbiAgZGVzdGluYXRpb25JZDogc3RyaW5nO1xuICBqb2JSdW5JZDogc3RyaW5nO1xuICBqb2JJZDogbnVtYmVyO1xuICBzb3VyY2VCYXRjaElkOiBzdHJpbmc7XG4gIHNvdXJjZUpvYklkOiBzdHJpbmc7XG4gIHNvdXJjZUpvYlJ1bklkOiBzdHJpbmc7XG4gIHNvdXJjZVRhc2tJZDogc3RyaW5nO1xuICBzb3VyY2VUYXNrUnVuSWQ6IHN0cmluZztcbiAgcmVjb3JkSWQ6IE9iamVjdDtcbiAgZGVzdGluYXRpb25UeXBlOiBzdHJpbmc7XG4gIG1lc3NhZ2VJZDogc3RyaW5nO1xuICBvYXV0aEFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG1lc3NhZ2VJZHM6IHN0cmluZ1tdO1xuICBydWRkZXJJZDogc3RyaW5nO1xuICByZWNlaXZlZEF0OiBzdHJpbmc7XG4gIGV2ZW50TmFtZTogc3RyaW5nO1xuICBldmVudFR5cGU6IHN0cmluZztcbiAgc291cmNlRGVmaW5pdGlvbklkOiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uRGVmaW5pdGlvbklkOiBzdHJpbmc7XG4gIHRyYW5zZm9ybWF0aW9uSWQ6IHN0cmluZztcbn07XG5cbi8qKlxuICogZGVmaW5lIHRoZSB0cmFuc2Zvcm1hdGlvbiB2ZXJzaW9uXG4gKi9cbnR5cGUgVXNlclRyYW5zZm9ybWF0aW9uVmVyc2lvbiA9IHtcbiAgVmVyc2lvbklEOiBzdHJpbmc7XG4gIElEOiBzdHJpbmc7XG4gIENvbmZpZzogT2JqZWN0O1xufTtcblxuLyoqXG4gKiBkZWZpbmUgdGhlIGRlc3RpbmF0aW9uIGRlZmluaXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgRGVzdGluYXRpb25EZWZpbml0aW9uID0ge1xuICBJRDogc3RyaW5nO1xuICBOYW1lOiBzdHJpbmc7XG4gIERpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIENvbmZpZzogT2JqZWN0O1xufTtcblxuLyoqXG4gKiBkZWZpbmUgdGhlIGRlc3RpbmF0aW9uIG9iamVjdFxuICovXG5leHBvcnQgdHlwZSBEZXN0aW5hdGlvbiA9IHtcbiAgSUQ6IHN0cmluZztcbiAgTmFtZTogc3RyaW5nO1xuICBEZXN0aW5hdGlvbkRlZmluaXRpb246IERlc3RpbmF0aW9uRGVmaW5pdGlvbjtcbiAgQ29uZmlnOiBPYmplY3Q7XG4gIEVuYWJsZWQ6IGJvb2xlYW47XG4gIFdvcmtzcGFjZUlEOiBzdHJpbmc7XG4gIFRyYW5zZm9ybWF0aW9ucz86IFVzZXJUcmFuc2Zvcm1hdGlvblZlcnNpb25bXTtcbiAgUmV2aXNpb25JRD86IHN0cmluZztcbiAgSXNQcm9jZXNzb3JFbmFibGVkOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgUGF5bG9hZCA9IGFueTtcbmV4cG9ydCB0eXBlIE91dHB1dCA9IGFueTtcblxuLy8gQWxsIHBsdWdpbiByZWxhdGVkIHR5cGVzIHN0YXJ0IGhlcmVcblxuZXhwb3J0IHR5cGUgUGx1Z2luVHlwZSA9ICdwcm9jZXNzJyB8ICdiYXRjaCcgfCAnbXVsdGlwbGV4JztcbmV4cG9ydCB0eXBlIFBsdWdpbkltcGxlbWVudGF0aW9uID0gJ2pzJyB8ICd0ZW1wbGF0ZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luIHtcbiAgdHlwZTogUGx1Z2luVHlwZTtcbiAgaW1wbGVudGF0aW9uOiBQbHVnaW5JbXBsZW1lbnRhdGlvbjtcbiAgYXBwbHkoXG4gICAgZXZlbnQ6IFBheWxvYWQgfCBQYXlsb2FkW10sXG4gICAgZGVzdGluYXRpb246IERlc3RpbmF0aW9uLFxuICAgIHN0YXRlOiB7IHN0b3JlOiBNYXA8c3RyaW5nLCBhbnk+OyBza2lwTmV4dDogYm9vbGVhbjsgZXhpdDogYm9vbGVhbiB9LFxuICApOiBPdXRwdXQgfCBPdXRwdXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNdWxpcGxleCBleHRlbmRzIFBsdWdpbiB7XG4gIGFwcGx5KFxuICAgIGV2ZW50OiBQYXlsb2FkLFxuICAgIGRlc3RpbmF0aW9uOiBEZXN0aW5hdGlvbixcbiAgICBzdGF0ZTogeyBzdG9yZTogTWFwPHN0cmluZywgYW55Pjsgc2tpcE5leHQ6IGJvb2xlYW47IGV4aXQ6IGJvb2xlYW4gfSxcbiAgKTogT3V0cHV0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2ggZXh0ZW5kcyBQbHVnaW4ge1xuICBhcHBseShcbiAgICBldmVudDogUGF5bG9hZFtdLFxuICAgIGRlc3RpbmF0aW9uOiBEZXN0aW5hdGlvbixcbiAgICBzdGF0ZTogeyBzdG9yZTogTWFwPHN0cmluZywgYW55Pjsgc2tpcE5leHQ6IGJvb2xlYW47IGV4aXQ6IGJvb2xlYW4gfSxcbiAgKTogT3V0cHV0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2VzcyBleHRlbmRzIFBsdWdpbiB7XG4gIGFwcGx5KFxuICAgIGV2ZW50OiBQYXlsb2FkLFxuICAgIGRlc3RpbmF0aW9uOiBEZXN0aW5hdGlvbixcbiAgICBzdGF0ZTogeyBzdG9yZTogTWFwPHN0cmluZywgYW55Pjsgc2tpcE5leHQ6IGJvb2xlYW47IGV4aXQ6IGJvb2xlYW4gfSxcbiAgKTogT3V0cHV0O1xufVxuXG5leHBvcnQgY29uc3QgaXNCYXRjaCA9IChwbHVnaW46IFBsdWdpbik6IHBsdWdpbiBpcyBCYXRjaCA9PiBwbHVnaW4udHlwZSA9PT0gJ2JhdGNoJztcblxuZXhwb3J0IGNvbnN0IGlzTXVsdGlwbGV4ID0gKHBsdWdpbjogUGx1Z2luKTogcGx1Z2luIGlzIE11bGlwbGV4ID0+IHBsdWdpbi50eXBlID09PSAnbXVsdGlwbGV4JztcblxuZXhwb3J0IGNvbnN0IGlzUHJvY2VzcyA9IChwbHVnaW46IFBsdWdpbik6IHBsdWdpbiBpcyBQcm9jZXNzID0+IHBsdWdpbi50eXBlID09PSAncHJvY2Vzcyc7XG5cbmV4cG9ydCB0eXBlIERlbGl2ZXJ5UmVzcG9uc2UgPSB7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBkZXN0aW5hdGlvblJlc3BvbnNlOiBPYmplY3Q7XG4gIHN0YXRUYWdzOiBPYmplY3Q7XG4gIGF1dGhFcnJvckNhdGVnb3J5Pzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFJlZ3VsYXRpb25SZXNwb25zZSA9IHtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBlcnJvcj86IHN0cmluZztcbiAgc3RhdHVzPzogc3RyaW5nO1xuICBhdXRoRXJyb3JDYXRlZ29yeT86IHN0cmluZztcbiAgc3RhdFRhZ3M6IE9iamVjdDtcbn07XG5cbi8vIEFsbCBwbHVnaW4gcmVsYXRlZCB0eXBlcyBlbmQgaGVyZVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVncmF0aW9uIHtcbiAgZ2V0TmFtZSgpOiBzdHJpbmc7XG4gIGV4ZWN1dGUoXG4gICAgaW5wdXRzRGF0YTogeyBldmVudDogUnVkZGVyU3RhY2tFdmVudFBheWxvYWRbXTsgbWV0YWRhdGE6IE1ldGFkYXRhW10gfVtdLFxuICAgIGRlc3RpbmF0aW9uOiBEZXN0aW5hdGlvbixcbiAgKTogUHJvbWlzZTx7XG4gICAgcmVzdWx0Q29udGV4dDoge1xuICAgICAgcGF5bG9hZDogUGF5bG9hZFtdO1xuICAgICAgbWV0YWRhdGE6IE1ldGFkYXRhW107XG4gICAgfVtdO1xuICAgIGVycm9yUmVzdWx0czoge1xuICAgICAgZXJyb3I6IGFueTtcbiAgICAgIG1ldGFkYXRhOiBNZXRhZGF0YVtdO1xuICAgIH1bXTtcbiAgfT47XG59XG5cbmV4cG9ydCB0eXBlIEludGVncmF0aW9uQ29uZmlnID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNhdmVSZXNwb25zZTogYm9vbGVhbjtcbiAgZXZlbnRPcmRlcmluZzogYm9vbGVhbjtcbiAgcGx1Z2luczogc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBKU09OVmFsdWUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgeyBbeDogc3RyaW5nXTogSlNPTlZhbHVlIH0gfCBBcnJheTxKU09OVmFsdWU+O1xuXG5leHBvcnQgZW51bSBXb3JrZmxvd1R5cGUge1xuICBTVFJFQU0gPSAnc3RyZWFtJyxcbiAgUkVUTCA9ICdyZXRsJyxcbn1cblxuZXhwb3J0IHR5cGUgTG9nZ2FibGVFeHRyYURhdGEgPSB7XG4gIGRlc3RpbmF0aW9uSWQ6IHN0cmluZztcbiAgd29ya3NwYWNlSWQ6IHN0cmluZztcbiAgbW9kdWxlOiBzdHJpbmc7XG4gIGltcGxlbWVudGF0aW9uOiBzdHJpbmc7XG4gIHNvdXJjZUlkOiBzdHJpbmc7XG4gIGRlc3RpbmF0aW9uVHlwZTogc3RyaW5nO1xufTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAoC5C,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,eAAe,CAA0B;IAExD;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IA8DxC,OAAO,CAAC,MAAM,CAAC,cAAc;IAiE7B,OAAO,CAAC,MAAM,CAAC,YAAY;IAgH3B,OAAO,CAAC,MAAM,CAAC,cAAc;IAsB7B,OAAO,CAAC,MAAM,CAAC,sBAAsB;IA8GrC,OAAO,CAAC,MAAM,CAAC,cAAc;IAM7B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IA6DhC;;;;;;;;OAQG;WACW,mBAAmB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAChD,GAAG;IA0CN;;;;;;;;OAQG;WACW,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG;IAQzF;;;;;;;;OAQG;WACW,gBAAgB,CAC5B,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,GAAG,EAAE,EAClB,eAAe,GAAE,MAAW,GAC3B,GAAG;WA4DQ,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAGhD"}
|
package/build/utils/json.js
CHANGED
|
@@ -31,12 +31,12 @@ const handlebars_1 = __importDefault(require("handlebars"));
|
|
|
31
31
|
const get_value_1 = __importDefault(require("get-value"));
|
|
32
32
|
const set_value_1 = __importDefault(require("set-value"));
|
|
33
33
|
const lodash_1 = require("lodash");
|
|
34
|
+
const moment_timezone_1 = __importDefault(require("moment-timezone"));
|
|
34
35
|
const logger = __importStar(require("../logger"));
|
|
35
36
|
const platform_error_1 = require("../errors/platform_error");
|
|
36
37
|
const sem_1 = require("./sem");
|
|
37
38
|
const instrumentation_error_1 = require("../errors/instrumentation_error");
|
|
38
39
|
const misc_1 = require("./misc");
|
|
39
|
-
const moment_timezone_1 = __importDefault(require("moment-timezone"));
|
|
40
40
|
const transformation_error_1 = require("../errors/transformation_error");
|
|
41
41
|
const constants_1 = require("../constants");
|
|
42
42
|
class JsonUtils {
|
|
@@ -72,6 +72,7 @@ class JsonUtils {
|
|
|
72
72
|
switch (operation) {
|
|
73
73
|
case 'multiplication':
|
|
74
74
|
result = 1;
|
|
75
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
75
76
|
for (const v of argValues) {
|
|
76
77
|
if ((0, lodash_1.isNumber)(v)) {
|
|
77
78
|
result *= v;
|
|
@@ -85,6 +86,7 @@ class JsonUtils {
|
|
|
85
86
|
return result;
|
|
86
87
|
case 'addition':
|
|
87
88
|
result = 0;
|
|
89
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
88
90
|
for (const v of argValues) {
|
|
89
91
|
if ((0, lodash_1.isNumber)(v)) {
|
|
90
92
|
result += v;
|
|
@@ -246,6 +248,7 @@ class JsonUtils {
|
|
|
246
248
|
if (typeof value === 'object') {
|
|
247
249
|
// exclude the fields from the formattedVal
|
|
248
250
|
excludes.forEach((key) => {
|
|
251
|
+
// eslint-disable-next-line no-param-reassign
|
|
249
252
|
delete formattedVal[key];
|
|
250
253
|
});
|
|
251
254
|
}
|
|
@@ -504,4 +507,4 @@ class JsonUtils {
|
|
|
504
507
|
}
|
|
505
508
|
exports.JsonUtils = JsonUtils;
|
|
506
509
|
JsonUtils.MESSAGE_MAPPING = constants_1.GENERIC_MAPPING_CONFIG;
|
|
507
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNERBQW9DO0FBRXBDLDBEQUE0QjtBQUM1QiwwREFBNEI7QUFDNUIsbUNBQXlEO0FBR3pELGtEQUFvQztBQUNwQyw2REFBeUQ7QUFDekQsK0JBQXFDO0FBQ3JDLDJFQUF1RTtBQUN2RSxpQ0FPZ0I7QUFDaEIsc0VBQXFDO0FBQ3JDLHlFQUFxRTtBQUNyRSw0Q0FBc0Q7QUFxQnRELE1BQWEsU0FBUztJQUdwQjs7Ozs7OztPQU9HO0lBQ0ssTUFBTSxDQUFDLHlCQUF5QixDQUFDLEVBQ3ZDLE9BQU8sRUFDUCxlQUFlLEdBSWhCO1FBQ0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxlQUFlLENBQUM7UUFFNUMseUNBQXlDO1FBQ3pDLG9DQUFvQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBQSxtQkFBRyxFQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNyQyxJQUFJLEdBQUcsSUFBSSxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ3JDLE9BQU8sR0FBRyxDQUFDO2FBQ1o7WUFDRCxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUVILDJEQUEyRDtRQUMzRCxnREFBZ0Q7UUFDaEQsdUNBQXVDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLElBQUEsY0FBSyxFQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFBLGNBQUssRUFBQyxDQUFDLENBQUMsQ0FB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Q0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVELHNCQUFzQjtRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQWM7UUFDcEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7O0FBaGxCSCw4QkFpbEJDO0FBaGxCZ0IseUJBQWUsR0FBRyxrQ0FBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBIYW5kbGViYXJzIGZyb20gJ2hhbmRsZWJhcnMnO1xuaW1wb3J0IHsgUnVkZGVyU3RhY2tFdmVudCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCBnZXQgZnJvbSAnZ2V0LXZhbHVlJztcbmltcG9ydCBzZXQgZnJvbSAnc2V0LXZhbHVlJztcbmltcG9ydCB7IGV2ZXJ5LCBpc0VtcHR5LCBpc05pbCwgaXNOdW1iZXIgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgbG9nZ2VyIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBQbGF0Zm9ybUVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL3BsYXRmb3JtX2Vycm9yJztcbmltcG9ydCB7IFNlbWFudGljVXRpbCB9IGZyb20gJy4vc2VtJztcbmltcG9ydCB7IEluc3RydW1lbnRhdGlvbkVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL2luc3RydW1lbnRhdGlvbl9lcnJvcic7XG5pbXBvcnQge1xuICBmbGF0dGVuSnNvbixcbiAgZm9ybWF0VGltZVN0YW1wLFxuICBnZXRPZmZzZXRJblNlYyxcbiAgaGFzaFRvU2hhMjU2LFxuICBpc0RlZmluZWRBbmROb3ROdWxsLFxuICBpc1ZhbGlkVXJsLFxufSBmcm9tICcuL21pc2MnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQtdGltZXpvbmUnO1xuaW1wb3J0IHsgVHJhbnNmb3JtYXRpb25FcnJvciB9IGZyb20gJy4uL2Vycm9ycy90cmFuc2Zvcm1hdGlvbl9lcnJvcic7XG5pbXBvcnQgeyBHRU5FUklDX01BUFBJTkdfQ09ORklHIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbnR5cGUgT3BlcmF0aW9uID0ge1xuICBvcGVyYXRpb246IHN0cmluZztcbiAgYXJnczogeyBzb3VyY2VLZXlzOiBzdHJpbmdbXTsgZGVmYXVsdFZhbD86IGFueSB9W107XG59O1xudHlwZSBNYXBwaW5nTWV0YWRhdGEgPSB7XG4gIHR5cGU/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgdHlwZUZvcm1hdD86IHN0cmluZztcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IHVua25vd247XG4gIGV4Y2x1ZGVzPzogc3RyaW5nW107XG4gIG11bHRpa2V5TWFwPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9O1xuICBzdHJpY3RNdWx0aU1hcD86IHsgc291cmNlVmFsOiBzdHJpbmdbXTsgZGVzdFZhbDogc3RyaW5nIH1bXTtcbiAgdmFsaWRhdGVUaW1lc3RhbXA/OiB7XG4gICAgYWxsb3dlZEZ1dHVyZVRpbWVEaWZmZXJlbmNlOiBudW1iZXI7XG4gICAgYWxsb3dlZEZ1dHVyZVRpbWVVbml0OiBzdHJpbmc7XG4gICAgYWxsb3dlZFBhc3RUaW1lRGlmZmVyZW5jZTogbnVtYmVyO1xuICAgIGFsbG93ZWRQYXN0VGltZVVuaXQ6IHN0cmluZztcbiAgfTtcbiAgYWxsb3dlZEtleUNoZWNrPzogeyB0eXBlOiBzdHJpbmc7IHNvdXJjZVZhbDogc3RyaW5nW10gfVtdO1xufVxuZXhwb3J0IGNsYXNzIEpzb25VdGlscyB7XG4gIHByaXZhdGUgc3RhdGljIE1FU1NBR0VfTUFQUElORyA9IEdFTkVSSUNfTUFQUElOR19DT05GSUc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uOiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGhhbmRsZSB0aGUgc291cmNlIGtleXMgb3BlcmF0aW9uXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gdGhlIG1lc3NhZ2Ugb2JqZWN0XG4gICAqIEByZXR1cm5zXHR7YW55fVx0LSByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgc291cmNlIGtleVxuICAgKiBcdFx0XHRcdFx0XHRpZiB0aGUgc291cmNlIGtleSBpcyBub3QgcHJlc2VudCBpbiB0aGUgbWVzc2FnZVxuICAgKiBcdFx0XHRcdFx0XHRyZXR1cm5zIG51bGxcbiAgICpcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGhhbmRsZVNvdXJjZUtleXNPcGVyYXRpb24oe1xuICAgIG1lc3NhZ2UsXG4gICAgb3BlcmF0aW9uT2JqZWN0LFxuICB9OiB7XG4gICAgbWVzc2FnZTogUnVkZGVyU3RhY2tFdmVudDtcbiAgICBvcGVyYXRpb25PYmplY3Q6IE9wZXJhdGlvbjtcbiAgfSk6IGFueSB7XG4gICAgY29uc3QgeyBvcGVyYXRpb24sIGFyZ3MgfSA9IG9wZXJhdGlvbk9iamVjdDtcblxuICAgIC8vIHBvcHVsYXRlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgYXJndW1lbnRzXG4gICAgLy8gaW4gdGhlIHNhbWUgb3JkZXIgaXQgaXMgcG9wdWxhdGVkXG4gICAgY29uc3QgYXJnVmFsdWVzID0gYXJncy5tYXAoKGFyZykgPT4ge1xuICAgICAgY29uc3QgeyBzb3VyY2VLZXlzLCBkZWZhdWx0VmFsIH0gPSBhcmc7XG4gICAgICBjb25zdCB2YWwgPSBnZXQobWVzc2FnZSwgc291cmNlS2V5cyk7XG4gICAgICBpZiAodmFsIHx8IHZhbCA9PT0gZmFsc2UgfHwgdmFsID09PSAwKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbDtcbiAgICB9KTtcblxuICAgIC8vIHF1aWNrIHNhbml0eSBjaGVjayBmb3IgdGhlIHVuZGVmaW5lZCB2YWx1ZXMgaW4gdGhlIGxpc3QuXG4gICAgLy8gaWYgdGhlcmUgaXMgYW55IHVuZGVmaW5lZCB2YWx1ZXMsIHJldHVybiBudWxsXG4gICAgLy8gd2l0aG91dCBnb2luZyBmdXJ0aGVyIGZvciBvcGVyYXRpb25zXG4gICAgY29uc3QgaXNBbGxEZWZpbmVkID0gZXZlcnkoYXJnVmFsdWVzLCAodikgPT4gIWlzTmlsKHYpKTtcbiAgICBpZiAoIWlzQWxsRGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gc3RhcnQgaGFuZGxpbmcgb3BlcmF0aW9uc1xuICAgIGxldCByZXN1bHQ6IG51bWJlcjtcbiAgICBzd2l0Y2ggKG9wZXJhdGlvbikge1xuICAgICAgY2FzZSAnbXVsdGlwbGljYXRpb24nOlxuICAgICAgICByZXN1bHQgPSAxO1xuICAgICAgICBmb3IgKGNvbnN0IHYgb2YgYXJnVmFsdWVzKSB7XG4gICAgICAgICAgaWYgKGlzTnVtYmVyKHYpKSB7XG4gICAgICAgICAgICByZXN1bHQgKj0gdjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSBub24gbnVtYmVyIGFyZ3VtZW50IHNpbXBseSByZXR1cm4gbnVsbFxuICAgICAgICAgICAgLy8gbm9uIG51bWJlcnMgY2FuJ3QgYmUgb3BlcmF0ZWQgYXJpdGhtYXRpY2FsbHlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgY2FzZSAnYWRkaXRpb24nOlxuICAgICAgICByZXN1bHQgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IHYgb2YgYXJnVmFsdWVzKSB7XG4gICAgICAgICAgaWYgKGlzTnVtYmVyKHYpKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gdjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYSBub24gbnVtYmVyIGFyZ3VtZW50IHNpbXBseSByZXR1cm4gbnVsbFxuICAgICAgICAgICAgLy8gbm9uIG51bWJlcnMgY2FuJ3QgYmUgb3BlcmF0ZWQgYXJpdGhtYXRpY2FsbHlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY2hlY2tUaW1lc3RhbXAoXG4gICAgdmFsaWRhdGVUaW1lc3RhbXA6IHtcbiAgICAgIGFsbG93ZWRGdXR1cmVUaW1lRGlmZmVyZW5jZTogbnVtYmVyO1xuICAgICAgYWxsb3dlZEZ1dHVyZVRpbWVVbml0OiBzdHJpbmc7XG4gICAgICBhbGxvd2VkUGFzdFRpbWVEaWZmZXJlbmNlOiBudW1iZXI7XG4gICAgICBhbGxvd2VkUGFzdFRpbWVVbml0OiBzdHJpbmc7XG4gICAgfSxcbiAgICBmb3JtYXR0ZWRWYWw6IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3Qge1xuICAgICAgYWxsb3dlZFBhc3RUaW1lRGlmZmVyZW5jZSxcbiAgICAgIGFsbG93ZWRQYXN0VGltZVVuaXQsIC8vIHNlY29uZHMsIG1pbnV0ZXMsIGhvdXJzXG4gICAgICBhbGxvd2VkRnV0dXJlVGltZURpZmZlcmVuY2UsXG4gICAgICBhbGxvd2VkRnV0dXJlVGltZVVuaXQsIC8vIHNlY29uZHMsIG1pbnV0ZXMsIGhvdXJzXG4gICAgfSA9IHZhbGlkYXRlVGltZXN0YW1wO1xuXG4gICAgbGV0IHBhc3RUaW1lRGlmZmVyZW5jZTtcbiAgICBsZXQgZnV0dXJlVGltZURpZmZlcmVuY2U7XG5cbiAgICBjb25zdCBjdXJyZW50VGltZSA9IG1vbWVudC51bml4KE51bWJlcihtb21lbnQoKS5mb3JtYXQoJ1gnKSkpO1xuICAgIGNvbnN0IHRpbWUgPSBtb21lbnQudW5peChOdW1iZXIobW9tZW50KGZvcm1hdHRlZFZhbCkuZm9ybWF0KCdYJykpKTtcblxuICAgIHN3aXRjaCAoYWxsb3dlZFBhc3RUaW1lVW5pdCkge1xuICAgICAgY2FzZSAnc2Vjb25kcyc6XG4gICAgICAgIHBhc3RUaW1lRGlmZmVyZW5jZSA9IE1hdGguY2VpbChtb21lbnQuZHVyYXRpb24oY3VycmVudFRpbWUuZGlmZih0aW1lKSkuYXNTZWNvbmRzKCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21pbnV0ZXMnOlxuICAgICAgICBwYXN0VGltZURpZmZlcmVuY2UgPSBNYXRoLmNlaWwobW9tZW50LmR1cmF0aW9uKGN1cnJlbnRUaW1lLmRpZmYodGltZSkpLmFzTWludXRlcygpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdob3Vycyc6XG4gICAgICAgIHBhc3RUaW1lRGlmZmVyZW5jZSA9IE1hdGguY2VpbChtb21lbnQuZHVyYXRpb24oY3VycmVudFRpbWUuZGlmZih0aW1lKSkuYXNIb3VycygpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAocGFzdFRpbWVEaWZmZXJlbmNlID4gYWxsb3dlZFBhc3RUaW1lRGlmZmVyZW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEluc3RydW1lbnRhdGlvbkVycm9yKFxuICAgICAgICBgQWxsb3dlZCB0aW1lc3RhbXAgaXMgWyR7YWxsb3dlZFBhc3RUaW1lRGlmZmVyZW5jZX0gJHthbGxvd2VkUGFzdFRpbWVVbml0fV0gaW50byB0aGUgcGFzdGAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwYXN0VGltZURpZmZlcmVuY2UgPD0gMCkge1xuICAgICAgc3dpdGNoIChhbGxvd2VkRnV0dXJlVGltZVVuaXQpIHtcbiAgICAgICAgY2FzZSAnc2Vjb25kcyc6XG4gICAgICAgICAgZnV0dXJlVGltZURpZmZlcmVuY2UgPSBNYXRoLmNlaWwobW9tZW50LmR1cmF0aW9uKHRpbWUuZGlmZihjdXJyZW50VGltZSkpLmFzU2Vjb25kcygpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbWludXRlcyc6XG4gICAgICAgICAgZnV0dXJlVGltZURpZmZlcmVuY2UgPSBNYXRoLmNlaWwobW9tZW50LmR1cmF0aW9uKHRpbWUuZGlmZihjdXJyZW50VGltZSkpLmFzTWludXRlcygpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaG91cnMnOlxuICAgICAgICAgIGZ1dHVyZVRpbWVEaWZmZXJlbmNlID0gTWF0aC5jZWlsKG1vbWVudC5kdXJhdGlvbih0aW1lLmRpZmYoY3VycmVudFRpbWUpKS5hc0hvdXJzKCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoZnV0dXJlVGltZURpZmZlcmVuY2UgPiBhbGxvd2VkRnV0dXJlVGltZURpZmZlcmVuY2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEluc3RydW1lbnRhdGlvbkVycm9yKFxuICAgICAgICAgIGBBbGxvd2VkIHRpbWVzdGFtcCBpcyBbJHthbGxvd2VkRnV0dXJlVGltZURpZmZlcmVuY2V9ICR7YWxsb3dlZEZ1dHVyZVRpbWVVbml0fV0gaW50byB0aGUgZnV0dXJlYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBmb3JtYXRWYWx1ZXMoXG4gICAgZm9ybWF0dGVkVmFsOiB1bmtub3duLFxuICAgIGZvcm1hdHRpbmdUeXBlOiBzdHJpbmcsXG4gICAgdHlwZUZvcm1hdD86IHN0cmluZyxcbiAgICBpbnRlZ3JhdGlvbnNPYmo/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICApIHtcbiAgICBsZXQgY3VyRm9ybWF0dGVkVmFsID0gZm9ybWF0dGVkVmFsO1xuXG4gICAgY29uc3QgZm9ybWF0dGluZ0Z1bmN0aW9ucyA9IHtcbiAgICAgIHRpbWVzdGFtcDogKCkgPT4ge1xuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSBmb3JtYXRUaW1lU3RhbXAoU3RyaW5nKGZvcm1hdHRlZFZhbCksIHR5cGVGb3JtYXQpO1xuICAgICAgfSxcbiAgICAgIHNlY29uZFRpbWVzdGFtcDogKCkgPT4ge1xuICAgICAgICBpZiAoIW1vbWVudChTdHJpbmcoZm9ybWF0dGVkVmFsKSwgJ3gnLCB0cnVlKS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSBNYXRoLmZsb29yKFxuICAgICAgICAgICAgKGZvcm1hdFRpbWVTdGFtcChTdHJpbmcoZm9ybWF0dGVkVmFsKSwgdHlwZUZvcm1hdCkgYXMgbnVtYmVyKSAvIDEwMDAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG1pY3JvU2Vjb25kVGltZXN0YW1wOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlbXBfdmFsID0gbW9tZW50LnVuaXgoTnVtYmVyKG1vbWVudChTdHJpbmcoZm9ybWF0dGVkVmFsKSkuZm9ybWF0KCdYJykpKTtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gdGVtcF92YWwudG9EYXRlKCkuZ2V0VGltZSgpICogMTAwMCArIHRlbXBfdmFsLnRvRGF0ZSgpLmdldE1pbGxpc2Vjb25kcygpO1xuICAgICAgfSxcbiAgICAgIGZsYXRKc29uOiAoKSA9PiB7XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IGZsYXR0ZW5Kc29uKGZvcm1hdHRlZFZhbCk7XG4gICAgICB9LFxuICAgICAgZW5jb2RlVVJJQ29tcG9uZW50OiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRfdmFsOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuID0gZm9ybWF0dGVkVmFsIGFzIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IGVuY29kZVVSSUNvbXBvbmVudCh0X3ZhbCk7XG4gICAgICB9LFxuICAgICAganNvblN0cmluZ2lmeTogKCkgPT4ge1xuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSBKU09OLnN0cmluZ2lmeShmb3JtYXR0ZWRWYWwpO1xuICAgICAgfSxcbiAgICAgIGpzb25TdHJpbmdpZnlPbkZsYXR0ZW46ICgpID0+IHtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gSlNPTi5zdHJpbmdpZnkoZmxhdHRlbkpzb24oZm9ybWF0dGVkVmFsKSk7XG4gICAgICB9LFxuICAgICAgZG9iSW5NTUREOiAoKSA9PiB7XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IFN0cmluZyhmb3JtYXR0ZWRWYWwpLnNsaWNlKDUpO1xuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSBTdHJpbmcoY3VyRm9ybWF0dGVkVmFsKS5yZXBsYWNlKCctJywgJy8nKTtcbiAgICAgIH0sXG4gICAgICBqc29uU3RyaW5naWZ5T25PYmplY3Q6ICgpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBmb3JtYXR0ZWRWYWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gSlNPTi5zdHJpbmdpZnkoZm9ybWF0dGVkVmFsKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG51bWJlckZvclJldmVudWU6ICgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICh0eXBlb2YgZm9ybWF0dGVkVmFsID09PSAnc3RyaW5nJyB8fCBmb3JtYXR0ZWRWYWwgaW5zdGFuY2VvZiBTdHJpbmcpICYmXG4gICAgICAgICAgZm9ybWF0dGVkVmFsLmNoYXJBdCgwKSA9PT0gJyQnXG4gICAgICAgICkge1xuICAgICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IGZvcm1hdHRlZFZhbC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gTnVtYmVyLnBhcnNlRmxvYXQoTnVtYmVyKGN1ckZvcm1hdHRlZFZhbCB8fCAwKS50b0ZpeGVkKDIpKTtcbiAgICAgICAgaWYgKE51bWJlci5pc05hTihjdXJGb3JtYXR0ZWRWYWwpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEluc3RydW1lbnRhdGlvbkVycm9yKCdSZXZlbnVlIGlzIG5vdCBpbiB0aGUgY29ycmVjdCBmb3JtYXQnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRvU3RyaW5nOiAoKSA9PiB7XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IFN0cmluZyhmb3JtYXR0ZWRWYWwpO1xuICAgICAgfSxcbiAgICAgIHRvTnVtYmVyOiAoKSA9PiB7XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IE51bWJlcihmb3JtYXR0ZWRWYWwpO1xuICAgICAgfSxcbiAgICAgIHRvRmxvYXQ6ICgpID0+IHtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gcGFyc2VGbG9hdChTdHJpbmcoZm9ybWF0dGVkVmFsKSk7XG4gICAgICB9LFxuICAgICAgdG9JbnQ6ICgpID0+IHtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gcGFyc2VJbnQoU3RyaW5nKGZvcm1hdHRlZFZhbCksIDEwKTtcbiAgICAgIH0sXG4gICAgICB0b0xvd2VyOiAoKSA9PiB7XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IFN0cmluZyhmb3JtYXR0ZWRWYWwpLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9LFxuICAgICAgaGFzaFRvU2hhMjU2OiAoKSA9PiB7XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IGludGVncmF0aW9uc09iaj8uaGFzaGVkXG4gICAgICAgICAgPyBTdHJpbmcoZm9ybWF0dGVkVmFsKVxuICAgICAgICAgIDogaGFzaFRvU2hhMjU2KFN0cmluZyhmb3JtYXR0ZWRWYWwpKTtcbiAgICAgIH0sXG4gICAgICBnZXRPZmZzZXRJblNlYzogKCkgPT4ge1xuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSBnZXRPZmZzZXRJblNlYyhTdHJpbmcoZm9ybWF0dGVkVmFsKSk7XG4gICAgICB9LFxuICAgICAgZG9tYWluVXJsOiAoKSA9PiB7XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IFN0cmluZyhmb3JtYXR0ZWRWYWwpLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpLnJlcGxhY2UoJ2h0dHA6Ly8nLCAnJyk7XG4gICAgICB9LFxuICAgICAgZG9tYWluVXJsVjI6ICgpID0+IHtcbiAgICAgICAgY29uc3QgdXJsID0gaXNWYWxpZFVybChmb3JtYXR0ZWRWYWwgYXMgc3RyaW5nIHwgVVJMKTtcbiAgICAgICAgaWYgKCF1cmwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW5zdHJ1bWVudGF0aW9uRXJyb3IoYEludmFsaWQgVVJMOiAke2Zvcm1hdHRlZFZhbH1gKTtcbiAgICAgICAgfVxuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSB1cmwuaG9zdG5hbWUucmVwbGFjZSgnd3d3LicsICcnKTtcbiAgICAgIH0sXG4gICAgICBJc0Jvb2xlYW46ICgpID0+IHtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gdHJ1ZTtcbiAgICAgICAgaWYgKCEodHlwZW9mIGZvcm1hdHRlZFZhbCA9PT0gJ2Jvb2xlYW4nKSkge1xuICAgICAgICAgIGxvZ2dlci5kZWJ1ZygnQm9vbGVhbiB2YWx1ZSBtaXNzaW5nLCBzbyBkcm9wcGluZyBpdCcpO1xuICAgICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdHJpbTogKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGZvcm1hdHRlZFZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSBmb3JtYXR0ZWRWYWwudHJpbSgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpZiAoZm9ybWF0dGluZ1R5cGUgaW4gZm9ybWF0dGluZ0Z1bmN0aW9ucykge1xuICAgICAgY29uc3QgZm9ybWF0dGluZ0Z1bmN0aW9uID0gZm9ybWF0dGluZ0Z1bmN0aW9uc1tmb3JtYXR0aW5nVHlwZV07XG4gICAgICBmb3JtYXR0aW5nRnVuY3Rpb24oKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3VyRm9ybWF0dGVkVmFsO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaGFuZGxlRXhjbHVkZXMoXG4gICAgdmFsdWU6IHVua25vd24sXG4gICAgZXhjbHVkZXM6IHN0cmluZ1tdLFxuICAgIGZvcm1hdHRlZFZhbDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIGV4Y2x1ZGUgdGhlIGZpZWxkcyBmcm9tIHRoZSBmb3JtYXR0ZWRWYWxcbiAgICAgIGV4Y2x1ZGVzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBkZWxldGUgZm9ybWF0dGVkVmFsW2tleV07XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nZ2VyLndhcm4oXCJleGNsdWRlcyBkb2Vzbid0IHdvcmsgd2l0aCBub24tb2JqZWN0IGRhdGEgdHlwZS4gSWdub3JpbmcgZXhjbHVkZXNcIik7XG4gICAgfVxuICB9XG5cbiAgLy8gZm9ybWF0IHRoZSB2YWx1ZSBhcyBwZXIgdGhlIG1ldGFkYXRhIHZhbHVlc1xuICAvLyBFeHBlY3RlZCBtZXRhZGF0YSBrZXlzIGFyZTogKGFjY29yZGluZyB0byBwcmVjZWRlbmNlKVxuICAvLyAtIC0gdHlwZSwgdHlwZUZvcm1hdDogZXhwZWN0ZWQgZGF0YSB0eXBlIGFuZCBpdHMgZm9ybWF0XG4gIC8vIC0gLSB0ZW1wbGF0ZSA6IG5lZWQgdG8gaGF2ZSBhIGhhbmRsZWJhciBleHByZXNzaW9uIHt7dmFsdWV9fVxuICAvLyAtIC0gZXhjbHVkZXMgOiBmaWVsZHMgeW91IHdhbnQgdG8gc3RyaXAgb2YgZnJvbSB0aGUgZmluYWwgdmFsdWUgKHdvcmtzIG9ubHkgZm9yIG9iamVjdClcbiAgLy8gLSAtIC0gLSBleDogXCJhbm9ueW1vdXNJZFwiLCBcInVzZXJJZFwiIGZyb20gdHJhaXRzXG4gIHByaXZhdGUgc3RhdGljIGhhbmRsZU1ldGFkYXRhRm9yVmFsdWUoXG4gICAgdmFsdWU6IHVua25vd24sXG4gICAgbWV0YWRhdGE6IE1hcHBpbmdNZXRhZGF0YSxcbiAgICBkZXN0S2V5OiBzdHJpbmcsXG4gICAgaW50ZWdyYXRpb25zT2JqOiB1bmtub3duLFxuICApIHtcbiAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gZ2V0IGluZm9ybWF0aW9uIGZyb20gbWV0YWRhdGFcbiAgICBjb25zdCB7XG4gICAgICB0eXBlLFxuICAgICAgdHlwZUZvcm1hdCxcbiAgICAgIHRlbXBsYXRlLFxuICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgZXhjbHVkZXMsXG4gICAgICBtdWx0aWtleU1hcCxcbiAgICAgIHN0cmljdE11bHRpTWFwLFxuICAgICAgdmFsaWRhdGVUaW1lc3RhbXAsXG4gICAgICBhbGxvd2VkS2V5Q2hlY2ssXG4gICAgfSA9IG1ldGFkYXRhO1xuXG4gICAgLy8gaWYgdmFsdWUgaXMgbnVsbCBhbmQgZGVmYXVsdFZhbHVlIGlzIHN1cHBsaWVkIC0gdXNlIHRoYXRcbiAgICBpZiAoIWlzRGVmaW5lZEFuZE5vdE51bGwodmFsdWUpKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlIHx8IHZhbHVlO1xuICAgIH1cbiAgICAvLyB3ZSd2ZSBnb3QgYSBjb3JyZWN0IHZhbHVlLiBzdGFydCBwcm9jZXNzaW5nXG4gICAgbGV0IGZvcm1hdHRlZFZhbCA9IHZhbHVlO1xuXG4gICAgLyoqXG4gICAgICogdmFsaWRhdGUgYWxsb3dlZCB0aW1lIGRpZmZlcmVuY2VcbiAgICAgKi9cbiAgICBpZiAodmFsaWRhdGVUaW1lc3RhbXApIHtcbiAgICAgIGZvcm1hdHRlZFZhbCA9IE51bWJlcihmb3JtYXR0ZWRWYWwpO1xuICAgICAgaWYgKE51bWJlci5pc05hTihmb3JtYXR0ZWRWYWwpKSB7XG4gICAgICAgIHRocm93IG5ldyBUcmFuc2Zvcm1hdGlvbkVycm9yKCdUaW1lc3RhbXAgaXMgbm90IGEgbnVtYmVyLCBjYW5ub3QgdmFsaWRhdGUnKTtcbiAgICAgIH1cbiAgICAgIEpzb25VdGlscy5jaGVja1RpbWVzdGFtcCh2YWxpZGF0ZVRpbWVzdGFtcCwgZm9ybWF0dGVkVmFsIGFzIG51bWJlcik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHR5cGUpKSB7XG4gICAgICAgIHR5cGUuZm9yRWFjaCgoZWFjaFR5cGUpID0+IHtcbiAgICAgICAgICBmb3JtYXR0ZWRWYWwgPSBKc29uVXRpbHMuZm9ybWF0VmFsdWVzKFxuICAgICAgICAgICAgZm9ybWF0dGVkVmFsLFxuICAgICAgICAgICAgZWFjaFR5cGUsXG4gICAgICAgICAgICB0eXBlRm9ybWF0LFxuICAgICAgICAgICAgaW50ZWdyYXRpb25zT2JqIGFzIHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9LFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybWF0dGVkVmFsID0gSnNvblV0aWxzLmZvcm1hdFZhbHVlcyhcbiAgICAgICAgICBmb3JtYXR0ZWRWYWwsXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICB0eXBlRm9ybWF0LFxuICAgICAgICAgIGludGVncmF0aW9uc09iaiBhcyB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgdGVtcGxhdGVcbiAgICBpZiAodGVtcGxhdGUpIHtcbiAgICAgIGZvcm1hdHRlZFZhbCA9IEpzb25VdGlscy5oYW5kbGVUZW1wbGF0ZSh0ZW1wbGF0ZSwgdmFsdWUgYXMgc3RyaW5nKTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgZXhjbHVkZXNcbiAgICBpZiAoZXhjbHVkZXMpIHtcbiAgICAgIEpzb25VdGlscy5oYW5kbGVFeGNsdWRlcyh2YWx1ZSwgZXhjbHVkZXMsIGZvcm1hdHRlZFZhbCBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgbXVsdGlrZXlNYXBcbiAgICBpZiAobXVsdGlrZXlNYXAgfHwgc3RyaWN0TXVsdGlNYXApIHtcbiAgICAgIGZvcm1hdHRlZFZhbCA9IEpzb25VdGlscy5oYW5kbGVNdWx0aWtleU1hcChcbiAgICAgICAgbXVsdGlrZXlNYXAsXG4gICAgICAgIHN0cmljdE11bHRpTWFwLFxuICAgICAgICBmb3JtYXR0ZWRWYWwsXG4gICAgICAgIGRlc3RLZXksXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChhbGxvd2VkS2V5Q2hlY2spIHtcbiAgICAgIGxldCBmb3VuZFZhbCA9IGZhbHNlO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWxsb3dlZEtleUNoZWNrKSkge1xuICAgICAgICBhbGxvd2VkS2V5Q2hlY2suc29tZSgoa2V5KSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChrZXkudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAndG9Mb3dlckNhc2UnOlxuICAgICAgICAgICAgICBmb3JtYXR0ZWRWYWwgPSBTdHJpbmcoZm9ybWF0dGVkVmFsKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvVXBwZXJDYXNlJzpcbiAgICAgICAgICAgICAgZm9ybWF0dGVkVmFsID0gU3RyaW5nKGZvcm1hdHRlZFZhbCkudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGtleS5zb3VyY2VWYWwuaW5jbHVkZXMoZm9ybWF0dGVkVmFsIGFzIGFueSkpIHtcbiAgICAgICAgICAgIGZvdW5kVmFsID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCFmb3VuZFZhbCkge1xuICAgICAgICBmb3JtYXR0ZWRWYWwgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1hdHRlZFZhbDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGhhbmRsZVRlbXBsYXRlKHRlbXBsYXRlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoVGVtcGxhdGUgPSBIYW5kbGViYXJzLmNvbXBpbGUodGVtcGxhdGUudHJpbSgpKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWwgPSBoVGVtcGxhdGUoeyB2YWx1ZSB9KS50cmltKCk7XG4gICAgcmV0dXJuIGZvcm1hdHRlZFZhbDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGhhbmRsZU11bHRpa2V5TWFwKFxuICAgIG11bHRpa2V5TWFwOlxuICAgICAgfCB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nW107XG4gICAgICAgIH1cbiAgICAgIHwgdW5kZWZpbmVkLFxuICAgIHN0cmljdE11bHRpTWFwOlxuICAgICAgfCB7XG4gICAgICAgICAgc291cmNlVmFsOiBzdHJpbmdbXTtcbiAgICAgICAgICBkZXN0VmFsOiBzdHJpbmc7XG4gICAgICAgIH1bXVxuICAgICAgfCB1bmRlZmluZWQsXG4gICAgZm9ybWF0dGVkVmFsOiB1bmtub3duLFxuICAgIGRlc3RLZXk6IHN0cmluZyxcbiAgKSB7XG4gICAgLy8gc291cmNlVmFsIGlzIGV4cGVjdGVkIHRvIGJlIGFuIGFycmF5XG4gICAgLy8gaWYgdmFsdWUgaXMgcHJlc2VudCBpbiBzb3VyY2VWYWwsIHJldHVybnMgdGhlIGRlc3RWYWxcbiAgICAvLyBlbHNlIHJldHVybnMgdGhlIG9yaWdpbmFsIHZhbHVlXG4gICAgLy8gRXhwZWN0ZWQgbXVsdGlrZXlNYXAgdmFsdWU6XG4gICAgLy8gXCJtdWx0aWtleU1hcFwiOiBbXG4gICAgLy8gICB7XG4gICAgLy8gICAgIFwic291cmNlVmFsXCI6IFtcIm1cIiwgXCJNXCIsIFwiTWFsZVwiLCBcIm1hbGVcIl0sXG4gICAgLy8gICAgIFwiZGVzdFZhbFwiOiBcIk1cIlxuICAgIC8vICAgfSxcbiAgICAvLyAgIHtcbiAgICAvLyAgICAgXCJzb3VyY2VWYWxcIjogW1wiZlwiLCBcIkZcIiwgXCJGZW1hbGVcIiwgXCJmZW1hbGVcIl0sXG4gICAgLy8gICAgIFwiZGVzdFZhbFwiOiBcIkZcIlxuICAgIC8vICAgfVxuICAgIC8vIF1cbiAgICBsZXQgY3VyRm9ybWF0dGVkVmFsID0gZm9ybWF0dGVkVmFsO1xuICAgIGNvbnN0IGZpbmFsS2V5TWFwID0gbXVsdGlrZXlNYXAgfHwgc3RyaWN0TXVsdGlNYXA7XG4gICAgbGV0IGZvdW5kVmFsID0gZmFsc2U7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZmluYWxLZXlNYXApKSB7XG4gICAgICBmaW5hbEtleU1hcC5zb21lKChtYXApID0+IHtcbiAgICAgICAgaWYgKCFtYXAuc291cmNlVmFsIHx8ICFpc0RlZmluZWRBbmROb3ROdWxsKG1hcC5kZXN0VmFsKSB8fCAhQXJyYXkuaXNBcnJheShtYXAuc291cmNlVmFsKSkge1xuICAgICAgICAgIGxvZ2dlci53YXJuKCdtdWx0aWtleU1hcCBza2lwcGVkOiBzb3VyY2VWYWwgYW5kIGRlc3RWYWwgbXVzdCBiZSBvZiB2YWxpZCB0eXBlJyk7XG4gICAgICAgICAgZm91bmRWYWwgPSB0cnVlO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1hcC5zb3VyY2VWYWwuaW5jbHVkZXMoU3RyaW5nKGZvcm1hdHRlZFZhbCkpKSB7XG4gICAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gbWFwLmRlc3RWYWw7XG4gICAgICAgICAgZm91bmRWYWwgPSB0cnVlO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ2dlci53YXJuKCdtdWx0aWtleU1hcCBza2lwcGVkOiBtdWx0aWtleU1hcCBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gICAgfVxuICAgIGlmICghZm91bmRWYWwpIHtcbiAgICAgIGlmIChzdHJpY3RNdWx0aU1hcCkge1xuICAgICAgICB0aHJvdyBuZXcgSW5zdHJ1bWVudGF0aW9uRXJyb3IoYEludmFsaWQgZW50cnkgZm9yIGtleSAke2Rlc3RLZXl9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjdXJGb3JtYXR0ZWRWYWw7XG4gIH1cblxuICAvKipcbiAgICogRGVzY3JpcHRpb246IFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gZ2V0IHRoZSB2YWx1ZSBmcm9tIHRoZSBtZXNzYWdlXG4gICAqIFx0XHRcdFx0XHRcdCAgYmFzZWQgb24gdGhlIHNvdXJjZSBrZXlzXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gdGhlIG1lc3NhZ2Ugb2JqZWN0XG4gICAqIEBwYXJhbSBzb3VyY2VLZXlzIC0gdGhlIHNvdXJjZSBrZXlzIHRvIGJlIHVzZWQgdG8gZ2V0IHRoZSB2YWx1ZSBmcm9tIHRoZSBtZXNzYWdlXG4gICAqIEByZXR1cm5zICB7YW55fSAtIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2Uga2V5XG4gICAqICAgICAgICAgICAgIGlmIHRoZSBzb3VyY2Uga2V5IGlzIG5vdCBwcmVzZW50IGluIHRoZSBtZXNzYWdlXG4gICAqICAgICAgICAgICAgcmV0dXJucyBudWxsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldFZhbHVlRnJvbU1lc3NhZ2UoXG4gICAgbWVzc2FnZTogUnVkZGVyU3RhY2tFdmVudCxcbiAgICBzb3VyY2VLZXlzOiAoc3RyaW5nIHwgb2JqZWN0KVtdIHwgc3RyaW5nIHwgb2JqZWN0LFxuICApOiBhbnkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZUtleXMpICYmIHNvdXJjZUtleXMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHNvdXJjZUtleXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGxvZ2dlci53YXJuKCdMaXN0IHdpdGggc2luZ2xlIGVsZW1lbnQgaXMgbm90IGlkZWFsLiBVc2UgaXQgYXMgc3RyaW5nIGluc3RlYWQnKTtcbiAgICAgIH1cbiAgICAgIC8vIGdvdCB0aGUgcG9zc2libGUgc291cmNlS2V5c1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICBmb3IgKGNvbnN0IHNvdXJjZUtleSBvZiBzb3VyY2VLZXlzKSB7XG4gICAgICAgIGxldCB2YWw6IG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW4gfCBBcnJheTxhbnk+IHwgT2JqZWN0IHwgbnVsbDtcbiAgICAgICAgLy8gaWYgdGhlIHNvdXJjZUtleSBpcyBhbiBvYmplY3Qgd2UgZXhwZWN0IGl0IHRvIGJlIGEgb3BlcmF0aW9uXG4gICAgICAgIGlmICh0eXBlb2Ygc291cmNlS2V5ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHZhbCA9IEpzb25VdGlscy5oYW5kbGVTb3VyY2VLZXlzT3BlcmF0aW9uKHtcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBvcGVyYXRpb25PYmplY3Q6IHNvdXJjZUtleSBhcyBPcGVyYXRpb24sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsID0gZ2V0KG1lc3NhZ2UsIHNvdXJjZUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCB8fCB2YWwgPT09IGZhbHNlIHx8IHZhbCA9PT0gMCkge1xuICAgICAgICAgIC8vIHJldHVybiBvbmx5IGlmIHRoZSB2YWx1ZSBpcyB2YWxpZC5cbiAgICAgICAgICAvLyBlbHNlIGxvb2sgZm9yIG5leHQgcG9zc2libGUgc291cmNlIGluIHByZWNlZGVuY2VcbiAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygc291cmNlS2V5cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIGdvdCBhIHNpbmdsZSBrZXlcbiAgICAgIC8vIC0gd2UgZG9uJ3QgbmVlZCB0byBpdGVyYXRlIG92ZXIgYSBsb29wIGZvciBhIHNpbmdsZSBwb3NzaWJsZSB2YWx1ZVxuICAgICAgcmV0dXJuIGdldChtZXNzYWdlLCBzb3VyY2VLZXlzKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzb3VyY2VLZXlzID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gaWYgdGhlIHNvdXJjZUtleSBpcyBhbiBvYmplY3Qgd2UgZXhwZWN0IGl0IHRvIGJlIGEgb3BlcmF0aW9uXG4gICAgICByZXR1cm4gSnNvblV0aWxzLmhhbmRsZVNvdXJjZUtleXNPcGVyYXRpb24oe1xuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBvcGVyYXRpb25PYmplY3Q6IHNvdXJjZUtleXMgYXMgeyBvcGVyYXRpb246IHN0cmluZzsgYXJnczogYW55W10gfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB3cm9uZyBzb3VyY2VLZXkgdHlwZS4gYWJvcnRcbiAgICAgIC8vIERFVkVMT1BFUiBFUlJPUlxuICAgICAgdGhyb3cgbmV3IFBsYXRmb3JtRXJyb3IoJ1dyb25nIHNvdXJjZUtleSB0eXBlIG9yIGJsYW5rIHNvdXJjZUtleSBhcnJheScpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbjogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBnZXQgdGhlIHZhbHVlIGZyb20gdGhlIG1lc3NhZ2VcbiAgICogICAgICAgICAgICAgICBiYXNlZCBvbiB0aGUgc291cmNlIGtleVxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIHRoZSBtZXNzYWdlIG9iamVjdFxuICAgKiBAcGFyYW0gc291cmNlS2V5IC0gdGhlIHNvdXJjZSBrZXkgdG8gYmUgdXNlZCB0byBnZXQgdGhlIHZhbHVlIGZyb20gdGhlIG1lc3NhZ2VcbiAgICogQHJldHVybnMgIHthbnl9IC0gcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSBrZXlcbiAgICogICAgICAgICAgICBpZiB0aGUgc291cmNlIGtleSBpcyBub3QgcHJlc2VudCBpbiB0aGUgbWVzc2FnZVxuICAgKiAgICAgICAgICAgcmV0dXJucyBudWxsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldEZpZWxkVmFsdWVGcm9tTWVzc2FnZShtZXNzYWdlOiBSdWRkZXJTdGFja0V2ZW50LCBzb3VyY2VLZXk6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3Qgc291cmNlS2V5TWFwID0gSnNvblV0aWxzLk1FU1NBR0VfTUFQUElOR1tzb3VyY2VLZXldO1xuICAgIGlmIChzb3VyY2VLZXlNYXApIHtcbiAgICAgIHJldHVybiBKc29uVXRpbHMuZ2V0VmFsdWVGcm9tTWVzc2FnZShtZXNzYWdlLCBzb3VyY2VLZXlNYXApO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbjogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIHBheWxvYWQgYmFzZWQgb24gdGhlIG1hcHBpbmdKc29uXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gdGhlIG1lc3NhZ2Ugb2JqZWN0XG4gICAqIEBwYXJhbSBtYXBwaW5nSnNvbiAtIHRoZSBtYXBwaW5nSnNvbiB0byBiZSB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgcGF5bG9hZFxuICAgKiBAcGFyYW0gZGVzdGluYXRpb25OYW1lIC0gdGhlIGRlc3RpbmF0aW9uIG5hbWUgdG8gYmUgdXNlZCB0byBnZXQgdGhlIG1hcHBpbmdKc29uXG4gICAqIEByZXR1cm5zICB7YW55fSAtIHJldHVybnMgdGhlIHBheWxvYWQgY29uc3RydWN0ZWQgYmFzZWQgb24gdGhlIG1hcHBpbmdKc29uXG4gICAqICAgICAgICAgICBpZiB0aGUgbWFwcGluZ0pzb24gaXMgbm90IHByZXNlbnQgaW4gdGhlIG1lc3NhZ2Ugb3IgYmxhbmtcbiAgICogICAgICAgICAgIHJldHVybnMgbnVsbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb25zdHJ1Y3RQYXlsb2FkKFxuICAgIG1lc3NhZ2U6IFJ1ZGRlclN0YWNrRXZlbnQsXG4gICAgbWFwcGluZ0pzb246IGFueVtdLFxuICAgIGRlc3RpbmF0aW9uTmFtZTogc3RyaW5nID0gJycsXG4gICk6IGFueSB7XG4gICAgLy8gTWFwcGluZyBKU09OIHNob3VsZCBiZSBhbiBhcnJheVxuICAgIGlmIChBcnJheS5pc0FycmF5KG1hcHBpbmdKc29uKSAmJiBtYXBwaW5nSnNvbi5sZW5ndGggPiAwKSB7XG4gICAgICAvLyAtIGNvbnN0cnVjdCBhIGJsYW5rIHBheWxvYWQgYW5kIHJldHVybiBhdCB0aGUgZW5kXG4gICAgICAvLyAtIGlmIHlvdSB0byBuZWVkIG1lcmdlIG11bHRpcGxlIGNvbnN0cnVjdFBheWxvYWQgZG8gaXQgb24gdGhlIHRyYW5zZm9ybWVyIGNvZGVcbiAgICAgIC8vIC0gLSB3aWxsIGdpdmUgYSBjbGVhbmVyIGFwcHJvYWNoXG4gICAgICAvLyAtIC0geW91IGRvbid0IG5lZWQgdG8gaXRlcmF0ZSBvdmVyIG11bHRpcGxlIGxvb3BzIHRvIGNvbnN0cnVjdCBhIHBheWxvYWQgZm9yIGEgc2luZ2xlIGV2ZW50XG4gICAgICBjb25zdCBwYXlsb2FkID0ge307XG5cbiAgICAgIG1hcHBpbmdKc29uLmZvckVhY2goKG1hcHBpbmcpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHNvdXJjZUtleXMsXG4gICAgICAgICAgZGVzdEtleSxcbiAgICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICBzb3VyY2VGcm9tR2VuZXJpY01hcCxcbiAgICAgICAgfToge1xuICAgICAgICAgIHNvdXJjZUtleXM6IChzdHJpbmcgfCBvYmplY3QpW10gfCBzdHJpbmcgfCBvYmplY3Q7XG4gICAgICAgICAgZGVzdEtleTogc3RyaW5nO1xuICAgICAgICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgICAgICAgIG1ldGFkYXRhOiBNYXBwaW5nTWV0YWRhdGE7XG4gICAgICAgICAgc291cmNlRnJvbUdlbmVyaWNNYXA6IGJvb2xlYW47XG4gICAgICAgIH0gPSBtYXBwaW5nO1xuICAgICAgICAvLyBnZXQgdGhlIHZhbHVlIGZyb20gZXZlbnQsIHBhc3Mgc291cmNlRnJvbUdlbmVyaWNNYXAgaW4gdGhlIG1hcHBpbmcgdG8gZm9yY2UgdGhpcyB0byB0YWtlIHRoZVxuICAgICAgICAvLyBzb3VyY2VrZXlzIGZyb20gR2VuZXJpY0ZpZWxkTWFwcGluZywgZWxzZSB0YWtlIHRoZSBzb3VyY2VLZXlzIGZyb20gc3BlY2lmaWMgZGVzdGluYXRpb24gbWFwcGluZyBzb3VyY2VLZXlzXG4gICAgICAgIGNvbnN0IGludGVncmF0aW9uc09iaiA9IGlzRW1wdHkoZGVzdGluYXRpb25OYW1lKVxuICAgICAgICAgID8gU2VtYW50aWNVdGlsLmdldEludGVncmF0aW9uc09iaihtZXNzYWdlLCBkZXN0aW5hdGlvbk5hbWUpXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IEpzb25VdGlscy5oYW5kbGVNZXRhZGF0YUZvclZhbHVlKFxuICAgICAgICAgIHNvdXJjZUZyb21HZW5lcmljTWFwXG4gICAgICAgICAgICA/IHRoaXMuZ2V0RmllbGRWYWx1ZUZyb21NZXNzYWdlKG1lc3NhZ2UsIHNvdXJjZUtleXMgYXMgc3RyaW5nKVxuICAgICAgICAgICAgOiB0aGlzLmdldFZhbHVlRnJvbU1lc3NhZ2UobWVzc2FnZSwgc291cmNlS2V5cyksXG4gICAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgICAgZGVzdEtleSxcbiAgICAgICAgICBpbnRlZ3JhdGlvbnNPYmosXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHZhbHVlIHx8IHZhbHVlID09PSAwIHx8IHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgIGlmIChkZXN0S2V5KSB7XG4gICAgICAgICAgICAvLyBzZXQgdGhlIHZhbHVlIG9ubHkgaWYgY29ycmVjdFxuICAgICAgICAgICAgc2V0KHBheWxvYWQsIGRlc3RLZXksIHZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdG8gc2V0IHRvIHJvb3QgYW5kIGZsYXR0ZW4gbGF0ZXJcbiAgICAgICAgICAgIHBheWxvYWRbJyddID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgLy8gdGhyb3cgZXJyb3IgaWYgcmVxaXJlZCB2YWx1ZSBpcyBtaXNzaW5nXG4gICAgICAgICAgdGhyb3cgbmV3IEluc3RydW1lbnRhdGlvbkVycm9yKFxuICAgICAgICAgICAgYE1pc3NpbmcgcmVxdWlyZWQgdmFsdWUgZnJvbSAke0pTT04uc3RyaW5naWZ5KHNvdXJjZUtleXMpfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgIH1cblxuICAgIC8vIGludmFsaWQgbWFwcGluZ0pzb25cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc3RyaW5naWZ5KHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9XG59XG4iXX0=
|
|
510
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNERBQW9DO0FBQ3BDLDBEQUE0QjtBQUM1QiwwREFBNEI7QUFDNUIsbUNBQXlEO0FBQ3pELHNFQUFxQztBQUVyQyxrREFBb0M7QUFDcEMsNkRBQXlEO0FBQ3pELCtCQUFxQztBQUNyQywyRUFBdUU7QUFDdkUsaUNBT2dCO0FBQ2hCLHlFQUFxRTtBQUNyRSw0Q0FBc0Q7QUFzQnRELE1BQWEsU0FBUztJQUdwQjs7Ozs7OztPQU9HO0lBQ0ssTUFBTSxDQUFDLHlCQUF5QixDQUFDLEVBQ3ZDLE9BQU8sRUFDUCxlQUFlLEdBSWhCO1FBQ0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxlQUFlLENBQUM7UUFFNUMseUNBQXlDO1FBQ3pDLG9DQUFvQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDdkMsTUFBTSxHQUFHLEdBQUcsSUFBQSxtQkFBRyxFQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNyQyxJQUFJLEdBQUcsSUFBSSxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUU7Z0JBQ3JDLE9BQU8sR0FBRyxDQUFDO2FBQ1o7WUFDRCxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUVILDJEQUEyRDtRQUMzRCxnREFBZ0Q7UUFDaEQsdUNBQXVDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLElBQUEsY0FBSyxFQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFBLGNBQUssRUFBQyxDQUFDLENBQUMsQ0FB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QVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUM1RCxDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVELHNCQUFzQjtRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQWM7UUFDcEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7O0FBbmxCSCw4QkFvbEJDO0FBbmxCZ0IseUJBQWUsR0FBRyxrQ0FBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBIYW5kbGViYXJzIGZyb20gJ2hhbmRsZWJhcnMnO1xuaW1wb3J0IGdldCBmcm9tICdnZXQtdmFsdWUnO1xuaW1wb3J0IHNldCBmcm9tICdzZXQtdmFsdWUnO1xuaW1wb3J0IHsgZXZlcnksIGlzRW1wdHksIGlzTmlsLCBpc051bWJlciB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC10aW1lem9uZSc7XG5pbXBvcnQgeyBSdWRkZXJTdGFja0V2ZW50IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0ICogYXMgbG9nZ2VyIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBQbGF0Zm9ybUVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL3BsYXRmb3JtX2Vycm9yJztcbmltcG9ydCB7IFNlbWFudGljVXRpbCB9IGZyb20gJy4vc2VtJztcbmltcG9ydCB7IEluc3RydW1lbnRhdGlvbkVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL2luc3RydW1lbnRhdGlvbl9lcnJvcic7XG5pbXBvcnQge1xuICBmbGF0dGVuSnNvbixcbiAgZm9ybWF0VGltZVN0YW1wLFxuICBnZXRPZmZzZXRJblNlYyxcbiAgaGFzaFRvU2hhMjU2LFxuICBpc0RlZmluZWRBbmROb3ROdWxsLFxuICBpc1ZhbGlkVXJsLFxufSBmcm9tICcuL21pc2MnO1xuaW1wb3J0IHsgVHJhbnNmb3JtYXRpb25FcnJvciB9IGZyb20gJy4uL2Vycm9ycy90cmFuc2Zvcm1hdGlvbl9lcnJvcic7XG5pbXBvcnQgeyBHRU5FUklDX01BUFBJTkdfQ09ORklHIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxudHlwZSBPcGVyYXRpb24gPSB7XG4gIG9wZXJhdGlvbjogc3RyaW5nO1xuICBhcmdzOiB7IHNvdXJjZUtleXM6IHN0cmluZ1tdOyBkZWZhdWx0VmFsPzogYW55IH1bXTtcbn07XG50eXBlIE1hcHBpbmdNZXRhZGF0YSA9IHtcbiAgdHlwZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICB0eXBlRm9ybWF0Pzogc3RyaW5nO1xuICB0ZW1wbGF0ZT86IHN0cmluZztcbiAgZGVmYXVsdFZhbHVlPzogdW5rbm93bjtcbiAgZXhjbHVkZXM/OiBzdHJpbmdbXTtcbiAgbXVsdGlrZXlNYXA/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH07XG4gIHN0cmljdE11bHRpTWFwPzogeyBzb3VyY2VWYWw6IHN0cmluZ1tdOyBkZXN0VmFsOiBzdHJpbmcgfVtdO1xuICB2YWxpZGF0ZVRpbWVzdGFtcD86IHtcbiAgICBhbGxvd2VkRnV0dXJlVGltZURpZmZlcmVuY2U6IG51bWJlcjtcbiAgICBhbGxvd2VkRnV0dXJlVGltZVVuaXQ6IHN0cmluZztcbiAgICBhbGxvd2VkUGFzdFRpbWVEaWZmZXJlbmNlOiBudW1iZXI7XG4gICAgYWxsb3dlZFBhc3RUaW1lVW5pdDogc3RyaW5nO1xuICB9O1xuICBhbGxvd2VkS2V5Q2hlY2s/OiB7IHR5cGU6IHN0cmluZzsgc291cmNlVmFsOiBzdHJpbmdbXSB9W107XG59O1xuZXhwb3J0IGNsYXNzIEpzb25VdGlscyB7XG4gIHByaXZhdGUgc3RhdGljIE1FU1NBR0VfTUFQUElORyA9IEdFTkVSSUNfTUFQUElOR19DT05GSUc7XG5cbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uOiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGhhbmRsZSB0aGUgc291cmNlIGtleXMgb3BlcmF0aW9uXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gdGhlIG1lc3NhZ2Ugb2JqZWN0XG4gICAqIEByZXR1cm5zXHR7YW55fVx0LSByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgc291cmNlIGtleVxuICAgKiBcdFx0XHRcdFx0XHRpZiB0aGUgc291cmNlIGtleSBpcyBub3QgcHJlc2VudCBpbiB0aGUgbWVzc2FnZVxuICAgKiBcdFx0XHRcdFx0XHRyZXR1cm5zIG51bGxcbiAgICpcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGhhbmRsZVNvdXJjZUtleXNPcGVyYXRpb24oe1xuICAgIG1lc3NhZ2UsXG4gICAgb3BlcmF0aW9uT2JqZWN0LFxuICB9OiB7XG4gICAgbWVzc2FnZTogUnVkZGVyU3RhY2tFdmVudDtcbiAgICBvcGVyYXRpb25PYmplY3Q6IE9wZXJhdGlvbjtcbiAgfSk6IGFueSB7XG4gICAgY29uc3QgeyBvcGVyYXRpb24sIGFyZ3MgfSA9IG9wZXJhdGlvbk9iamVjdDtcblxuICAgIC8vIHBvcHVsYXRlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgYXJndW1lbnRzXG4gICAgLy8gaW4gdGhlIHNhbWUgb3JkZXIgaXQgaXMgcG9wdWxhdGVkXG4gICAgY29uc3QgYXJnVmFsdWVzID0gYXJncy5tYXAoKGFyZykgPT4ge1xuICAgICAgY29uc3QgeyBzb3VyY2VLZXlzLCBkZWZhdWx0VmFsIH0gPSBhcmc7XG4gICAgICBjb25zdCB2YWwgPSBnZXQobWVzc2FnZSwgc291cmNlS2V5cyk7XG4gICAgICBpZiAodmFsIHx8IHZhbCA9PT0gZmFsc2UgfHwgdmFsID09PSAwKSB7XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbDtcbiAgICB9KTtcblxuICAgIC8vIHF1aWNrIHNhbml0eSBjaGVjayBmb3IgdGhlIHVuZGVmaW5lZCB2YWx1ZXMgaW4gdGhlIGxpc3QuXG4gICAgLy8gaWYgdGhlcmUgaXMgYW55IHVuZGVmaW5lZCB2YWx1ZXMsIHJldHVybiBudWxsXG4gICAgLy8gd2l0aG91dCBnb2luZyBmdXJ0aGVyIGZvciBvcGVyYXRpb25zXG4gICAgY29uc3QgaXNBbGxEZWZpbmVkID0gZXZlcnkoYXJnVmFsdWVzLCAodikgPT4gIWlzTmlsKHYpKTtcbiAgICBpZiAoIWlzQWxsRGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gc3RhcnQgaGFuZGxpbmcgb3BlcmF0aW9uc1xuICAgIGxldCByZXN1bHQ6IG51bWJlcjtcbiAgICBzd2l0Y2ggKG9wZXJhdGlvbikge1xuICAgICAgY2FzZSAnbXVsdGlwbGljYXRpb24nOlxuICAgICAgICByZXN1bHQgPSAxO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgICAgICAgZm9yIChjb25zdCB2IG9mIGFyZ1ZhbHVlcykge1xuICAgICAgICAgIGlmIChpc051bWJlcih2KSkge1xuICAgICAgICAgICAgcmVzdWx0ICo9IHY7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGEgbm9uIG51bWJlciBhcmd1bWVudCBzaW1wbHkgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIC8vIG5vbiBudW1iZXJzIGNhbid0IGJlIG9wZXJhdGVkIGFyaXRobWF0aWNhbGx5XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIGNhc2UgJ2FkZGl0aW9uJzpcbiAgICAgICAgcmVzdWx0ID0gMDtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICAgIGZvciAoY29uc3QgdiBvZiBhcmdWYWx1ZXMpIHtcbiAgICAgICAgICBpZiAoaXNOdW1iZXIodikpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSB2O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIG5vbiBudW1iZXIgYXJndW1lbnQgc2ltcGx5IHJldHVybiBudWxsXG4gICAgICAgICAgICAvLyBub24gbnVtYmVycyBjYW4ndCBiZSBvcGVyYXRlZCBhcml0aG1hdGljYWxseVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja1RpbWVzdGFtcChcbiAgICB2YWxpZGF0ZVRpbWVzdGFtcDoge1xuICAgICAgYWxsb3dlZEZ1dHVyZVRpbWVEaWZmZXJlbmNlOiBudW1iZXI7XG4gICAgICBhbGxvd2VkRnV0dXJlVGltZVVuaXQ6IHN0cmluZztcbiAgICAgIGFsbG93ZWRQYXN0VGltZURpZmZlcmVuY2U6IG51bWJlcjtcbiAgICAgIGFsbG93ZWRQYXN0VGltZVVuaXQ6IHN0cmluZztcbiAgICB9LFxuICAgIGZvcm1hdHRlZFZhbDogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCB7XG4gICAgICBhbGxvd2VkUGFzdFRpbWVEaWZmZXJlbmNlLFxuICAgICAgYWxsb3dlZFBhc3RUaW1lVW5pdCwgLy8gc2Vjb25kcywgbWludXRlcywgaG91cnNcbiAgICAgIGFsbG93ZWRGdXR1cmVUaW1lRGlmZmVyZW5jZSxcbiAgICAgIGFsbG93ZWRGdXR1cmVUaW1lVW5pdCwgLy8gc2Vjb25kcywgbWludXRlcywgaG91cnNcbiAgICB9ID0gdmFsaWRhdGVUaW1lc3RhbXA7XG5cbiAgICBsZXQgcGFzdFRpbWVEaWZmZXJlbmNlO1xuICAgIGxldCBmdXR1cmVUaW1lRGlmZmVyZW5jZTtcblxuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbW9tZW50LnVuaXgoTnVtYmVyKG1vbWVudCgpLmZvcm1hdCgnWCcpKSk7XG4gICAgY29uc3QgdGltZSA9IG1vbWVudC51bml4KE51bWJlcihtb21lbnQoZm9ybWF0dGVkVmFsKS5mb3JtYXQoJ1gnKSkpO1xuXG4gICAgc3dpdGNoIChhbGxvd2VkUGFzdFRpbWVVbml0KSB7XG4gICAgICBjYXNlICdzZWNvbmRzJzpcbiAgICAgICAgcGFzdFRpbWVEaWZmZXJlbmNlID0gTWF0aC5jZWlsKG1vbWVudC5kdXJhdGlvbihjdXJyZW50VGltZS5kaWZmKHRpbWUpKS5hc1NlY29uZHMoKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbWludXRlcyc6XG4gICAgICAgIHBhc3RUaW1lRGlmZmVyZW5jZSA9IE1hdGguY2VpbChtb21lbnQuZHVyYXRpb24oY3VycmVudFRpbWUuZGlmZih0aW1lKSkuYXNNaW51dGVzKCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hvdXJzJzpcbiAgICAgICAgcGFzdFRpbWVEaWZmZXJlbmNlID0gTWF0aC5jZWlsKG1vbWVudC5kdXJhdGlvbihjdXJyZW50VGltZS5kaWZmKHRpbWUpKS5hc0hvdXJzKCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChwYXN0VGltZURpZmZlcmVuY2UgPiBhbGxvd2VkUGFzdFRpbWVEaWZmZXJlbmNlKSB7XG4gICAgICB0aHJvdyBuZXcgSW5zdHJ1bWVudGF0aW9uRXJyb3IoXG4gICAgICAgIGBBbGxvd2VkIHRpbWVzdGFtcCBpcyBbJHthbGxvd2VkUGFzdFRpbWVEaWZmZXJlbmNlfSAke2FsbG93ZWRQYXN0VGltZVVuaXR9XSBpbnRvIHRoZSBwYXN0YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHBhc3RUaW1lRGlmZmVyZW5jZSA8PSAwKSB7XG4gICAgICBzd2l0Y2ggKGFsbG93ZWRGdXR1cmVUaW1lVW5pdCkge1xuICAgICAgICBjYXNlICdzZWNvbmRzJzpcbiAgICAgICAgICBmdXR1cmVUaW1lRGlmZmVyZW5jZSA9IE1hdGguY2VpbChtb21lbnQuZHVyYXRpb24odGltZS5kaWZmKGN1cnJlbnRUaW1lKSkuYXNTZWNvbmRzKCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdtaW51dGVzJzpcbiAgICAgICAgICBmdXR1cmVUaW1lRGlmZmVyZW5jZSA9IE1hdGguY2VpbChtb21lbnQuZHVyYXRpb24odGltZS5kaWZmKGN1cnJlbnRUaW1lKSkuYXNNaW51dGVzKCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdob3Vycyc6XG4gICAgICAgICAgZnV0dXJlVGltZURpZmZlcmVuY2UgPSBNYXRoLmNlaWwobW9tZW50LmR1cmF0aW9uKHRpbWUuZGlmZihjdXJyZW50VGltZSkpLmFzSG91cnMoKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChmdXR1cmVUaW1lRGlmZmVyZW5jZSA+IGFsbG93ZWRGdXR1cmVUaW1lRGlmZmVyZW5jZSkge1xuICAgICAgICB0aHJvdyBuZXcgSW5zdHJ1bWVudGF0aW9uRXJyb3IoXG4gICAgICAgICAgYEFsbG93ZWQgdGltZXN0YW1wIGlzIFske2FsbG93ZWRGdXR1cmVUaW1lRGlmZmVyZW5jZX0gJHthbGxvd2VkRnV0dXJlVGltZVVuaXR9XSBpbnRvIHRoZSBmdXR1cmVgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZvcm1hdFZhbHVlcyhcbiAgICBmb3JtYXR0ZWRWYWw6IHVua25vd24sXG4gICAgZm9ybWF0dGluZ1R5cGU6IHN0cmluZyxcbiAgICB0eXBlRm9ybWF0Pzogc3RyaW5nLFxuICAgIGludGVncmF0aW9uc09iaj86IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4gICkge1xuICAgIGxldCBjdXJGb3JtYXR0ZWRWYWwgPSBmb3JtYXR0ZWRWYWw7XG5cbiAgICBjb25zdCBmb3JtYXR0aW5nRnVuY3Rpb25zID0ge1xuICAgICAgdGltZXN0YW1wOiAoKSA9PiB7XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IGZvcm1hdFRpbWVTdGFtcChTdHJpbmcoZm9ybWF0dGVkVmFsKSwgdHlwZUZvcm1hdCk7XG4gICAgICB9LFxuICAgICAgc2Vjb25kVGltZXN0YW1wOiAoKSA9PiB7XG4gICAgICAgIGlmICghbW9tZW50KFN0cmluZyhmb3JtYXR0ZWRWYWwpLCAneCcsIHRydWUpLmlzVmFsaWQoKSkge1xuICAgICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IE1hdGguZmxvb3IoXG4gICAgICAgICAgICAoZm9ybWF0VGltZVN0YW1wKFN0cmluZyhmb3JtYXR0ZWRWYWwpLCB0eXBlRm9ybWF0KSBhcyBudW1iZXIpIC8gMTAwMCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbWljcm9TZWNvbmRUaW1lc3RhbXA6ICgpID0+IHtcbiAgICAgICAgY29uc3QgdGVtcF92YWwgPSBtb21lbnQudW5peChOdW1iZXIobW9tZW50KFN0cmluZyhmb3JtYXR0ZWRWYWwpKS5mb3JtYXQoJ1gnKSkpO1xuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSB0ZW1wX3ZhbC50b0RhdGUoKS5nZXRUaW1lKCkgKiAxMDAwICsgdGVtcF92YWwudG9EYXRlKCkuZ2V0TWlsbGlzZWNvbmRzKCk7XG4gICAgICB9LFxuICAgICAgZmxhdEpzb246ICgpID0+IHtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gZmxhdHRlbkpzb24oZm9ybWF0dGVkVmFsKTtcbiAgICAgIH0sXG4gICAgICBlbmNvZGVVUklDb21wb25lbnQ6ICgpID0+IHtcbiAgICAgICAgY29uc3QgdF92YWw6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gPSBmb3JtYXR0ZWRWYWwgYXMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gZW5jb2RlVVJJQ29tcG9uZW50KHRfdmFsKTtcbiAgICAgIH0sXG4gICAgICBqc29uU3RyaW5naWZ5OiAoKSA9PiB7XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IEpTT04uc3RyaW5naWZ5KGZvcm1hdHRlZFZhbCk7XG4gICAgICB9LFxuICAgICAganNvblN0cmluZ2lmeU9uRmxhdHRlbjogKCkgPT4ge1xuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSBKU09OLnN0cmluZ2lmeShmbGF0dGVuSnNvbihmb3JtYXR0ZWRWYWwpKTtcbiAgICAgIH0sXG4gICAgICBkb2JJbk1NREQ6ICgpID0+IHtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gU3RyaW5nKGZvcm1hdHRlZFZhbCkuc2xpY2UoNSk7XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IFN0cmluZyhjdXJGb3JtYXR0ZWRWYWwpLnJlcGxhY2UoJy0nLCAnLycpO1xuICAgICAgfSxcbiAgICAgIGpzb25TdHJpbmdpZnlPbk9iamVjdDogKCkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGZvcm1hdHRlZFZhbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSBKU09OLnN0cmluZ2lmeShmb3JtYXR0ZWRWYWwpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbnVtYmVyRm9yUmV2ZW51ZTogKCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHR5cGVvZiBmb3JtYXR0ZWRWYWwgPT09ICdzdHJpbmcnIHx8IGZvcm1hdHRlZFZhbCBpbnN0YW5jZW9mIFN0cmluZykgJiZcbiAgICAgICAgICBmb3JtYXR0ZWRWYWwuY2hhckF0KDApID09PSAnJCdcbiAgICAgICAgKSB7XG4gICAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gZm9ybWF0dGVkVmFsLnN1YnN0cmluZygxKTtcbiAgICAgICAgfVxuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSBOdW1iZXIucGFyc2VGbG9hdChOdW1iZXIoY3VyRm9ybWF0dGVkVmFsIHx8IDApLnRvRml4ZWQoMikpO1xuICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKGN1ckZvcm1hdHRlZFZhbCkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW5zdHJ1bWVudGF0aW9uRXJyb3IoJ1JldmVudWUgaXMgbm90IGluIHRoZSBjb3JyZWN0IGZvcm1hdCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdG9TdHJpbmc6ICgpID0+IHtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gU3RyaW5nKGZvcm1hdHRlZFZhbCk7XG4gICAgICB9LFxuICAgICAgdG9OdW1iZXI6ICgpID0+IHtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gTnVtYmVyKGZvcm1hdHRlZFZhbCk7XG4gICAgICB9LFxuICAgICAgdG9GbG9hdDogKCkgPT4ge1xuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSBwYXJzZUZsb2F0KFN0cmluZyhmb3JtYXR0ZWRWYWwpKTtcbiAgICAgIH0sXG4gICAgICB0b0ludDogKCkgPT4ge1xuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSBwYXJzZUludChTdHJpbmcoZm9ybWF0dGVkVmFsKSwgMTApO1xuICAgICAgfSxcbiAgICAgIHRvTG93ZXI6ICgpID0+IHtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gU3RyaW5nKGZvcm1hdHRlZFZhbCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIH0sXG4gICAgICBoYXNoVG9TaGEyNTY6ICgpID0+IHtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gaW50ZWdyYXRpb25zT2JqPy5oYXNoZWRcbiAgICAgICAgICA/IFN0cmluZyhmb3JtYXR0ZWRWYWwpXG4gICAgICAgICAgOiBoYXNoVG9TaGEyNTYoU3RyaW5nKGZvcm1hdHRlZFZhbCkpO1xuICAgICAgfSxcbiAgICAgIGdldE9mZnNldEluU2VjOiAoKSA9PiB7XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IGdldE9mZnNldEluU2VjKFN0cmluZyhmb3JtYXR0ZWRWYWwpKTtcbiAgICAgIH0sXG4gICAgICBkb21haW5Vcmw6ICgpID0+IHtcbiAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gU3RyaW5nKGZvcm1hdHRlZFZhbCkucmVwbGFjZSgnaHR0cHM6Ly8nLCAnJykucmVwbGFjZSgnaHR0cDovLycsICcnKTtcbiAgICAgIH0sXG4gICAgICBkb21haW5VcmxWMjogKCkgPT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBpc1ZhbGlkVXJsKGZvcm1hdHRlZFZhbCBhcyBzdHJpbmcgfCBVUkwpO1xuICAgICAgICBpZiAoIXVybCkge1xuICAgICAgICAgIHRocm93IG5ldyBJbnN0cnVtZW50YXRpb25FcnJvcihgSW52YWxpZCBVUkw6ICR7Zm9ybWF0dGVkVmFsfWApO1xuICAgICAgICB9XG4gICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IHVybC5ob3N0bmFtZS5yZXBsYWNlKCd3d3cuJywgJycpO1xuICAgICAgfSxcbiAgICAgIElzQm9vbGVhbjogKCkgPT4ge1xuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSB0cnVlO1xuICAgICAgICBpZiAoISh0eXBlb2YgZm9ybWF0dGVkVmFsID09PSAnYm9vbGVhbicpKSB7XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKCdCb29sZWFuIHZhbHVlIG1pc3NpbmcsIHNvIGRyb3BwaW5nIGl0Jyk7XG4gICAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB0cmltOiAoKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZm9ybWF0dGVkVmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGN1ckZvcm1hdHRlZFZhbCA9IGZvcm1hdHRlZFZhbC50cmltKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlmIChmb3JtYXR0aW5nVHlwZSBpbiBmb3JtYXR0aW5nRnVuY3Rpb25zKSB7XG4gICAgICBjb25zdCBmb3JtYXR0aW5nRnVuY3Rpb24gPSBmb3JtYXR0aW5nRnVuY3Rpb25zW2Zvcm1hdHRpbmdUeXBlXTtcbiAgICAgIGZvcm1hdHRpbmdGdW5jdGlvbigpO1xuICAgIH1cblxuICAgIHJldHVybiBjdXJGb3JtYXR0ZWRWYWw7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBoYW5kbGVFeGNsdWRlcyhcbiAgICB2YWx1ZTogdW5rbm93bixcbiAgICBleGNsdWRlczogc3RyaW5nW10sXG4gICAgZm9ybWF0dGVkVmFsOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICApIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gZXhjbHVkZSB0aGUgZmllbGRzIGZyb20gdGhlIGZvcm1hdHRlZFZhbFxuICAgICAgZXhjbHVkZXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgICAgICBkZWxldGUgZm9ybWF0dGVkVmFsW2tleV07XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nZ2VyLndhcm4oXCJleGNsdWRlcyBkb2Vzbid0IHdvcmsgd2l0aCBub24tb2JqZWN0IGRhdGEgdHlwZS4gSWdub3JpbmcgZXhjbHVkZXNcIik7XG4gICAgfVxuICB9XG5cbiAgLy8gZm9ybWF0IHRoZSB2YWx1ZSBhcyBwZXIgdGhlIG1ldGFkYXRhIHZhbHVlc1xuICAvLyBFeHBlY3RlZCBtZXRhZGF0YSBrZXlzIGFyZTogKGFjY29yZGluZyB0byBwcmVjZWRlbmNlKVxuICAvLyAtIC0gdHlwZSwgdHlwZUZvcm1hdDogZXhwZWN0ZWQgZGF0YSB0eXBlIGFuZCBpdHMgZm9ybWF0XG4gIC8vIC0gLSB0ZW1wbGF0ZSA6IG5lZWQgdG8gaGF2ZSBhIGhhbmRsZWJhciBleHByZXNzaW9uIHt7dmFsdWV9fVxuICAvLyAtIC0gZXhjbHVkZXMgOiBmaWVsZHMgeW91IHdhbnQgdG8gc3RyaXAgb2YgZnJvbSB0aGUgZmluYWwgdmFsdWUgKHdvcmtzIG9ubHkgZm9yIG9iamVjdClcbiAgLy8gLSAtIC0gLSBleDogXCJhbm9ueW1vdXNJZFwiLCBcInVzZXJJZFwiIGZyb20gdHJhaXRzXG4gIHByaXZhdGUgc3RhdGljIGhhbmRsZU1ldGFkYXRhRm9yVmFsdWUoXG4gICAgdmFsdWU6IHVua25vd24sXG4gICAgbWV0YWRhdGE6IE1hcHBpbmdNZXRhZGF0YSxcbiAgICBkZXN0S2V5OiBzdHJpbmcsXG4gICAgaW50ZWdyYXRpb25zT2JqOiB1bmtub3duLFxuICApIHtcbiAgICBpZiAoIW1ldGFkYXRhKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gZ2V0IGluZm9ybWF0aW9uIGZyb20gbWV0YWRhdGFcbiAgICBjb25zdCB7XG4gICAgICB0eXBlLFxuICAgICAgdHlwZUZvcm1hdCxcbiAgICAgIHRlbXBsYXRlLFxuICAgICAgZGVmYXVsdFZhbHVlLFxuICAgICAgZXhjbHVkZXMsXG4gICAgICBtdWx0aWtleU1hcCxcbiAgICAgIHN0cmljdE11bHRpTWFwLFxuICAgICAgdmFsaWRhdGVUaW1lc3RhbXAsXG4gICAgICBhbGxvd2VkS2V5Q2hlY2ssXG4gICAgfSA9IG1ldGFkYXRhO1xuXG4gICAgLy8gaWYgdmFsdWUgaXMgbnVsbCBhbmQgZGVmYXVsdFZhbHVlIGlzIHN1cHBsaWVkIC0gdXNlIHRoYXRcbiAgICBpZiAoIWlzRGVmaW5lZEFuZE5vdE51bGwodmFsdWUpKSB7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlIHx8IHZhbHVlO1xuICAgIH1cbiAgICAvLyB3ZSd2ZSBnb3QgYSBjb3JyZWN0IHZhbHVlLiBzdGFydCBwcm9jZXNzaW5nXG4gICAgbGV0IGZvcm1hdHRlZFZhbCA9IHZhbHVlO1xuXG4gICAgLyoqXG4gICAgICogdmFsaWRhdGUgYWxsb3dlZCB0aW1lIGRpZmZlcmVuY2VcbiAgICAgKi9cbiAgICBpZiAodmFsaWRhdGVUaW1lc3RhbXApIHtcbiAgICAgIGZvcm1hdHRlZFZhbCA9IE51bWJlcihmb3JtYXR0ZWRWYWwpO1xuICAgICAgaWYgKE51bWJlci5pc05hTihmb3JtYXR0ZWRWYWwpKSB7XG4gICAgICAgIHRocm93IG5ldyBUcmFuc2Zvcm1hdGlvbkVycm9yKCdUaW1lc3RhbXAgaXMgbm90IGEgbnVtYmVyLCBjYW5ub3QgdmFsaWRhdGUnKTtcbiAgICAgIH1cbiAgICAgIEpzb25VdGlscy5jaGVja1RpbWVzdGFtcCh2YWxpZGF0ZVRpbWVzdGFtcCwgZm9ybWF0dGVkVmFsIGFzIG51bWJlcik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHR5cGUpKSB7XG4gICAgICAgIHR5cGUuZm9yRWFjaCgoZWFjaFR5cGUpID0+IHtcbiAgICAgICAgICBmb3JtYXR0ZWRWYWwgPSBKc29uVXRpbHMuZm9ybWF0VmFsdWVzKFxuICAgICAgICAgICAgZm9ybWF0dGVkVmFsLFxuICAgICAgICAgICAgZWFjaFR5cGUsXG4gICAgICAgICAgICB0eXBlRm9ybWF0LFxuICAgICAgICAgICAgaW50ZWdyYXRpb25zT2JqIGFzIHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9LFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybWF0dGVkVmFsID0gSnNvblV0aWxzLmZvcm1hdFZhbHVlcyhcbiAgICAgICAgICBmb3JtYXR0ZWRWYWwsXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICB0eXBlRm9ybWF0LFxuICAgICAgICAgIGludGVncmF0aW9uc09iaiBhcyB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgdGVtcGxhdGVcbiAgICBpZiAodGVtcGxhdGUpIHtcbiAgICAgIGZvcm1hdHRlZFZhbCA9IEpzb25VdGlscy5oYW5kbGVUZW1wbGF0ZSh0ZW1wbGF0ZSwgdmFsdWUgYXMgc3RyaW5nKTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgZXhjbHVkZXNcbiAgICBpZiAoZXhjbHVkZXMpIHtcbiAgICAgIEpzb25VdGlscy5oYW5kbGVFeGNsdWRlcyh2YWx1ZSwgZXhjbHVkZXMsIGZvcm1hdHRlZFZhbCBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KTtcbiAgICB9XG5cbiAgICAvLyBoYW5kbGUgbXVsdGlrZXlNYXBcbiAgICBpZiAobXVsdGlrZXlNYXAgfHwgc3RyaWN0TXVsdGlNYXApIHtcbiAgICAgIGZvcm1hdHRlZFZhbCA9IEpzb25VdGlscy5oYW5kbGVNdWx0aWtleU1hcChcbiAgICAgICAgbXVsdGlrZXlNYXAsXG4gICAgICAgIHN0cmljdE11bHRpTWFwLFxuICAgICAgICBmb3JtYXR0ZWRWYWwsXG4gICAgICAgIGRlc3RLZXksXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChhbGxvd2VkS2V5Q2hlY2spIHtcbiAgICAgIGxldCBmb3VuZFZhbCA9IGZhbHNlO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWxsb3dlZEtleUNoZWNrKSkge1xuICAgICAgICBhbGxvd2VkS2V5Q2hlY2suc29tZSgoa2V5KSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChrZXkudHlwZSkge1xuICAgICAgICAgICAgY2FzZSAndG9Mb3dlckNhc2UnOlxuICAgICAgICAgICAgICBmb3JtYXR0ZWRWYWwgPSBTdHJpbmcoZm9ybWF0dGVkVmFsKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvVXBwZXJDYXNlJzpcbiAgICAgICAgICAgICAgZm9ybWF0dGVkVmFsID0gU3RyaW5nKGZvcm1hdHRlZFZhbCkudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGtleS5zb3VyY2VWYWwuaW5jbHVkZXMoZm9ybWF0dGVkVmFsIGFzIGFueSkpIHtcbiAgICAgICAgICAgIGZvdW5kVmFsID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCFmb3VuZFZhbCkge1xuICAgICAgICBmb3JtYXR0ZWRWYWwgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcm1hdHRlZFZhbDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGhhbmRsZVRlbXBsYXRlKHRlbXBsYXRlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoVGVtcGxhdGUgPSBIYW5kbGViYXJzLmNvbXBpbGUodGVtcGxhdGUudHJpbSgpKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWwgPSBoVGVtcGxhdGUoeyB2YWx1ZSB9KS50cmltKCk7XG4gICAgcmV0dXJuIGZvcm1hdHRlZFZhbDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGhhbmRsZU11bHRpa2V5TWFwKFxuICAgIG11bHRpa2V5TWFwOlxuICAgICAgfCB7XG4gICAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nW107XG4gICAgICAgIH1cbiAgICAgIHwgdW5kZWZpbmVkLFxuICAgIHN0cmljdE11bHRpTWFwOlxuICAgICAgfCB7XG4gICAgICAgICAgc291cmNlVmFsOiBzdHJpbmdbXTtcbiAgICAgICAgICBkZXN0VmFsOiBzdHJpbmc7XG4gICAgICAgIH1bXVxuICAgICAgfCB1bmRlZmluZWQsXG4gICAgZm9ybWF0dGVkVmFsOiB1bmtub3duLFxuICAgIGRlc3RLZXk6IHN0cmluZyxcbiAgKSB7XG4gICAgLy8gc291cmNlVmFsIGlzIGV4cGVjdGVkIHRvIGJlIGFuIGFycmF5XG4gICAgLy8gaWYgdmFsdWUgaXMgcHJlc2VudCBpbiBzb3VyY2VWYWwsIHJldHVybnMgdGhlIGRlc3RWYWxcbiAgICAvLyBlbHNlIHJldHVybnMgdGhlIG9yaWdpbmFsIHZhbHVlXG4gICAgLy8gRXhwZWN0ZWQgbXVsdGlrZXlNYXAgdmFsdWU6XG4gICAgLy8gXCJtdWx0aWtleU1hcFwiOiBbXG4gICAgLy8gICB7XG4gICAgLy8gICAgIFwic291cmNlVmFsXCI6IFtcIm1cIiwgXCJNXCIsIFwiTWFsZVwiLCBcIm1hbGVcIl0sXG4gICAgLy8gICAgIFwiZGVzdFZhbFwiOiBcIk1cIlxuICAgIC8vICAgfSxcbiAgICAvLyAgIHtcbiAgICAvLyAgICAgXCJzb3VyY2VWYWxcIjogW1wiZlwiLCBcIkZcIiwgXCJGZW1hbGVcIiwgXCJmZW1hbGVcIl0sXG4gICAgLy8gICAgIFwiZGVzdFZhbFwiOiBcIkZcIlxuICAgIC8vICAgfVxuICAgIC8vIF1cbiAgICBsZXQgY3VyRm9ybWF0dGVkVmFsID0gZm9ybWF0dGVkVmFsO1xuICAgIGNvbnN0IGZpbmFsS2V5TWFwID0gbXVsdGlrZXlNYXAgfHwgc3RyaWN0TXVsdGlNYXA7XG4gICAgbGV0IGZvdW5kVmFsID0gZmFsc2U7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZmluYWxLZXlNYXApKSB7XG4gICAgICBmaW5hbEtleU1hcC5zb21lKChtYXApID0+IHtcbiAgICAgICAgaWYgKCFtYXAuc291cmNlVmFsIHx8ICFpc0RlZmluZWRBbmROb3ROdWxsKG1hcC5kZXN0VmFsKSB8fCAhQXJyYXkuaXNBcnJheShtYXAuc291cmNlVmFsKSkge1xuICAgICAgICAgIGxvZ2dlci53YXJuKCdtdWx0aWtleU1hcCBza2lwcGVkOiBzb3VyY2VWYWwgYW5kIGRlc3RWYWwgbXVzdCBiZSBvZiB2YWxpZCB0eXBlJyk7XG4gICAgICAgICAgZm91bmRWYWwgPSB0cnVlO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1hcC5zb3VyY2VWYWwuaW5jbHVkZXMoU3RyaW5nKGZvcm1hdHRlZFZhbCkpKSB7XG4gICAgICAgICAgY3VyRm9ybWF0dGVkVmFsID0gbWFwLmRlc3RWYWw7XG4gICAgICAgICAgZm91bmRWYWwgPSB0cnVlO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ2dlci53YXJuKCdtdWx0aWtleU1hcCBza2lwcGVkOiBtdWx0aWtleU1hcCBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gICAgfVxuICAgIGlmICghZm91bmRWYWwpIHtcbiAgICAgIGlmIChzdHJpY3RNdWx0aU1hcCkge1xuICAgICAgICB0aHJvdyBuZXcgSW5zdHJ1bWVudGF0aW9uRXJyb3IoYEludmFsaWQgZW50cnkgZm9yIGtleSAke2Rlc3RLZXl9YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJGb3JtYXR0ZWRWYWwgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjdXJGb3JtYXR0ZWRWYWw7XG4gIH1cblxuICAvKipcbiAgICogRGVzY3JpcHRpb246IFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gZ2V0IHRoZSB2YWx1ZSBmcm9tIHRoZSBtZXNzYWdlXG4gICAqIFx0XHRcdFx0XHRcdCAgYmFzZWQgb24gdGhlIHNvdXJjZSBrZXlzXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gdGhlIG1lc3NhZ2Ugb2JqZWN0XG4gICAqIEBwYXJhbSBzb3VyY2VLZXlzIC0gdGhlIHNvdXJjZSBrZXlzIHRvIGJlIHVzZWQgdG8gZ2V0IHRoZSB2YWx1ZSBmcm9tIHRoZSBtZXNzYWdlXG4gICAqIEByZXR1cm5zICB7YW55fSAtIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2Uga2V5XG4gICAqICAgICAgICAgICAgIGlmIHRoZSBzb3VyY2Uga2V5IGlzIG5vdCBwcmVzZW50IGluIHRoZSBtZXNzYWdlXG4gICAqICAgICAgICAgICAgcmV0dXJucyBudWxsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldFZhbHVlRnJvbU1lc3NhZ2UoXG4gICAgbWVzc2FnZTogUnVkZGVyU3RhY2tFdmVudCxcbiAgICBzb3VyY2VLZXlzOiAoc3RyaW5nIHwgb2JqZWN0KVtdIHwgc3RyaW5nIHwgb2JqZWN0LFxuICApOiBhbnkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZUtleXMpICYmIHNvdXJjZUtleXMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHNvdXJjZUtleXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGxvZ2dlci53YXJuKCdMaXN0IHdpdGggc2luZ2xlIGVsZW1lbnQgaXMgbm90IGlkZWFsLiBVc2UgaXQgYXMgc3RyaW5nIGluc3RlYWQnKTtcbiAgICAgIH1cbiAgICAgIC8vIGdvdCB0aGUgcG9zc2libGUgc291cmNlS2V5c1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgICBmb3IgKGNvbnN0IHNvdXJjZUtleSBvZiBzb3VyY2VLZXlzKSB7XG4gICAgICAgIGxldCB2YWw6IG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW4gfCBBcnJheTxhbnk+IHwgT2JqZWN0IHwgbnVsbDtcbiAgICAgICAgLy8gaWYgdGhlIHNvdXJjZUtleSBpcyBhbiBvYmplY3Qgd2UgZXhwZWN0IGl0IHRvIGJlIGEgb3BlcmF0aW9uXG4gICAgICAgIGlmICh0eXBlb2Ygc291cmNlS2V5ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHZhbCA9IEpzb25VdGlscy5oYW5kbGVTb3VyY2VLZXlzT3BlcmF0aW9uKHtcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBvcGVyYXRpb25PYmplY3Q6IHNvdXJjZUtleSBhcyBPcGVyYXRpb24sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsID0gZ2V0KG1lc3NhZ2UsIHNvdXJjZUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCB8fCB2YWwgPT09IGZhbHNlIHx8IHZhbCA9PT0gMCkge1xuICAgICAgICAgIC8vIHJldHVybiBvbmx5IGlmIHRoZSB2YWx1ZSBpcyB2YWxpZC5cbiAgICAgICAgICAvLyBlbHNlIGxvb2sgZm9yIG5leHQgcG9zc2libGUgc291cmNlIGluIHByZWNlZGVuY2VcbiAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygc291cmNlS2V5cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIGdvdCBhIHNpbmdsZSBrZXlcbiAgICAgIC8vIC0gd2UgZG9uJ3QgbmVlZCB0byBpdGVyYXRlIG92ZXIgYSBsb29wIGZvciBhIHNpbmdsZSBwb3NzaWJsZSB2YWx1ZVxuICAgICAgcmV0dXJuIGdldChtZXNzYWdlLCBzb3VyY2VLZXlzKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzb3VyY2VLZXlzID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gaWYgdGhlIHNvdXJjZUtleSBpcyBhbiBvYmplY3Qgd2UgZXhwZWN0IGl0IHRvIGJlIGEgb3BlcmF0aW9uXG4gICAgICByZXR1cm4gSnNvblV0aWxzLmhhbmRsZVNvdXJjZUtleXNPcGVyYXRpb24oe1xuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBvcGVyYXRpb25PYmplY3Q6IHNvdXJjZUtleXMgYXMgeyBvcGVyYXRpb246IHN0cmluZzsgYXJnczogYW55W10gfSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB3cm9uZyBzb3VyY2VLZXkgdHlwZS4gYWJvcnRcbiAgICAgIC8vIERFVkVMT1BFUiBFUlJPUlxuICAgICAgdGhyb3cgbmV3IFBsYXRmb3JtRXJyb3IoJ1dyb25nIHNvdXJjZUtleSB0eXBlIG9yIGJsYW5rIHNvdXJjZUtleSBhcnJheScpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbjogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBnZXQgdGhlIHZhbHVlIGZyb20gdGhlIG1lc3NhZ2VcbiAgICogICAgICAgICAgICAgICBiYXNlZCBvbiB0aGUgc291cmNlIGtleVxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIHRoZSBtZXNzYWdlIG9iamVjdFxuICAgKiBAcGFyYW0gc291cmNlS2V5IC0gdGhlIHNvdXJjZSBrZXkgdG8gYmUgdXNlZCB0byBnZXQgdGhlIHZhbHVlIGZyb20gdGhlIG1lc3NhZ2VcbiAgICogQHJldHVybnMgIHthbnl9IC0gcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSBrZXlcbiAgICogICAgICAgICAgICBpZiB0aGUgc291cmNlIGtleSBpcyBub3QgcHJlc2VudCBpbiB0aGUgbWVzc2FnZVxuICAgKiAgICAgICAgICAgcmV0dXJucyBudWxsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldEZpZWxkVmFsdWVGcm9tTWVzc2FnZShtZXNzYWdlOiBSdWRkZXJTdGFja0V2ZW50LCBzb3VyY2VLZXk6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3Qgc291cmNlS2V5TWFwID0gSnNvblV0aWxzLk1FU1NBR0VfTUFQUElOR1tzb3VyY2VLZXldO1xuICAgIGlmIChzb3VyY2VLZXlNYXApIHtcbiAgICAgIHJldHVybiBKc29uVXRpbHMuZ2V0VmFsdWVGcm9tTWVzc2FnZShtZXNzYWdlLCBzb3VyY2VLZXlNYXApO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbjogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIHBheWxvYWQgYmFzZWQgb24gdGhlIG1hcHBpbmdKc29uXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gdGhlIG1lc3NhZ2Ugb2JqZWN0XG4gICAqIEBwYXJhbSBtYXBwaW5nSnNvbiAtIHRoZSBtYXBwaW5nSnNvbiB0byBiZSB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgcGF5bG9hZFxuICAgKiBAcGFyYW0gZGVzdGluYXRpb25OYW1lIC0gdGhlIGRlc3RpbmF0aW9uIG5hbWUgdG8gYmUgdXNlZCB0byBnZXQgdGhlIG1hcHBpbmdKc29uXG4gICAqIEByZXR1cm5zICB7YW55fSAtIHJldHVybnMgdGhlIHBheWxvYWQgY29uc3RydWN0ZWQgYmFzZWQgb24gdGhlIG1hcHBpbmdKc29uXG4gICAqICAgICAgICAgICBpZiB0aGUgbWFwcGluZ0pzb24gaXMgbm90IHByZXNlbnQgaW4gdGhlIG1lc3NhZ2Ugb3IgYmxhbmtcbiAgICogICAgICAgICAgIHJldHVybnMgbnVsbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb25zdHJ1Y3RQYXlsb2FkKFxuICAgIG1lc3NhZ2U6IFJ1ZGRlclN0YWNrRXZlbnQsXG4gICAgbWFwcGluZ0pzb246IGFueVtdLFxuICAgIGRlc3RpbmF0aW9uTmFtZTogc3RyaW5nID0gJycsXG4gICk6IGFueSB7XG4gICAgLy8gTWFwcGluZyBKU09OIHNob3VsZCBiZSBhbiBhcnJheVxuICAgIGlmIChBcnJheS5pc0FycmF5KG1hcHBpbmdKc29uKSAmJiBtYXBwaW5nSnNvbi5sZW5ndGggPiAwKSB7XG4gICAgICAvLyAtIGNvbnN0cnVjdCBhIGJsYW5rIHBheWxvYWQgYW5kIHJldHVybiBhdCB0aGUgZW5kXG4gICAgICAvLyAtIGlmIHlvdSB0byBuZWVkIG1lcmdlIG11bHRpcGxlIGNvbnN0cnVjdFBheWxvYWQgZG8gaXQgb24gdGhlIHRyYW5zZm9ybWVyIGNvZGVcbiAgICAgIC8vIC0gLSB3aWxsIGdpdmUgYSBjbGVhbmVyIGFwcHJvYWNoXG4gICAgICAvLyAtIC0geW91IGRvbid0IG5lZWQgdG8gaXRlcmF0ZSBvdmVyIG11bHRpcGxlIGxvb3BzIHRvIGNvbnN0cnVjdCBhIHBheWxvYWQgZm9yIGEgc2luZ2xlIGV2ZW50XG4gICAgICBjb25zdCBwYXlsb2FkID0ge307XG5cbiAgICAgIG1hcHBpbmdKc29uLmZvckVhY2goKG1hcHBpbmcpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHNvdXJjZUtleXMsXG4gICAgICAgICAgZGVzdEtleSxcbiAgICAgICAgICByZXF1aXJlZCxcbiAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICBzb3VyY2VGcm9tR2VuZXJpY01hcCxcbiAgICAgICAgfToge1xuICAgICAgICAgIHNvdXJjZUtleXM6IChzdHJpbmcgfCBvYmplY3QpW10gfCBzdHJpbmcgfCBvYmplY3Q7XG4gICAgICAgICAgZGVzdEtleTogc3RyaW5nO1xuICAgICAgICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgICAgICAgIG1ldGFkYXRhOiBNYXBwaW5nTWV0YWRhdGE7XG4gICAgICAgICAgc291cmNlRnJvbUdlbmVyaWNNYXA6IGJvb2xlYW47XG4gICAgICAgIH0gPSBtYXBwaW5nO1xuICAgICAgICAvLyBnZXQgdGhlIHZhbHVlIGZyb20gZXZlbnQsIHBhc3Mgc291cmNlRnJvbUdlbmVyaWNNYXAgaW4gdGhlIG1hcHBpbmcgdG8gZm9yY2UgdGhpcyB0byB0YWtlIHRoZVxuICAgICAgICAvLyBzb3VyY2VrZXlzIGZyb20gR2VuZXJpY0ZpZWxkTWFwcGluZywgZWxzZSB0YWtlIHRoZSBzb3VyY2VLZXlzIGZyb20gc3BlY2lmaWMgZGVzdGluYXRpb24gbWFwcGluZyBzb3VyY2VLZXlzXG4gICAgICAgIGNvbnN0IGludGVncmF0aW9uc09iaiA9IGlzRW1wdHkoZGVzdGluYXRpb25OYW1lKVxuICAgICAgICAgID8gU2VtYW50aWNVdGlsLmdldEludGVncmF0aW9uc09iaihtZXNzYWdlLCBkZXN0aW5hdGlvbk5hbWUpXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IEpzb25VdGlscy5oYW5kbGVNZXRhZGF0YUZvclZhbHVlKFxuICAgICAgICAgIHNvdXJjZUZyb21HZW5lcmljTWFwXG4gICAgICAgICAgICA/IHRoaXMuZ2V0RmllbGRWYWx1ZUZyb21NZXNzYWdlKG1lc3NhZ2UsIHNvdXJjZUtleXMgYXMgc3RyaW5nKVxuICAgICAgICAgICAgOiB0aGlzLmdldFZhbHVlRnJvbU1lc3NhZ2UobWVzc2FnZSwgc291cmNlS2V5cyksXG4gICAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgICAgZGVzdEtleSxcbiAgICAgICAgICBpbnRlZ3JhdGlvbnNPYmosXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHZhbHVlIHx8IHZhbHVlID09PSAwIHx8IHZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgIGlmIChkZXN0S2V5KSB7XG4gICAgICAgICAgICAvLyBzZXQgdGhlIHZhbHVlIG9ubHkgaWYgY29ycmVjdFxuICAgICAgICAgICAgc2V0KHBheWxvYWQsIGRlc3RLZXksIHZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdG8gc2V0IHRvIHJvb3QgYW5kIGZsYXR0ZW4gbGF0ZXJcbiAgICAgICAgICAgIHBheWxvYWRbJyddID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgLy8gdGhyb3cgZXJyb3IgaWYgcmVxaXJlZCB2YWx1ZSBpcyBtaXNzaW5nXG4gICAgICAgICAgdGhyb3cgbmV3IEluc3RydW1lbnRhdGlvbkVycm9yKFxuICAgICAgICAgICAgYE1pc3NpbmcgcmVxdWlyZWQgdmFsdWUgZnJvbSAke0pTT04uc3RyaW5naWZ5KHNvdXJjZUtleXMpfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgIH1cblxuICAgIC8vIGludmFsaWQgbWFwcGluZ0pzb25cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc3RyaW5naWZ5KHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9XG59XG4iXX0=
|
package/build/utils/json.test.js
CHANGED
|
@@ -585,4 +585,4 @@ describe('JSON utils', () => {
|
|
|
585
585
|
});
|
|
586
586
|
});
|
|
587
587
|
});
|
|
588
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2pzb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUFpRDtBQUNqRCxpQ0FBbUM7QUFDbkMsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFDMUIsUUFBUSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtRQUM3QyxFQUFFLENBQUMseUdBQXlHLEVBQUUsR0FBRyxFQUFFO1lBQ2pILE1BQU0sT0FBTyxHQUFHO2dCQUNkLEtBQUssRUFBRSxVQUFVO2dCQUNqQixVQUFVLEVBQUU7b0JBQ1YsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFdBQVcsRUFBRSxHQUFHO29CQUNoQixRQUFRLEVBQUU7d0JBQ1IsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTt3QkFDMUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtxQkFDM0M7aUJBQ0Y7YUFDRixDQUFDO1lBRUYsTUFBTSxXQUFXLEdBQUc7Z0JBQ2xCO29CQUNFLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDckIsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSxFQUFFO2lCQUNiO2dCQUNEO29CQUNFLFVBQVUsRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNsQyxPQUFPLEVBQUUsU0FBUztvQkFDbEIsUUFBUSxFQUFFLElBQUk7b0JBQ2QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7Z0JBQ0Q7b0JBQ0UsVUFBVSxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxhQUFhO29CQUN0QixRQUFRLEVBQUUsSUFBSTtvQkFDZCxRQUFRLEVBQUUsRUFBRTtpQkFDYjtnQkFDRDtvQkFD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LE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsb0RBQW9ELEVBQUUsR0FBRyxFQUFFO1lBQzVELE1BQU0sT0FBTyxHQUFHO2dCQUNkLEtBQUssRUFBRSxVQUFVO2dCQUNqQixVQUFVLEVBQUU7b0JBQ1YsT0FBTyxFQUFFLEdBQUc7b0JBQ1osUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2FBQ0YsQ0FBQztZQUVGLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQztZQUUvQixNQUFNLEtBQUssR0FBRyxnQkFBUyxDQUFDLHdCQUF3QixDQUFDLE9BQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM1RSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5zdHJ1bWVudGF0aW9uRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHsgSnNvblV0aWxzIH0gZnJvbSAnLi9qc29uJztcbmRlc2NyaWJlKCdKU09OIHV0aWxzJywgKCkgPT4ge1xuICBkZXNjcmliZSgnY29uc3RydWN0IHBheWxvYWQgaGFwcHkgcGF0aHMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjb25zdHJ1Y3QgcGF5bG9hZCB3aXRoIHZhbGlkIG1hcHBpbmcgSlNPTiBhbmQgbWVzc2FnZSBvYmplY3QgY29udGFpbmluZyBhbGwgcmVxdWlyZWQgc291cmNlIGtleXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIG9yZGVySWQ6ICcxMjM0NScsXG4gICAgICAgICAgdG90YWxBbW91bnQ6IDEwMCxcbiAgICAgICAgICBwcm9kdWN0czogW1xuICAgICAgICAgICAgeyBpZDogJ3AxJywgbmFtZTogJ1Byb2R1Y3QgMScsIHByaWNlOiA1MCB9LFxuICAgICAgICAgICAgeyBpZDogJ3AyJywgbmFtZTogJ1Byb2R1Y3QgMicsIHByaWNlOiA1MCB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtYXBwaW5nSnNvbiA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsnZXZlbnQnXSxcbiAgICAgICAgICBkZXN0S2V5OiAnZXZlbnQnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsncHJvcGVydGllcy5vcmRlcklkJ10sXG4gICAgICAgICAgZGVzdEtleTogJ29yZGVySWQnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsncHJvcGVydGllcy50b3RhbEFtb3VudCddLFxuICAgICAgICAgIGRlc3RLZXk6ICd0b3RhbEFtb3VudCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLnByb2R1Y3RzJ10sXG4gICAgICAgICAgZGVzdEtleTogJ3Byb2R1Y3RzJyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBleHBlY3RlZFBheWxvYWQgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBvcmRlcklkOiAnMTIzNDUnLFxuICAgICAgICB0b3RhbEFtb3VudDogMTAwLFxuICAgICAgICBwcm9kdWN0czogW1xuICAgICAgICAgIHsgaWQ6ICdwMScsIG5hbWU6ICdQcm9kdWN0IDEnLCBwcmljZTogNTAgfSxcbiAgICAgICAgICB7IGlkOiAncDInLCBuYW1lOiAnUHJvZHVjdCAyJywgcHJpY2U6IDUwIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwYXlsb2FkID0gSnNvblV0aWxzLmNvbnN0cnVjdFBheWxvYWQobWVzc2FnZSBhcyBhbnksIG1hcHBpbmdKc29uKTtcbiAgICAgIGV4cGVjdChwYXlsb2FkKS50b0VxdWFsKGV4cGVjdGVkUGF5bG9hZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNvbnN0cnVjdCBwYXlsb2FkIHdpdGggdmFsaWQgbWFwcGluZyBKU09OIGFuZCBtZXNzYWdlIG9iamVjdCBjb250YWluaW5nIHNvbWUgb3B0aW9uYWwgc291cmNlIGtleXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIG9yZGVySWQ6ICcxMjM0NScsXG4gICAgICAgICAgdG90YWxBbW91bnQ6IDEwMCxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1hcHBpbmdKc29uID0gW1xuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydldmVudCddLFxuICAgICAgICAgIGRlc3RLZXk6ICdldmVudCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLm9yZGVySWQnXSxcbiAgICAgICAgICBkZXN0S2V5OiAnb3JkZXJJZCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLnRvdGFsQW1vdW50J10sXG4gICAgICAgICAgZGVzdEtleTogJ3RvdGFsQW1vdW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMucHJvZHVjdHMnXSxcbiAgICAgICAgICBkZXN0S2V5OiAncHJvZHVjdHMnLFxuICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBleHBlY3RlZFBheWxvYWQgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBvcmRlcklkOiAnMTIzNDUnLFxuICAgICAgICB0b3RhbEFtb3VudDogMTAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcGF5bG9hZCA9IEpzb25VdGlscy5jb25zdHJ1Y3RQYXlsb2FkKG1lc3NhZ2UgYXMgYW55LCBtYXBwaW5nSnNvbik7XG4gICAgICBleHBlY3QocGF5bG9hZCkudG9FcXVhbChleHBlY3RlZFBheWxvYWQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjb25zdHJ1Y3QgcGF5bG9hZCB3aXRoIHZhbGlkIG1hcHBpbmcgSlNPTiBhbmQgbWVzc2FnZSBvYmplY3QgY29udGFpbmluZyBuZXN0ZWQgc291cmNlIGtleXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIG9yZGVyOiB7XG4gICAgICAgICAgICBpZDogJzEyMzQ1JyxcbiAgICAgICAgICAgIHRvdGFsQW1vdW50OiAxMDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1hcHBpbmdKc29uID0gW1xuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydldmVudCddLFxuICAgICAgICAgIGRlc3RLZXk6ICdldmVudCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLm9yZGVyLmlkJ10sXG4gICAgICAgICAgZGVzdEtleTogJ29yZGVySWQnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsncHJvcGVydGllcy5vcmRlci50b3RhbEFtb3VudCddLFxuICAgICAgICAgIGRlc3RLZXk6ICd0b3RhbEFtb3VudCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgY29uc3QgZXhwZWN0ZWRQYXlsb2FkID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgb3JkZXJJZDogJzEyMzQ1JyxcbiAgICAgICAgdG90YWxBbW91bnQ6IDEwMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKc29uVXRpbHMuY29uc3RydWN0UGF5bG9hZChtZXNzYWdlIGFzIGFueSwgbWFwcGluZ0pzb24pO1xuICAgICAgZXhwZWN0KHBheWxvYWQpLnRvRXF1YWwoZXhwZWN0ZWRQYXlsb2FkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY29uc3RydWN0IHBheWxvYWQgd2l0aCB2YWxpZCBtYXBwaW5nIEpTT04gYW5kIG1lc3NhZ2Ugb2JqZWN0IGNvbnRhaW5pbmcgc291cmNlIGtleXMgd2l0aCBkaWZmZXJlbnQgZGF0YSB0eXBlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgb3JkZXJJZDogMTIzNDUsXG4gICAgICAgICAgdG90YWxBbW91bnQ6ICcxMDAnLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWFwcGluZ0pzb24gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ2V2ZW50J10sXG4gICAgICAgICAgZGVzdEtleTogJ2V2ZW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMub3JkZXJJZCddLFxuICAgICAgICAgIGRlc3RLZXk6ICdvcmRlcklkJyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMudG90YWxBbW91bnQnXSxcbiAgICAgICAgICBkZXN0S2V5OiAndG90YWxBbW91bnQnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkUGF5bG9hZCA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIG9yZGVySWQ6IDEyMzQ1LFxuICAgICAgICB0b3RhbEFtb3VudDogJzEwMCcsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwYXlsb2FkID0gSnNvblV0aWxzLmNvbnN0cnVjdFBheWxvYWQobWVzc2FnZSBhcyBhbnksIG1hcHBpbmdKc29uKTtcbiAgICAgIGV4cGVjdChwYXlsb2FkKS50b0VxdWFsKGV4cGVjdGVkUGF5bG9hZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNvbnN0cnVjdCBwYXlsb2FkIHdpdGggdmFsaWQgbWFwcGluZyBKU09OIGFuZCBtZXNzYWdlIG9iamVjdCBjb250YWluaW5nIHNvdXJjZSBrZXlzIHdpdGggYXJyYXlzIG9mIHZhbHVlcycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcHJvZHVjdHM6IFtcbiAgICAgICAgICAgIHsgaWQ6ICdwMScsIG5hbWU6ICdQcm9kdWN0IDEnLCBwcmljZTogNTAgfSxcbiAgICAgICAgICAgIHsgaWQ6ICdwMicsIG5hbWU6ICdQcm9kdWN0IDInLCBwcmljZTogNTAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWFwcGluZ0pzb24gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ2V2ZW50J10sXG4gICAgICAgICAgZGVzdEtleTogJ2V2ZW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMucHJvZHVjdHMnXSxcbiAgICAgICAgICBkZXN0S2V5OiAncHJvZHVjdHMnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkUGF5bG9hZCA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIHByb2R1Y3RzOiBbXG4gICAgICAgICAgeyBpZDogJ3AxJywgbmFtZTogJ1Byb2R1Y3QgMScsIHByaWNlOiA1MCB9LFxuICAgICAgICAgIHsgaWQ6ICdwMicsIG5hbWU6ICdQcm9kdWN0IDInLCBwcmljZTogNTAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKc29uVXRpbHMuY29uc3RydWN0UGF5bG9hZChtZXNzYWdlIGFzIGFueSwgbWFwcGluZ0pzb24pO1xuICAgICAgZXhwZWN0KHBheWxvYWQpLnRvRXF1YWwoZXhwZWN0ZWRQYXlsb2FkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY29uc3RydWN0IHBheWxvYWQgd2l0aCB2YWxpZCBtYXBwaW5nIEpTT04gYW5kIG1lc3NhZ2Ugb2JqZWN0IGNvbnRhaW5pbmcgc291cmNlIGtleXMgd2l0aCBmb3Igb3BlcmF0aW9ucycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgb3JkZXJJZDogJzEyMzQ1JyxcbiAgICAgICAgICBwcmljZTogMTAwLFxuICAgICAgICAgIHF1YW50aXR5OiAyLFxuICAgICAgICAgIGFkZG9uMTogMTAsXG4gICAgICAgICAgYWRkb24yOiAyMCxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1hcHBpbmdKc29uID0gW1xuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydldmVudCddLFxuICAgICAgICAgIGRlc3RLZXk6ICdldmVudCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLm9yZGVySWQnXSxcbiAgICAgICAgICBkZXN0S2V5OiAnb3JkZXJJZCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogJ211bHRpcGxpY2F0aW9uJyxcbiAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHNvdXJjZUtleXM6ICdwcm9wZXJ0aWVzLnByaWNlJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHNvdXJjZUtleXM6ICdwcm9wZXJ0aWVzLnF1YW50aXR5JyxcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBkZXN0S2V5OiAndG90YWxBbW91bnQnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvcGVyYXRpb246ICdhZGRpdGlvbicsXG4gICAgICAgICAgICAgIGFyZ3M6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBzb3VyY2VLZXlzOiAncHJvcGVydGllcy5hZGRvbjEnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgc291cmNlS2V5czogJ3Byb3BlcnRpZXMuYWRkb24yJyxcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBkZXN0S2V5OiAndG90YWxBZGRvbicsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBleHBlY3RlZFBheWxvYWQgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBvcmRlcklkOiAnMTIzNDUnLFxuICAgICAgICB0b3RhbEFtb3VudDogMjAwLFxuICAgICAgICB0b3RhbEFkZG9uOiAzMCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKc29uVXRpbHMuY29uc3RydWN0UGF5bG9hZChtZXNzYWdlIGFzIGFueSwgbWFwcGluZ0pzb24pO1xuICAgICAgZXhwZWN0KHBheWxvYWQpLnRvRXF1YWwoZXhwZWN0ZWRQYXlsb2FkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY29uc3RydWN0IHBheWxvYWQgd2l0aCB2YWxpZCBtYXBwaW5nIEpTT04gYW5kIG1lc3NhZ2Ugb2JqZWN0IGNvbnRhaW5pbmcgc291cmNlIGtleXMgd2l0aCBtZXRhZGF0YSBjb25maWdzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBvcmRlcklkOiAxMjM0NSxcbiAgICAgICAgICB0b3RhbEFtb3VudDogJzEwMCcsXG4gICAgICAgICAgaXRlbTogJ01vYmlsZScsXG4gICAgICAgICAgcHJvZHVjdHM6IFtcbiAgICAgICAgICAgIHsgaWQ6ICdwMScsIG5hbWU6ICdQcm9kdWN0IDEnLCBwcmljZTogNTAgfSxcbiAgICAgICAgICAgIHsgaWQ6ICdwMicsIG5hbWU6ICdQcm9kdWN0IDInLCBwcmljZTogNTAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGludmVudG9yeToge1xuICAgICAgICAgICAgaXRlbTE6ICdpdGVtMScsXG4gICAgICAgICAgICBpdGVtMjogJ2l0ZW0yJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB0aW1lU3RhbXA6ICcyMDIxLTA5LTAxVDAwOjAwOjAwLjAwMFonLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWFwcGluZ0pzb24gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ2V2ZW50J10sXG4gICAgICAgICAgZGVzdEtleTogJ2V2ZW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgdHlwZTogJ3RvU3RyaW5nJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLm9yZGVySWQnXSxcbiAgICAgICAgICBkZXN0S2V5OiAnb3JkZXJJZCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6ICd0b1N0cmluZycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsncHJvcGVydGllcy50b3RhbEFtb3VudCddLFxuICAgICAgICAgIGRlc3RLZXk6ICd0b3RhbEFtb3VudCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6ICd0b051bWJlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsncHJvcGVydGllcy5wcm9kdWN0cyddLFxuICAgICAgICAgIGRlc3RLZXk6ICdwcm9kdWN0cycsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiAndGltZVN0YW1wJyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgdHlwZTogJ3RpbWVzdGFtcCcsXG4gICAgICAgICAgICB0eXBlRm9ybWF0OiAneXl5eS1NTS1ERFRISDptbTpzc1paJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlc3RLZXk6ICd0aW1lc3RhbXAnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydyYW5kb20nXSxcbiAgICAgICAgICBkZXN0S2V5OiAncmFuZG9tJyxcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiAncmFuZG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLmludmVudG9yeSddLFxuICAgICAgICAgIGRlc3RLZXk6ICdpbnZlbnRvcnknLFxuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICBleGNsdWRlczogWydpdGVtMiddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMuaXRlbSddLFxuICAgICAgICAgIGRlc3RLZXk6ICdpdGVtTmFtZScsXG4gICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgIG11bHRpa2V5TWFwOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzb3VyY2VWYWw6IFsnTW9iaWxlJywgJ1RlbGVwaG9uZSddLFxuICAgICAgICAgICAgICAgIGRlc3RWYWw6ICdtb2InLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgY29uc3QgZXhwZWN0ZWRQYXlsb2FkID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgb3JkZXJJZDogJzEyMzQ1JyxcbiAgICAgICAgdG90YWxBbW91bnQ6IDEwMCxcbiAgICAgICAgcHJvZHVjdHM6IFtcbiAgICAgICAgICB7IGlkOiAncDEnLCBuYW1lOiAnUHJvZHVjdCAxJywgcHJpY2U6IDUwIH0sXG4gICAgICAgICAgeyBpZDogJ3AyJywgbmFtZTogJ1Byb2R1Y3QgMicsIHByaWNlOiA1MCB9LFxuICAgICAgICBdLFxuICAgICAgICBpbnZlbnRvcnk6IHtcbiAgICAgICAgICBpdGVtMTogJ2l0ZW0xJyxcbiAgICAgICAgfSxcbiAgICAgICAgaXRlbU5hbWU6ICdtb2InLFxuICAgICAgICByYW5kb206ICdyYW5kb20nLFxuICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTA5LTAxVDAwOjAwOjAwKzAwMDAnLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcGF5bG9hZCA9IEpzb25VdGlscy5jb25zdHJ1Y3RQYXlsb2FkKG1lc3NhZ2UgYXMgYW55LCBtYXBwaW5nSnNvbik7XG4gICAgICBleHBlY3QocGF5bG9hZCkudG9FcXVhbChleHBlY3RlZFBheWxvYWQpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnY29uc3RydWN0IHBheWxvYWQgZWRnZSBjYXNlcycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gZ2l2ZW4gYW4gZW1wdHkgbWFwcGluZ0pzb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHJldmVudWU6IDEwMCxcbiAgICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtYXBwaW5nSnNvbiA9IFtdO1xuXG4gICAgICBjb25zdCBwYXlsb2FkID0gSnNvblV0aWxzLmNvbnN0cnVjdFBheWxvYWQobWVzc2FnZSBhcyBhbnksIG1hcHBpbmdKc29uKTtcbiAgICAgIGV4cGVjdChwYXlsb2FkKS50b0JlTnVsbCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIGdpdmVuIGFuIGludmFsaWQgc291cmNlS2V5JywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICByZXZlbnVlOiAxMDAsXG4gICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc291cmNlS2V5ID0gJ2ludmFsaWRLZXknO1xuXG4gICAgICBjb25zdCB2YWx1ZSA9IEpzb25VdGlscy5nZXRGaWVsZFZhbHVlRnJvbU1lc3NhZ2UobWVzc2FnZSBhcyBhbnksIHNvdXJjZUtleSk7XG4gICAgICBleHBlY3QodmFsdWUpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSB3aGVuIG1ldGFkYXRhIGlzIGludmFsaWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHJldmVudWU6IDEwMCxcbiAgICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgICAgcHJvZHVjdHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ1Byb2R1Y3QgMScsXG4gICAgICAgICAgICAgIHByaWNlOiA1MCxcbiAgICAgICAgICAgICAgcXVhbnRpdHk6IDIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnUHJvZHVjdCAyJyxcbiAgICAgICAgICAgICAgcHJpY2U6IDMwLFxuICAgICAgICAgICAgICBxdWFudGl0eTogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1hcHBpbmdKc29uID0gW1xuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogJ3Byb3BlcnRpZXMucmV2ZW51ZScsXG4gICAgICAgICAgZGVzdEtleTogJ3JldmVudWUnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiAnaW52YWxpZFR5cGUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCB2YWx1ZSA9IEpzb25VdGlscy5jb25zdHJ1Y3RQYXlsb2FkKG1lc3NhZ2UgYXMgYW55LCBtYXBwaW5nSnNvbik7XG5cbiAgICAgIGV4cGVjdCh2YWx1ZSkudG9FcXVhbCh7XG4gICAgICAgIHJldmVudWU6IDEwMCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBJbnN0cnVtZW50YXRpb25FcnJvciB3aGVuIGEgcmVxdWlyZWQgdmFsdWUgaXMgbWlzc2luZycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcmV2ZW51ZTogMTAwLFxuICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICBwcm9kdWN0czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnUHJvZHVjdCAxJyxcbiAgICAgICAgICAgICAgcHJpY2U6IDUwLFxuICAgICAgICAgICAgICBxdWFudGl0eTogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdQcm9kdWN0IDInLFxuICAgICAgICAgICAgICBwcmljZTogMzAsXG4gICAgICAgICAgICAgIHF1YW50aXR5OiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWFwcGluZ0pzb24gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiAnZXZlbnQnLFxuICAgICAgICAgIGRlc3RLZXk6ICdldmVudCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogJ3Byb3BlcnRpZXMucmV2ZW51ZScsXG4gICAgICAgICAgZGVzdEtleTogJ3JldmVudWUnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6ICdwcm9wZXJ0aWVzLmN1cnJlbmN5JyxcbiAgICAgICAgICBkZXN0S2V5OiAnY3VycmVuY3knLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6ICdwcm9wZXJ0aWVzLnByb2R1Y3RzJyxcbiAgICAgICAgICBkZXN0S2V5OiAncHJvZHVjdHMnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6ICdwcm9wZXJ0aWVzLmludmFsaWRLZXknLFxuICAgICAgICAgIGRlc3RLZXk6ICdpbnZhbGlkS2V5JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBKc29uVXRpbHMuY29uc3RydWN0UGF5bG9hZChtZXNzYWdlIGFzIGFueSwgbWFwcGluZ0pzb24pO1xuICAgICAgfSkudG9UaHJvdyhJbnN0cnVtZW50YXRpb25FcnJvcik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNvbnN0cnVjdCB0aGUgcGF5bG9hZCBjb3JyZWN0bHkgd2l0aCBhIHZhbGlkIG1hcHBpbmdKc29uIGFuZCBtZXNzYWdlIG9iamVjdCB3aGVuIGRlc3RpbmF0aW9uIGtleSBpcyBhbiBlbXB0eSBzdHJpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHJldmVudWU6IDEwMCxcbiAgICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgICAgcHJvZHVjdHM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ1Byb2R1Y3QgMScsXG4gICAgICAgICAgICAgIHByaWNlOiA1MCxcbiAgICAgICAgICAgICAgcXVhbnRpdHk6IDIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnUHJvZHVjdCAyJyxcbiAgICAgICAgICAgICAgcHJpY2U6IDMwLFxuICAgICAgICAgICAgICBxdWFudGl0eTogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1hcHBpbmdKc29uID0gW1xuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogJ2V2ZW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiAncHJvcGVydGllcy5yZXZlbnVlJyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiAncHJvcGVydGllcy5jdXJyZW5jeScsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogJ3Byb3BlcnRpZXMucHJvZHVjdHMnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIC8vIE5vdCBhIGNvcnJlY3QgcGF5bG9hZCBhcyB0aGUgZGVzdGluYXRpb24ga2V5cyBhcmUgZW1wdHkgc3RyaW5ncyBvciBub3QgcHJlc2VudFxuICAgICAgY29uc3QgZXhwZWN0ZWRQYXlsb2FkID0ge1xuICAgICAgICAnJzogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdQcm9kdWN0IDEnLFxuICAgICAgICAgICAgcHJpY2U6IDUwLFxuICAgICAgICAgICAgcXVhbnRpdHk6IDIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUHJvZHVjdCAyJyxcbiAgICAgICAgICAgIHByaWNlOiAzMCxcbiAgICAgICAgICAgIHF1YW50aXR5OiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwYXlsb2FkID0gSnNvblV0aWxzLmNvbnN0cnVjdFBheWxvYWQobWVzc2FnZSBhcyBhbnksIG1hcHBpbmdKc29uKTtcbiAgICAgIGV4cGVjdChwYXlsb2FkKS50b0VxdWFsKGV4cGVjdGVkUGF5bG9hZCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdqc29uIHV0aWwgb3RoZXIgZnVuY3Rpb25zJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0cmlldmUgdGhlIGZpZWxkIHZhbHVlIGNvcnJlY3RseSBmcm9tIHRoZSBtZXNzYWdlIHVzaW5nIGEgdmFsaWQgc291cmNlS2V5JywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICByZXZlbnVlOiAxMDAsXG4gICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICB9LFxuICAgICAgICB0cmFpdHM6IHtcbiAgICAgICAgICBmaXJzdE5hbWU6ICdKb2huJyxcbiAgICAgICAgICBsYXN0TmFtZTogJ0RvZScsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzb3VyY2VLZXkgPSAnZmlyc3ROYW1lJztcbiAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWUgPSAnSm9obic7XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gSnNvblV0aWxzLmdldEZpZWxkVmFsdWVGcm9tTWVzc2FnZShtZXNzYWdlIGFzIGFueSwgc291cmNlS2V5KTtcbiAgICAgIGV4cGVjdCh2YWx1ZSkudG9FcXVhbChleHBlY3RlZFZhbHVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiBnaXZlbiBhbiBpbnZhbGlkIHNvdXJjZUtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcmV2ZW51ZTogMTAwLFxuICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNvdXJjZUtleSA9ICdpbnZhbGlkS2V5JztcblxuICAgICAgY29uc3QgdmFsdWUgPSBKc29uVXRpbHMuZ2V0RmllbGRWYWx1ZUZyb21NZXNzYWdlKG1lc3NhZ2UgYXMgYW55LCBzb3VyY2VLZXkpO1xuICAgICAgZXhwZWN0KHZhbHVlKS50b0JlTnVsbCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
588
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2pzb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUFpRDtBQUNqRCxpQ0FBbUM7QUFFbkMsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFDMUIsUUFBUSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtRQUM3QyxFQUFFLENBQUMseUdBQXlHLEVBQUUsR0FBRyxFQUFFO1lBQ2pILE1BQU0sT0FBTyxHQUFHO2dCQUNkLEtBQUssRUFBRSxVQUFVO2dCQUNqQixVQUFVLEVBQUU7b0JBQ1YsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFdBQVcsRUFBRSxHQUFHO29CQUNoQixRQUFRLEVBQUU7d0JBQ1IsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTt3QkFDMUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtxQkFDM0M7aUJBQ0Y7YUFDRixDQUFDO1lBRUYsTUFBTSxXQUFXLEdBQUc7Z0JBQ2xCO29CQUNFLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDckIsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSxFQUFFO2lCQUNiO2dCQUNEO29CQUNFLFVBQVUsRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNsQyxPQUFPLEVBQUUsU0FBUztvQkFDbEIsUUFBUSxFQUFFLElBQUk7b0JBQ2QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7Z0JBQ0Q7b0JBQ0UsVUFBVSxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxhQUFhO29CQUN0QixRQUFRLEVBQUUsSUFBSTtvQkFDZCxRQUFRLEVBQUUsRUFBRTtpQkFDYjtnQkFDRDtvQkFD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LE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsb0RBQW9ELEVBQUUsR0FBRyxFQUFFO1lBQzVELE1BQU0sT0FBTyxHQUFHO2dCQUNkLEtBQUssRUFBRSxVQUFVO2dCQUNqQixVQUFVLEVBQUU7b0JBQ1YsT0FBTyxFQUFFLEdBQUc7b0JBQ1osUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2FBQ0YsQ0FBQztZQUVGLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQztZQUUvQixNQUFNLEtBQUssR0FBRyxnQkFBUyxDQUFDLHdCQUF3QixDQUFDLE9BQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM1RSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5zdHJ1bWVudGF0aW9uRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnO1xuaW1wb3J0IHsgSnNvblV0aWxzIH0gZnJvbSAnLi9qc29uJztcblxuZGVzY3JpYmUoJ0pTT04gdXRpbHMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdjb25zdHJ1Y3QgcGF5bG9hZCBoYXBweSBwYXRocycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNvbnN0cnVjdCBwYXlsb2FkIHdpdGggdmFsaWQgbWFwcGluZyBKU09OIGFuZCBtZXNzYWdlIG9iamVjdCBjb250YWluaW5nIGFsbCByZXF1aXJlZCBzb3VyY2Uga2V5cycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgb3JkZXJJZDogJzEyMzQ1JyxcbiAgICAgICAgICB0b3RhbEFtb3VudDogMTAwLFxuICAgICAgICAgIHByb2R1Y3RzOiBbXG4gICAgICAgICAgICB7IGlkOiAncDEnLCBuYW1lOiAnUHJvZHVjdCAxJywgcHJpY2U6IDUwIH0sXG4gICAgICAgICAgICB7IGlkOiAncDInLCBuYW1lOiAnUHJvZHVjdCAyJywgcHJpY2U6IDUwIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1hcHBpbmdKc29uID0gW1xuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydldmVudCddLFxuICAgICAgICAgIGRlc3RLZXk6ICdldmVudCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLm9yZGVySWQnXSxcbiAgICAgICAgICBkZXN0S2V5OiAnb3JkZXJJZCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLnRvdGFsQW1vdW50J10sXG4gICAgICAgICAgZGVzdEtleTogJ3RvdGFsQW1vdW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMucHJvZHVjdHMnXSxcbiAgICAgICAgICBkZXN0S2V5OiAncHJvZHVjdHMnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkUGF5bG9hZCA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIG9yZGVySWQ6ICcxMjM0NScsXG4gICAgICAgIHRvdGFsQW1vdW50OiAxMDAsXG4gICAgICAgIHByb2R1Y3RzOiBbXG4gICAgICAgICAgeyBpZDogJ3AxJywgbmFtZTogJ1Byb2R1Y3QgMScsIHByaWNlOiA1MCB9LFxuICAgICAgICAgIHsgaWQ6ICdwMicsIG5hbWU6ICdQcm9kdWN0IDInLCBwcmljZTogNTAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKc29uVXRpbHMuY29uc3RydWN0UGF5bG9hZChtZXNzYWdlIGFzIGFueSwgbWFwcGluZ0pzb24pO1xuICAgICAgZXhwZWN0KHBheWxvYWQpLnRvRXF1YWwoZXhwZWN0ZWRQYXlsb2FkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY29uc3RydWN0IHBheWxvYWQgd2l0aCB2YWxpZCBtYXBwaW5nIEpTT04gYW5kIG1lc3NhZ2Ugb2JqZWN0IGNvbnRhaW5pbmcgc29tZSBvcHRpb25hbCBzb3VyY2Uga2V5cycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgb3JkZXJJZDogJzEyMzQ1JyxcbiAgICAgICAgICB0b3RhbEFtb3VudDogMTAwLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWFwcGluZ0pzb24gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ2V2ZW50J10sXG4gICAgICAgICAgZGVzdEtleTogJ2V2ZW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMub3JkZXJJZCddLFxuICAgICAgICAgIGRlc3RLZXk6ICdvcmRlcklkJyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMudG90YWxBbW91bnQnXSxcbiAgICAgICAgICBkZXN0S2V5OiAndG90YWxBbW91bnQnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsncHJvcGVydGllcy5wcm9kdWN0cyddLFxuICAgICAgICAgIGRlc3RLZXk6ICdwcm9kdWN0cycsXG4gICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkUGF5bG9hZCA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIG9yZGVySWQ6ICcxMjM0NScsXG4gICAgICAgIHRvdGFsQW1vdW50OiAxMDAsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwYXlsb2FkID0gSnNvblV0aWxzLmNvbnN0cnVjdFBheWxvYWQobWVzc2FnZSBhcyBhbnksIG1hcHBpbmdKc29uKTtcbiAgICAgIGV4cGVjdChwYXlsb2FkKS50b0VxdWFsKGV4cGVjdGVkUGF5bG9hZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNvbnN0cnVjdCBwYXlsb2FkIHdpdGggdmFsaWQgbWFwcGluZyBKU09OIGFuZCBtZXNzYWdlIG9iamVjdCBjb250YWluaW5nIG5lc3RlZCBzb3VyY2Uga2V5cycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgb3JkZXI6IHtcbiAgICAgICAgICAgIGlkOiAnMTIzNDUnLFxuICAgICAgICAgICAgdG90YWxBbW91bnQ6IDEwMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWFwcGluZ0pzb24gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ2V2ZW50J10sXG4gICAgICAgICAgZGVzdEtleTogJ2V2ZW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMub3JkZXIuaWQnXSxcbiAgICAgICAgICBkZXN0S2V5OiAnb3JkZXJJZCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLm9yZGVyLnRvdGFsQW1vdW50J10sXG4gICAgICAgICAgZGVzdEtleTogJ3RvdGFsQW1vdW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBleHBlY3RlZFBheWxvYWQgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBvcmRlcklkOiAnMTIzNDUnLFxuICAgICAgICB0b3RhbEFtb3VudDogMTAwLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcGF5bG9hZCA9IEpzb25VdGlscy5jb25zdHJ1Y3RQYXlsb2FkKG1lc3NhZ2UgYXMgYW55LCBtYXBwaW5nSnNvbik7XG4gICAgICBleHBlY3QocGF5bG9hZCkudG9FcXVhbChleHBlY3RlZFBheWxvYWQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjb25zdHJ1Y3QgcGF5bG9hZCB3aXRoIHZhbGlkIG1hcHBpbmcgSlNPTiBhbmQgbWVzc2FnZSBvYmplY3QgY29udGFpbmluZyBzb3VyY2Uga2V5cyB3aXRoIGRpZmZlcmVudCBkYXRhIHR5cGVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBvcmRlcklkOiAxMjM0NSxcbiAgICAgICAgICB0b3RhbEFtb3VudDogJzEwMCcsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtYXBwaW5nSnNvbiA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsnZXZlbnQnXSxcbiAgICAgICAgICBkZXN0S2V5OiAnZXZlbnQnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsncHJvcGVydGllcy5vcmRlcklkJ10sXG4gICAgICAgICAgZGVzdEtleTogJ29yZGVySWQnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsncHJvcGVydGllcy50b3RhbEFtb3VudCddLFxuICAgICAgICAgIGRlc3RLZXk6ICd0b3RhbEFtb3VudCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgY29uc3QgZXhwZWN0ZWRQYXlsb2FkID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgb3JkZXJJZDogMTIzNDUsXG4gICAgICAgIHRvdGFsQW1vdW50OiAnMTAwJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKc29uVXRpbHMuY29uc3RydWN0UGF5bG9hZChtZXNzYWdlIGFzIGFueSwgbWFwcGluZ0pzb24pO1xuICAgICAgZXhwZWN0KHBheWxvYWQpLnRvRXF1YWwoZXhwZWN0ZWRQYXlsb2FkKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY29uc3RydWN0IHBheWxvYWQgd2l0aCB2YWxpZCBtYXBwaW5nIEpTT04gYW5kIG1lc3NhZ2Ugb2JqZWN0IGNvbnRhaW5pbmcgc291cmNlIGtleXMgd2l0aCBhcnJheXMgb2YgdmFsdWVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBwcm9kdWN0czogW1xuICAgICAgICAgICAgeyBpZDogJ3AxJywgbmFtZTogJ1Byb2R1Y3QgMScsIHByaWNlOiA1MCB9LFxuICAgICAgICAgICAgeyBpZDogJ3AyJywgbmFtZTogJ1Byb2R1Y3QgMicsIHByaWNlOiA1MCB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtYXBwaW5nSnNvbiA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsnZXZlbnQnXSxcbiAgICAgICAgICBkZXN0S2V5OiAnZXZlbnQnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsncHJvcGVydGllcy5wcm9kdWN0cyddLFxuICAgICAgICAgIGRlc3RLZXk6ICdwcm9kdWN0cycsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgY29uc3QgZXhwZWN0ZWRQYXlsb2FkID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgcHJvZHVjdHM6IFtcbiAgICAgICAgICB7IGlkOiAncDEnLCBuYW1lOiAnUHJvZHVjdCAxJywgcHJpY2U6IDUwIH0sXG4gICAgICAgICAgeyBpZDogJ3AyJywgbmFtZTogJ1Byb2R1Y3QgMicsIHByaWNlOiA1MCB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcGF5bG9hZCA9IEpzb25VdGlscy5jb25zdHJ1Y3RQYXlsb2FkKG1lc3NhZ2UgYXMgYW55LCBtYXBwaW5nSnNvbik7XG4gICAgICBleHBlY3QocGF5bG9hZCkudG9FcXVhbChleHBlY3RlZFBheWxvYWQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjb25zdHJ1Y3QgcGF5bG9hZCB3aXRoIHZhbGlkIG1hcHBpbmcgSlNPTiBhbmQgbWVzc2FnZSBvYmplY3QgY29udGFpbmluZyBzb3VyY2Uga2V5cyB3aXRoIGZvciBvcGVyYXRpb25zJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBvcmRlcklkOiAnMTIzNDUnLFxuICAgICAgICAgIHByaWNlOiAxMDAsXG4gICAgICAgICAgcXVhbnRpdHk6IDIsXG4gICAgICAgICAgYWRkb24xOiAxMCxcbiAgICAgICAgICBhZGRvbjI6IDIwLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWFwcGluZ0pzb24gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ2V2ZW50J10sXG4gICAgICAgICAgZGVzdEtleTogJ2V2ZW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMub3JkZXJJZCddLFxuICAgICAgICAgIGRlc3RLZXk6ICdvcmRlcklkJyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnbXVsdGlwbGljYXRpb24nLFxuICAgICAgICAgICAgICBhcmdzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgc291cmNlS2V5czogJ3Byb3BlcnRpZXMucHJpY2UnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgc291cmNlS2V5czogJ3Byb3BlcnRpZXMucXVhbnRpdHknLFxuICAgICAgICAgICAgICAgICAgZGVmYXVsdDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGRlc3RLZXk6ICd0b3RhbEFtb3VudCcsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogJ2FkZGl0aW9uJyxcbiAgICAgICAgICAgICAgYXJnczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHNvdXJjZUtleXM6ICdwcm9wZXJ0aWVzLmFkZG9uMScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBzb3VyY2VLZXlzOiAncHJvcGVydGllcy5hZGRvbjInLFxuICAgICAgICAgICAgICAgICAgZGVmYXVsdDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGRlc3RLZXk6ICd0b3RhbEFkZG9uJyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkUGF5bG9hZCA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIG9yZGVySWQ6ICcxMjM0NScsXG4gICAgICAgIHRvdGFsQW1vdW50OiAyMDAsXG4gICAgICAgIHRvdGFsQWRkb246IDMwLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcGF5bG9hZCA9IEpzb25VdGlscy5jb25zdHJ1Y3RQYXlsb2FkKG1lc3NhZ2UgYXMgYW55LCBtYXBwaW5nSnNvbik7XG4gICAgICBleHBlY3QocGF5bG9hZCkudG9FcXVhbChleHBlY3RlZFBheWxvYWQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjb25zdHJ1Y3QgcGF5bG9hZCB3aXRoIHZhbGlkIG1hcHBpbmcgSlNPTiBhbmQgbWVzc2FnZSBvYmplY3QgY29udGFpbmluZyBzb3VyY2Uga2V5cyB3aXRoIG1ldGFkYXRhIGNvbmZpZ3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIG9yZGVySWQ6IDEyMzQ1LFxuICAgICAgICAgIHRvdGFsQW1vdW50OiAnMTAwJyxcbiAgICAgICAgICBpdGVtOiAnTW9iaWxlJyxcbiAgICAgICAgICBwcm9kdWN0czogW1xuICAgICAgICAgICAgeyBpZDogJ3AxJywgbmFtZTogJ1Byb2R1Y3QgMScsIHByaWNlOiA1MCB9LFxuICAgICAgICAgICAgeyBpZDogJ3AyJywgbmFtZTogJ1Byb2R1Y3QgMicsIHByaWNlOiA1MCB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgaW52ZW50b3J5OiB7XG4gICAgICAgICAgICBpdGVtMTogJ2l0ZW0xJyxcbiAgICAgICAgICAgIGl0ZW0yOiAnaXRlbTInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHRpbWVTdGFtcDogJzIwMjEtMDktMDFUMDA6MDA6MDAuMDAwWicsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtYXBwaW5nSnNvbiA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsnZXZlbnQnXSxcbiAgICAgICAgICBkZXN0S2V5OiAnZXZlbnQnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiAndG9TdHJpbmcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMub3JkZXJJZCddLFxuICAgICAgICAgIGRlc3RLZXk6ICdvcmRlcklkJyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgdHlwZTogJ3RvU3RyaW5nJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLnRvdGFsQW1vdW50J10sXG4gICAgICAgICAgZGVzdEtleTogJ3RvdGFsQW1vdW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgdHlwZTogJ3RvTnVtYmVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogWydwcm9wZXJ0aWVzLnByb2R1Y3RzJ10sXG4gICAgICAgICAgZGVzdEtleTogJ3Byb2R1Y3RzJyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6ICd0aW1lU3RhbXAnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICB0eXBlOiAndGltZXN0YW1wJyxcbiAgICAgICAgICAgIHR5cGVGb3JtYXQ6ICd5eXl5LU1NLUREVEhIOm1tOnNzWlonLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVzdEtleTogJ3RpbWVzdGFtcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3JhbmRvbSddLFxuICAgICAgICAgIGRlc3RLZXk6ICdyYW5kb20nLFxuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6ICdyYW5kb20nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiBbJ3Byb3BlcnRpZXMuaW52ZW50b3J5J10sXG4gICAgICAgICAgZGVzdEtleTogJ2ludmVudG9yeScsXG4gICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgIGV4Y2x1ZGVzOiBbJ2l0ZW0yJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6IFsncHJvcGVydGllcy5pdGVtJ10sXG4gICAgICAgICAgZGVzdEtleTogJ2l0ZW1OYW1lJyxcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgbXVsdGlrZXlNYXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNvdXJjZVZhbDogWydNb2JpbGUnLCAnVGVsZXBob25lJ10sXG4gICAgICAgICAgICAgICAgZGVzdFZhbDogJ21vYicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBleHBlY3RlZFBheWxvYWQgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBvcmRlcklkOiAnMTIzNDUnLFxuICAgICAgICB0b3RhbEFtb3VudDogMTAwLFxuICAgICAgICBwcm9kdWN0czogW1xuICAgICAgICAgIHsgaWQ6ICdwMScsIG5hbWU6ICdQcm9kdWN0IDEnLCBwcmljZTogNTAgfSxcbiAgICAgICAgICB7IGlkOiAncDInLCBuYW1lOiAnUHJvZHVjdCAyJywgcHJpY2U6IDUwIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGludmVudG9yeToge1xuICAgICAgICAgIGl0ZW0xOiAnaXRlbTEnLFxuICAgICAgICB9LFxuICAgICAgICBpdGVtTmFtZTogJ21vYicsXG4gICAgICAgIHJhbmRvbTogJ3JhbmRvbScsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDktMDFUMDA6MDA6MDArMDAwMCcsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwYXlsb2FkID0gSnNvblV0aWxzLmNvbnN0cnVjdFBheWxvYWQobWVzc2FnZSBhcyBhbnksIG1hcHBpbmdKc29uKTtcbiAgICAgIGV4cGVjdChwYXlsb2FkKS50b0VxdWFsKGV4cGVjdGVkUGF5bG9hZCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb25zdHJ1Y3QgcGF5bG9hZCBlZGdlIGNhc2VzJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiBnaXZlbiBhbiBlbXB0eSBtYXBwaW5nSnNvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcmV2ZW51ZTogMTAwLFxuICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1hcHBpbmdKc29uID0gW107XG5cbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKc29uVXRpbHMuY29uc3RydWN0UGF5bG9hZChtZXNzYWdlIGFzIGFueSwgbWFwcGluZ0pzb24pO1xuICAgICAgZXhwZWN0KHBheWxvYWQpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gZ2l2ZW4gYW4gaW52YWxpZCBzb3VyY2VLZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHJldmVudWU6IDEwMCxcbiAgICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBzb3VyY2VLZXkgPSAnaW52YWxpZEtleSc7XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gSnNvblV0aWxzLmdldEZpZWxkVmFsdWVGcm9tTWVzc2FnZShtZXNzYWdlIGFzIGFueSwgc291cmNlS2V5KTtcbiAgICAgIGV4cGVjdCh2YWx1ZSkudG9CZU51bGwoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIHdoZW4gbWV0YWRhdGEgaXMgaW52YWxpZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcmV2ZW51ZTogMTAwLFxuICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICBwcm9kdWN0czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnUHJvZHVjdCAxJyxcbiAgICAgICAgICAgICAgcHJpY2U6IDUwLFxuICAgICAgICAgICAgICBxdWFudGl0eTogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdQcm9kdWN0IDInLFxuICAgICAgICAgICAgICBwcmljZTogMzAsXG4gICAgICAgICAgICAgIHF1YW50aXR5OiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWFwcGluZ0pzb24gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiAncHJvcGVydGllcy5yZXZlbnVlJyxcbiAgICAgICAgICBkZXN0S2V5OiAncmV2ZW51ZScsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgIHR5cGU6ICdpbnZhbGlkVHlwZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gSnNvblV0aWxzLmNvbnN0cnVjdFBheWxvYWQobWVzc2FnZSBhcyBhbnksIG1hcHBpbmdKc29uKTtcblxuICAgICAgZXhwZWN0KHZhbHVlKS50b0VxdWFsKHtcbiAgICAgICAgcmV2ZW51ZTogMTAwLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGFuIEluc3RydW1lbnRhdGlvbkVycm9yIHdoZW4gYSByZXF1aXJlZCB2YWx1ZSBpcyBtaXNzaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICByZXZlbnVlOiAxMDAsXG4gICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICAgIHByb2R1Y3RzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdQcm9kdWN0IDEnLFxuICAgICAgICAgICAgICBwcmljZTogNTAsXG4gICAgICAgICAgICAgIHF1YW50aXR5OiAyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ1Byb2R1Y3QgMicsXG4gICAgICAgICAgICAgIHByaWNlOiAzMCxcbiAgICAgICAgICAgICAgcXVhbnRpdHk6IDEsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtYXBwaW5nSnNvbiA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6ICdldmVudCcsXG4gICAgICAgICAgZGVzdEtleTogJ2V2ZW50JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiAncHJvcGVydGllcy5yZXZlbnVlJyxcbiAgICAgICAgICBkZXN0S2V5OiAncmV2ZW51ZScsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogJ3Byb3BlcnRpZXMuY3VycmVuY3knLFxuICAgICAgICAgIGRlc3RLZXk6ICdjdXJyZW5jeScsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogJ3Byb3BlcnRpZXMucHJvZHVjdHMnLFxuICAgICAgICAgIGRlc3RLZXk6ICdwcm9kdWN0cycsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc291cmNlS2V5czogJ3Byb3BlcnRpZXMuaW52YWxpZEtleScsXG4gICAgICAgICAgZGVzdEtleTogJ2ludmFsaWRLZXknLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIEpzb25VdGlscy5jb25zdHJ1Y3RQYXlsb2FkKG1lc3NhZ2UgYXMgYW55LCBtYXBwaW5nSnNvbik7XG4gICAgICB9KS50b1Rocm93KEluc3RydW1lbnRhdGlvbkVycm9yKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY29uc3RydWN0IHRoZSBwYXlsb2FkIGNvcnJlY3RseSB3aXRoIGEgdmFsaWQgbWFwcGluZ0pzb24gYW5kIG1lc3NhZ2Ugb2JqZWN0IHdoZW4gZGVzdGluYXRpb24ga2V5IGlzIGFuIGVtcHR5IHN0cmluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSB7XG4gICAgICAgIGV2ZW50OiAncHVyY2hhc2UnLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcmV2ZW51ZTogMTAwLFxuICAgICAgICAgIGN1cnJlbmN5OiAnVVNEJyxcbiAgICAgICAgICBwcm9kdWN0czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnUHJvZHVjdCAxJyxcbiAgICAgICAgICAgICAgcHJpY2U6IDUwLFxuICAgICAgICAgICAgICBxdWFudGl0eTogMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdQcm9kdWN0IDInLFxuICAgICAgICAgICAgICBwcmljZTogMzAsXG4gICAgICAgICAgICAgIHF1YW50aXR5OiAxLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbWFwcGluZ0pzb24gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiAnZXZlbnQnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6ICdwcm9wZXJ0aWVzLnJldmVudWUnLFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB7fSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvdXJjZUtleXM6ICdwcm9wZXJ0aWVzLmN1cnJlbmN5JyxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2VLZXlzOiAncHJvcGVydGllcy5wcm9kdWN0cycsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgLy8gTm90IGEgY29ycmVjdCBwYXlsb2FkIGFzIHRoZSBkZXN0aW5hdGlvbiBrZXlzIGFyZSBlbXB0eSBzdHJpbmdzIG9yIG5vdCBwcmVzZW50XG4gICAgICBjb25zdCBleHBlY3RlZFBheWxvYWQgPSB7XG4gICAgICAgICcnOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1Byb2R1Y3QgMScsXG4gICAgICAgICAgICBwcmljZTogNTAsXG4gICAgICAgICAgICBxdWFudGl0eTogMixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdQcm9kdWN0IDInLFxuICAgICAgICAgICAgcHJpY2U6IDMwLFxuICAgICAgICAgICAgcXVhbnRpdHk6IDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKc29uVXRpbHMuY29uc3RydWN0UGF5bG9hZChtZXNzYWdlIGFzIGFueSwgbWFwcGluZ0pzb24pO1xuICAgICAgZXhwZWN0KHBheWxvYWQpLnRvRXF1YWwoZXhwZWN0ZWRQYXlsb2FkKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2pzb24gdXRpbCBvdGhlciBmdW5jdGlvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXRyaWV2ZSB0aGUgZmllbGQgdmFsdWUgY29ycmVjdGx5IGZyb20gdGhlIG1lc3NhZ2UgdXNpbmcgYSB2YWxpZCBzb3VyY2VLZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBtZXNzYWdlID0ge1xuICAgICAgICBldmVudDogJ3B1cmNoYXNlJyxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHJldmVudWU6IDEwMCxcbiAgICAgICAgICBjdXJyZW5jeTogJ1VTRCcsXG4gICAgICAgIH0sXG4gICAgICAgIHRyYWl0czoge1xuICAgICAgICAgIGZpcnN0TmFtZTogJ0pvaG4nLFxuICAgICAgICAgIGxhc3ROYW1lOiAnRG9lJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHNvdXJjZUtleSA9ICdmaXJzdE5hbWUnO1xuICAgICAgY29uc3QgZXhwZWN0ZWRWYWx1ZSA9ICdKb2huJztcblxuICAgICAgY29uc3QgdmFsdWUgPSBKc29uVXRpbHMuZ2V0RmllbGRWYWx1ZUZyb21NZXNzYWdlKG1lc3NhZ2UgYXMgYW55LCBzb3VyY2VLZXkpO1xuICAgICAgZXhwZWN0KHZhbHVlKS50b0VxdWFsKGV4cGVjdGVkVmFsdWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIGdpdmVuIGFuIGludmFsaWQgc291cmNlS2V5JywgKCkgPT4ge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICAgICAgZXZlbnQ6ICdwdXJjaGFzZScsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICByZXZlbnVlOiAxMDAsXG4gICAgICAgICAgY3VycmVuY3k6ICdVU0QnLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3Qgc291cmNlS2V5ID0gJ2ludmFsaWRLZXknO1xuXG4gICAgICBjb25zdCB2YWx1ZSA9IEpzb25VdGlscy5nZXRGaWVsZFZhbHVlRnJvbU1lc3NhZ2UobWVzc2FnZSBhcyBhbnksIHNvdXJjZUtleSk7XG4gICAgICBleHBlY3QodmFsdWUpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
package/build/utils/misc.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { RudderStackEvent } from '../types';
|
|
3
2
|
import get from 'get-value';
|
|
4
3
|
import set from 'set-value';
|
|
4
|
+
import { Metadata, RudderStackEvent } from '../types';
|
|
5
5
|
export { get, set };
|
|
6
6
|
export declare const isDefined: (x: unknown) => boolean;
|
|
7
7
|
export declare const isNotEmpty: (x: unknown) => boolean;
|
|
@@ -126,4 +126,11 @@ export declare const hashToSha256: (value: string | Buffer | number[]) => string
|
|
|
126
126
|
* @see {@link https://nodejs.org/api/crypto.html#cryptorandomuuidoptions:~:text=options%20%3CObject%3E-,disableEntropyCache,-%3Cboolean%3E%20By}
|
|
127
127
|
*/
|
|
128
128
|
export declare const generateUUID: () => string;
|
|
129
|
+
export declare const getErrorRespEvents: (metadata: Metadata[], statusCode: number, error: string, statTags: Object, batched?: boolean) => {
|
|
130
|
+
metadata: Metadata[];
|
|
131
|
+
statusCode: number;
|
|
132
|
+
error: string;
|
|
133
|
+
statTags: Object;
|
|
134
|
+
batched: boolean;
|
|
135
|
+
};
|
|
129
136
|
//# sourceMappingURL=misc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":";AACA,OAAO,GAAG,MAAM,WAAW,CAAC;AAC5B,OAAO,GAAG,MAAM,WAAW,CAAC;AAK5B,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAMtD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACpB,eAAO,MAAM,SAAS,MAAO,OAAO,YAAsB,CAAC;AAC3D,eAAO,MAAM,UAAU,MAAO,OAAO,YAAkB,CAAC;AACxD,eAAO,MAAM,SAAS,MAAO,OAAO,YAAc,CAAC;AACnD,eAAO,MAAM,mBAAmB,MAAO,OAAO,YAAiC,CAAC;AAChF,eAAO,MAAM,8BAA8B,MAAO,OAAO,YACV,CAAC;AAChD,eAAO,MAAM,OAAO,UAAW,OAAO,YAAiC,CAAC;AAGxE,eAAO,MAAM,qBAAqB,QAAS,OAAO,YAGjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,OAAO,YAG5C,CAAC;AACF,eAAO,MAAM,4BAA4B,QAAS,OAAO,YAGxD,CAAC;AACF,eAAO,MAAM,oCAAoC,QAAS,OAAO,YAGhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,eAAgB,OAAO,YAG7C,CAAC;AAMF,eAAO,MAAM,YAAY,YAAa,gBAAgB,SASrD,CAAC;AAEF,eAAO,MAAM,eAAe,WAAY,MAAM,WAA2C,CAAC;AAG1F,eAAO,MAAM,UAAU,QAAS,MAAM,GAAG,GAAG,eAM3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,MAAM,WACK,CAAC;AAEpD,eAAO,MAAM,WAAW,QAAS,OAAO,YAGvC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,QAAS,OAAO,mHASnC,CAAC;AAEF,eAAO,MAAM,QAAQ,UAAW,OAAO,YAGtC,CAAC;AAEF,eAAO,MAAM,OAAO,UAAW,OAAO,YAAwC,CAAC;AAE/E;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAS,GAAG,YAMrC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,UAAW,OAAO,YAOpD,CAAC;AAEJ,eAAO,MAAM,mCAAmC,QAAS,OAAO,YAG/D,CAAC;AAGF,eAAO,MAAM,gBAAgB,8EAU5B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,WAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,gEAsBvC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,8DAS7C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B;;;SAQ1C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,SAAU,OAAO,0CA+BxC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,UAAW,MAAM,uBAY3C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,YAAa,MAAM,WAAW,MAAM,oBAS/D,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,WAAkB,CAAC;AAEjF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,QAAO,MAA0D,CAAC;AAI3F,eAAO,MAAM,kBAAkB,aACnB,QAAQ,EAAE,cACR,MAAM,SACX,MAAM,YACH,MAAM,YACP,OAAO;cAEN,QAAQ,EAAE;gBACR,MAAM;WACX,MAAM;cACH,MAAM;aACP,OAAO;CAOhB,CAAC"}
|