@mecanizou/telemetry-hub 1.3.2 → 1.3.3
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/CHANGELOG.md +7 -0
- package/dist/core/__tests__/logger-types.test.js +6 -7
- package/dist/core/__tests__/logger.test.js +12 -17
- package/dist/core/__tests__/tracer.test.js +8 -12
- package/dist/core/environment.d.ts +1 -0
- package/dist/core/environment.js +10 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.js +4 -2
- package/dist/core/logger-types.d.ts +8 -3
- package/dist/core/logger-types.js +1 -1
- package/dist/core/logger.js +11 -11
- package/dist/core/tracer-types.d.ts +10 -3
- package/dist/core/tracer-types.js +1 -1
- package/dist/core/tracer.js +11 -7
- package/dist/sst/middy/middleware.d.ts +4 -0
- package/dist/sst/middy/middleware.js +80 -12
- package/dist/tsed/log-telemetry.js +3 -4
- package/dist/tsed/service.js +2 -20
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [1.3.3](https://github.com/mecanizou-eco/telemetry-hub/compare/v1.3.2...v1.3.3) (2026-01-21)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add variant off parameters and ajust interface ([d28c1b3](https://github.com/mecanizou-eco/telemetry-hub/commit/d28c1b3ff937aa1ff66ec2acd0cde030116003fb))
|
|
7
|
+
|
|
1
8
|
## [1.3.2](https://github.com/mecanizou-eco/telemetry-hub/compare/v1.3.1...v1.3.2) (2026-01-21)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -58,9 +58,8 @@ const vitest_1 = require("vitest");
|
|
|
58
58
|
query: { filter: 'active' },
|
|
59
59
|
},
|
|
60
60
|
user: {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
applicationUid: 'app-789',
|
|
61
|
+
uid: 'user-123',
|
|
62
|
+
email: 'user@example.com',
|
|
64
63
|
},
|
|
65
64
|
execution: {
|
|
66
65
|
requestId: 'req-abc',
|
|
@@ -115,12 +114,12 @@ const vitest_1 = require("vitest");
|
|
|
115
114
|
serviceName: 'test',
|
|
116
115
|
environment: 'test',
|
|
117
116
|
user: {
|
|
118
|
-
|
|
117
|
+
uid: 'user-123',
|
|
119
118
|
},
|
|
120
119
|
timestamp: new Date().toISOString(),
|
|
121
120
|
};
|
|
122
|
-
(0, vitest_1.expect)((_a = partialUserLog.user) === null || _a === void 0 ? void 0 : _a.
|
|
123
|
-
(0, vitest_1.expect)((_b = partialUserLog.user) === null || _b === void 0 ? void 0 : _b.
|
|
121
|
+
(0, vitest_1.expect)((_a = partialUserLog.user) === null || _a === void 0 ? void 0 : _a.uid).toBe('user-123');
|
|
122
|
+
(0, vitest_1.expect)((_b = partialUserLog.user) === null || _b === void 0 ? void 0 : _b.email).toBeUndefined();
|
|
124
123
|
});
|
|
125
124
|
(0, vitest_1.it)('deve aceitar campos de execução parciais', () => {
|
|
126
125
|
var _a, _b, _c;
|
|
@@ -322,4 +321,4 @@ const vitest_1 = require("vitest");
|
|
|
322
321
|
});
|
|
323
322
|
});
|
|
324
323
|
});
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLXR5cGVzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9fX3Rlc3RzX18vbG9nZ2VyLXR5cGVzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBOEM7QUFHOUMsSUFBQSxpQkFBUSxFQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtJQUN2QyxJQUFBLFdBQUUsRUFBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUU7UUFDeEMsTUFBTSxVQUFVLEdBQW9CO1lBQ2xDLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFdBQVcsRUFBRSxjQUFjO1lBQzNCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtTQUNwQyxDQUFDO1FBRUYsSUFBQSxlQUFNLEVBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBQSxlQUFNLEVBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsV0FBRSxFQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtRQUNsRCxNQUFNLFVBQVUsR0FBa0M7WUFDaEQsT0FBTztZQUNQLE1BQU07WUFDTixNQUFNO1lBQ04sT0FBTztTQUNSLENBQUM7UUFFRixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxHQUFHLEdBQW9CO2dCQUMzQixRQUFRO2dCQUNSLE9BQU8sRUFBRSxNQUFNO2dCQUNmLFdBQVcsRUFBRSxNQUFNO2dCQUNuQixXQUFXLEVBQUUsTUFBTTtnQkFDbkIsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2FBQ3BDLENBQUM7WUFDRixJQUFBLGVBQU0sRUFBQyxHQUFH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QUFDO2dCQUNGLElBQUEsZUFBTSxFQUFDLE1BQUEsR0FBRyxDQUFDLFdBQVcsMENBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsaUJBQVEsRUFBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7UUFDbkMsSUFBQSxXQUFFLEVBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO1lBQ3hDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFOztnQkFDaEMsTUFBTSxHQUFHLEdBQW9CO29CQUMzQixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsT0FBTyxFQUFFLE1BQU07b0JBQ2YsV0FBVyxFQUFFLE1BQU07b0JBQ25CLFdBQVcsRUFBRSxNQUFNO29CQUNuQixXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUU7b0JBQ3hCLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtpQkFDcEMsQ0FBQztnQkFDRixJQUFBLGVBQU0sRUFBQyxNQUFBLEdBQUcsQ0FBQyxXQUFXLDBDQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBpdCwgZXhwZWN0IH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB0eXBlIHsgU3RhbmRhcmRMb2dEYXRhLCBJU3RhbmRhcmRMb2dnZXIgfSBmcm9tICcuLi9sb2dnZXItdHlwZXMnO1xuXG5kZXNjcmliZSgnVHlwZXMgLSBTdGFuZGFyZExvZ0RhdGEnLCAoKSA9PiB7XG4gIGl0KCdkZXZlIGFjZWl0YXIgbG9nIG3DrW5pbW8gdsOhbGlkbycsICgpID0+IHtcbiAgICBjb25zdCBtaW5pbWFsTG9nOiBTdGFuZGFyZExvZ0RhdGEgPSB7XG4gICAgICBzZXZlcml0eTogJ0lORk8nLFxuICAgICAgbWVzc2FnZTogJ1Rlc3QgbWVzc2FnZScsXG4gICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgfTtcblxuICAgIGV4cGVjdChtaW5pbWFsTG9nKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChtaW5pbWFsTG9nLnNldmVyaXR5KS50b0JlKCdJTkZPJyk7XG4gIH0pO1xuXG4gIGl0KCdkZXZlIGFjZWl0YXIgdG9kb3Mgb3MgbsOtdmVpcyBkZSBzZXZlcml0eScsICgpID0+IHtcbiAgICBjb25zdCBzZXZlcml0aWVzOiBTdGFuZGFyZExvZ0RhdGFbJ3NldmVyaXR5J11bXSA9IFtcbiAgICAgICdFUlJPUicsXG4gICAgICAnV0FSTicsXG4gICAgICAnSU5GTycsXG4gICAgICAnREVCVUcnLFxuICAgIF07XG5cbiAgICBzZXZlcml0aWVzLmZvckVhY2goKHNldmVyaXR5KSA9PiB7XG4gICAgICBjb25zdCBsb2c6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgICAgc2V2ZXJpdHksXG4gICAgICAgIG1lc3NhZ2U6ICdUZXN0JyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0JyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICB9O1xuICAgICAgZXhwZWN0KGxvZy5zZXZlcml0eSkudG9CZShzZXZlcml0eSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdkZXZlIGFjZWl0YXIgbG9nIGNvbXBsZXRvIGNvbSB0b2RvcyBvcyBjYW1wb3Mgb3BjaW9uYWlzJywgKCkgPT4ge1xuICAgIGNvbnN0IGNvbXBsZXRlTG9nOiBTdGFuZGFyZExvZ0RhdGEgPSB7XG4gICAgICBzZXZlcml0eTogJ0VSUk9SJyxcbiAgICAgIG1lc3NhZ2U6ICdDb21wbGV0ZSBsb2cgbWVzc2FnZScsXG4gICAgICBlcnJvcjogbmV3IEVycm9yKCdUZXN0IGVycm9yJyksXG4gICAgICBzZXJ2aWNlTmFtZTogJ2NvbXBsZXRlLXNlcnZpY2UnLFxuICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgIGh0dHA6IHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIHVybDogJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3Rlc3QnLFxuICAgICAgICBlbmRwb2ludDogJy90ZXN0JyxcbiAgICAgICAgc3RhdHVzQ29kZTogNTAwLFxuICAgICAgICBoZWFkZXJzOiB7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgICAgYm9keTogeyB0ZXN0OiAnZGF0YScgfSxcbiAgICAgICAgcGFyYW1zOiB7IGlkOiAnMTIzJyB9LFxuICAgICAgICBxdWVyeTogeyBmaWx0ZXI6ICdhY3RpdmUnIH0sXG4gICAgICB9LFxuICAgICAgdXNlcjoge1xuICAgICAgICBhY2NvdW50VXNlclVpZDogJ3VzZXItMTIzJyxcbiAgICAgICAgYWNjb3VudFVpZDogJ2FjY291bnQtNDU2JyxcbiAgICAgICAgYXBwbGljYXRpb25VaWQ6ICdhcHAtNzg5JyxcbiAgICAgIH0sXG4gICAgICBleGVjdXRpb246IHtcbiAgICAgICAgcmVxdWVzdElkOiAncmVxLWFiYycsXG4gICAgICAgIGF3c1JlcXVlc3RJZDogJ2F3cy14eXonLFxuICAgICAgICBmdW5jdGlvbk5hbWU6ICd0ZXN0RnVuY3Rpb24nLFxuICAgICAgICBpbnZvY2F0aW9uSWQ6ICdpbnYtMTIzJyxcbiAgICAgICAgY29udHJvbGxlcjogJ1Rlc3RDb250cm9sbGVyJyxcbiAgICAgICAgY29udHJvbGxlck1ldGhvZDogJ3Rlc3RNZXRob2QnLFxuICAgICAgICBvcmlnaW46ICdtb2JpbGUnLFxuICAgICAgfSxcbiAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgIGR1cmF0aW9uTXM6IDE1MDAsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgY3VzdG9tRmllbGQ6ICdjdXN0b21WYWx1ZScsXG4gICAgICAgIG5lc3RlZDoge1xuICAgICAgICAgIGRhdGE6IDEyMyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KGNvbXBsZXRlTG9nKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChjb21wbGV0ZUxvZy5odHRwKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChjb21wbGV0ZUxvZy51c2VyKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChjb21wbGV0ZUxvZy5leGVjdXRpb24pLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KGNvbXBsZXRlTG9nLnBlcmZvcm1hbmNlKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChjb21wbGV0ZUxvZy5jb250ZXh0KS50b0JlRGVmaW5lZCgpO1xuICB9KTtcblxuICBpdCgnZGV2ZSBhY2VpdGFyIGNhbXBvcyBIVFRQIHBhcmNpYWlzJywgKCkgPT4ge1xuICAgIGNvbnN0IHBhcnRpYWxIdHRwTG9nOiBTdGFuZGFyZExvZ0RhdGEgPSB7XG4gICAgICBzZXZlcml0eTogJ0lORk8nLFxuICAgICAgbWVzc2FnZTogJ1BhcnRpYWwgSFRUUCcsXG4gICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3QnLFxuICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgIGh0dHA6IHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgZW5kcG9pbnQ6ICcvYXBpL3VzZXJzJyxcbiAgICAgICAgLy8gb3V0cm9zIGNhbXBvcyBvcGNpb25haXMgb21pdGlkb3NcbiAgICAgIH0sXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KHBhcnRpYWxIdHRwTG9nLmh0dHA/Lm1ldGhvZCkudG9CZSgnR0VUJyk7XG4gICAgZXhwZWN0KHBhcnRpYWxIdHRwTG9nLmh0dHA/LmVuZHBvaW50KS50b0JlKCcvYXBpL3VzZXJzJyk7XG4gICAgZXhwZWN0KHBhcnRpYWxIdHRwTG9nLmh0dHA/LnVybCkudG9CZVVuZGVmaW5lZCgpO1xuICB9KTtcblxuICBpdCgnZGV2ZSBhY2VpdGFyIGNhbXBvcyBkZSB1c3XDoXJpbyBwYXJjaWFpcycsICgpID0+IHtcbiAgICBjb25zdCBwYXJ0aWFsVXNlckxvZzogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgc2V2ZXJpdHk6ICdJTkZPJyxcbiAgICAgIG1lc3NhZ2U6ICdQYXJ0aWFsIHVzZXInLFxuICAgICAgc2VydmljZU5hbWU6ICd0ZXN0JyxcbiAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICB1c2VyOiB7XG4gICAgICAgIGFjY291bnRVc2VyVWlkOiAndXNlci0xMjMnLFxuICAgICAgICAvLyBvdXRyb3MgY2FtcG9zIG9wY2lvbmFpcyBvbWl0aWRvc1xuICAgICAgfSxcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG5cbiAgICBleHBlY3QocGFydGlhbFVzZXJMb2cudXNlcj8uYWNjb3VudFVzZXJVaWQpLnRvQmUoJ3VzZXItMTIzJyk7XG4gICAgZXhwZWN0KHBhcnRpYWxVc2VyTG9nLnVzZXI/LmFjY291bnRVaWQpLnRvQmVVbmRlZmluZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2RldmUgYWNlaXRhciBjYW1wb3MgZGUgZXhlY3XDp8OjbyBwYXJjaWFpcycsICgpID0+IHtcbiAgICBjb25zdCBwYXJ0aWFsRXhlY0xvZzogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgc2V2ZXJpdHk6ICdERUJVRycsXG4gICAgICBtZXNzYWdlOiAnUGFydGlhbCBleGVjdXRpb24nLFxuICAgICAgc2VydmljZU5hbWU6ICd0ZXN0JyxcbiAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICBleGVjdXRpb246IHtcbiAgICAgICAgcmVxdWVzdElkOiAncmVxLTEyMycsXG4gICAgICAgIGNvbnRyb2xsZXI6ICdUZXN0Q29udHJvbGxlcicsXG4gICAgICAgIC8vIG91dHJvcyBjYW1wb3Mgb3BjaW9uYWlzIG9taXRpZG9zXG4gICAgICB9LFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgfTtcblxuICAgIGV4cGVjdChwYXJ0aWFsRXhlY0xvZy5leGVjdXRpb24/LnJlcXVlc3RJZCkudG9CZSgncmVxLTEyMycpO1xuICAgIGV4cGVjdChwYXJ0aWFsRXhlY0xvZy5leGVjdXRpb24/LmNvbnRyb2xsZXIpLnRvQmUoJ1Rlc3RDb250cm9sbGVyJyk7XG4gICAgZXhwZWN0KHBhcnRpYWxFeGVjTG9nLmV4ZWN1dGlvbj8uYXdzUmVxdWVzdElkKS50b0JlVW5kZWZpbmVkKCk7XG4gIH0pO1xuXG4gIGl0KCdkZXZlIGFjZWl0YXIgcGVyZm9ybWFuY2UgY29tIGFwZW5hcyBkdXJhdGlvbk1zJywgKCkgPT4ge1xuICAgIGNvbnN0IGR1cmF0aW9uT25seUxvZzogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgc2V2ZXJpdHk6ICdJTkZPJyxcbiAgICAgIG1lc3NhZ2U6ICdEdXJhdGlvbiBvbmx5JyxcbiAgICAgIHNlcnZpY2VOYW1lOiAndGVzdCcsXG4gICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgcGVyZm9ybWFuY2U6IHtcbiAgICAgICAgZHVyYXRpb25NczogNTAwLFxuICAgICAgfSxcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG5cbiAgICBleHBlY3QoZHVyYXRpb25Pbmx5TG9nLnBlcmZvcm1hbmNlPy5kdXJhdGlvbk1zKS50b0JlKDUwMCk7XG4gICAgZXhwZWN0KGR1cmF0aW9uT25seUxvZy5wZXJmb3JtYW5jZT8uc3VjY2VzcykudG9CZVVuZGVmaW5lZCgpO1xuICB9KTtcblxuICBpdCgnZGV2ZSBhY2VpdGFyIHBlcmZvcm1hbmNlIGNvbSBhcGVuYXMgc3VjY2VzcycsICgpID0+IHtcbiAgICBjb25zdCBzdWNjZXNzT25seUxvZzogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgc2V2ZXJpdHk6ICdJTkZPJyxcbiAgICAgIG1lc3NhZ2U6ICdTdWNjZXNzIG9ubHknLFxuICAgICAgc2VydmljZU5hbWU6ICd0ZXN0JyxcbiAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICBwZXJmb3JtYW5jZToge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG5cbiAgICBleHBlY3Qoc3VjY2Vzc09ubHlMb2cucGVyZm9ybWFuY2U/LnN1Y2Nlc3MpLnRvQmUodHJ1ZSk7XG4gICAgZXhwZWN0KHN1Y2Nlc3NPbmx5TG9nLnBlcmZvcm1hbmNlPy5kdXJhdGlvbk1zKS50b0JlVW5kZWZpbmVkKCk7XG4gIH0pO1xuXG4gIGl0KCdkZXZlIGFjZWl0YXIgY29udGV4dG8gY29tIGVzdHJ1dHVyYXMgYW5pbmhhZGFzIGNvbXBsZXhhcycsICgpID0+IHtcbiAgICBjb25zdCBjb21wbGV4Q29udGV4dExvZzogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgc2V2ZXJpdHk6ICdFUlJPUicsXG4gICAgICBtZXNzYWdlOiAnQ29tcGxleCBjb250ZXh0JyxcbiAgICAgIHNlcnZpY2VOYW1lOiAndGVzdCcsXG4gICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgY29udGV4dDoge1xuICAgICAgICBsZXZlbDE6IHtcbiAgICAgICAgICBsZXZlbDI6IHtcbiAgICAgICAgICAgIGxldmVsMzoge1xuICAgICAgICAgICAgICB2YWx1ZTogJ2RlZXAnLFxuICAgICAgICAgICAgICBhcnJheTogWzEsIDIsIDNdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaW1wbGVWYWx1ZTogJ3Rlc3QnLFxuICAgICAgICBudW1lcmljVmFsdWU6IDEyMyxcbiAgICAgICAgYm9vbGVhblZhbHVlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG5cbiAgICBleHBlY3QoY29tcGxleENvbnRleHRMb2cuY29udGV4dD8ubGV2ZWwxKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChjb21wbGV4Q29udGV4dExvZy5jb250ZXh0Py5zaW1wbGVWYWx1ZSkudG9CZSgndGVzdCcpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnVHlwZXMgLSBJU3RhbmRhcmRMb2dnZXInLCAoKSA9PiB7XG4gIGl0KCdkZXZlIGRlZmluaXIgaW50ZXJmYWNlIGNvbSBvcyA0IG3DqXRvZG9zIGRlIGxvZycsICgpID0+IHtcbiAgICAvLyBFc3RlIMOpIHVtIHRlc3RlIGRlIHRpcG8sIHPDsyBwYXJhIGdhcmFudGlyIHF1ZSBhIGludGVyZmFjZSBlc3TDoSBjb3JyZXRhXG4gICAgY29uc3QgbW9ja0xvZ2dlcjogSVN0YW5kYXJkTG9nZ2VyID0ge1xuICAgICAgbG9nRXJyb3I6IGFzeW5jICgpID0+IHt9LFxuICAgICAgbG9nSW5mbzogYXN5bmMgKCkgPT4ge30sXG4gICAgICBsb2dXYXJuOiBhc3luYyAoKSA9PiB7fSxcbiAgICAgIGxvZ0RlYnVnOiBhc3luYyAoKSA9PiB7fSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KG1vY2tMb2dnZXIubG9nRXJyb3IpLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KG1vY2tMb2dnZXIubG9nSW5mbykudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QobW9ja0xvZ2dlci5sb2dXYXJuKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChtb2NrTG9nZ2VyLmxvZ0RlYnVnKS50b0JlRGVmaW5lZCgpO1xuICB9KTtcblxuICBpdCgnZGV2ZSBhY2VpdGFyIGRhZG9zIHNlbSBzZXZlcml0eSBlIHRpbWVzdGFtcCBub3MgbcOpdG9kb3MnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9ja0xvZ2dlcjogSVN0YW5kYXJkTG9nZ2VyID0ge1xuICAgICAgbG9nRXJyb3I6IGFzeW5jIChkYXRhKSA9PiB7XG4gICAgICAgIGV4cGVjdChkYXRhLm1lc3NhZ2UpLnRvQmUoJ0Vycm9yIG1lc3NhZ2UnKTtcbiAgICAgICAgZXhwZWN0KGRhdGEuc2VydmljZU5hbWUpLnRvQmUoJ3Rlc3QnKTtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIHNldmVyaXR5IG7Do28gZGV2ZSBleGlzdGlyXG4gICAgICAgIGV4cGVjdChkYXRhLnNldmVyaXR5KS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSB0aW1lc3RhbXAgbsOjbyBkZXZlIGV4aXN0aXJcbiAgICAgICAgZXhwZWN0KGRhdGEudGltZXN0YW1wKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICB9LFxuICAgICAgbG9nSW5mbzogYXN5bmMgKCkgPT4ge30sXG4gICAgICBsb2dXYXJuOiBhc3luYyAoKSA9PiB7fSxcbiAgICAgIGxvZ0RlYnVnOiBhc3luYyAoKSA9PiB7fSxcbiAgICB9O1xuXG4gICAgYXdhaXQgbW9ja0xvZ2dlci5sb2dFcnJvcih7XG4gICAgICBtZXNzYWdlOiAnRXJyb3IgbWVzc2FnZScsXG4gICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3QnLFxuICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ1R5cGVzIC0gVmFsaWRhw6fDo28gZGUgY2FtcG9zJywgKCkgPT4ge1xuICBkZXNjcmliZSgnc2V2ZXJpdHknLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgYWNlaXRhciBhcGVuYXMgdmFsb3JlcyB2w6FsaWRvcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkU2V2ZXJpdGllcyA9IFsnRVJST1InLCAnV0FSTicsICdJTkZPJywgJ0RFQlVHJ10gYXMgY29uc3Q7XG5cbiAgICAgIHZhbGlkU2V2ZXJpdGllcy5mb3JFYWNoKChzZXZlcml0eSkgPT4ge1xuICAgICAgICBjb25zdCBsb2c6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgICAgICBzZXZlcml0eSxcbiAgICAgICAgICBtZXNzYWdlOiAndGVzdCcsXG4gICAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0JyxcbiAgICAgICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICB9O1xuICAgICAgICBleHBlY3QobG9nLnNldmVyaXR5KS50b0JlKHNldmVyaXR5KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZW52aXJvbm1lbnQnLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgYWNlaXRhciBhbWJpZW50ZXMgY29tdW5zJywgKCkgPT4ge1xuICAgICAgY29uc3QgZW52aXJvbm1lbnRzID0gWydkZXZlbG9wbWVudCcsICdzdGFnaW5nJywgJ3Byb2R1Y3Rpb24nLCAndGVzdCddO1xuXG4gICAgICBlbnZpcm9ubWVudHMuZm9yRWFjaCgoZW52KSA9PiB7XG4gICAgICAgIGNvbnN0IGxvZzogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgICAgIHNldmVyaXR5OiAnSU5GTycsXG4gICAgICAgICAgbWVzc2FnZTogJ3Rlc3QnLFxuICAgICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdCcsXG4gICAgICAgICAgZW52aXJvbm1lbnQ6IGVudixcbiAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgfTtcbiAgICAgICAgZXhwZWN0KGxvZy5lbnZpcm9ubWVudCkudG9CZShlbnYpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd0aW1lc3RhbXAnLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgYWNlaXRhciBmb3JtYXRvIElTTyA4NjAxJywgKCkgPT4ge1xuICAgICAgY29uc3QgaXNvVGltZXN0YW1wID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgY29uc3QgbG9nOiBTdGFuZGFyZExvZ0RhdGEgPSB7XG4gICAgICAgIHNldmVyaXR5OiAnSU5GTycsXG4gICAgICAgIG1lc3NhZ2U6ICd0ZXN0JyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0JyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgICAgdGltZXN0YW1wOiBpc29UaW1lc3RhbXAsXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QobG9nLnRpbWVzdGFtcCkudG9NYXRjaChcbiAgICAgICAgL15cXGR7NH0tXFxkezJ9LVxcZHsyfVRcXGR7Mn06XFxkezJ9OlxcZHsyfVxcLlxcZHszfVokL1xuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2h0dHAuc3RhdHVzQ29kZScsICgpID0+IHtcbiAgICBpdCgnZGV2ZSBhY2VpdGFyIGPDs2RpZ29zIEhUVFAgdsOhbGlkb3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzdGF0dXNDb2RlcyA9IFsyMDAsIDIwMSwgNDAwLCA0MDEsIDQwNCwgNTAwLCA1MDIsIDUwM107XG5cbiAgICAgIHN0YXR1c0NvZGVzLmZvckVhY2goKHN0YXR1c0NvZGUpID0+IHtcbiAgICAgICAgY29uc3QgbG9nOiBTdGFuZGFyZExvZ0RhdGEgPSB7XG4gICAgICAgICAgc2V2ZXJpdHk6ICdJTkZPJyxcbiAgICAgICAgICBtZXNzYWdlOiAndGVzdCcsXG4gICAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0JyxcbiAgICAgICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgICAgIGh0dHA6IHsgc3RhdHVzQ29kZSB9LFxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICB9O1xuICAgICAgICBleHBlY3QobG9nLmh0dHA/LnN0YXR1c0NvZGUpLnRvQmUoc3RhdHVzQ29kZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3BlcmZvcm1hbmNlLmR1cmF0aW9uTXMnLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgYWNlaXRhciB2YWxvcmVzIG51bcOpcmljb3MgcG9zaXRpdm9zJywgKCkgPT4ge1xuICAgICAgY29uc3QgZHVyYXRpb25zID0gWzAsIDEwMCwgNTAwLCAxMDAwLCA1MDAwLCAxMDAwMF07XG5cbiAgICAgIGR1cmF0aW9ucy5mb3JFYWNoKChkdXJhdGlvbk1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGxvZzogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgICAgIHNldmVyaXR5OiAnSU5GTycsXG4gICAgICAgICAgbWVzc2FnZTogJ3Rlc3QnLFxuICAgICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdCcsXG4gICAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgICAgICBwZXJmb3JtYW5jZTogeyBkdXJhdGlvbk1zIH0sXG4gICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIH07XG4gICAgICAgIGV4cGVjdChsb2cucGVyZm9ybWFuY2U/LmR1cmF0aW9uTXMpLnRvQmUoZHVyYXRpb25Ncyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3BlcmZvcm1hbmNlLnN1Y2Nlc3MnLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgYWNlaXRhciB2YWxvcmVzIGJvb2xlYW5vcycsICgpID0+IHtcbiAgICAgIFt0cnVlLCBmYWxzZV0uZm9yRWFjaCgoc3VjY2VzcykgPT4ge1xuICAgICAgICBjb25zdCBsb2c6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgICAgICBzZXZlcml0eTogJ0lORk8nLFxuICAgICAgICAgIG1lc3NhZ2U6ICd0ZXN0JyxcbiAgICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3QnLFxuICAgICAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICAgICAgcGVyZm9ybWFuY2U6IHsgc3VjY2VzcyB9LFxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICB9O1xuICAgICAgICBleHBlY3QobG9nLnBlcmZvcm1hbmNlPy5zdWNjZXNzKS50b0JlKHN1Y2Nlc3MpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLXR5cGVzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9fX3Rlc3RzX18vbG9nZ2VyLXR5cGVzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBOEM7QUFHOUMsSUFBQSxpQkFBUSxFQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtJQUN2QyxJQUFBLFdBQUUsRUFBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUU7UUFDeEMsTUFBTSxVQUFVLEdBQW9CO1lBQ2xDLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFdBQVcsRUFBRSxjQUFjO1lBQzNCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtTQUNwQyxDQUFDO1FBRUYsSUFBQSxlQUFNLEVBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBQSxlQUFNLEVBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsV0FBRSxFQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtRQUNsRCxNQUFNLFVBQVUsR0FBa0M7WUFDaEQsT0FBTztZQUNQLE1BQU07WUFDTixNQUFNO1lBQ04sT0FBTztTQUNSLENBQUM7UUFFRixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxHQUFHLEdBQW9CO2dCQUMzQixRQUFRO2dCQUNSLE9BQU8sRUFBRSxNQUFNO2dCQUNmLFdBQVcsRUFBRSxNQUFNO2dCQUNuQixXQUFXLEVBQUUsTUFBTTtnQkFDbkIsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2FBQ3BDLENBQUM7WUFDRixJQUFBLGVBQU0sRUFBQyxHQUFH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QUFDLE1BQUEsR0FBRyxDQUFDLFdBQVcsMENBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsaUJBQVEsRUFBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7UUFDbkMsSUFBQSxXQUFFLEVBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO1lBQ3hDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFOztnQkFDaEMsTUFBTSxHQUFHLEdBQW9CO29CQUMzQixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsT0FBTyxFQUFFLE1BQU07b0JBQ2YsV0FBVyxFQUFFLE1BQU07b0JBQ25CLFdBQVcsRUFBRSxNQUFNO29CQUNuQixXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUU7b0JBQ3hCLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtpQkFDcEMsQ0FBQztnQkFDRixJQUFBLGVBQU0sRUFBQyxNQUFBLEdBQUcsQ0FBQyxXQUFXLDBDQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBpdCwgZXhwZWN0IH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB0eXBlIHsgU3RhbmRhcmRMb2dEYXRhLCBJU3RhbmRhcmRMb2dnZXIgfSBmcm9tICcuLi9sb2dnZXItdHlwZXMnO1xuXG5kZXNjcmliZSgnVHlwZXMgLSBTdGFuZGFyZExvZ0RhdGEnLCAoKSA9PiB7XG4gIGl0KCdkZXZlIGFjZWl0YXIgbG9nIG3DrW5pbW8gdsOhbGlkbycsICgpID0+IHtcbiAgICBjb25zdCBtaW5pbWFsTG9nOiBTdGFuZGFyZExvZ0RhdGEgPSB7XG4gICAgICBzZXZlcml0eTogJ0lORk8nLFxuICAgICAgbWVzc2FnZTogJ1Rlc3QgbWVzc2FnZScsXG4gICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgfTtcblxuICAgIGV4cGVjdChtaW5pbWFsTG9nKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChtaW5pbWFsTG9nLnNldmVyaXR5KS50b0JlKCdJTkZPJyk7XG4gIH0pO1xuXG4gIGl0KCdkZXZlIGFjZWl0YXIgdG9kb3Mgb3MgbsOtdmVpcyBkZSBzZXZlcml0eScsICgpID0+IHtcbiAgICBjb25zdCBzZXZlcml0aWVzOiBTdGFuZGFyZExvZ0RhdGFbJ3NldmVyaXR5J11bXSA9IFtcbiAgICAgICdFUlJPUicsXG4gICAgICAnV0FSTicsXG4gICAgICAnSU5GTycsXG4gICAgICAnREVCVUcnLFxuICAgIF07XG5cbiAgICBzZXZlcml0aWVzLmZvckVhY2goKHNldmVyaXR5KSA9PiB7XG4gICAgICBjb25zdCBsb2c6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgICAgc2V2ZXJpdHksXG4gICAgICAgIG1lc3NhZ2U6ICdUZXN0JyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0JyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICB9O1xuICAgICAgZXhwZWN0KGxvZy5zZXZlcml0eSkudG9CZShzZXZlcml0eSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdkZXZlIGFjZWl0YXIgbG9nIGNvbXBsZXRvIGNvbSB0b2RvcyBvcyBjYW1wb3Mgb3BjaW9uYWlzJywgKCkgPT4ge1xuICAgIGNvbnN0IGNvbXBsZXRlTG9nOiBTdGFuZGFyZExvZ0RhdGEgPSB7XG4gICAgICBzZXZlcml0eTogJ0VSUk9SJyxcbiAgICAgIG1lc3NhZ2U6ICdDb21wbGV0ZSBsb2cgbWVzc2FnZScsXG4gICAgICBlcnJvcjogbmV3IEVycm9yKCdUZXN0IGVycm9yJyksXG4gICAgICBzZXJ2aWNlTmFtZTogJ2NvbXBsZXRlLXNlcnZpY2UnLFxuICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgIGh0dHA6IHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIHVybDogJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3Rlc3QnLFxuICAgICAgICBlbmRwb2ludDogJy90ZXN0JyxcbiAgICAgICAgc3RhdHVzQ29kZTogNTAwLFxuICAgICAgICBoZWFkZXJzOiB7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgICAgYm9keTogeyB0ZXN0OiAnZGF0YScgfSxcbiAgICAgICAgcGFyYW1zOiB7IGlkOiAnMTIzJyB9LFxuICAgICAgICBxdWVyeTogeyBmaWx0ZXI6ICdhY3RpdmUnIH0sXG4gICAgICB9LFxuICAgICAgdXNlcjoge1xuICAgICAgICB1aWQ6ICd1c2VyLTEyMycsXG4gICAgICAgIGVtYWlsOiAndXNlckBleGFtcGxlLmNvbScsXG4gICAgICB9LFxuICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgIHJlcXVlc3RJZDogJ3JlcS1hYmMnLFxuICAgICAgICBhd3NSZXF1ZXN0SWQ6ICdhd3MteHl6JyxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiAndGVzdEZ1bmN0aW9uJyxcbiAgICAgICAgaW52b2NhdGlvbklkOiAnaW52LTEyMycsXG4gICAgICAgIGNvbnRyb2xsZXI6ICdUZXN0Q29udHJvbGxlcicsXG4gICAgICAgIGNvbnRyb2xsZXJNZXRob2Q6ICd0ZXN0TWV0aG9kJyxcbiAgICAgICAgb3JpZ2luOiAnbW9iaWxlJyxcbiAgICAgIH0sXG4gICAgICBwZXJmb3JtYW5jZToge1xuICAgICAgICBkdXJhdGlvbk1zOiAxNTAwLFxuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGN1c3RvbUZpZWxkOiAnY3VzdG9tVmFsdWUnLFxuICAgICAgICBuZXN0ZWQ6IHtcbiAgICAgICAgICBkYXRhOiAxMjMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgfTtcblxuICAgIGV4cGVjdChjb21wbGV0ZUxvZykudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoY29tcGxldGVMb2cuaHR0cCkudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoY29tcGxldGVMb2cudXNlcikudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoY29tcGxldGVMb2cuZXhlY3V0aW9uKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChjb21wbGV0ZUxvZy5wZXJmb3JtYW5jZSkudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoY29tcGxldGVMb2cuY29udGV4dCkudG9CZURlZmluZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2RldmUgYWNlaXRhciBjYW1wb3MgSFRUUCBwYXJjaWFpcycsICgpID0+IHtcbiAgICBjb25zdCBwYXJ0aWFsSHR0cExvZzogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgc2V2ZXJpdHk6ICdJTkZPJyxcbiAgICAgIG1lc3NhZ2U6ICdQYXJ0aWFsIEhUVFAnLFxuICAgICAgc2VydmljZU5hbWU6ICd0ZXN0JyxcbiAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICBodHRwOiB7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIGVuZHBvaW50OiAnL2FwaS91c2VycycsXG4gICAgICAgIC8vIG91dHJvcyBjYW1wb3Mgb3BjaW9uYWlzIG9taXRpZG9zXG4gICAgICB9LFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgfTtcblxuICAgIGV4cGVjdChwYXJ0aWFsSHR0cExvZy5odHRwPy5tZXRob2QpLnRvQmUoJ0dFVCcpO1xuICAgIGV4cGVjdChwYXJ0aWFsSHR0cExvZy5odHRwPy5lbmRwb2ludCkudG9CZSgnL2FwaS91c2VycycpO1xuICAgIGV4cGVjdChwYXJ0aWFsSHR0cExvZy5odHRwPy51cmwpLnRvQmVVbmRlZmluZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2RldmUgYWNlaXRhciBjYW1wb3MgZGUgdXN1w6FyaW8gcGFyY2lhaXMnLCAoKSA9PiB7XG4gICAgY29uc3QgcGFydGlhbFVzZXJMb2c6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgIHNldmVyaXR5OiAnSU5GTycsXG4gICAgICBtZXNzYWdlOiAnUGFydGlhbCB1c2VyJyxcbiAgICAgIHNlcnZpY2VOYW1lOiAndGVzdCcsXG4gICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgdXNlcjoge1xuICAgICAgICB1aWQ6ICd1c2VyLTEyMycsXG4gICAgICAgIC8vIG91dHJvcyBjYW1wb3Mgb3BjaW9uYWlzIG9taXRpZG9zXG4gICAgICB9LFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgfTtcblxuICAgIGV4cGVjdChwYXJ0aWFsVXNlckxvZy51c2VyPy51aWQpLnRvQmUoJ3VzZXItMTIzJyk7XG4gICAgZXhwZWN0KHBhcnRpYWxVc2VyTG9nLnVzZXI/LmVtYWlsKS50b0JlVW5kZWZpbmVkKCk7XG4gIH0pO1xuXG4gIGl0KCdkZXZlIGFjZWl0YXIgY2FtcG9zIGRlIGV4ZWN1w6fDo28gcGFyY2lhaXMnLCAoKSA9PiB7XG4gICAgY29uc3QgcGFydGlhbEV4ZWNMb2c6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgIHNldmVyaXR5OiAnREVCVUcnLFxuICAgICAgbWVzc2FnZTogJ1BhcnRpYWwgZXhlY3V0aW9uJyxcbiAgICAgIHNlcnZpY2VOYW1lOiAndGVzdCcsXG4gICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgIHJlcXVlc3RJZDogJ3JlcS0xMjMnLFxuICAgICAgICBjb250cm9sbGVyOiAnVGVzdENvbnRyb2xsZXInLFxuICAgICAgICAvLyBvdXRyb3MgY2FtcG9zIG9wY2lvbmFpcyBvbWl0aWRvc1xuICAgICAgfSxcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG5cbiAgICBleHBlY3QocGFydGlhbEV4ZWNMb2cuZXhlY3V0aW9uPy5yZXF1ZXN0SWQpLnRvQmUoJ3JlcS0xMjMnKTtcbiAgICBleHBlY3QocGFydGlhbEV4ZWNMb2cuZXhlY3V0aW9uPy5jb250cm9sbGVyKS50b0JlKCdUZXN0Q29udHJvbGxlcicpO1xuICAgIGV4cGVjdChwYXJ0aWFsRXhlY0xvZy5leGVjdXRpb24/LmF3c1JlcXVlc3RJZCkudG9CZVVuZGVmaW5lZCgpO1xuICB9KTtcblxuICBpdCgnZGV2ZSBhY2VpdGFyIHBlcmZvcm1hbmNlIGNvbSBhcGVuYXMgZHVyYXRpb25NcycsICgpID0+IHtcbiAgICBjb25zdCBkdXJhdGlvbk9ubHlMb2c6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgIHNldmVyaXR5OiAnSU5GTycsXG4gICAgICBtZXNzYWdlOiAnRHVyYXRpb24gb25seScsXG4gICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3QnLFxuICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgIGR1cmF0aW9uTXM6IDUwMCxcbiAgICAgIH0sXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KGR1cmF0aW9uT25seUxvZy5wZXJmb3JtYW5jZT8uZHVyYXRpb25NcykudG9CZSg1MDApO1xuICAgIGV4cGVjdChkdXJhdGlvbk9ubHlMb2cucGVyZm9ybWFuY2U/LnN1Y2Nlc3MpLnRvQmVVbmRlZmluZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2RldmUgYWNlaXRhciBwZXJmb3JtYW5jZSBjb20gYXBlbmFzIHN1Y2Nlc3MnLCAoKSA9PiB7XG4gICAgY29uc3Qgc3VjY2Vzc09ubHlMb2c6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgIHNldmVyaXR5OiAnSU5GTycsXG4gICAgICBtZXNzYWdlOiAnU3VjY2VzcyBvbmx5JyxcbiAgICAgIHNlcnZpY2VOYW1lOiAndGVzdCcsXG4gICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgcGVyZm9ybWFuY2U6IHtcbiAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KHN1Y2Nlc3NPbmx5TG9nLnBlcmZvcm1hbmNlPy5zdWNjZXNzKS50b0JlKHRydWUpO1xuICAgIGV4cGVjdChzdWNjZXNzT25seUxvZy5wZXJmb3JtYW5jZT8uZHVyYXRpb25NcykudG9CZVVuZGVmaW5lZCgpO1xuICB9KTtcblxuICBpdCgnZGV2ZSBhY2VpdGFyIGNvbnRleHRvIGNvbSBlc3RydXR1cmFzIGFuaW5oYWRhcyBjb21wbGV4YXMnLCAoKSA9PiB7XG4gICAgY29uc3QgY29tcGxleENvbnRleHRMb2c6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgIHNldmVyaXR5OiAnRVJST1InLFxuICAgICAgbWVzc2FnZTogJ0NvbXBsZXggY29udGV4dCcsXG4gICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3QnLFxuICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgbGV2ZWwxOiB7XG4gICAgICAgICAgbGV2ZWwyOiB7XG4gICAgICAgICAgICBsZXZlbDM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6ICdkZWVwJyxcbiAgICAgICAgICAgICAgYXJyYXk6IFsxLCAyLCAzXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2ltcGxlVmFsdWU6ICd0ZXN0JyxcbiAgICAgICAgbnVtZXJpY1ZhbHVlOiAxMjMsXG4gICAgICAgIGJvb2xlYW5WYWx1ZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgZXhwZWN0KGNvbXBsZXhDb250ZXh0TG9nLmNvbnRleHQ/LmxldmVsMSkudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoY29tcGxleENvbnRleHRMb2cuY29udGV4dD8uc2ltcGxlVmFsdWUpLnRvQmUoJ3Rlc3QnKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ1R5cGVzIC0gSVN0YW5kYXJkTG9nZ2VyJywgKCkgPT4ge1xuICBpdCgnZGV2ZSBkZWZpbmlyIGludGVyZmFjZSBjb20gb3MgNCBtw6l0b2RvcyBkZSBsb2cnLCAoKSA9PiB7XG4gICAgLy8gRXN0ZSDDqSB1bSB0ZXN0ZSBkZSB0aXBvLCBzw7MgcGFyYSBnYXJhbnRpciBxdWUgYSBpbnRlcmZhY2UgZXN0w6EgY29ycmV0YVxuICAgIGNvbnN0IG1vY2tMb2dnZXI6IElTdGFuZGFyZExvZ2dlciA9IHtcbiAgICAgIGxvZ0Vycm9yOiBhc3luYyAoKSA9PiB7fSxcbiAgICAgIGxvZ0luZm86IGFzeW5jICgpID0+IHt9LFxuICAgICAgbG9nV2FybjogYXN5bmMgKCkgPT4ge30sXG4gICAgICBsb2dEZWJ1ZzogYXN5bmMgKCkgPT4ge30sXG4gICAgfTtcblxuICAgIGV4cGVjdChtb2NrTG9nZ2VyLmxvZ0Vycm9yKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChtb2NrTG9nZ2VyLmxvZ0luZm8pLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KG1vY2tMb2dnZXIubG9nV2FybikudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QobW9ja0xvZ2dlci5sb2dEZWJ1ZykudG9CZURlZmluZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2RldmUgYWNlaXRhciBkYWRvcyBzZW0gc2V2ZXJpdHkgZSB0aW1lc3RhbXAgbm9zIG3DqXRvZG9zJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vY2tMb2dnZXI6IElTdGFuZGFyZExvZ2dlciA9IHtcbiAgICAgIGxvZ0Vycm9yOiBhc3luYyAoZGF0YSkgPT4ge1xuICAgICAgICBleHBlY3QoZGF0YS5tZXNzYWdlKS50b0JlKCdFcnJvciBtZXNzYWdlJyk7XG4gICAgICAgIGV4cGVjdChkYXRhLnNlcnZpY2VOYW1lKS50b0JlKCd0ZXN0Jyk7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBzZXZlcml0eSBuw6NvIGRldmUgZXhpc3RpclxuICAgICAgICBleHBlY3QoZGF0YS5zZXZlcml0eSkudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGltZXN0YW1wIG7Do28gZGV2ZSBleGlzdGlyXG4gICAgICAgIGV4cGVjdChkYXRhLnRpbWVzdGFtcCkudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgfSxcbiAgICAgIGxvZ0luZm86IGFzeW5jICgpID0+IHt9LFxuICAgICAgbG9nV2FybjogYXN5bmMgKCkgPT4ge30sXG4gICAgICBsb2dEZWJ1ZzogYXN5bmMgKCkgPT4ge30sXG4gICAgfTtcblxuICAgIGF3YWl0IG1vY2tMb2dnZXIubG9nRXJyb3Ioe1xuICAgICAgbWVzc2FnZTogJ0Vycm9yIG1lc3NhZ2UnLFxuICAgICAgc2VydmljZU5hbWU6ICd0ZXN0JyxcbiAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdUeXBlcyAtIFZhbGlkYcOnw6NvIGRlIGNhbXBvcycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3NldmVyaXR5JywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGFjZWl0YXIgYXBlbmFzIHZhbG9yZXMgdsOhbGlkb3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZFNldmVyaXRpZXMgPSBbJ0VSUk9SJywgJ1dBUk4nLCAnSU5GTycsICdERUJVRyddIGFzIGNvbnN0O1xuXG4gICAgICB2YWxpZFNldmVyaXRpZXMuZm9yRWFjaCgoc2V2ZXJpdHkpID0+IHtcbiAgICAgICAgY29uc3QgbG9nOiBTdGFuZGFyZExvZ0RhdGEgPSB7XG4gICAgICAgICAgc2V2ZXJpdHksXG4gICAgICAgICAgbWVzc2FnZTogJ3Rlc3QnLFxuICAgICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdCcsXG4gICAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgfTtcbiAgICAgICAgZXhwZWN0KGxvZy5zZXZlcml0eSkudG9CZShzZXZlcml0eSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2Vudmlyb25tZW50JywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGFjZWl0YXIgYW1iaWVudGVzIGNvbXVucycsICgpID0+IHtcbiAgICAgIGNvbnN0IGVudmlyb25tZW50cyA9IFsnZGV2ZWxvcG1lbnQnLCAnc3RhZ2luZycsICdwcm9kdWN0aW9uJywgJ3Rlc3QnXTtcblxuICAgICAgZW52aXJvbm1lbnRzLmZvckVhY2goKGVudikgPT4ge1xuICAgICAgICBjb25zdCBsb2c6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgICAgICBzZXZlcml0eTogJ0lORk8nLFxuICAgICAgICAgIG1lc3NhZ2U6ICd0ZXN0JyxcbiAgICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3QnLFxuICAgICAgICAgIGVudmlyb25tZW50OiBlbnYsXG4gICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIH07XG4gICAgICAgIGV4cGVjdChsb2cuZW52aXJvbm1lbnQpLnRvQmUoZW52KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndGltZXN0YW1wJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGFjZWl0YXIgZm9ybWF0byBJU08gODYwMScsICgpID0+IHtcbiAgICAgIGNvbnN0IGlzb1RpbWVzdGFtcCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgIGNvbnN0IGxvZzogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgICBzZXZlcml0eTogJ0lORk8nLFxuICAgICAgICBtZXNzYWdlOiAndGVzdCcsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdCcsXG4gICAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICAgIHRpbWVzdGFtcDogaXNvVGltZXN0YW1wLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KGxvZy50aW1lc3RhbXApLnRvTWF0Y2goXG4gICAgICAgIC9eXFxkezR9LVxcZHsyfS1cXGR7Mn1UXFxkezJ9OlxcZHsyfTpcXGR7Mn1cXC5cXGR7M31aJC9cbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdodHRwLnN0YXR1c0NvZGUnLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgYWNlaXRhciBjw7NkaWdvcyBIVFRQIHbDoWxpZG9zJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdHVzQ29kZXMgPSBbMjAwLCAyMDEsIDQwMCwgNDAxLCA0MDQsIDUwMCwgNTAyLCA1MDNdO1xuXG4gICAgICBzdGF0dXNDb2Rlcy5mb3JFYWNoKChzdGF0dXNDb2RlKSA9PiB7XG4gICAgICAgIGNvbnN0IGxvZzogU3RhbmRhcmRMb2dEYXRhID0ge1xuICAgICAgICAgIHNldmVyaXR5OiAnSU5GTycsXG4gICAgICAgICAgbWVzc2FnZTogJ3Rlc3QnLFxuICAgICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdCcsXG4gICAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgICAgICBodHRwOiB7IHN0YXR1c0NvZGUgfSxcbiAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgfTtcbiAgICAgICAgZXhwZWN0KGxvZy5odHRwPy5zdGF0dXNDb2RlKS50b0JlKHN0YXR1c0NvZGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwZXJmb3JtYW5jZS5kdXJhdGlvbk1zJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGFjZWl0YXIgdmFsb3JlcyBudW3DqXJpY29zIHBvc2l0aXZvcycsICgpID0+IHtcbiAgICAgIGNvbnN0IGR1cmF0aW9ucyA9IFswLCAxMDAsIDUwMCwgMTAwMCwgNTAwMCwgMTAwMDBdO1xuXG4gICAgICBkdXJhdGlvbnMuZm9yRWFjaCgoZHVyYXRpb25NcykgPT4ge1xuICAgICAgICBjb25zdCBsb2c6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgICAgICBzZXZlcml0eTogJ0lORk8nLFxuICAgICAgICAgIG1lc3NhZ2U6ICd0ZXN0JyxcbiAgICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3QnLFxuICAgICAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICAgICAgcGVyZm9ybWFuY2U6IHsgZHVyYXRpb25NcyB9LFxuICAgICAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICB9O1xuICAgICAgICBleHBlY3QobG9nLnBlcmZvcm1hbmNlPy5kdXJhdGlvbk1zKS50b0JlKGR1cmF0aW9uTXMpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdwZXJmb3JtYW5jZS5zdWNjZXNzJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGFjZWl0YXIgdmFsb3JlcyBib29sZWFub3MnLCAoKSA9PiB7XG4gICAgICBbdHJ1ZSwgZmFsc2VdLmZvckVhY2goKHN1Y2Nlc3MpID0+IHtcbiAgICAgICAgY29uc3QgbG9nOiBTdGFuZGFyZExvZ0RhdGEgPSB7XG4gICAgICAgICAgc2V2ZXJpdHk6ICdJTkZPJyxcbiAgICAgICAgICBtZXNzYWdlOiAndGVzdCcsXG4gICAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0JyxcbiAgICAgICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgICAgIHBlcmZvcm1hbmNlOiB7IHN1Y2Nlc3MgfSxcbiAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgfTtcbiAgICAgICAgZXhwZWN0KGxvZy5wZXJmb3JtYW5jZT8uc3VjY2VzcykudG9CZShzdWNjZXNzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -92,16 +92,14 @@ const api_logs_1 = require("@opentelemetry/api-logs");
|
|
|
92
92
|
serviceName: 'test-service',
|
|
93
93
|
environment: 'production',
|
|
94
94
|
user: {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
applicationUid: 'app-789',
|
|
95
|
+
uid: 'user-123',
|
|
96
|
+
email: 'user@example.com',
|
|
98
97
|
},
|
|
99
98
|
};
|
|
100
99
|
yield standardLogger.logError(errorData);
|
|
101
100
|
const emittedLog = mockLogger.emit.mock.calls[0][0];
|
|
102
|
-
(0, vitest_1.expect)(emittedLog.attributes['
|
|
103
|
-
(0, vitest_1.expect)(emittedLog.attributes['
|
|
104
|
-
(0, vitest_1.expect)(emittedLog.attributes['application.uid']).toBe('app-789');
|
|
101
|
+
(0, vitest_1.expect)(emittedLog.attributes['user.uid']).toBe('user-123');
|
|
102
|
+
(0, vitest_1.expect)(emittedLog.attributes['user.email']).toBe('user@example.com');
|
|
105
103
|
}));
|
|
106
104
|
(0, vitest_1.it)('deve incluir informações de execução quando fornecido', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
107
105
|
const errorData = {
|
|
@@ -184,16 +182,14 @@ const api_logs_1 = require("@opentelemetry/api-logs");
|
|
|
184
182
|
serviceName: 'test-service',
|
|
185
183
|
environment: 'production',
|
|
186
184
|
user: {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
applicationUid: undefined,
|
|
185
|
+
uid: 'user-123',
|
|
186
|
+
email: undefined,
|
|
190
187
|
},
|
|
191
188
|
};
|
|
192
189
|
yield standardLogger.logError(errorData);
|
|
193
190
|
const emittedLog = mockLogger.emit.mock.calls[0][0];
|
|
194
|
-
(0, vitest_1.expect)(emittedLog.attributes['
|
|
195
|
-
(0, vitest_1.expect)(emittedLog.attributes['
|
|
196
|
-
(0, vitest_1.expect)(emittedLog.attributes['application.uid']).toBeUndefined();
|
|
191
|
+
(0, vitest_1.expect)(emittedLog.attributes['user.uid']).toBe('user-123');
|
|
192
|
+
(0, vitest_1.expect)(emittedLog.attributes['user.email']).toBeUndefined();
|
|
197
193
|
}));
|
|
198
194
|
});
|
|
199
195
|
(0, vitest_1.describe)('logInfo', () => {
|
|
@@ -270,9 +266,8 @@ const api_logs_1 = require("@opentelemetry/api-logs");
|
|
|
270
266
|
statusCode: 200,
|
|
271
267
|
},
|
|
272
268
|
user: {
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
applicationUid: 'app-123',
|
|
269
|
+
uid: 'user-abc',
|
|
270
|
+
email: 'user@example.com',
|
|
276
271
|
},
|
|
277
272
|
execution: {
|
|
278
273
|
requestId: 'req-001',
|
|
@@ -298,7 +293,7 @@ const api_logs_1 = require("@opentelemetry/api-logs");
|
|
|
298
293
|
(0, vitest_1.expect)(attrs['deployment.environment.name']).toBe('production');
|
|
299
294
|
(0, vitest_1.expect)(attrs['error.type']).toBe('Error');
|
|
300
295
|
(0, vitest_1.expect)(attrs['http.method']).toBe('GET');
|
|
301
|
-
(0, vitest_1.expect)(attrs['
|
|
296
|
+
(0, vitest_1.expect)(attrs['user.uid']).toBe('user-abc');
|
|
302
297
|
(0, vitest_1.expect)(attrs['request.id']).toBe('req-001');
|
|
303
298
|
(0, vitest_1.expect)(attrs['duration.ms']).toBe(300);
|
|
304
299
|
(0, vitest_1.expect)(attrs['context']).toBe(JSON.stringify({ custom: 'data' }));
|
|
@@ -347,4 +342,4 @@ const api_logs_1 = require("@opentelemetry/api-logs");
|
|
|
347
342
|
});
|
|
348
343
|
});
|
|
349
344
|
});
|
|
350
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9fX3Rlc3RzX18vbG9nZ2VyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBOEQ7QUFDOUQsc0NBQTJDO0FBQzNDLHNEQUF5RDtBQUV6RCxJQUFBLGlCQUFRLEVBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLElBQUksVUFBZSxDQUFDO0lBQ3BCLElBQUksVUFBZSxDQUFDO0lBQ3BCLElBQUksY0FBOEIsQ0FBQztJQUVuQyxJQUFBLG1CQUFVLEVBQUMsR0FBRyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDO1FBQzFDLFVBQVUsR0FBRztZQUNYLElBQUksRUFBRSxXQUFFLENBQUMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztRQUNGLFVBQVUsR0FBRztZQUNYLFNBQVMsRUFBRSxXQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUNqQyxTQUFTLEVBQUUsV0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDakMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7d0JBQ2xCLE9BQU8sRUFBRSxlQUFlO3dCQUN4QixNQUFNLEVBQUUsY0FBYztxQkFDdkIsQ0FBQztpQkFDSCxDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUM7UUFDRixjQUFjLEdBQUcsSUFBSSx1QkFBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsaUJBQVEsRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1FBQ3hCLElBQUEsV0FBRSxFQUFDLG9DQUFvQyxFQUFFLEdBQVMsRUFBRTtZQUNsRCxNQUFNLFNBQVMsR0FBRztnQkFDaEIsT0FBTyxFQUFFLG9CQUFvQjtnQkFDN0IsV0FBVyxFQUFFLGNBQWM7Z0JB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QUFFLE1BQU07YUFDcEIsQ0FBQztZQUVGLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFOUIsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQUEsZUFBTSxFQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFBLFdBQUUsRUFBQyxpRUFBaUUsRUFBRSxHQUFHLEVBQUU7WUFDekUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQzlCLE1BQU0sYUFBYSxHQUFHLElBQUksdUJBQWMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDakUsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsV0FBVyxFQUFFLEVBQUU7Z0JBQ2YsV0FBVyxFQUFFLE1BQU07YUFDcEIsQ0FBQztZQUVGLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFL0IsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQUEsZUFBTSxFQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgaXQsIGV4cGVjdCwgdmksIGJlZm9yZUVhY2ggfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHsgU3RhbmRhcmRMb2dnZXIgfSBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgU2V2ZXJpdHlOdW1iZXIgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGktbG9ncyc7XG5cbmRlc2NyaWJlKCdTdGFuZGFyZExvZ2dlcicsICgpID0+IHtcbiAgbGV0IG1vY2tMb2dnZXI6IGFueTtcbiAgbGV0IG1vY2tUcmFjZXI6IGFueTtcbiAgbGV0IHN0YW5kYXJkTG9nZ2VyOiBTdGFuZGFyZExvZ2dlcjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgPSAndGVzdC1zZXJ2aWNlJztcbiAgICBtb2NrTG9nZ2VyID0ge1xuICAgICAgZW1pdDogdmkuZm4oKSxcbiAgICB9O1xuICAgIG1vY2tUcmFjZXIgPSB7XG4gICAgICBnZXRUcmFjZXI6IHZpLmZuKCkubW9ja1JldHVyblZhbHVlKHtcbiAgICAgICAgc3RhcnRTcGFuOiB2aS5mbigpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICAgICAgc3BhbkNvbnRleHQ6ICgpID0+ICh7XG4gICAgICAgICAgICB0cmFjZUlkOiAndGVzdC10cmFjZS1pZCcsXG4gICAgICAgICAgICBzcGFuSWQ6ICd0ZXN0LXNwYW4taWQnLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgIH07XG4gICAgc3RhbmRhcmRMb2dnZXIgPSBuZXcgU3RhbmRhcmRMb2dnZXIobW9ja0xvZ2dlciwgbW9ja1RyYWNlcik7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dFcnJvcicsICgpID0+IHtcbiAgICBpdCgnZGV2ZSBlbWl0aXIgbG9nIGNvbSBzZXZlcml0eSBFUlJPUicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1Rlc3QgZXJyb3IgbWVzc2FnZScsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGV4cGVjdChtb2NrTG9nZ2VyLmVtaXQpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLnNldmVyaXR5TnVtYmVyKS50b0JlKFNldmVyaXR5TnVtYmVyLkVSUk9SKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLnNldmVyaXR5VGV4dCkudG9CZSgnRVJST1InKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmJvZHkpLnRvQmUoJ1Rlc3QgZXJyb3IgbWVzc2FnZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBpbmZvcm1hw6fDtWVzIGRvIGVycm8gcXVhbmRvIGZvcm5lY2lkbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKCdDdXN0b20gZXJyb3InKTtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ0Vycm9yIG9jY3VycmVkJyxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2Vycm9yLnR5cGUnXSkudG9CZSgnRXJyb3InKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2Vycm9yLm1lc3NhZ2UnXSkudG9CZSgnQ3VzdG9tIGVycm9yJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydlcnJvci5zdGFjayddKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBjb250ZXh0byBIVFRQIHF1YW5kbyBmb3JuZWNpZG8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdIVFRQIGVycm9yJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBodHRwOiB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgdXJsOiAnL2FwaS90ZXN0JyxcbiAgICAgICAgICBlbmRwb2ludDogJy9hcGkvdGVzdCcsXG4gICAgICAgICAgc3RhdHVzQ29kZTogNTAwLFxuICAgICAgICAgIGhlYWRlcnM6IHsgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgICAgIGJvZHk6IHsgdGVzdDogJ2RhdGEnIH0sXG4gICAgICAgICAgcGFyYW1zOiB7IGlkOiAnMTIzJyB9LFxuICAgICAgICAgIHF1ZXJ5OiB7IGZpbHRlcjogJ2FjdGl2ZScgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAubWV0aG9kJ10pLnRvQmUoJ1BPU1QnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAudXJsJ10pLnRvQmUoJy9hcGkvdGVzdCcpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snaHR0cC5lbmRwb2ludCddKS50b0JlKCcvYXBpL3Rlc3QnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAuc3RhdHVzX2NvZGUnXSkudG9CZSg1MDApO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snaHR0cC5oZWFkZXJzJ10pLnRvQmUoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHsgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuICAgICAgKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAuYm9keSddKS50b0JlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7IHRlc3Q6ICdkYXRhJyB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgaW5mb3JtYcOnw7VlcyBkZSB1c3XDoXJpbyBxdWFuZG8gZm9ybmVjaWRvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnVXNlciBlcnJvcicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgdXNlcjoge1xuICAgICAgICAgIGFjY291bnRVc2VyVWlkOiAndXNlci0xMjMnLFxuICAgICAgICAgIGFjY291bnRVaWQ6ICdhY2NvdW50LTQ1NicsXG4gICAgICAgICAgYXBwbGljYXRpb25VaWQ6ICdhcHAtNzg5JyxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2FjY291bnRVc2VyLnVpZCddKS50b0JlKCd1c2VyLTEyMycpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snYWNjb3VudC51aWQnXSkudG9CZSgnYWNjb3VudC00NTYnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2FwcGxpY2F0aW9uLnVpZCddKS50b0JlKCdhcHAtNzg5Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBpbmNsdWlyIGluZm9ybWHDp8O1ZXMgZGUgZXhlY3XDp8OjbyBxdWFuZG8gZm9ybmVjaWRvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnRXhlY3V0aW9uIGVycm9yJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBleGVjdXRpb246IHtcbiAgICAgICAgICByZXF1ZXN0SWQ6ICdyZXEtMTIzJyxcbiAgICAgICAgICBhd3NSZXF1ZXN0SWQ6ICdhd3MtNDU2JyxcbiAgICAgICAgICBmdW5jdGlvbk5hbWU6ICd0ZXN0RnVuY3Rpb24nLFxuICAgICAgICAgIGludm9jYXRpb25JZDogJ2ludi03ODknLFxuICAgICAgICAgIGNvbnRyb2xsZXI6ICdUZXN0Q29udHJvbGxlcicsXG4gICAgICAgICAgY29udHJvbGxlck1ldGhvZDogJ3Rlc3RNZXRob2QnLFxuICAgICAgICAgIG9yaWdpbjogJ21vYmlsZScsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydyZXF1ZXN0LmlkJ10pLnRvQmUoJ3JlcS0xMjMnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2F3cy5yZXF1ZXN0LmlkJ10pLnRvQmUoJ2F3cy00NTYnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2Z1bmN0aW9uLm5hbWUnXSkudG9CZSgndGVzdEZ1bmN0aW9uJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10pLnRvQmUoJ2ludi03ODknKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2NvbnRyb2xsZXIubmFtZSddKS50b0JlKCdUZXN0Q29udHJvbGxlcicpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snY29udHJvbGxlci5tZXRob2QnXSkudG9CZSgndGVzdE1ldGhvZCcpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snb3JpZ2luJ10pLnRvQmUoJ21vYmlsZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBtw6l0cmljYXMgZGUgcGVyZm9ybWFuY2UgcXVhbmRvIGZvcm5lY2lkbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1BlcmZvcm1hbmNlIGVycm9yJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBwZXJmb3JtYW5jZToge1xuICAgICAgICAgIGR1cmF0aW9uTXM6IDE1MDAsXG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydkdXJhdGlvbi5tcyddKS50b0JlKDE1MDApO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snZXhlY3V0aW9uLnN1Y2Nlc3MnXSkudG9CZShmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBpbmNsdWlyIGNvbnRleHRvIGFkaWNpb25hbCBxdWFuZG8gZm9ybmVjaWRvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnQ29udGV4dCBlcnJvcicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIGFkZGl0aW9uYWxJbmZvOiAnc29tZSBkYXRhJyxcbiAgICAgICAgICBuZXN0ZWQ6IHsgdmFsdWU6IDEyMyB9LFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nRXJyb3IoZXJyb3JEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snY29udGV4dCddKS50b0JlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7IGFkZGl0aW9uYWxJbmZvOiAnc29tZSBkYXRhJywgbmVzdGVkOiB7IHZhbHVlOiAxMjMgfSB9KVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIHVzYXIgc2VydmljZU5hbWUgcGFkcsOjbyBxdWFuZG8gbsOjbyBmb3JuZWNpZG8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdEZWZhdWx0IHNlcnZpY2UgZXJyb3InLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJycsIC8vIEVtcHR5IHN0cmluZyBwYXJhIHRlc3RhciBmYWxsYmFja1xuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nRXJyb3IoZXJyb3JEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snc2VydmljZS5uYW1lJ10pLnRvQmUoJ3Rlc3Qtc2VydmljZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgYWRpY2lvbmFyIHRpbWVzdGFtcCBhdXRvbWF0aWNhbWVudGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdUaW1lc3RhbXAgdGVzdCcsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ3RpbWVzdGFtcCddKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1sndGltZXN0YW1wJ10pLnRvTWF0Y2goXG4gICAgICAgIC9eXFxkezR9LVxcZHsyfS1cXGR7Mn1UXFxkezJ9OlxcZHsyfTpcXGR7Mn1cXC5cXGR7M31aJC9cbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBmaWx0cmFyIHZhbG9yZXMgdW5kZWZpbmVkIGUgbnVsbCBkb3MgYXRyaWJ1dG9zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnRmlsdGVyIHRlc3QnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIHVzZXI6IHtcbiAgICAgICAgICBhY2NvdW50VXNlclVpZDogJ3VzZXItMTIzJyxcbiAgICAgICAgICBhY2NvdW50VWlkOiB1bmRlZmluZWQgYXMgYW55LFxuICAgICAgICAgIGFwcGxpY2F0aW9uVWlkOiB1bmRlZmluZWQgYXMgYW55LFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nRXJyb3IoZXJyb3JEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snYWNjb3VudFVzZXIudWlkJ10pLnRvQmUoJ3VzZXItMTIzJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydhY2NvdW50LnVpZCddKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydhcHBsaWNhdGlvbi51aWQnXSkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbG9nSW5mbycsICgpID0+IHtcbiAgICBpdCgnZGV2ZSBlbWl0aXIgbG9nIGNvbSBzZXZlcml0eSBJTkZPJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5mb0RhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdJbmZvIG1lc3NhZ2UnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dJbmZvKGluZm9EYXRhKTtcblxuICAgICAgZXhwZWN0KG1vY2tMb2dnZXIuZW1pdCkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuc2V2ZXJpdHlOdW1iZXIpLnRvQmUoU2V2ZXJpdHlOdW1iZXIuSU5GTyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eVRleHQpLnRvQmUoJ0lORk8nKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmJvZHkpLnRvQmUoJ0luZm8gbWVzc2FnZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBkYWRvcyBkZSBwZXJmb3JtYW5jZSBlbSBsb2cgZGUgc3VjZXNzbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGluZm9EYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnUmVxdWVzdCBjb21wbGV0ZWQnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgICAgZHVyYXRpb25NczogMjUwLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dJbmZvKGluZm9EYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snZHVyYXRpb24ubXMnXSkudG9CZSgyNTApO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snZXhlY3V0aW9uLnN1Y2Nlc3MnXSkudG9CZSh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ1dhcm4nLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgZW1pdGlyIGxvZyBjb20gc2V2ZXJpdHkgV0FSTicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHdhcm5EYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnV2FybmluZyBtZXNzYWdlJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nV2Fybih3YXJuRGF0YSk7XG5cbiAgICAgIGV4cGVjdChtb2NrTG9nZ2VyLmVtaXQpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLnNldmVyaXR5TnVtYmVyKS50b0JlKFNldmVyaXR5TnVtYmVyLldBUk4pO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuc2V2ZXJpdHlUZXh0KS50b0JlKCdXQVJOJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5ib2R5KS50b0JlKCdXYXJuaW5nIG1lc3NhZ2UnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ0RlYnVnJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGVtaXRpciBsb2cgY29tIHNldmVyaXR5IERFQlVHJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZGVidWdEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnRGVidWcgbWVzc2FnZScsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdkZXZlbG9wbWVudCcsXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dEZWJ1ZyhkZWJ1Z0RhdGEpO1xuXG4gICAgICBleHBlY3QobW9ja0xvZ2dlci5lbWl0KS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eU51bWJlcikudG9CZShTZXZlcml0eU51bWJlci5ERUJVRyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eVRleHQpLnRvQmUoJ0RFQlVHJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5ib2R5KS50b0JlKCdEZWJ1ZyBtZXNzYWdlJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdidWlsZEF0dHJpYnV0ZXMnLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgY29uc3RydWlyIGF0cmlidXRvcyBjb21wbGV0b3MgY29tIHRvZG9zIG9zIGNhbXBvcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGZ1bGxEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnQ29tcGxldGUgbG9nJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdjb21wbGV0ZS1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgZXJyb3I6IG5ldyBFcnJvcignVGVzdCBlcnJvcicpLFxuICAgICAgICBodHRwOiB7XG4gICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICB1cmw6ICcvYXBpL3VzZXJzJyxcbiAgICAgICAgICBlbmRwb2ludDogJy9hcGkvdXNlcnMnLFxuICAgICAgICAgIHN0YXR1c0NvZGU6IDIwMCxcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcjoge1xuICAgICAgICAgIGFjY291bnRVc2VyVWlkOiAndXNlci1hYmMnLFxuICAgICAgICAgIGFjY291bnRVaWQ6ICdhY2NvdW50LXh5eicsXG4gICAgICAgICAgYXBwbGljYXRpb25VaWQ6ICdhcHAtMTIzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgICAgcmVxdWVzdElkOiAncmVxLTAwMScsXG4gICAgICAgICAgYXdzUmVxdWVzdElkOiAnYXdzLTAwMicsXG4gICAgICAgICAgZnVuY3Rpb25OYW1lOiAnZ2V0VXNlcnMnLFxuICAgICAgICAgIGludm9jYXRpb25JZDogJ2ludi0wMDMnLFxuICAgICAgICAgIGNvbnRyb2xsZXI6ICdVc2VyQ29udHJvbGxlcicsXG4gICAgICAgICAgY29udHJvbGxlck1ldGhvZDogJ2dldEFsbCcsXG4gICAgICAgICAgb3JpZ2luOiAnd2ViJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGVyZm9ybWFuY2U6IHtcbiAgICAgICAgICBkdXJhdGlvbk1zOiAzMDAsXG4gICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIGN1c3RvbTogJ2RhdGEnLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nSW5mbyhmdWxsRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGNvbnN0IGF0dHJzID0gZW1pdHRlZExvZy5hdHRyaWJ1dGVzO1xuXG4gICAgICAvLyBWZXJpZmljYXIgdG9kb3Mgb3MgY2FtcG9zXG4gICAgICBleHBlY3QoYXR0cnNbJ3NlcnZpY2UubmFtZSddKS50b0JlKGZ1bGxEYXRhLnNlcnZpY2VOYW1lKTtcbiAgICAgIGV4cGVjdChhdHRyc1snZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJ10pLnRvQmUoJ3Byb2R1Y3Rpb24nKTtcbiAgICAgIGV4cGVjdChhdHRyc1snZXJyb3IudHlwZSddKS50b0JlKCdFcnJvcicpO1xuICAgICAgZXhwZWN0KGF0dHJzWydodHRwLm1ldGhvZCddKS50b0JlKCdHRVQnKTtcbiAgICAgIGV4cGVjdChhdHRyc1snYWNjb3VudFVzZXIudWlkJ10pLnRvQmUoJ3VzZXItYWJjJyk7XG4gICAgICBleHBlY3QoYXR0cnNbJ3JlcXVlc3QuaWQnXSkudG9CZSgncmVxLTAwMScpO1xuICAgICAgZXhwZWN0KGF0dHJzWydkdXJhdGlvbi5tcyddKS50b0JlKDMwMCk7XG4gICAgICBleHBlY3QoYXR0cnNbJ2NvbnRleHQnXSkudG9CZShKU09OLnN0cmluZ2lmeSh7IGN1c3RvbTogJ2RhdGEnIH0pKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGxpZGFyIGNvbSBjYW1wb3MgSFRUUCBwYXJjaWFpcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHBhcnRpYWxIdHRwRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1BhcnRpYWwgSFRUUCcsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgaHR0cDoge1xuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIGVuZHBvaW50OiAnL2FwaS90ZXN0JyxcbiAgICAgICAgICAvLyB1cmwsIHN0YXR1c0NvZGUsIGhlYWRlcnMsIGV0YyBuw6NvIGZvcm5lY2lkb3NcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0luZm8ocGFydGlhbEh0dHBEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snaHR0cC5tZXRob2QnXSkudG9CZSgnUE9TVCcpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snaHR0cC5lbmRwb2ludCddKS50b0JlKCcvYXBpL3Rlc3QnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAudXJsJ10pLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAuc3RhdHVzX2NvZGUnXSkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnY29uc3RydXRvcicsICgpID0+IHtcbiAgICBpdCgnZGV2ZSBhY2VpdGFyIHNlcnZpY2VOYW1lIHBhZHLDo28gcGVyc29uYWxpemFkbycsICgpID0+IHtcbiAgICAgIGNvbnN0IGN1c3RvbUxvZ2dlciA9IG5ldyBTdGFuZGFyZExvZ2dlcihtb2NrTG9nZ2VyLCBtb2NrVHJhY2VyKTtcbiAgICAgIGNvbnN0IGxvZ0RhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdUZXN0JyxcbiAgICAgICAgc2VydmljZU5hbWU6ICcnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgfTtcblxuICAgICAgY3VzdG9tTG9nZ2VyLmxvZ0luZm8obG9nRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ3NlcnZpY2UubmFtZSddKS50b0JlKCd0ZXN0LXNlcnZpY2UnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIHVzYXIgXCJ1bmtub3duLXNlcnZpY2VcIiBjb21vIHBhZHLDo28gcXVhbmRvIG7Do28gZXNwZWNpZmljYWRvJywgKCkgPT4ge1xuICAgICAgcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FID0gJyc7XG4gICAgICBjb25zdCBkZWZhdWx0TG9nZ2VyID0gbmV3IFN0YW5kYXJkTG9nZ2VyKG1vY2tMb2dnZXIsIG1vY2tUcmFjZXIpO1xuICAgICAgY29uc3QgbG9nRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1Rlc3QnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJycsXG4gICAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICB9O1xuXG4gICAgICBkZWZhdWx0TG9nZ2VyLmxvZ0luZm8obG9nRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ3NlcnZpY2UubmFtZSddKS50b0JlKCd1bmtub3duLXNlcnZpY2UnKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
345
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9fX3Rlc3RzX18vbG9nZ2VyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxtQ0FBOEQ7QUFDOUQsc0NBQTJDO0FBQzNDLHNEQUF5RDtBQUV6RCxJQUFBLGlCQUFRLEVBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLElBQUksVUFBZSxDQUFDO0lBQ3BCLElBQUksVUFBZSxDQUFDO0lBQ3BCLElBQUksY0FBOEIsQ0FBQztJQUVuQyxJQUFBLG1CQUFVLEVBQUMsR0FBRyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDO1FBQzFDLFVBQVUsR0FBRztZQUNYLElBQUksRUFBRSxXQUFFLENBQUMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztRQUNGLFVBQVUsR0FBRztZQUNYLFNBQVMsRUFBRSxXQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUNqQyxTQUFTLEVBQUUsV0FBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDakMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7d0JBQ2xCLE9BQU8sRUFBRSxlQUFlO3dCQUN4QixNQUFNLEVBQUUsY0FBYztxQkFDdkIsQ0FBQztpQkFDSCxDQUFDO2FBQ0gsQ0FBQztTQUNILENBQUM7UUFDRixjQUFjLEdBQUcsSUFBSSx1QkFBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsaUJBQVEsRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1FBQ3hCLElBQUEsV0FBRSxFQUFDLG9DQUFvQyxFQUFFLEdBQVMsRUFBRTtZQUNsRCxNQUFNLFNBQVMsR0FBRztnQkFDaEIsT0FBTyxFQUFFLG9CQUFvQjtnQkFDN0IsV0FBVyxFQUFFLGNBQWM7Z0JB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O1FBQ3JFLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBQSxXQUFFLEVBQUMsaUVBQWlFLEVBQUUsR0FBRyxFQUFFO1lBQ3pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUM5QixNQUFNLGFBQWEsR0FBRyxJQUFJLHVCQUFjLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sT0FBTyxHQUFHO2dCQUNkLE9BQU8sRUFBRSxNQUFNO2dCQUNmLFdBQVcsRUFBRSxFQUFFO2dCQUNmLFdBQVcsRUFBRSxNQUFNO2FBQ3BCLENBQUM7WUFFRixhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRS9CLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRCxJQUFBLGVBQU0sRUFBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVzY3JpYmUsIGl0LCBleHBlY3QsIHZpLCBiZWZvcmVFYWNoIH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7IFN0YW5kYXJkTG9nZ2VyIH0gZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IFNldmVyaXR5TnVtYmVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpLWxvZ3MnO1xuXG5kZXNjcmliZSgnU3RhbmRhcmRMb2dnZXInLCAoKSA9PiB7XG4gIGxldCBtb2NrTG9nZ2VyOiBhbnk7XG4gIGxldCBtb2NrVHJhY2VyOiBhbnk7XG4gIGxldCBzdGFuZGFyZExvZ2dlcjogU3RhbmRhcmRMb2dnZXI7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FID0gJ3Rlc3Qtc2VydmljZSc7XG4gICAgbW9ja0xvZ2dlciA9IHtcbiAgICAgIGVtaXQ6IHZpLmZuKCksXG4gICAgfTtcbiAgICBtb2NrVHJhY2VyID0ge1xuICAgICAgZ2V0VHJhY2VyOiB2aS5mbigpLm1vY2tSZXR1cm5WYWx1ZSh7XG4gICAgICAgIHN0YXJ0U3BhbjogdmkuZm4oKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgICAgICAgIHNwYW5Db250ZXh0OiAoKSA9PiAoe1xuICAgICAgICAgICAgdHJhY2VJZDogJ3Rlc3QtdHJhY2UtaWQnLFxuICAgICAgICAgICAgc3BhbklkOiAndGVzdC1zcGFuLWlkJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICB9O1xuICAgIHN0YW5kYXJkTG9nZ2VyID0gbmV3IFN0YW5kYXJkTG9nZ2VyKG1vY2tMb2dnZXIsIG1vY2tUcmFjZXIpO1xuICB9KTtcblxuICBkZXNjcmliZSgnbG9nRXJyb3InLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgZW1pdGlyIGxvZyBjb20gc2V2ZXJpdHkgRVJST1InLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdUZXN0IGVycm9yIG1lc3NhZ2UnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBleHBlY3QobW9ja0xvZ2dlci5lbWl0KS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eU51bWJlcikudG9CZShTZXZlcml0eU51bWJlci5FUlJPUik7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eVRleHQpLnRvQmUoJ0VSUk9SJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5ib2R5KS50b0JlKCdUZXN0IGVycm9yIG1lc3NhZ2UnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgaW5mb3JtYcOnw7VlcyBkbyBlcnJvIHF1YW5kbyBmb3JuZWNpZG8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignQ3VzdG9tIGVycm9yJyk7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdFcnJvciBvY2N1cnJlZCcsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydlcnJvci50eXBlJ10pLnRvQmUoJ0Vycm9yJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydlcnJvci5tZXNzYWdlJ10pLnRvQmUoJ0N1c3RvbSBlcnJvcicpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snZXJyb3Iuc3RhY2snXSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgY29udGV4dG8gSFRUUCBxdWFuZG8gZm9ybmVjaWRvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnSFRUUCBlcnJvcicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgaHR0cDoge1xuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIHVybDogJy9hcGkvdGVzdCcsXG4gICAgICAgICAgZW5kcG9pbnQ6ICcvYXBpL3Rlc3QnLFxuICAgICAgICAgIHN0YXR1c0NvZGU6IDUwMCxcbiAgICAgICAgICBoZWFkZXJzOiB7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgICAgICBib2R5OiB7IHRlc3Q6ICdkYXRhJyB9LFxuICAgICAgICAgIHBhcmFtczogeyBpZDogJzEyMycgfSxcbiAgICAgICAgICBxdWVyeTogeyBmaWx0ZXI6ICdhY3RpdmUnIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLm1ldGhvZCddKS50b0JlKCdQT1NUJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLnVybCddKS50b0JlKCcvYXBpL3Rlc3QnKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAuZW5kcG9pbnQnXSkudG9CZSgnL2FwaS90ZXN0Jyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLnN0YXR1c19jb2RlJ10pLnRvQmUoNTAwKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2h0dHAuaGVhZGVycyddKS50b0JlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSlcbiAgICAgICk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLmJvZHknXSkudG9CZShcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyB0ZXN0OiAnZGF0YScgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBpbmNsdWlyIGluZm9ybWHDp8O1ZXMgZGUgdXN1w6FyaW8gcXVhbmRvIGZvcm5lY2lkbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1VzZXIgZXJyb3InLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIHVzZXI6IHtcbiAgICAgICAgICB1aWQ6ICd1c2VyLTEyMycsXG4gICAgICAgICAgZW1haWw6ICd1c2VyQGV4YW1wbGUuY29tJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ3VzZXIudWlkJ10pLnRvQmUoJ3VzZXItMTIzJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWyd1c2VyLmVtYWlsJ10pLnRvQmUoJ3VzZXJAZXhhbXBsZS5jb20nKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgaW5mb3JtYcOnw7VlcyBkZSBleGVjdcOnw6NvIHF1YW5kbyBmb3JuZWNpZG8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdFeGVjdXRpb24gZXJyb3InLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGV4ZWN1dGlvbjoge1xuICAgICAgICAgIHJlcXVlc3RJZDogJ3JlcS0xMjMnLFxuICAgICAgICAgIGF3c1JlcXVlc3RJZDogJ2F3cy00NTYnLFxuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogJ3Rlc3RGdW5jdGlvbicsXG4gICAgICAgICAgaW52b2NhdGlvbklkOiAnaW52LTc4OScsXG4gICAgICAgICAgY29udHJvbGxlcjogJ1Rlc3RDb250cm9sbGVyJyxcbiAgICAgICAgICBjb250cm9sbGVyTWV0aG9kOiAndGVzdE1ldGhvZCcsXG4gICAgICAgICAgb3JpZ2luOiAnbW9iaWxlJyxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ3JlcXVlc3QuaWQnXSkudG9CZSgncmVxLTEyMycpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snYXdzLnJlcXVlc3QuaWQnXSkudG9CZSgnYXdzLTQ1NicpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snZnVuY3Rpb24ubmFtZSddKS50b0JlKCd0ZXN0RnVuY3Rpb24nKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2Z1bmN0aW9uLmludm9jYXRpb25faWQnXSkudG9CZSgnaW52LTc4OScpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snY29udHJvbGxlci5uYW1lJ10pLnRvQmUoJ1Rlc3RDb250cm9sbGVyJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydjb250cm9sbGVyLm1ldGhvZCddKS50b0JlKCd0ZXN0TWV0aG9kJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydvcmlnaW4nXSkudG9CZSgnbW9iaWxlJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBpbmNsdWlyIG3DqXRyaWNhcyBkZSBwZXJmb3JtYW5jZSBxdWFuZG8gZm9ybmVjaWRvJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3JEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnUGVyZm9ybWFuY2UgZXJyb3InLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgICAgZHVyYXRpb25NczogMTUwMCxcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2R1cmF0aW9uLm1zJ10pLnRvQmUoMTUwMCk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydleGVjdXRpb24uc3VjY2VzcyddKS50b0JlKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgY29udGV4dG8gYWRpY2lvbmFsIHF1YW5kbyBmb3JuZWNpZG8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdDb250ZXh0IGVycm9yJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgYWRkaXRpb25hbEluZm86ICdzb21lIGRhdGEnLFxuICAgICAgICAgIG5lc3RlZDogeyB2YWx1ZTogMTIzIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydjb250ZXh0J10pLnRvQmUoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHsgYWRkaXRpb25hbEluZm86ICdzb21lIGRhdGEnLCBuZXN0ZWQ6IHsgdmFsdWU6IDEyMyB9IH0pXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgdXNhciBzZXJ2aWNlTmFtZSBwYWRyw6NvIHF1YW5kbyBuw6NvIGZvcm5lY2lkbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ0RlZmF1bHQgc2VydmljZSBlcnJvcicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAnJywgLy8gRW1wdHkgc3RyaW5nIHBhcmEgdGVzdGFyIGZhbGxiYWNrXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICB9O1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcihlcnJvckRhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydzZXJ2aWNlLm5hbWUnXSkudG9CZSgndGVzdC1zZXJ2aWNlJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBhZGljaW9uYXIgdGltZXN0YW1wIGF1dG9tYXRpY2FtZW50ZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGVycm9yRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1RpbWVzdGFtcCB0ZXN0JyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nRXJyb3IoZXJyb3JEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1sndGltZXN0YW1wJ10pLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWyd0aW1lc3RhbXAnXSkudG9NYXRjaChcbiAgICAgICAgL15cXGR7NH0tXFxkezJ9LVxcZHsyfVRcXGR7Mn06XFxkezJ9OlxcZHsyfVxcLlxcZHszfVokL1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGZpbHRyYXIgdmFsb3JlcyB1bmRlZmluZWQgZSBudWxsIGRvcyBhdHJpYnV0b3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvckRhdGEgPSB7XG4gICAgICAgIG1lc3NhZ2U6ICdGaWx0ZXIgdGVzdCcsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgdXNlcjoge1xuICAgICAgICAgIHVpZDogJ3VzZXItMTIzJyxcbiAgICAgICAgICBlbWFpbDogdW5kZWZpbmVkIGFzIGFueSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKGVycm9yRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ3VzZXIudWlkJ10pLnRvQmUoJ3VzZXItMTIzJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWyd1c2VyLmVtYWlsJ10pLnRvQmVVbmRlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ0luZm8nLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgZW1pdGlyIGxvZyBjb20gc2V2ZXJpdHkgSU5GTycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGluZm9EYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnSW5mbyBtZXNzYWdlJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nSW5mbyhpbmZvRGF0YSk7XG5cbiAgICAgIGV4cGVjdChtb2NrTG9nZ2VyLmVtaXQpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLnNldmVyaXR5TnVtYmVyKS50b0JlKFNldmVyaXR5TnVtYmVyLklORk8pO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuc2V2ZXJpdHlUZXh0KS50b0JlKCdJTkZPJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5ib2R5KS50b0JlKCdJbmZvIG1lc3NhZ2UnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgZGFkb3MgZGUgcGVyZm9ybWFuY2UgZW0gbG9nIGRlIHN1Y2Vzc28nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbmZvRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1JlcXVlc3QgY29tcGxldGVkJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBwZXJmb3JtYW5jZToge1xuICAgICAgICAgIGR1cmF0aW9uTXM6IDI1MCxcbiAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nSW5mbyhpbmZvRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2R1cmF0aW9uLm1zJ10pLnRvQmUoMjUwKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLmF0dHJpYnV0ZXNbJ2V4ZWN1dGlvbi5zdWNjZXNzJ10pLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dXYXJuJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGVtaXRpciBsb2cgY29tIHNldmVyaXR5IFdBUk4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB3YXJuRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1dhcm5pbmcgbWVzc2FnZScsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ1dhcm4od2FybkRhdGEpO1xuXG4gICAgICBleHBlY3QobW9ja0xvZ2dlci5lbWl0KS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5zZXZlcml0eU51bWJlcikudG9CZShTZXZlcml0eU51bWJlci5XQVJOKTtcbiAgICAgIGV4cGVjdChlbWl0dGVkTG9nLnNldmVyaXR5VGV4dCkudG9CZSgnV0FSTicpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYm9keSkudG9CZSgnV2FybmluZyBtZXNzYWdlJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdsb2dEZWJ1ZycsICgpID0+IHtcbiAgICBpdCgnZGV2ZSBlbWl0aXIgbG9nIGNvbSBzZXZlcml0eSBERUJVRycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGRlYnVnRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ0RlYnVnIG1lc3NhZ2UnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3Rlc3Qtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAnZGV2ZWxvcG1lbnQnLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nRGVidWcoZGVidWdEYXRhKTtcblxuICAgICAgZXhwZWN0KG1vY2tMb2dnZXIuZW1pdCkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuc2V2ZXJpdHlOdW1iZXIpLnRvQmUoU2V2ZXJpdHlOdW1iZXIuREVCVUcpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuc2V2ZXJpdHlUZXh0KS50b0JlKCdERUJVRycpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYm9keSkudG9CZSgnRGVidWcgbWVzc2FnZScpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnYnVpbGRBdHRyaWJ1dGVzJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGNvbnN0cnVpciBhdHJpYnV0b3MgY29tcGxldG9zIGNvbSB0b2RvcyBvcyBjYW1wb3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBmdWxsRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ0NvbXBsZXRlIGxvZycsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAnY29tcGxldGUtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGVycm9yOiBuZXcgRXJyb3IoJ1Rlc3QgZXJyb3InKSxcbiAgICAgICAgaHR0cDoge1xuICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgdXJsOiAnL2FwaS91c2VycycsXG4gICAgICAgICAgZW5kcG9pbnQ6ICcvYXBpL3VzZXJzJyxcbiAgICAgICAgICBzdGF0dXNDb2RlOiAyMDAsXG4gICAgICAgIH0sXG4gICAgICAgIHVzZXI6IHtcbiAgICAgICAgICB1aWQ6ICd1c2VyLWFiYycsXG4gICAgICAgICAgZW1haWw6ICd1c2VyQGV4YW1wbGUuY29tJyxcbiAgICAgICAgfSxcbiAgICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgICAgcmVxdWVzdElkOiAncmVxLTAwMScsXG4gICAgICAgICAgYXdzUmVxdWVzdElkOiAnYXdzLTAwMicsXG4gICAgICAgICAgZnVuY3Rpb25OYW1lOiAnZ2V0VXNlcnMnLFxuICAgICAgICAgIGludm9jYXRpb25JZDogJ2ludi0wMDMnLFxuICAgICAgICAgIGNvbnRyb2xsZXI6ICdVc2VyQ29udHJvbGxlcicsXG4gICAgICAgICAgY29udHJvbGxlck1ldGhvZDogJ2dldEFsbCcsXG4gICAgICAgICAgb3JpZ2luOiAnd2ViJyxcbiAgICAgICAgfSxcbiAgICAgICAgcGVyZm9ybWFuY2U6IHtcbiAgICAgICAgICBkdXJhdGlvbk1zOiAzMDAsXG4gICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIGN1c3RvbTogJ2RhdGEnLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nSW5mbyhmdWxsRGF0YSk7XG5cbiAgICAgIGNvbnN0IGVtaXR0ZWRMb2cgPSBtb2NrTG9nZ2VyLmVtaXQubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGNvbnN0IGF0dHJzID0gZW1pdHRlZExvZy5hdHRyaWJ1dGVzO1xuXG4gICAgICAvLyBWZXJpZmljYXIgdG9kb3Mgb3MgY2FtcG9zXG4gICAgICBleHBlY3QoYXR0cnNbJ3NlcnZpY2UubmFtZSddKS50b0JlKGZ1bGxEYXRhLnNlcnZpY2VOYW1lKTtcbiAgICAgIGV4cGVjdChhdHRyc1snZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJ10pLnRvQmUoJ3Byb2R1Y3Rpb24nKTtcbiAgICAgIGV4cGVjdChhdHRyc1snZXJyb3IudHlwZSddKS50b0JlKCdFcnJvcicpO1xuICAgICAgZXhwZWN0KGF0dHJzWydodHRwLm1ldGhvZCddKS50b0JlKCdHRVQnKTtcbiAgICAgIGV4cGVjdChhdHRyc1sndXNlci51aWQnXSkudG9CZSgndXNlci1hYmMnKTtcbiAgICAgIGV4cGVjdChhdHRyc1sncmVxdWVzdC5pZCddKS50b0JlKCdyZXEtMDAxJyk7XG4gICAgICBleHBlY3QoYXR0cnNbJ2R1cmF0aW9uLm1zJ10pLnRvQmUoMzAwKTtcbiAgICAgIGV4cGVjdChhdHRyc1snY29udGV4dCddKS50b0JlKEpTT04uc3RyaW5naWZ5KHsgY3VzdG9tOiAnZGF0YScgfSkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgbGlkYXIgY29tIGNhbXBvcyBIVFRQIHBhcmNpYWlzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcGFydGlhbEh0dHBEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnUGFydGlhbCBIVFRQJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd0ZXN0LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBodHRwOiB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgZW5kcG9pbnQ6ICcvYXBpL3Rlc3QnLFxuICAgICAgICAgIC8vIHVybCwgc3RhdHVzQ29kZSwgaGVhZGVycywgZXRjIG7Do28gZm9ybmVjaWRvc1xuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgc3RhbmRhcmRMb2dnZXIubG9nSW5mbyhwYXJ0aWFsSHR0cERhdGEpO1xuXG4gICAgICBjb25zdCBlbWl0dGVkTG9nID0gbW9ja0xvZ2dlci5lbWl0Lm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLm1ldGhvZCddKS50b0JlKCdQT1NUJyk7XG4gICAgICBleHBlY3QoZW1pdHRlZExvZy5hdHRyaWJ1dGVzWydodHRwLmVuZHBvaW50J10pLnRvQmUoJy9hcGkvdGVzdCcpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snaHR0cC51cmwnXSkudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snaHR0cC5zdGF0dXNfY29kZSddKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb25zdHJ1dG9yJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGFjZWl0YXIgc2VydmljZU5hbWUgcGFkcsOjbyBwZXJzb25hbGl6YWRvJywgKCkgPT4ge1xuICAgICAgY29uc3QgY3VzdG9tTG9nZ2VyID0gbmV3IFN0YW5kYXJkTG9nZ2VyKG1vY2tMb2dnZXIsIG1vY2tUcmFjZXIpO1xuICAgICAgY29uc3QgbG9nRGF0YSA9IHtcbiAgICAgICAgbWVzc2FnZTogJ1Rlc3QnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJycsXG4gICAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICB9O1xuXG4gICAgICBjdXN0b21Mb2dnZXIubG9nSW5mbyhsb2dEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snc2VydmljZS5uYW1lJ10pLnRvQmUoJ3Rlc3Qtc2VydmljZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgdXNhciBcInVua25vd24tc2VydmljZVwiIGNvbW8gcGFkcsOjbyBxdWFuZG8gbsOjbyBlc3BlY2lmaWNhZG8nLCAoKSA9PiB7XG4gICAgICBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgPSAnJztcbiAgICAgIGNvbnN0IGRlZmF1bHRMb2dnZXIgPSBuZXcgU3RhbmRhcmRMb2dnZXIobW9ja0xvZ2dlciwgbW9ja1RyYWNlcik7XG4gICAgICBjb25zdCBsb2dEYXRhID0ge1xuICAgICAgICBtZXNzYWdlOiAnVGVzdCcsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAnJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgIH07XG5cbiAgICAgIGRlZmF1bHRMb2dnZXIubG9nSW5mbyhsb2dEYXRhKTtcblxuICAgICAgY29uc3QgZW1pdHRlZExvZyA9IG1vY2tMb2dnZXIuZW1pdC5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgZXhwZWN0KGVtaXR0ZWRMb2cuYXR0cmlidXRlc1snc2VydmljZS5uYW1lJ10pLnRvQmUoJ3Vua25vd24tc2VydmljZScpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -95,20 +95,19 @@ const api_1 = require("@opentelemetry/api");
|
|
|
95
95
|
(0, vitest_1.expect)(attributes['http.host']).toBe('api.example.com');
|
|
96
96
|
});
|
|
97
97
|
(0, vitest_1.it)('deve incluir atributos de usuário', () => {
|
|
98
|
+
const user = {
|
|
99
|
+
uid: 'user-123',
|
|
100
|
+
email: 'user@example.com',
|
|
101
|
+
};
|
|
98
102
|
standardTracer.startSpan({
|
|
99
103
|
spanName: 'user-operation',
|
|
100
104
|
serviceName: 'user-service',
|
|
101
105
|
environment: 'production',
|
|
102
|
-
user
|
|
103
|
-
accountUserUid: 'user-123',
|
|
104
|
-
accountUid: 'account-456',
|
|
105
|
-
applicationUid: 'app-789',
|
|
106
|
-
},
|
|
106
|
+
user,
|
|
107
107
|
});
|
|
108
108
|
const attributes = mockTracer.startSpan.mock.calls[0][1].attributes;
|
|
109
|
-
(0, vitest_1.expect)(attributes['
|
|
110
|
-
(0, vitest_1.expect)(attributes['
|
|
111
|
-
(0, vitest_1.expect)(attributes['application.uid']).toBe('app-789');
|
|
109
|
+
(0, vitest_1.expect)(attributes['user.uid']).toBe(user.uid);
|
|
110
|
+
(0, vitest_1.expect)(attributes['user.email']).toBe(user.email);
|
|
112
111
|
});
|
|
113
112
|
(0, vitest_1.it)('deve incluir atributos de performance', () => {
|
|
114
113
|
standardTracer.startSpan({
|
|
@@ -310,9 +309,6 @@ const api_1 = require("@opentelemetry/api");
|
|
|
310
309
|
spanName: 'error-operation',
|
|
311
310
|
serviceName: 'error-service',
|
|
312
311
|
environment: 'production',
|
|
313
|
-
user: {
|
|
314
|
-
accountUserUid: 'user-123',
|
|
315
|
-
},
|
|
316
312
|
});
|
|
317
313
|
const error = new Error('Operation failed');
|
|
318
314
|
spanResult.setError(error);
|
|
@@ -327,4 +323,4 @@ const api_1 = require("@opentelemetry/api");
|
|
|
327
323
|
});
|
|
328
324
|
});
|
|
329
325
|
});
|
|
330
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9fX3Rlc3RzX18vdHJhY2VyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBOEQ7QUFDOUQsc0NBQTJDO0FBQzNDLDRDQUE4RDtBQUU5RCxJQUFBLGlCQUFRLEVBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLElBQUksVUFBZSxDQUFDO0lBQ3BCLElBQUksUUFBYSxDQUFDO0lBQ2xCLElBQUksY0FBOEIsQ0FBQztJQUVuQyxJQUFBLG1CQUFVLEVBQUMsR0FBRyxFQUFFO1FBQ2QsUUFBUSxHQUFHO1lBQ1QsR0FBRyxFQUFFLFdBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDWixZQUFZLEVBQUUsV0FBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQixTQUFTLEVBQUUsV0FBRSxDQUFDLEVBQUUsRUFBRTtZQUNsQixlQUFlLEVBQUUsV0FBRSxDQUFDLEVBQUUsRUFBRTtTQUN6QixDQUFDO1FBRUYsVUFBVSxHQUFHO1lBQ1gsU0FBUyxFQUFFLFdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO1NBQzdDLENBQUM7UUFFRixjQUFjLEdBQUcsSUFBSSx1QkFBYyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNsRSxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsaUJBQVEsRUFBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLElBQUEsV0FBRSxFQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtZQUN0RCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDO2dCQUMxQyxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixXQUFXLEVBQUUsWUFBWTtnQkFDekIsV0FBVyxFQUFFLFlBQVk7YUFDMUIsQ0FBQyxDQUFDO1lBRUgsSUFBQSxlQUFNLEVBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLG9C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TyxFQUFFLGtCQUFrQjthQUM1QixDQUFDLENBQUM7WUFDSCxJQUFBLGVBQU0sRUFBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgaXQsIGV4cGVjdCwgdmksIGJlZm9yZUVhY2ggfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHsgU3RhbmRhcmRUcmFjZXIgfSBmcm9tICcuLi90cmFjZXInO1xuaW1wb3J0IHsgU3BhblN0YXR1c0NvZGUsIFNwYW5LaW5kIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcblxuZGVzY3JpYmUoJ1N0YW5kYXJkVHJhY2VyJywgKCkgPT4ge1xuICBsZXQgbW9ja1RyYWNlcjogYW55O1xuICBsZXQgbW9ja1NwYW46IGFueTtcbiAgbGV0IHN0YW5kYXJkVHJhY2VyOiBTdGFuZGFyZFRyYWNlcjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBtb2NrU3BhbiA9IHtcbiAgICAgIGVuZDogdmkuZm4oKSxcbiAgICAgIHNldEF0dHJpYnV0ZTogdmkuZm4oKSxcbiAgICAgIHNldFN0YXR1czogdmkuZm4oKSxcbiAgICAgIHJlY29yZEV4Y2VwdGlvbjogdmkuZm4oKSxcbiAgICB9O1xuXG4gICAgbW9ja1RyYWNlciA9IHtcbiAgICAgIHN0YXJ0U3BhbjogdmkuZm4oKS5tb2NrUmV0dXJuVmFsdWUobW9ja1NwYW4pLFxuICAgIH07XG5cbiAgICBzdGFuZGFyZFRyYWNlciA9IG5ldyBTdGFuZGFyZFRyYWNlcihtb2NrVHJhY2VyLCAndGVzdC1zZXJ2aWNlJyk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzdGFydFNwYW4nLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgY3JpYXIgc3BhbiBjb20gbm9tZSBlIGF0cmlidXRvcyBiw6FzaWNvcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHNwYW5SZXN1bHQgPSBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ3Rlc3Qtb3BlcmF0aW9uJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdteS1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobW9ja1RyYWNlci5zdGFydFNwYW4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCd0ZXN0LW9wZXJhdGlvbicsIHtcbiAgICAgICAga2luZDogU3BhbktpbmQuU0VSVkVSLFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgJ3NlcnZpY2UubmFtZSc6ICdteS1zZXJ2aWNlJyxcbiAgICAgICAgICAnZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJzogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChzcGFuUmVzdWx0LnNwYW4pLnRvQmUobW9ja1NwYW4pO1xuICAgICAgZXhwZWN0KHNwYW5SZXN1bHQuZW5kKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHNwYW5SZXN1bHQuc2V0U3VjY2VzcykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChzcGFuUmVzdWx0LnNldEVycm9yKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHNwYW5SZXN1bHQuc2V0QXR0cmlidXRlKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgdXNhciBkZWZhdWx0U2VydmljZU5hbWUgcXVhbmRvIHNlcnZpY2VOYW1lIG7Do28gZm9ybmVjaWRvJywgKCkgPT4ge1xuICAgICAgc3RhbmRhcmRUcmFjZXIuc3RhcnRTcGFuKHtcbiAgICAgICAgc3Bhbk5hbWU6ICd0ZXN0LW9wZXJhdGlvbicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAnJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhdHRyaWJ1dGVzID0gbW9ja1RyYWNlci5zdGFydFNwYW4ubW9jay5jYWxsc1swXVsxXS5hdHRyaWJ1dGVzO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ3NlcnZpY2UubmFtZSddKS50b0JlKCd0ZXN0LXNlcnZpY2UnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgYXRyaWJ1dG9zIGRlIGV4ZWN1w6fDo28nLCAoKSA9PiB7XG4gICAgICBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ3Byb2Nlc3MtcmVxdWVzdCcsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAnYXBpLXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBleGVjdXRpb246IHtcbiAgICAgICAgICBmdW5jdGlvbk5hbWU6ICdwcm9jZXNzUGF5bWVudCcsXG4gICAgICAgICAgaW52b2NhdGlvbklkOiAnaW52LTEyMycsXG4gICAgICAgICAgYXdzUmVxdWVzdElkOiAnYXdzLTQ1NicsXG4gICAgICAgICAgcmVxdWVzdElkOiAncmVxLTc4OScsXG4gICAgICAgICAgY29udHJvbGxlcjogJ1BheW1lbnRDb250cm9sbGVyJyxcbiAgICAgICAgICBjb250cm9sbGVyTWV0aG9kOiAncHJvY2VzcycsXG4gICAgICAgICAgb3JpZ2luOiAnbW9iaWxlJyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhdHRyaWJ1dGVzID0gbW9ja1RyYWNlci5zdGFydFNwYW4ubW9jay5jYWxsc1swXVsxXS5hdHRyaWJ1dGVzO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ2Z1bmN0aW9uLm5hbWUnXSkudG9CZSgncHJvY2Vzc1BheW1lbnQnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10pLnRvQmUoJ2ludi0xMjMnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydhd3MucmVxdWVzdC5pZCddKS50b0JlKCdhd3MtNDU2Jyk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1sncmVxdWVzdC5pZCddKS50b0JlKCdyZXEtNzg5Jyk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snY29udHJvbGxlci5uYW1lJ10pLnRvQmUoJ1BheW1lbnRDb250cm9sbGVyJyk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snY29udHJvbGxlci5tZXRob2QnXSkudG9CZSgncHJvY2VzcycpO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ29yaWdpbiddKS50b0JlKCdtb2JpbGUnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgYXRyaWJ1dG9zIEhUVFAnLCAoKSA9PiB7XG4gICAgICBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ2h0dHAtcmVxdWVzdCcsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAnd2ViLXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICBodHRwOiB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgdXJsOiAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vb3JkZXJzJyxcbiAgICAgICAgICBlbmRwb2ludDogJy9vcmRlcnMnLFxuICAgICAgICAgIHN0YXR1c0NvZGU6IDIwMSxcbiAgICAgICAgICBzY2hlbWU6ICdodHRwcycsXG4gICAgICAgICAgaG9zdDogJ2FwaS5leGFtcGxlLmNvbScsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IG1vY2tUcmFjZXIuc3RhcnRTcGFuLm1vY2suY2FsbHNbMF1bMV0uYXR0cmlidXRlcztcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydodHRwLm1ldGhvZCddKS50b0JlKCdQT1NUJyk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snaHR0cC51cmwnXSkudG9CZSgnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vb3JkZXJzJyk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snaHR0cC50YXJnZXQnXSkudG9CZSgnL29yZGVycycpO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ2h0dHAuc3RhdHVzX2NvZGUnXSkudG9CZSgyMDEpO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ2h0dHAuc2NoZW1lJ10pLnRvQmUoJ2h0dHBzJyk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snaHR0cC5ob3N0J10pLnRvQmUoJ2FwaS5leGFtcGxlLmNvbScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBhdHJpYnV0b3MgZGUgdXN1w6FyaW8nLCAoKSA9PiB7XG4gICAgICBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ3VzZXItb3BlcmF0aW9uJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd1c2VyLXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgYWNjb3VudFVzZXJVaWQ6ICd1c2VyLTEyMycsXG4gICAgICAgICAgYWNjb3VudFVpZDogJ2FjY291bnQtNDU2JyxcbiAgICAgICAgICBhcHBsaWNhdGlvblVpZDogJ2FwcC03ODknLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBtb2NrVHJhY2VyLnN0YXJ0U3Bhbi5tb2NrLmNhbGxzWzBdWzFdLmF0dHJpYnV0ZXM7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snYWNjb3VudFVzZXIudWlkJ10pLnRvQmUoJ3VzZXItMTIzJyk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snYWNjb3VudC51aWQnXSkudG9CZSgnYWNjb3VudC00NTYnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydhcHBsaWNhdGlvbi51aWQnXSkudG9CZSgnYXBwLTc4OScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBhdHJpYnV0b3MgZGUgcGVyZm9ybWFuY2UnLCAoKSA9PiB7XG4gICAgICBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ3BlcmZvcm1hbmNlLXRlc3QnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3BlcmYtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgICAgZHVyYXRpb25NczogMjUwLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IG1vY2tUcmFjZXIuc3RhcnRTcGFuLm1vY2suY2FsbHNbMF1bMV0uYXR0cmlidXRlcztcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydkdXJhdGlvbi5tcyddKS50b0JlKDI1MCk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snZXhlY3V0aW9uLnN1Y2Nlc3MnXSkudG9CZSh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgYXRyaWJ1dG9zIGRlIGVycm8nLCAoKSA9PiB7XG4gICAgICBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ2Vycm9yLW9wZXJhdGlvbicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAnZXJyb3Itc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgdHlwZTogJ1ZhbGlkYXRpb25FcnJvcicsXG4gICAgICAgICAgbWVzc2FnZTogJ0ludmFsaWQgaW5wdXQnLFxuICAgICAgICAgIHN0YWNrOiAnRXJyb3Igc3RhY2sgdHJhY2UnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBtb2NrVHJhY2VyLnN0YXJ0U3Bhbi5tb2NrLmNhbGxzWzBdWzFdLmF0dHJpYnV0ZXM7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snZXJyb3IudHlwZSddKS50b0JlKCdWYWxpZGF0aW9uRXJyb3InKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydlcnJvci5tZXNzYWdlJ10pLnRvQmUoJ0ludmFsaWQgaW5wdXQnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydlcnJvci5zdGFjayddKS50b0JlKCdFcnJvciBzdGFjayB0cmFjZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBhdHJpYnV0b3MgY3VzdG9taXphZG9zJywgKCkgPT4ge1xuICAgICAgc3RhbmRhcmRUcmFjZXIuc3RhcnRTcGFuKHtcbiAgICAgICAgc3Bhbk5hbWU6ICdjdXN0b20tb3BlcmF0aW9uJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdjdXN0b20tc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAnY3VzdG9tLmZpZWxkJzogJ3ZhbHVlJyxcbiAgICAgICAgICAnY3VzdG9tLmNvdW50JzogNDIsXG4gICAgICAgICAgJ2N1c3RvbS5lbmFibGVkJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhdHRyaWJ1dGVzID0gbW9ja1RyYWNlci5zdGFydFNwYW4ubW9jay5jYWxsc1swXVsxXS5hdHRyaWJ1dGVzO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ2N1c3RvbS5maWVsZCddKS50b0JlKCd2YWx1ZScpO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ2N1c3RvbS5jb3VudCddKS50b0JlKDQyKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydjdXN0b20uZW5hYmxlZCddKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgZmlsdHJhciB2YWxvcmVzIHVuZGVmaW5lZCBlIG51bGwnLCAoKSA9PiB7XG4gICAgICBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ2ZpbHRlci10ZXN0JyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdmaWx0ZXItc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGV4ZWN1dGlvbjoge1xuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogJ3Rlc3QnLFxuICAgICAgICAgIGludm9jYXRpb25JZDogdW5kZWZpbmVkLFxuICAgICAgICAgIGF3c1JlcXVlc3RJZDogbnVsbCBhcyBhbnksXG4gICAgICAgIH0sXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICB2YWxpZDogJ3ZhbHVlJyxcbiAgICAgICAgICBpbnZhbGlkOiB1bmRlZmluZWQgYXMgYW55LFxuICAgICAgICAgIG51bGxWYWx1ZTogbnVsbCBhcyBhbnksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IG1vY2tUcmFjZXIuc3RhcnRTcGFuLm1vY2suY2FsbHNbMF1bMV0uYXR0cmlidXRlcztcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydmdW5jdGlvbi5uYW1lJ10pLnRvQmUoJ3Rlc3QnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10pLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydhd3MucmVxdWVzdC5pZCddKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1sndmFsaWQnXSkudG9CZSgndmFsdWUnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydpbnZhbGlkJ10pLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydudWxsVmFsdWUnXSkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnU3RhbmRhcmRTcGFuUmVzdWx0JywgKCkgPT4ge1xuICAgIGxldCBzcGFuUmVzdWx0OiBhbnk7XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIHNwYW5SZXN1bHQgPSBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ3Rlc3Qtc3BhbicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2VuZCcsICgpID0+IHtcbiAgICAgIGl0KCdkZXZlIGZpbmFsaXphciBvIHNwYW4nLCAoKSA9PiB7XG4gICAgICAgIHNwYW5SZXN1bHQuZW5kKCk7XG5cbiAgICAgICAgZXhwZWN0KG1vY2tTcGFuLmVuZCkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2V0U3VjY2VzcycsICgpID0+IHtcbiAgICAgIGl0KCdkZXZlIG1hcmNhciBzcGFuIGNvbW8gc3VjZXNzbycsICgpID0+IHtcbiAgICAgICAgc3BhblJlc3VsdC5zZXRTdWNjZXNzKHRydWUpO1xuXG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAgICdleGVjdXRpb24uc3VjY2VzcycsXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICBleHBlY3QobW9ja1NwYW4uc2V0U3RhdHVzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuT0ssXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdkZXZlIG1hcmNhciBzcGFuIGNvbW8gZmFsaGEnLCAoKSA9PiB7XG4gICAgICAgIHNwYW5SZXN1bHQuc2V0U3VjY2VzcyhmYWxzZSk7XG5cbiAgICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldEF0dHJpYnV0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgICAgJ2V4ZWN1dGlvbi5zdWNjZXNzJyxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICBleHBlY3QobW9ja1NwYW4uc2V0U3RhdHVzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2V0RXJyb3InLCAoKSA9PiB7XG4gICAgICBpdCgnZGV2ZSByZWdpc3RyYXIgZXJybyBubyBzcGFuJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignVGVzdCBlcnJvcicpO1xuXG4gICAgICAgIHNwYW5SZXN1bHQuc2V0RXJyb3IoZXJyb3IpO1xuXG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5yZWNvcmRFeGNlcHRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGVycm9yKTtcbiAgICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldEF0dHJpYnV0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgICAgJ2Vycm9yLnR5cGUnLFxuICAgICAgICAgICdFcnJvcidcbiAgICAgICAgKTtcbiAgICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldEF0dHJpYnV0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgICAgJ2Vycm9yLm1lc3NhZ2UnLFxuICAgICAgICAgICdUZXN0IGVycm9yJ1xuICAgICAgICApO1xuICAgICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgICAnZXhlY3V0aW9uLnN1Y2Nlc3MnLFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRTdGF0dXMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgICAgICBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUixcbiAgICAgICAgICBtZXNzYWdlOiAnVGVzdCBlcnJvcicsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdkZXZlIGluY2x1aXIgc3RhY2sgdHJhY2UgcXVhbmRvIGRpc3BvbsOtdmVsJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignRXJyb3Igd2l0aCBzdGFjaycpO1xuICAgICAgICBlcnJvci5zdGFjayA9ICdFcnJvcjogRXJyb3Igd2l0aCBzdGFja1xcbiAgYXQgdGVzdC50czoxOjEnO1xuXG4gICAgICAgIHNwYW5SZXN1bHQuc2V0RXJyb3IoZXJyb3IpO1xuXG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAgICdlcnJvci5zdGFjaycsXG4gICAgICAgICAgZXJyb3Iuc3RhY2tcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZGV2ZSBmdW5jaW9uYXIgY29tIGVycm8gY3VzdG9taXphZG8nLCAoKSA9PiB7XG4gICAgICAgIGNsYXNzIEN1c3RvbUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgICAgICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSAnQ3VzdG9tRXJyb3InO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEN1c3RvbUVycm9yKCdDdXN0b20gZXJyb3IgbWVzc2FnZScpO1xuXG4gICAgICAgIHNwYW5SZXN1bHQuc2V0RXJyb3IoZXJyb3IpO1xuXG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAgICdlcnJvci50eXBlJyxcbiAgICAgICAgICAnQ3VzdG9tRXJyb3InXG4gICAgICAgICk7XG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAgICdlcnJvci5tZXNzYWdlJyxcbiAgICAgICAgICAnQ3VzdG9tIGVycm9yIG1lc3NhZ2UnXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdzZXRBdHRyaWJ1dGUnLCAoKSA9PiB7XG4gICAgICBpdCgnZGV2ZSBhZGljaW9uYXIgYXRyaWJ1dG8gc3RyaW5nJywgKCkgPT4ge1xuICAgICAgICBzcGFuUmVzdWx0LnNldEF0dHJpYnV0ZSgnY3VzdG9tLmtleScsICdjdXN0b20gdmFsdWUnKTtcblxuICAgICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgICAnY3VzdG9tLmtleScsXG4gICAgICAgICAgJ2N1c3RvbSB2YWx1ZSdcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZGV2ZSBhZGljaW9uYXIgYXRyaWJ1dG8gbnVtw6lyaWNvJywgKCkgPT4ge1xuICAgICAgICBzcGFuUmVzdWx0LnNldEF0dHJpYnV0ZSgnY3VzdG9tLmNvdW50JywgMTIzKTtcblxuICAgICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnY3VzdG9tLmNvdW50JywgMTIzKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZGV2ZSBhZGljaW9uYXIgYXRyaWJ1dG8gYm9vbGVhbm8nLCAoKSA9PiB7XG4gICAgICAgIHNwYW5SZXN1bHQuc2V0QXR0cmlidXRlKCdjdXN0b20uZW5hYmxlZCcsIHRydWUpO1xuXG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAgICdjdXN0b20uZW5hYmxlZCcsXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZWNvcmRFeGNlcHRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgcmVnaXN0cmFyIGV4Y2XDp8OjbyBjb20gdG9kb3Mgb3MgYXRyaWJ1dG9zJywgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ0V4Y2VwdGlvbiB0ZXN0Jyk7XG4gICAgICBlcnJvci5zdGFjayA9ICdFcnJvciBzdGFjayB0cmFjZSBoZXJlJztcblxuICAgICAgc3RhbmRhcmRUcmFjZXIucmVjb3JkRXhjZXB0aW9uKG1vY2tTcGFuLCBlcnJvcik7XG5cbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5yZWNvcmRFeGNlcHRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGVycm9yKTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdlcnJvci50eXBlJywgJ0Vycm9yJyk7XG4gICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgJ2Vycm9yLm1lc3NhZ2UnLFxuICAgICAgICAnRXhjZXB0aW9uIHRlc3QnXG4gICAgICApO1xuICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldEF0dHJpYnV0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgICdlcnJvci5zdGFjaycsXG4gICAgICAgICdFcnJvciBzdGFjayB0cmFjZSBoZXJlJ1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGZ1bmNpb25hciBzZW0gc3RhY2sgdHJhY2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignTm8gc3RhY2snKTtcbiAgICAgIGRlbGV0ZSBlcnJvci5zdGFjaztcblxuICAgICAgc3RhbmRhcmRUcmFjZXIucmVjb3JkRXhjZXB0aW9uKG1vY2tTcGFuLCBlcnJvcik7XG5cbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5yZWNvcmRFeGNlcHRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGVycm9yKTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdlcnJvci50eXBlJywgJ0Vycm9yJyk7XG4gICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgJ2Vycm9yLm1lc3NhZ2UnLFxuICAgICAgICAnTm8gc3RhY2snXG4gICAgICApO1xuICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldEF0dHJpYnV0ZSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDIpOyAvLyBBcGVuYXMgdHlwZSBlIG1lc3NhZ2VcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NlbsOhcmlvcyBkZSB1c28gY29tcGxldG9zJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGdlcmVuY2lhciBmbHV4byBkZSBzdWNlc3NvIGNvbXBsZXRvJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc3BhblJlc3VsdCA9IHN0YW5kYXJkVHJhY2VyLnN0YXJ0U3Bhbih7XG4gICAgICAgIHNwYW5OYW1lOiAnY29tcGxldGUtb3BlcmF0aW9uJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdjb21wbGV0ZS1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgICAgZnVuY3Rpb25OYW1lOiAncHJvY2Vzc0RhdGEnLFxuICAgICAgICAgIHJlcXVlc3RJZDogJ3JlcS0xMjMnLFxuICAgICAgICB9LFxuICAgICAgICBodHRwOiB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgZW5kcG9pbnQ6ICcvYXBpL2RhdGEnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHNwYW5SZXN1bHQuc2V0QXR0cmlidXRlKCdjdXN0b20uc3RlcCcsICdwcm9jZXNzaW5nJyk7XG4gICAgICBzcGFuUmVzdWx0LnNldFN1Y2Nlc3ModHJ1ZSk7XG4gICAgICBzcGFuUmVzdWx0LmVuZCgpO1xuXG4gICAgICBleHBlY3QobW9ja1RyYWNlci5zdGFydFNwYW4pLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAnY3VzdG9tLnN0ZXAnLFxuICAgICAgICAncHJvY2Vzc2luZydcbiAgICAgICk7XG4gICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgJ2V4ZWN1dGlvbi5zdWNjZXNzJyxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRTdGF0dXMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuT0ssXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5lbmQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGdlcmVuY2lhciBmbHV4byBkZSBlcnJvIGNvbXBsZXRvJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc3BhblJlc3VsdCA9IHN0YW5kYXJkVHJhY2VyLnN0YXJ0U3Bhbih7XG4gICAgICAgIHNwYW5OYW1lOiAnZXJyb3Itb3BlcmF0aW9uJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdlcnJvci1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgdXNlcjoge1xuICAgICAgICAgIGFjY291bnRVc2VyVWlkOiAndXNlci0xMjMnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKCdPcGVyYXRpb24gZmFpbGVkJyk7XG5cbiAgICAgIHNwYW5SZXN1bHQuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgc3BhblJlc3VsdC5lbmQoKTtcblxuICAgICAgZXhwZWN0KG1vY2tTcGFuLnJlY29yZEV4Y2VwdGlvbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoZXJyb3IpO1xuICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldEF0dHJpYnV0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgICdleGVjdXRpb24uc3VjY2VzcycsXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldFN0YXR1cykudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgICBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUixcbiAgICAgICAgbWVzc2FnZTogJ09wZXJhdGlvbiBmYWlsZWQnLFxuICAgICAgfSk7XG4gICAgICBleHBlY3QobW9ja1NwYW4uZW5kKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
326
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9fX3Rlc3RzX18vdHJhY2VyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBOEQ7QUFDOUQsc0NBQTJDO0FBQzNDLDRDQUE4RDtBQUU5RCxJQUFBLGlCQUFRLEVBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLElBQUksVUFBZSxDQUFDO0lBQ3BCLElBQUksUUFBYSxDQUFDO0lBQ2xCLElBQUksY0FBOEIsQ0FBQztJQUVuQyxJQUFBLG1CQUFVLEVBQUMsR0FBRyxFQUFFO1FBQ2QsUUFBUSxHQUFHO1lBQ1QsR0FBRyxFQUFFLFdBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDWixZQUFZLEVBQUUsV0FBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQixTQUFTLEVBQUUsV0FBRSxDQUFDLEVBQUUsRUFBRTtZQUNsQixlQUFlLEVBQUUsV0FBRSxDQUFDLEVBQUUsRUFBRTtTQUN6QixDQUFDO1FBRUYsVUFBVSxHQUFHO1lBQ1gsU0FBUyxFQUFFLFdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO1NBQzdDLENBQUM7UUFFRixjQUFjLEdBQUcsSUFBSSx1QkFBYyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNsRSxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsaUJBQVEsRUFBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLElBQUEsV0FBRSxFQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtZQUN0RCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDO2dCQUMxQyxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixXQUFXLEVBQUUsWUFBWTtnQkFDekIsV0FBVyxFQUFFLFlBQVk7YUFDMUIsQ0FBQyxDQUFDO1lBRUgsSUFBQSxlQUFNLEVBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLG9C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QyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBpdCwgZXhwZWN0LCB2aSwgYmVmb3JlRWFjaCB9IGZyb20gJ3ZpdGVzdCc7XG5pbXBvcnQgeyBTdGFuZGFyZFRyYWNlciB9IGZyb20gJy4uL3RyYWNlcic7XG5pbXBvcnQgeyBTcGFuU3RhdHVzQ29kZSwgU3BhbktpbmQgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGknO1xuXG5kZXNjcmliZSgnU3RhbmRhcmRUcmFjZXInLCAoKSA9PiB7XG4gIGxldCBtb2NrVHJhY2VyOiBhbnk7XG4gIGxldCBtb2NrU3BhbjogYW55O1xuICBsZXQgc3RhbmRhcmRUcmFjZXI6IFN0YW5kYXJkVHJhY2VyO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG1vY2tTcGFuID0ge1xuICAgICAgZW5kOiB2aS5mbigpLFxuICAgICAgc2V0QXR0cmlidXRlOiB2aS5mbigpLFxuICAgICAgc2V0U3RhdHVzOiB2aS5mbigpLFxuICAgICAgcmVjb3JkRXhjZXB0aW9uOiB2aS5mbigpLFxuICAgIH07XG5cbiAgICBtb2NrVHJhY2VyID0ge1xuICAgICAgc3RhcnRTcGFuOiB2aS5mbigpLm1vY2tSZXR1cm5WYWx1ZShtb2NrU3BhbiksXG4gICAgfTtcblxuICAgIHN0YW5kYXJkVHJhY2VyID0gbmV3IFN0YW5kYXJkVHJhY2VyKG1vY2tUcmFjZXIsICd0ZXN0LXNlcnZpY2UnKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3N0YXJ0U3BhbicsICgpID0+IHtcbiAgICBpdCgnZGV2ZSBjcmlhciBzcGFuIGNvbSBub21lIGUgYXRyaWJ1dG9zIGLDoXNpY29zJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc3BhblJlc3VsdCA9IHN0YW5kYXJkVHJhY2VyLnN0YXJ0U3Bhbih7XG4gICAgICAgIHNwYW5OYW1lOiAndGVzdC1vcGVyYXRpb24nLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ215LXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChtb2NrVHJhY2VyLnN0YXJ0U3BhbikudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ3Rlc3Qtb3BlcmF0aW9uJywge1xuICAgICAgICBraW5kOiBTcGFuS2luZC5TRVJWRVIsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAnc2VydmljZS5uYW1lJzogJ215LXNlcnZpY2UnLFxuICAgICAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiAncHJvZHVjdGlvbicsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHNwYW5SZXN1bHQuc3BhbikudG9CZShtb2NrU3Bhbik7XG4gICAgICBleHBlY3Qoc3BhblJlc3VsdC5lbmQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3Qoc3BhblJlc3VsdC5zZXRTdWNjZXNzKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHNwYW5SZXN1bHQuc2V0RXJyb3IpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3Qoc3BhblJlc3VsdC5zZXRBdHRyaWJ1dGUpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSB1c2FyIGRlZmF1bHRTZXJ2aWNlTmFtZSBxdWFuZG8gc2VydmljZU5hbWUgbsOjbyBmb3JuZWNpZG8nLCAoKSA9PiB7XG4gICAgICBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ3Rlc3Qtb3BlcmF0aW9uJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICcnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Rlc3QnLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBtb2NrVHJhY2VyLnN0YXJ0U3Bhbi5tb2NrLmNhbGxzWzBdWzFdLmF0dHJpYnV0ZXM7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snc2VydmljZS5uYW1lJ10pLnRvQmUoJ3Rlc3Qtc2VydmljZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBhdHJpYnV0b3MgZGUgZXhlY3XDp8OjbycsICgpID0+IHtcbiAgICAgIHN0YW5kYXJkVHJhY2VyLnN0YXJ0U3Bhbih7XG4gICAgICAgIHNwYW5OYW1lOiAncHJvY2Vzcy1yZXF1ZXN0JyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdhcGktc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGV4ZWN1dGlvbjoge1xuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogJ3Byb2Nlc3NQYXltZW50JyxcbiAgICAgICAgICBpbnZvY2F0aW9uSWQ6ICdpbnYtMTIzJyxcbiAgICAgICAgICBhd3NSZXF1ZXN0SWQ6ICdhd3MtNDU2JyxcbiAgICAgICAgICByZXF1ZXN0SWQ6ICdyZXEtNzg5JyxcbiAgICAgICAgICBjb250cm9sbGVyOiAnUGF5bWVudENvbnRyb2xsZXInLFxuICAgICAgICAgIGNvbnRyb2xsZXJNZXRob2Q6ICdwcm9jZXNzJyxcbiAgICAgICAgICBvcmlnaW46ICdtb2JpbGUnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBtb2NrVHJhY2VyLnN0YXJ0U3Bhbi5tb2NrLmNhbGxzWzBdWzFdLmF0dHJpYnV0ZXM7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snZnVuY3Rpb24ubmFtZSddKS50b0JlKCdwcm9jZXNzUGF5bWVudCcpO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ2Z1bmN0aW9uLmludm9jYXRpb25faWQnXSkudG9CZSgnaW52LTEyMycpO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ2F3cy5yZXF1ZXN0LmlkJ10pLnRvQmUoJ2F3cy00NTYnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydyZXF1ZXN0LmlkJ10pLnRvQmUoJ3JlcS03ODknKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydjb250cm9sbGVyLm5hbWUnXSkudG9CZSgnUGF5bWVudENvbnRyb2xsZXInKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydjb250cm9sbGVyLm1ldGhvZCddKS50b0JlKCdwcm9jZXNzJyk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snb3JpZ2luJ10pLnRvQmUoJ21vYmlsZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBhdHJpYnV0b3MgSFRUUCcsICgpID0+IHtcbiAgICAgIHN0YW5kYXJkVHJhY2VyLnN0YXJ0U3Bhbih7XG4gICAgICAgIHNwYW5OYW1lOiAnaHR0cC1yZXF1ZXN0JyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd3ZWItc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGh0dHA6IHtcbiAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICB1cmw6ICdodHRwczovL2FwaS5leGFtcGxlLmNvbS9vcmRlcnMnLFxuICAgICAgICAgIGVuZHBvaW50OiAnL29yZGVycycsXG4gICAgICAgICAgc3RhdHVzQ29kZTogMjAxLFxuICAgICAgICAgIHNjaGVtZTogJ2h0dHBzJyxcbiAgICAgICAgICBob3N0OiAnYXBpLmV4YW1wbGUuY29tJyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhdHRyaWJ1dGVzID0gbW9ja1RyYWNlci5zdGFydFNwYW4ubW9jay5jYWxsc1swXVsxXS5hdHRyaWJ1dGVzO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ2h0dHAubWV0aG9kJ10pLnRvQmUoJ1BPU1QnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydodHRwLnVybCddKS50b0JlKCdodHRwczovL2FwaS5leGFtcGxlLmNvbS9vcmRlcnMnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydodHRwLnRhcmdldCddKS50b0JlKCcvb3JkZXJzJyk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snaHR0cC5zdGF0dXNfY29kZSddKS50b0JlKDIwMSk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snaHR0cC5zY2hlbWUnXSkudG9CZSgnaHR0cHMnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydodHRwLmhvc3QnXSkudG9CZSgnYXBpLmV4YW1wbGUuY29tJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGV2ZSBpbmNsdWlyIGF0cmlidXRvcyBkZSB1c3XDoXJpbycsICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB7XG4gICAgICAgIHVpZDogJ3VzZXItMTIzJyxcbiAgICAgICAgZW1haWw6ICd1c2VyQGV4YW1wbGUuY29tJyxcbiAgICAgIH07XG4gICAgICBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ3VzZXItb3BlcmF0aW9uJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICd1c2VyLXNlcnZpY2UnLFxuICAgICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nLFxuICAgICAgICB1c2VyLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBtb2NrVHJhY2VyLnN0YXJ0U3Bhbi5tb2NrLmNhbGxzWzBdWzFdLmF0dHJpYnV0ZXM7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1sndXNlci51aWQnXSkudG9CZSh1c2VyLnVpZCk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1sndXNlci5lbWFpbCddKS50b0JlKHVzZXIuZW1haWwpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBhdHJpYnV0b3MgZGUgcGVyZm9ybWFuY2UnLCAoKSA9PiB7XG4gICAgICBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ3BlcmZvcm1hbmNlLXRlc3QnLFxuICAgICAgICBzZXJ2aWNlTmFtZTogJ3BlcmYtc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAndGVzdCcsXG4gICAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgICAgZHVyYXRpb25NczogMjUwLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IG1vY2tUcmFjZXIuc3RhcnRTcGFuLm1vY2suY2FsbHNbMF1bMV0uYXR0cmlidXRlcztcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydkdXJhdGlvbi5tcyddKS50b0JlKDI1MCk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snZXhlY3V0aW9uLnN1Y2Nlc3MnXSkudG9CZSh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGluY2x1aXIgYXRyaWJ1dG9zIGRlIGVycm8nLCAoKSA9PiB7XG4gICAgICBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ2Vycm9yLW9wZXJhdGlvbicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAnZXJyb3Itc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgdHlwZTogJ1ZhbGlkYXRpb25FcnJvcicsXG4gICAgICAgICAgbWVzc2FnZTogJ0ludmFsaWQgaW5wdXQnLFxuICAgICAgICAgIHN0YWNrOiAnRXJyb3Igc3RhY2sgdHJhY2UnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBtb2NrVHJhY2VyLnN0YXJ0U3Bhbi5tb2NrLmNhbGxzWzBdWzFdLmF0dHJpYnV0ZXM7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1snZXJyb3IudHlwZSddKS50b0JlKCdWYWxpZGF0aW9uRXJyb3InKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydlcnJvci5tZXNzYWdlJ10pLnRvQmUoJ0ludmFsaWQgaW5wdXQnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydlcnJvci5zdGFjayddKS50b0JlKCdFcnJvciBzdGFjayB0cmFjZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgaW5jbHVpciBhdHJpYnV0b3MgY3VzdG9taXphZG9zJywgKCkgPT4ge1xuICAgICAgc3RhbmRhcmRUcmFjZXIuc3RhcnRTcGFuKHtcbiAgICAgICAgc3Bhbk5hbWU6ICdjdXN0b20tb3BlcmF0aW9uJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdjdXN0b20tc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAnY3VzdG9tLmZpZWxkJzogJ3ZhbHVlJyxcbiAgICAgICAgICAnY3VzdG9tLmNvdW50JzogNDIsXG4gICAgICAgICAgJ2N1c3RvbS5lbmFibGVkJzogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhdHRyaWJ1dGVzID0gbW9ja1RyYWNlci5zdGFydFNwYW4ubW9jay5jYWxsc1swXVsxXS5hdHRyaWJ1dGVzO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ2N1c3RvbS5maWVsZCddKS50b0JlKCd2YWx1ZScpO1xuICAgICAgZXhwZWN0KGF0dHJpYnV0ZXNbJ2N1c3RvbS5jb3VudCddKS50b0JlKDQyKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydjdXN0b20uZW5hYmxlZCddKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RldmUgZmlsdHJhciB2YWxvcmVzIHVuZGVmaW5lZCBlIG51bGwnLCAoKSA9PiB7XG4gICAgICBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ2ZpbHRlci10ZXN0JyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdmaWx0ZXItc2VydmljZScsXG4gICAgICAgIGVudmlyb25tZW50OiAncHJvZHVjdGlvbicsXG4gICAgICAgIGV4ZWN1dGlvbjoge1xuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogJ3Rlc3QnLFxuICAgICAgICAgIGludm9jYXRpb25JZDogdW5kZWZpbmVkLFxuICAgICAgICAgIGF3c1JlcXVlc3RJZDogbnVsbCBhcyBhbnksXG4gICAgICAgIH0sXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICB2YWxpZDogJ3ZhbHVlJyxcbiAgICAgICAgICBpbnZhbGlkOiB1bmRlZmluZWQgYXMgYW55LFxuICAgICAgICAgIG51bGxWYWx1ZTogbnVsbCBhcyBhbnksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IG1vY2tUcmFjZXIuc3RhcnRTcGFuLm1vY2suY2FsbHNbMF1bMV0uYXR0cmlidXRlcztcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydmdW5jdGlvbi5uYW1lJ10pLnRvQmUoJ3Rlc3QnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10pLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydhd3MucmVxdWVzdC5pZCddKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICBleHBlY3QoYXR0cmlidXRlc1sndmFsaWQnXSkudG9CZSgndmFsdWUnKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydpbnZhbGlkJ10pLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChhdHRyaWJ1dGVzWydudWxsVmFsdWUnXSkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnU3RhbmRhcmRTcGFuUmVzdWx0JywgKCkgPT4ge1xuICAgIGxldCBzcGFuUmVzdWx0OiBhbnk7XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIHNwYW5SZXN1bHQgPSBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogJ3Rlc3Qtc3BhbicsXG4gICAgICAgIHNlcnZpY2VOYW1lOiAndGVzdC1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICd0ZXN0JyxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2VuZCcsICgpID0+IHtcbiAgICAgIGl0KCdkZXZlIGZpbmFsaXphciBvIHNwYW4nLCAoKSA9PiB7XG4gICAgICAgIHNwYW5SZXN1bHQuZW5kKCk7XG5cbiAgICAgICAgZXhwZWN0KG1vY2tTcGFuLmVuZCkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2V0U3VjY2VzcycsICgpID0+IHtcbiAgICAgIGl0KCdkZXZlIG1hcmNhciBzcGFuIGNvbW8gc3VjZXNzbycsICgpID0+IHtcbiAgICAgICAgc3BhblJlc3VsdC5zZXRTdWNjZXNzKHRydWUpO1xuXG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAgICdleGVjdXRpb24uc3VjY2VzcycsXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICBleHBlY3QobW9ja1NwYW4uc2V0U3RhdHVzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuT0ssXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdkZXZlIG1hcmNhciBzcGFuIGNvbW8gZmFsaGEnLCAoKSA9PiB7XG4gICAgICAgIHNwYW5SZXN1bHQuc2V0U3VjY2VzcyhmYWxzZSk7XG5cbiAgICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldEF0dHJpYnV0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgICAgJ2V4ZWN1dGlvbi5zdWNjZXNzJyxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICBleHBlY3QobW9ja1NwYW4uc2V0U3RhdHVzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnc2V0RXJyb3InLCAoKSA9PiB7XG4gICAgICBpdCgnZGV2ZSByZWdpc3RyYXIgZXJybyBubyBzcGFuJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignVGVzdCBlcnJvcicpO1xuXG4gICAgICAgIHNwYW5SZXN1bHQuc2V0RXJyb3IoZXJyb3IpO1xuXG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5yZWNvcmRFeGNlcHRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGVycm9yKTtcbiAgICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldEF0dHJpYnV0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgICAgJ2Vycm9yLnR5cGUnLFxuICAgICAgICAgICdFcnJvcidcbiAgICAgICAgKTtcbiAgICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldEF0dHJpYnV0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgICAgJ2Vycm9yLm1lc3NhZ2UnLFxuICAgICAgICAgICdUZXN0IGVycm9yJ1xuICAgICAgICApO1xuICAgICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgICAnZXhlY3V0aW9uLnN1Y2Nlc3MnLFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRTdGF0dXMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgICAgICBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUixcbiAgICAgICAgICBtZXNzYWdlOiAnVGVzdCBlcnJvcicsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdkZXZlIGluY2x1aXIgc3RhY2sgdHJhY2UgcXVhbmRvIGRpc3BvbsOtdmVsJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignRXJyb3Igd2l0aCBzdGFjaycpO1xuICAgICAgICBlcnJvci5zdGFjayA9ICdFcnJvcjogRXJyb3Igd2l0aCBzdGFja1xcbiAgYXQgdGVzdC50czoxOjEnO1xuXG4gICAgICAgIHNwYW5SZXN1bHQuc2V0RXJyb3IoZXJyb3IpO1xuXG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAgICdlcnJvci5zdGFjaycsXG4gICAgICAgICAgZXJyb3Iuc3RhY2tcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZGV2ZSBmdW5jaW9uYXIgY29tIGVycm8gY3VzdG9taXphZG8nLCAoKSA9PiB7XG4gICAgICAgIGNsYXNzIEN1c3RvbUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgICAgICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgICAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSAnQ3VzdG9tRXJyb3InO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEN1c3RvbUVycm9yKCdDdXN0b20gZXJyb3IgbWVzc2FnZScpO1xuXG4gICAgICAgIHNwYW5SZXN1bHQuc2V0RXJyb3IoZXJyb3IpO1xuXG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAgICdlcnJvci50eXBlJyxcbiAgICAgICAgICAnQ3VzdG9tRXJyb3InXG4gICAgICAgICk7XG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAgICdlcnJvci5tZXNzYWdlJyxcbiAgICAgICAgICAnQ3VzdG9tIGVycm9yIG1lc3NhZ2UnXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdzZXRBdHRyaWJ1dGUnLCAoKSA9PiB7XG4gICAgICBpdCgnZGV2ZSBhZGljaW9uYXIgYXRyaWJ1dG8gc3RyaW5nJywgKCkgPT4ge1xuICAgICAgICBzcGFuUmVzdWx0LnNldEF0dHJpYnV0ZSgnY3VzdG9tLmtleScsICdjdXN0b20gdmFsdWUnKTtcblxuICAgICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgICAnY3VzdG9tLmtleScsXG4gICAgICAgICAgJ2N1c3RvbSB2YWx1ZSdcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZGV2ZSBhZGljaW9uYXIgYXRyaWJ1dG8gbnVtw6lyaWNvJywgKCkgPT4ge1xuICAgICAgICBzcGFuUmVzdWx0LnNldEF0dHJpYnV0ZSgnY3VzdG9tLmNvdW50JywgMTIzKTtcblxuICAgICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnY3VzdG9tLmNvdW50JywgMTIzKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnZGV2ZSBhZGljaW9uYXIgYXRyaWJ1dG8gYm9vbGVhbm8nLCAoKSA9PiB7XG4gICAgICAgIHNwYW5SZXN1bHQuc2V0QXR0cmlidXRlKCdjdXN0b20uZW5hYmxlZCcsIHRydWUpO1xuXG4gICAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAgICdjdXN0b20uZW5hYmxlZCcsXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyZWNvcmRFeGNlcHRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ2RldmUgcmVnaXN0cmFyIGV4Y2XDp8OjbyBjb20gdG9kb3Mgb3MgYXRyaWJ1dG9zJywgKCkgPT4ge1xuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ0V4Y2VwdGlvbiB0ZXN0Jyk7XG4gICAgICBlcnJvci5zdGFjayA9ICdFcnJvciBzdGFjayB0cmFjZSBoZXJlJztcblxuICAgICAgc3RhbmRhcmRUcmFjZXIucmVjb3JkRXhjZXB0aW9uKG1vY2tTcGFuLCBlcnJvcik7XG5cbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5yZWNvcmRFeGNlcHRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGVycm9yKTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdlcnJvci50eXBlJywgJ0Vycm9yJyk7XG4gICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgJ2Vycm9yLm1lc3NhZ2UnLFxuICAgICAgICAnRXhjZXB0aW9uIHRlc3QnXG4gICAgICApO1xuICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldEF0dHJpYnV0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAgICdlcnJvci5zdGFjaycsXG4gICAgICAgICdFcnJvciBzdGFjayB0cmFjZSBoZXJlJ1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGZ1bmNpb25hciBzZW0gc3RhY2sgdHJhY2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignTm8gc3RhY2snKTtcbiAgICAgIGRlbGV0ZSBlcnJvci5zdGFjaztcblxuICAgICAgc3RhbmRhcmRUcmFjZXIucmVjb3JkRXhjZXB0aW9uKG1vY2tTcGFuLCBlcnJvcik7XG5cbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5yZWNvcmRFeGNlcHRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGVycm9yKTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdlcnJvci50eXBlJywgJ0Vycm9yJyk7XG4gICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgJ2Vycm9yLm1lc3NhZ2UnLFxuICAgICAgICAnTm8gc3RhY2snXG4gICAgICApO1xuICAgICAgZXhwZWN0KG1vY2tTcGFuLnNldEF0dHJpYnV0ZSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDIpOyAvLyBBcGVuYXMgdHlwZSBlIG1lc3NhZ2VcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NlbsOhcmlvcyBkZSB1c28gY29tcGxldG9zJywgKCkgPT4ge1xuICAgIGl0KCdkZXZlIGdlcmVuY2lhciBmbHV4byBkZSBzdWNlc3NvIGNvbXBsZXRvJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc3BhblJlc3VsdCA9IHN0YW5kYXJkVHJhY2VyLnN0YXJ0U3Bhbih7XG4gICAgICAgIHNwYW5OYW1lOiAnY29tcGxldGUtb3BlcmF0aW9uJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdjb21wbGV0ZS1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgICAgZnVuY3Rpb25OYW1lOiAncHJvY2Vzc0RhdGEnLFxuICAgICAgICAgIHJlcXVlc3RJZDogJ3JlcS0xMjMnLFxuICAgICAgICB9LFxuICAgICAgICBodHRwOiB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgZW5kcG9pbnQ6ICcvYXBpL2RhdGEnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHNwYW5SZXN1bHQuc2V0QXR0cmlidXRlKCdjdXN0b20uc3RlcCcsICdwcm9jZXNzaW5nJyk7XG4gICAgICBzcGFuUmVzdWx0LnNldFN1Y2Nlc3ModHJ1ZSk7XG4gICAgICBzcGFuUmVzdWx0LmVuZCgpO1xuXG4gICAgICBleHBlY3QobW9ja1RyYWNlci5zdGFydFNwYW4pLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAnY3VzdG9tLnN0ZXAnLFxuICAgICAgICAncHJvY2Vzc2luZydcbiAgICAgICk7XG4gICAgICBleHBlY3QobW9ja1NwYW4uc2V0QXR0cmlidXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICAgJ2V4ZWN1dGlvbi5zdWNjZXNzJyxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRTdGF0dXMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuT0ssXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5lbmQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkZXZlIGdlcmVuY2lhciBmbHV4byBkZSBlcnJvIGNvbXBsZXRvJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc3BhblJlc3VsdCA9IHN0YW5kYXJkVHJhY2VyLnN0YXJ0U3Bhbih7XG4gICAgICAgIHNwYW5OYW1lOiAnZXJyb3Itb3BlcmF0aW9uJyxcbiAgICAgICAgc2VydmljZU5hbWU6ICdlcnJvci1zZXJ2aWNlJyxcbiAgICAgICAgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignT3BlcmF0aW9uIGZhaWxlZCcpO1xuXG4gICAgICBzcGFuUmVzdWx0LnNldEVycm9yKGVycm9yKTtcbiAgICAgIHNwYW5SZXN1bHQuZW5kKCk7XG5cbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5yZWNvcmRFeGNlcHRpb24pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGVycm9yKTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRBdHRyaWJ1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAnZXhlY3V0aW9uLnN1Y2Nlc3MnLFxuICAgICAgICBmYWxzZVxuICAgICAgKTtcbiAgICAgIGV4cGVjdChtb2NrU3Bhbi5zZXRTdGF0dXMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgICAgY29kZTogU3BhblN0YXR1c0NvZGUuRVJST1IsXG4gICAgICAgIG1lc3NhZ2U6ICdPcGVyYXRpb24gZmFpbGVkJyxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KG1vY2tTcGFuLmVuZCkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getEnvironmentStage(): string;
|