geni-bioinfo 0.1.7 → 0.1.9
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/dist/commands/costs.js +16 -2
- package/dist/commands/submission.js +58 -4
- package/dist/commands/tag.d.ts +2 -0
- package/dist/commands/tag.js +43 -0
- package/dist/commands/task.js +3 -3
- package/dist/format.d.ts +3 -0
- package/dist/format.js +30 -4
- package/dist/index.js +3 -1
- package/package.json +1 -1
package/dist/commands/costs.js
CHANGED
|
@@ -18,6 +18,8 @@ function addCommonOptions(cmd) {
|
|
|
18
18
|
}
|
|
19
19
|
function buildParams(opts) {
|
|
20
20
|
const params = new URLSearchParams();
|
|
21
|
+
if (process.env.GENI_TENANT_ID)
|
|
22
|
+
params.set('tenantId', process.env.GENI_TENANT_ID);
|
|
21
23
|
if (opts.startDate)
|
|
22
24
|
params.set('from', `${opts.startDate}T00:00:00.000Z`);
|
|
23
25
|
if (opts.endDate) {
|
|
@@ -90,6 +92,8 @@ exports.costsCommand
|
|
|
90
92
|
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
91
93
|
.action(async (ids, opts) => {
|
|
92
94
|
const params = new URLSearchParams();
|
|
95
|
+
if (process.env.GENI_TENANT_ID)
|
|
96
|
+
params.set('tenantId', process.env.GENI_TENANT_ID);
|
|
93
97
|
ids.forEach(id => params.append('id', id));
|
|
94
98
|
if (opts.submissionId)
|
|
95
99
|
params.set('submissionId', opts.submissionId);
|
|
@@ -149,6 +153,13 @@ addCommonOptions(exports.costsCommand
|
|
|
149
153
|
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/costs/over-time${qs(params)}`));
|
|
150
154
|
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.analyticsOverTimeColumns);
|
|
151
155
|
});
|
|
156
|
+
addCommonOptions(exports.costsCommand
|
|
157
|
+
.command('tag <name>')
|
|
158
|
+
.description('Cost grouped by tag value')
|
|
159
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))).action(async (name, opts) => {
|
|
160
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/costs/tag/${encodeURIComponent(name)}${qs(buildParams(opts))}`));
|
|
161
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.costsByTagColumns);
|
|
162
|
+
});
|
|
152
163
|
exports.costsCommand
|
|
153
164
|
.command('sync')
|
|
154
165
|
.description('Trigger a CUR actual-cost sync')
|
|
@@ -157,8 +168,11 @@ exports.costsCommand
|
|
|
157
168
|
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)('/costs/sync'), {
|
|
158
169
|
method: 'POST',
|
|
159
170
|
headers: { 'Content-Type': 'application/json' },
|
|
160
|
-
body: JSON.stringify({
|
|
171
|
+
body: JSON.stringify({
|
|
172
|
+
reset: opts.reset ?? false,
|
|
173
|
+
...(process.env.GENI_TENANT_ID ? { tenantId: process.env.GENI_TENANT_ID } : {}),
|
|
174
|
+
}),
|
|
161
175
|
});
|
|
162
176
|
console.log(`Sync job enqueued: ${data.jobId}`);
|
|
163
177
|
});
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY29zdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJDO0FBQzNDLGtDQUEyQztBQUMzQyw0Q0FhcUI7QUFRckIsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUE7QUFFckMsU0FBUyxTQUFTLENBQUMsS0FBYTtJQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ2hGLE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsR0FBWTtJQUNwQyxPQUFPLEdBQUc7U0FDUCxNQUFNLENBQUMsMkJBQTJCLEVBQUUsNkJBQTZCLEVBQUUsU0FBUyxDQUFDO1NBQzdFLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSxTQUFTLENBQUM7U0FDekUsTUFBTSxDQUFDLDhCQUE4QixFQUFFLCtEQUErRCxDQUFDLENBQUE7QUFDNUcsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQWM7SUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtJQUVwQyxJQUFJLElBQUksQ0FBQyxTQUFTO1FBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRXpFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQTtRQUNuRCxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNoQyxNQUFNLENBQUMsR0FBRyxD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YUFBYSxDQUFDLEVBQUU7UUFDbEQsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUU7UUFDL0MsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUUsQ0FBQztLQUNyRCxDQUFzQixDQUFBO0lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0FBQ2pELENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCwgT3B0aW9uIH0gZnJvbSAnY29tbWFuZGVyJ1xuaW1wb3J0IHsgYXBpVXJsLCBmZXRjaEpzb24gfSBmcm9tICcuLi9hdXRoJ1xuaW1wb3J0IHtcbiAgZm9ybWF0T3V0cHV0LFxuICBhbmFseXRpY3NTdW1tYXJ5Q29sdW1ucyxcbiAgYW5hbHl0aWNzQnlTdWJtaXNzaW9uQ29sdW1ucyxcbiAgYW5hbHl0aWNzQnlFbnZpcm9ubWVudENvbHVtbnMsXG4gIGFuYWx5dGljc0J5UXVldWVDb2x1bW5zLFxuICBhbmFseXRpY3NCeUluc3RhbmNlVHlwZUNvbHVtbnMsXG4gIGFuYWx5dGljc092ZXJUaW1lQ29sdW1ucyxcbiAgY29zdHNCeUVuZ2luZUNvbHVtbnMsXG4gIGNvc3RzQnlFeGVjdXRpb25Nb2RlQ29sdW1ucyxcbiAgY29zdHNCeVRhc2tDb2x1bW5zLFxuICBjb3N0c0J5SW5zdGFuY2VDb2x1bW5zLFxuICB0eXBlIE91dHB1dEZvcm1hdCxcbn0gZnJvbSAnLi4vZm9ybWF0LmpzJ1xuXG50eXBlIEJhc2VPcHRzID0ge1xuICBzdGFydERhdGU/OiBzdHJpbmdcbiAgZW5kRGF0ZT86IHN0cmluZ1xuICBzdWJtaXNzaW9uU3RhdHVzPzogc3RyaW5nXG59XG5cbmNvbnN0IERBVEVfUkUgPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9JC9cblxuZnVuY3Rpb24gcGFyc2VEYXRlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIURBVEVfUkUudGVzdCh2YWx1ZSkpIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgWVlZWS1NTS1ERCwgZ290IFwiJHt2YWx1ZX1cImApXG4gIHJldHVybiB2YWx1ZVxufVxuXG5mdW5jdGlvbiBhZGRDb21tb25PcHRpb25zKGNtZDogQ29tbWFuZCk6IENvbW1hbmQge1xuICByZXR1cm4gY21kXG4gICAgLm9wdGlvbignLS1zdGFydC1kYXRlIDxZWVlZLU1NLUREPicsICdTdGFydCBkYXRlIChVVEMsIGluY2x1c2l2ZSknLCBwYXJzZURhdGUpXG4gICAgLm9wdGlvbignLS1lbmQtZGF0ZSA8WVlZWS1NTS1ERD4nLCAnRW5kIGRhdGUgKFVUQywgaW5jbHVzaXZlKScsIHBhcnNlRGF0ZSlcbiAgICAub3B0aW9uKCctLXN1Ym1pc3Npb24tc3RhdHVzIDxzdGF0dXM+JywgJ0ZpbHRlciBieSBzdWJtaXNzaW9uIHN0YXR1cyAoZS5nLiBTVUNDRUVERUQsIEZBSUxFRCwgUlVOTklORyknKVxufVxuXG5mdW5jdGlvbiBidWlsZFBhcmFtcyhvcHRzOiBCYXNlT3B0cyk6IFVSTFNlYXJjaFBhcmFtcyB7XG4gIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuXG4gIGlmIChvcHRzLnN0YXJ0RGF0ZSkgcGFyYW1zLnNldCgnZnJvbScsIGAke29wdHMuc3RhcnREYXRlfVQwMDowMDowMC4wMDBaYClcblxuICBpZiAob3B0cy5lbmREYXRlKSB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKGAke29wdHMuZW5kRGF0ZX1UMDA6MDA6MDAuMDAwWmApXG4gICAgZC5zZXRVVENEYXRlKGQuZ2V0VVRDRGF0ZSgpICsgMSlcbiAgICBwYXJhbXMuc2V0KCd0bycsIGQudG9JU09TdHJpbmcoKSlcbiAgfVxuXG4gIGlmIChvcHRzLnN1Ym1pc3Npb25TdGF0dXMpIHBhcmFtcy5zZXQoJ3N1Ym1pc3Npb25TdGF0dXMnLCBvcHRzLnN1Ym1pc3Npb25TdGF0dXMpXG4gIHJldHVybiBwYXJhbXNcbn1cblxuZnVuY3Rpb24gcXMocGFyYW1zOiBVUkxTZWFyY2hQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCBzID0gcGFyYW1zLnRvU3RyaW5nKClcbiAgcmV0dXJuIHMgPyBgPyR7c31gIDogJydcbn1cblxuZXhwb3J0IGNvbnN0IGNvc3RzQ29tbWFuZCA9IG5ldyBDb21tYW5kKCdjb3N0cycpXG4gIC5kZXNjcmlwdGlvbignVmlldyBjb3N0IGFuYWx5dGljcycpXG5cbmFkZENvbW1vbk9wdGlvbnMoXG4gIGNvc3RzQ29tbWFuZFxuICAgIC5jb21tYW5kKCdzdW1tYXJ5JylcbiAgICAuZGVzY3JpcHRpb24oJ092ZXJhbGwgY29zdCB0b3RhbHMgZm9yIHRoZSB0ZW5hbnQnKVxuICAgIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuKS5hY3Rpb24oYXN5bmMgKG9wdHM6IEJhc2VPcHRzICYgeyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvY29zdHMvc3VtbWFyeSR7cXMoYnVpbGRQYXJhbXMob3B0cykpfWApKVxuICBmb3JtYXRPdXRwdXQoZGF0YSwgb3B0cy5mb3JtYXQsIGFuYWx5dGljc1N1bW1hcnlDb2x1bW5zKVxufSlcblxuYWRkQ29tbW9uT3B0aW9ucyhcbiAgY29zdHNDb21tYW5kXG4gICAgLmNvbW1hbmQoJ3N1Ym1pc3Npb24nKVxuICAgIC5kZXNjcmlwdGlvbignUGVyLXN1Ym1pc3Npb24gY29zdCBicmVha2Rvd24nKVxuICAgIC5hcmd1bWVudCgnW2lkcy4uLl0nLCAnRmlsdGVyIGJ5IHN1Ym1pc3Npb24gSURzJylcbiAgICAub3B0aW9uKCctLXN0YXR1cyA8c3RhdHVzPicsICdGaWx0ZXIgYnkgc3VibWlzc2lvbiBzdGF0dXMgKGNhc2UgaW5zZW5zaXRpdmUsIGUuZy4gc3VjY2VlZGVkLCBGQUlMRUQpJylcbiAgICAub3B0aW9uKCctLWxpbWl0IDxuPicsICdNYXggcmVzdWx0cyAoMeKAkzIwMCknLCAnNTAnKVxuICAgIC5vcHRpb24oJy0tb2Zmc2V0IDxuPicsICdQYWdpbmF0aW9uIG9mZnNldCcsICcwJylcbiAgICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbikuYWN0aW9uKGFzeW5jIChpZHM6IHN0cmluZ1tdLCBvcHRzOiBCYXNlT3B0cyAmIHsgc3RhdHVzPzogc3RyaW5nOyBsaW1pdDogc3RyaW5nOyBvZmZzZXQ6IHN0cmluZzsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBidWlsZFBhcmFtcyhvcHRzKVxuICBpZiAob3B0cy5zdGF0dXMpIHBhcmFtcy5zZXQoJ3N1Ym1pc3Npb25TdGF0dXMnLCBvcHRzLnN0YXR1cy50b1VwcGVyQ2FzZSgpKVxuICBpZHMuZm9yRWFjaChpZCA9PiBwYXJhbXMuYXBwZW5kKCdpZCcsIGlkKSlcbiAgcGFyYW1zLnNldCgnbGltaXQnLCBvcHRzLmxpbWl0KVxuICBwYXJhbXMuc2V0KCdvZmZzZXQnLCBvcHRzLm9mZnNldClcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy9zdWJtaXNzaW9uJHtxcyhwYXJhbXMpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgYW5hbHl0aWNzQnlTdWJtaXNzaW9uQ29sdW1ucylcbn0pXG5cbmFkZENvbW1vbk9wdGlvbnMoXG4gIGNvc3RzQ29tbWFuZFxuICAgIC5jb21tYW5kKCdlbnZpcm9ubWVudCcpXG4gICAgLmRlc2NyaXB0aW9uKCdDb3N0IGdyb3VwZWQgYnkgZW52aXJvbm1lbnQnKVxuICAgIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuKS5hY3Rpb24oYXN5bmMgKG9wdHM6IEJhc2VPcHRzICYgeyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvY29zdHMvZW52aXJvbm1lbnQke3FzKGJ1aWxkUGFyYW1zKG9wdHMpKX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIGFuYWx5dGljc0J5RW52aXJvbm1lbnRDb2x1bW5zKVxufSlcblxuYWRkQ29tbW9uT3B0aW9ucyhcbiAgY29zdHNDb21tYW5kXG4gICAgLmNvbW1hbmQoJ3F1ZXVlJylcbiAgICAuZGVzY3JpcHRpb24oJ0Nvc3QgZ3JvdXBlZCBieSBxdWV1ZScpXG4gICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4pLmFjdGlvbihhc3luYyAob3B0czogQmFzZU9wdHMgJiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy9xdWV1ZSR7cXMoYnVpbGRQYXJhbXMob3B0cykpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgYW5hbHl0aWNzQnlRdWV1ZUNvbHVtbnMpXG59KVxuXG5hZGRDb21tb25PcHRpb25zKFxuICBjb3N0c0NvbW1hbmRcbiAgICAuY29tbWFuZCgnaW5zdGFuY2UtdHlwZScpXG4gICAgLmRlc2NyaXB0aW9uKCdDb3N0IGdyb3VwZWQgYnkgRUMyIGluc3RhbmNlIHR5cGUgYW5kIG1hcmtldCB0eXBlJylcbiAgICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbikuYWN0aW9uKGFzeW5jIChvcHRzOiBCYXNlT3B0cyAmIHsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL2Nvc3RzL2luc3RhbmNlLXR5cGUke3FzKGJ1aWxkUGFyYW1zKG9wdHMpKX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIGFuYWx5dGljc0J5SW5zdGFuY2VUeXBlQ29sdW1ucylcbn0pXG5cbmNvc3RzQ29tbWFuZFxuICAuY29tbWFuZCgndGFzaycpXG4gIC5kZXNjcmlwdGlvbignUGVyLXRhc2sgY29zdCBicmVha2Rvd24nKVxuICAuYXJndW1lbnQoJ1tpZHMuLi5dJywgJ0ZpbHRlciBieSB0YXNrIElEcycpXG4gIC5vcHRpb24oJy0tc3VibWlzc2lvbi1pZCA8aWQ+JywgJ0ZpbHRlciBieSBzdWJtaXNzaW9uIElEJylcbiAgLm9wdGlvbignLS1saW1pdCA8bj4nLCAnTWF4IHJlc3VsdHMgKDHigJMyMDApJywgJzUwJylcbiAgLm9wdGlvbignLS1vZmZzZXQgPG4+JywgJ1BhZ2luYXRpb24gb2Zmc2V0JywgJzAnKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbiAgLmFjdGlvbihhc3luYyAoaWRzOiBzdHJpbmdbXSwgb3B0czogeyBzdWJtaXNzaW9uSWQ/OiBzdHJpbmc7IGxpbWl0OiBzdHJpbmc7IG9mZnNldDogc3RyaW5nOyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgaWRzLmZvckVhY2goaWQgPT4gcGFyYW1zLmFwcGVuZCgnaWQnLCBpZCkpXG4gICAgaWYgKG9wdHMuc3VibWlzc2lvbklkKSBwYXJhbXMuc2V0KCdzdWJtaXNzaW9uSWQnLCBvcHRzLnN1Ym1pc3Npb25JZClcbiAgICBwYXJhbXMuc2V0KCdsaW1pdCcsIG9wdHMubGltaXQpXG4gICAgcGFyYW1zLnNldCgnb2Zmc2V0Jywgb3B0cy5vZmZzZXQpXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy90YXNrJHtxcyhwYXJhbXMpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICAgIGZvcm1hdE91dHB1dChvcHRzLmZvcm1hdCA9PT0gJ2pzb24nID8gZGF0YSA6IGRhdGEuaXRlbXMsIG9wdHMuZm9ybWF0LCBjb3N0c0J5VGFza0NvbHVtbnMpXG4gIH0pXG5cbmFkZENvbW1vbk9wdGlvbnMoXG4gIGNvc3RzQ29tbWFuZFxuICAgIC5jb21tYW5kKCdpbnN0YW5jZScpXG4gICAgLmRlc2NyaXB0aW9uKCdQZXItaW5zdGFuY2UgY29zdCBicmVha2Rvd24nKVxuICAgIC5vcHRpb24oJy0tZW52aXJvbm1lbnQtaWQgPGlkPicsICAgJ0ZpbHRlciBieSBlbnZpcm9ubWVudCBJRCcpXG4gICAgLm9wdGlvbignLS1lbmdpbmUtaWQgPGlkPicsICAgICAgICAnRmlsdGVyIGJ5IGVuZ2luZSBJRCcpXG4gICAgLm9wdGlvbignLS1xdWV1ZS1pZCA8aWQ+JywgICAgICAgICAnRmlsdGVyIGJ5IHF1ZXVlIElEJylcbiAgICAub3B0aW9uKCctLWluc3RhbmNlLXR5cGUgPHR5cGU+JywgICdGaWx0ZXIgYnkgRUMyIGluc3RhbmNlIHR5cGUgKGUuZy4gbTUueGxhcmdlKScpXG4gICAgLm9wdGlvbignLS1leGVjdXRpb24tbW9kZSA8bW9kZT4nLCAnRmlsdGVyIGJ5IGV4ZWN1dGlvbiBtb2RlIChlLmcuIFNQT1QsIE9OX0RFTUFORCknKVxuICAgIC5vcHRpb24oJy0tbGltaXQgPG4+JywgICdNYXggcmVzdWx0cyAoMeKAkzIwMCknLCAnNTAnKVxuICAgIC5vcHRpb24oJy0tb2Zmc2V0IDxuPicsICdQYWdpbmF0aW9uIG9mZnNldCcsICcwJylcbiAgICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbikuYWN0aW9uKGFzeW5jIChvcHRzOiBCYXNlT3B0cyAmIHtcbiAgZW52aXJvbm1lbnRJZD86IHN0cmluZzsgZW5naW5lSWQ/OiBzdHJpbmc7IHF1ZXVlSWQ/OiBzdHJpbmc7XG4gIGluc3RhbmNlVHlwZT86IHN0cmluZzsgZXhlY3V0aW9uTW9kZT86IHN0cmluZztcbiAgbGltaXQ6IHN0cmluZzsgb2Zmc2V0OiBzdHJpbmc7IGZvcm1hdDogT3V0cHV0Rm9ybWF0XG59KSA9PiB7XG4gIGNvbnN0IHBhcmFtcyA9IGJ1aWxkUGFyYW1zKG9wdHMpXG4gIGlmIChvcHRzLmVudmlyb25tZW50SWQpIHBhcmFtcy5zZXQoJ2Vudmlyb25tZW50SWQnLCBvcHRzLmVudmlyb25tZW50SWQpXG4gIGlmIChvcHRzLmVuZ2luZUlkKSAgICAgIHBhcmFtcy5zZXQoJ2VuZ2luZUlkJywgb3B0cy5lbmdpbmVJZClcbiAgaWYgKG9wdHMucXVldWVJZCkgICAgICAgcGFyYW1zLnNldCgncXVldWVJZCcsIG9wdHMucXVldWVJZClcbiAgaWYgKG9wdHMuaW5zdGFuY2VUeXBlKSAgcGFyYW1zLnNldCgnaW5zdGFuY2VUeXBlJywgb3B0cy5pbnN0YW5jZVR5cGUpXG4gIGlmIChvcHRzLmV4ZWN1dGlvbk1vZGUpIHBhcmFtcy5zZXQoJ2V4ZWN1dGlvbk1vZGUnLCBvcHRzLmV4ZWN1dGlvbk1vZGUpXG4gIHBhcmFtcy5zZXQoJ2xpbWl0Jywgb3B0cy5saW1pdClcbiAgcGFyYW1zLnNldCgnb2Zmc2V0Jywgb3B0cy5vZmZzZXQpXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvY29zdHMvaW5zdGFuY2Uke3FzKHBhcmFtcyl9YCkpIGFzIHsgaXRlbXM6IHVua25vd25bXSB9XG4gIGZvcm1hdE91dHB1dChvcHRzLmZvcm1hdCA9PT0gJ2pzb24nID8gZGF0YSA6IGRhdGEuaXRlbXMsIG9wdHMuZm9ybWF0LCBjb3N0c0J5SW5zdGFuY2VDb2x1bW5zKVxufSlcblxuYWRkQ29tbW9uT3B0aW9ucyhcbiAgY29zdHNDb21tYW5kXG4gICAgLmNvbW1hbmQoJ2VuZ2luZScpXG4gICAgLmRlc2NyaXB0aW9uKCdDb3N0IGdyb3VwZWQgYnkgZW5naW5lJylcbiAgICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbikuYWN0aW9uKGFzeW5jIChvcHRzOiBCYXNlT3B0cyAmIHsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL2Nvc3RzL2VuZ2luZSR7cXMoYnVpbGRQYXJhbXMob3B0cykpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgY29zdHNCeUVuZ2luZUNvbHVtbnMpXG59KVxuXG5hZGRDb21tb25PcHRpb25zKFxuICBjb3N0c0NvbW1hbmRcbiAgICAuY29tbWFuZCgnZXhlY3V0aW9uLW1vZGUnKVxuICAgIC5kZXNjcmlwdGlvbignQ29zdCBncm91cGVkIGJ5IGV4ZWN1dGlvbiBtb2RlIChzcG90IC8gb24tZGVtYW5kKScpXG4gICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4pLmFjdGlvbihhc3luYyAob3B0czogQmFzZU9wdHMgJiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy9leGVjdXRpb24tbW9kZSR7cXMoYnVpbGRQYXJhbXMob3B0cykpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgY29zdHNCeUV4ZWN1dGlvbk1vZGVDb2x1bW5zKVxufSlcblxuYWRkQ29tbW9uT3B0aW9ucyhcbiAgY29zdHNDb21tYW5kXG4gICAgLmNvbW1hbmQoJ292ZXItdGltZScpXG4gICAgLmRlc2NyaXB0aW9uKCdDb3N0IGJ1Y2tldGVkIGJ5IHRpbWUgcGVyaW9kJylcbiAgICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0taW50ZXJ2YWwgPGludGVydmFsPicsICdUaW1lIGJ1Y2tldCBzaXplJykuY2hvaWNlcyhbJ2RheScsICd3ZWVrJywgJ21vbnRoJ10pLmRlZmF1bHQoJ2RheScpKVxuICAgIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuKS5hY3Rpb24oYXN5bmMgKG9wdHM6IEJhc2VPcHRzICYgeyBpbnRlcnZhbDogc3RyaW5nOyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gIGNvbnN0IHBhcmFtcyA9IGJ1aWxkUGFyYW1zKG9wdHMpXG4gIHBhcmFtcy5zZXQoJ2ludGVydmFsJywgb3B0cy5pbnRlcnZhbClcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy9vdmVyLXRpbWUke3FzKHBhcmFtcyl9YCkpIGFzIHsgaXRlbXM6IHVua25vd25bXSB9XG4gIGZvcm1hdE91dHB1dChvcHRzLmZvcm1hdCA9PT0gJ2pzb24nID8gZGF0YSA6IGRhdGEuaXRlbXMsIG9wdHMuZm9ybWF0LCBhbmFseXRpY3NPdmVyVGltZUNvbHVtbnMpXG59KVxuXG5jb3N0c0NvbW1hbmRcbiAgLmNvbW1hbmQoJ3N5bmMnKVxuICAuZGVzY3JpcHRpb24oJ1RyaWdnZXIgYSBDVVIgYWN0dWFsLWNvc3Qgc3luYycpXG4gIC5vcHRpb24oJy0tcmVzZXQnLCAnQ2xlYXIgYWxsIGFjdHVhbCBjb3N0IGRhdGEgYmVmb3JlIHN5bmNpbmcsIGZvcmNpbmcgYSBmdWxsIHJlY2FsY3VsYXRpb24gZnJvbSBDVVInKVxuICAuYWN0aW9uKGFzeW5jIChvcHRzOiB7IHJlc2V0PzogYm9vbGVhbiB9KSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoJy9jb3N0cy9zeW5jJyksIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHJlc2V0OiBvcHRzLnJlc2V0ID8/IGZhbHNlIH0pLFxuICAgIH0pIGFzIHsgam9iSWQ6IHN0cmluZyB9XG4gICAgY29uc29sZS5sb2coYFN5bmMgam9iIGVucXVldWVkOiAke2RhdGEuam9iSWR9YClcbiAgfSlcbiJdfQ==
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY29zdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJDO0FBQzNDLGtDQUEyQztBQUMzQyw0Q0FjcUI7QUFRckIsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUE7QUFFckMsU0FBUyxTQUFTLENBQUMsS0FBYTtJQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ2hGLE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsR0FBWTtJQUNwQyxPQUFPLEdBQUc7U0FDUCxNQUFNLENBQUMsMkJBQTJCLEVBQUUsNkJBQTZCLEVBQUUsU0FBUyxDQUFDO1NBQzdFLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSxTQUFTLENBQUM7U0FDekUsTUFBTSxDQUFDLDhCQUE4QixFQUFFLCtEQUErRCxDQUFDLENBQUE7QUFDNUcsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQWM7SUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtJQUVwQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYztRQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUE7SUFFbEYsSUFBSSxJQUFJLENBQUMsU0FBUztRQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsZ0JBQWdCLENBQUMsQ0FBQTtJQUV6RSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQixNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFP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QUM7WUFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSztZQUMxQixHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNoRixDQUFDO0tBQ0gsQ0FBc0IsQ0FBQTtJQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtBQUNqRCxDQUFDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmQsIE9wdGlvbiB9IGZyb20gJ2NvbW1hbmRlcidcbmltcG9ydCB7IGFwaVVybCwgZmV0Y2hKc29uIH0gZnJvbSAnLi4vYXV0aCdcbmltcG9ydCB7XG4gIGZvcm1hdE91dHB1dCxcbiAgYW5hbHl0aWNzU3VtbWFyeUNvbHVtbnMsXG4gIGFuYWx5dGljc0J5U3VibWlzc2lvbkNvbHVtbnMsXG4gIGFuYWx5dGljc0J5RW52aXJvbm1lbnRDb2x1bW5zLFxuICBhbmFseXRpY3NCeVF1ZXVlQ29sdW1ucyxcbiAgYW5hbHl0aWNzQnlJbnN0YW5jZVR5cGVDb2x1bW5zLFxuICBhbmFseXRpY3NPdmVyVGltZUNvbHVtbnMsXG4gIGNvc3RzQnlFbmdpbmVDb2x1bW5zLFxuICBjb3N0c0J5RXhlY3V0aW9uTW9kZUNvbHVtbnMsXG4gIGNvc3RzQnlUYXNrQ29sdW1ucyxcbiAgY29zdHNCeUluc3RhbmNlQ29sdW1ucyxcbiAgY29zdHNCeVRhZ0NvbHVtbnMsXG4gIHR5cGUgT3V0cHV0Rm9ybWF0LFxufSBmcm9tICcuLi9mb3JtYXQuanMnXG5cbnR5cGUgQmFzZU9wdHMgPSB7XG4gIHN0YXJ0RGF0ZT86IHN0cmluZ1xuICBlbmREYXRlPzogc3RyaW5nXG4gIHN1Ym1pc3Npb25TdGF0dXM/OiBzdHJpbmdcbn1cblxuY29uc3QgREFURV9SRSA9IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0kL1xuXG5mdW5jdGlvbiBwYXJzZURhdGUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghREFURV9SRS50ZXN0KHZhbHVlKSkgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBZWVlZLU1NLURELCBnb3QgXCIke3ZhbHVlfVwiYClcbiAgcmV0dXJuIHZhbHVlXG59XG5cbmZ1bmN0aW9uIGFkZENvbW1vbk9wdGlvbnMoY21kOiBDb21tYW5kKTogQ29tbWFuZCB7XG4gIHJldHVybiBjbWRcbiAgICAub3B0aW9uKCctLXN0YXJ0LWRhdGUgPFlZWVktTU0tREQ+JywgJ1N0YXJ0IGRhdGUgKFVUQywgaW5jbHVzaXZlKScsIHBhcnNlRGF0ZSlcbiAgICAub3B0aW9uKCctLWVuZC1kYXRlIDxZWVlZLU1NLUREPicsICdFbmQgZGF0ZSAoVVRDLCBpbmNsdXNpdmUpJywgcGFyc2VEYXRlKVxuICAgIC5vcHRpb24oJy0tc3VibWlzc2lvbi1zdGF0dXMgPHN0YXR1cz4nLCAnRmlsdGVyIGJ5IHN1Ym1pc3Npb24gc3RhdHVzIChlLmcuIFNVQ0NFRURFRCwgRkFJTEVELCBSVU5OSU5HKScpXG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGFyYW1zKG9wdHM6IEJhc2VPcHRzKTogVVJMU2VhcmNoUGFyYW1zIHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG5cbiAgaWYgKHByb2Nlc3MuZW52LkdFTklfVEVOQU5UX0lEKSBwYXJhbXMuc2V0KCd0ZW5hbnRJZCcsIHByb2Nlc3MuZW52LkdFTklfVEVOQU5UX0lEKVxuXG4gIGlmIChvcHRzLnN0YXJ0RGF0ZSkgcGFyYW1zLnNldCgnZnJvbScsIGAke29wdHMuc3RhcnREYXRlfVQwMDowMDowMC4wMDBaYClcblxuICBpZiAob3B0cy5lbmREYXRlKSB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKGAke29wdHMuZW5kRGF0ZX1UMDA6MDA6MDAuMDAwWmApXG4gICAgZC5zZXRVVENEYXRlKGQuZ2V0VVRDRGF0ZSgpICsgMSlcbiAgICBwYXJhbXMuc2V0KCd0bycsIGQudG9JU09TdHJpbmcoKSlcbiAgfVxuXG4gIGlmIChvcHRzLnN1Ym1pc3Npb25TdGF0dXMpIHBhcmFtcy5zZXQoJ3N1Ym1pc3Npb25TdGF0dXMnLCBvcHRzLnN1Ym1pc3Npb25TdGF0dXMpXG4gIHJldHVybiBwYXJhbXNcbn1cblxuZnVuY3Rpb24gcXMocGFyYW1zOiBVUkxTZWFyY2hQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCBzID0gcGFyYW1zLnRvU3RyaW5nKClcbiAgcmV0dXJuIHMgPyBgPyR7c31gIDogJydcbn1cblxuZXhwb3J0IGNvbnN0IGNvc3RzQ29tbWFuZCA9IG5ldyBDb21tYW5kKCdjb3N0cycpXG4gIC5kZXNjcmlwdGlvbignVmlldyBjb3N0IGFuYWx5dGljcycpXG5cbmFkZENvbW1vbk9wdGlvbnMoXG4gIGNvc3RzQ29tbWFuZFxuICAgIC5jb21tYW5kKCdzdW1tYXJ5JylcbiAgICAuZGVzY3JpcHRpb24oJ092ZXJhbGwgY29zdCB0b3RhbHMgZm9yIHRoZSB0ZW5hbnQnKVxuICAgIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuKS5hY3Rpb24oYXN5bmMgKG9wdHM6IEJhc2VPcHRzICYgeyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvY29zdHMvc3VtbWFyeSR7cXMoYnVpbGRQYXJhbXMob3B0cykpfWApKVxuICBmb3JtYXRPdXRwdXQoZGF0YSwgb3B0cy5mb3JtYXQsIGFuYWx5dGljc1N1bW1hcnlDb2x1bW5zKVxufSlcblxuYWRkQ29tbW9uT3B0aW9ucyhcbiAgY29zdHNDb21tYW5kXG4gICAgLmNvbW1hbmQoJ3N1Ym1pc3Npb24nKVxuICAgIC5kZXNjcmlwdGlvbignUGVyLXN1Ym1pc3Npb24gY29zdCBicmVha2Rvd24nKVxuICAgIC5hcmd1bWVudCgnW2lkcy4uLl0nLCAnRmlsdGVyIGJ5IHN1Ym1pc3Npb24gSURzJylcbiAgICAub3B0aW9uKCctLXN0YXR1cyA8c3RhdHVzPicsICdGaWx0ZXIgYnkgc3VibWlzc2lvbiBzdGF0dXMgKGNhc2UgaW5zZW5zaXRpdmUsIGUuZy4gc3VjY2VlZGVkLCBGQUlMRUQpJylcbiAgICAub3B0aW9uKCctLWxpbWl0IDxuPicsICdNYXggcmVzdWx0cyAoMeKAkzIwMCknLCAnNTAnKVxuICAgIC5vcHRpb24oJy0tb2Zmc2V0IDxuPicsICdQYWdpbmF0aW9uIG9mZnNldCcsICcwJylcbiAgICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbikuYWN0aW9uKGFzeW5jIChpZHM6IHN0cmluZ1tdLCBvcHRzOiBCYXNlT3B0cyAmIHsgc3RhdHVzPzogc3RyaW5nOyBsaW1pdDogc3RyaW5nOyBvZmZzZXQ6IHN0cmluZzsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBidWlsZFBhcmFtcyhvcHRzKVxuICBpZiAob3B0cy5zdGF0dXMpIHBhcmFtcy5zZXQoJ3N1Ym1pc3Npb25TdGF0dXMnLCBvcHRzLnN0YXR1cy50b1VwcGVyQ2FzZSgpKVxuICBpZHMuZm9yRWFjaChpZCA9PiBwYXJhbXMuYXBwZW5kKCdpZCcsIGlkKSlcbiAgcGFyYW1zLnNldCgnbGltaXQnLCBvcHRzLmxpbWl0KVxuICBwYXJhbXMuc2V0KCdvZmZzZXQnLCBvcHRzLm9mZnNldClcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy9zdWJtaXNzaW9uJHtxcyhwYXJhbXMpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgYW5hbHl0aWNzQnlTdWJtaXNzaW9uQ29sdW1ucylcbn0pXG5cbmFkZENvbW1vbk9wdGlvbnMoXG4gIGNvc3RzQ29tbWFuZFxuICAgIC5jb21tYW5kKCdlbnZpcm9ubWVudCcpXG4gICAgLmRlc2NyaXB0aW9uKCdDb3N0IGdyb3VwZWQgYnkgZW52aXJvbm1lbnQnKVxuICAgIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuKS5hY3Rpb24oYXN5bmMgKG9wdHM6IEJhc2VPcHRzICYgeyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvY29zdHMvZW52aXJvbm1lbnQke3FzKGJ1aWxkUGFyYW1zKG9wdHMpKX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIGFuYWx5dGljc0J5RW52aXJvbm1lbnRDb2x1bW5zKVxufSlcblxuYWRkQ29tbW9uT3B0aW9ucyhcbiAgY29zdHNDb21tYW5kXG4gICAgLmNvbW1hbmQoJ3F1ZXVlJylcbiAgICAuZGVzY3JpcHRpb24oJ0Nvc3QgZ3JvdXBlZCBieSBxdWV1ZScpXG4gICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4pLmFjdGlvbihhc3luYyAob3B0czogQmFzZU9wdHMgJiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy9xdWV1ZSR7cXMoYnVpbGRQYXJhbXMob3B0cykpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgYW5hbHl0aWNzQnlRdWV1ZUNvbHVtbnMpXG59KVxuXG5hZGRDb21tb25PcHRpb25zKFxuICBjb3N0c0NvbW1hbmRcbiAgICAuY29tbWFuZCgnaW5zdGFuY2UtdHlwZScpXG4gICAgLmRlc2NyaXB0aW9uKCdDb3N0IGdyb3VwZWQgYnkgRUMyIGluc3RhbmNlIHR5cGUgYW5kIG1hcmtldCB0eXBlJylcbiAgICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbikuYWN0aW9uKGFzeW5jIChvcHRzOiBCYXNlT3B0cyAmIHsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL2Nvc3RzL2luc3RhbmNlLXR5cGUke3FzKGJ1aWxkUGFyYW1zKG9wdHMpKX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIGFuYWx5dGljc0J5SW5zdGFuY2VUeXBlQ29sdW1ucylcbn0pXG5cbmNvc3RzQ29tbWFuZFxuICAuY29tbWFuZCgndGFzaycpXG4gIC5kZXNjcmlwdGlvbignUGVyLXRhc2sgY29zdCBicmVha2Rvd24nKVxuICAuYXJndW1lbnQoJ1tpZHMuLi5dJywgJ0ZpbHRlciBieSB0YXNrIElEcycpXG4gIC5vcHRpb24oJy0tc3VibWlzc2lvbi1pZCA8aWQ+JywgJ0ZpbHRlciBieSBzdWJtaXNzaW9uIElEJylcbiAgLm9wdGlvbignLS1saW1pdCA8bj4nLCAnTWF4IHJlc3VsdHMgKDHigJMyMDApJywgJzUwJylcbiAgLm9wdGlvbignLS1vZmZzZXQgPG4+JywgJ1BhZ2luYXRpb24gb2Zmc2V0JywgJzAnKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbiAgLmFjdGlvbihhc3luYyAoaWRzOiBzdHJpbmdbXSwgb3B0czogeyBzdWJtaXNzaW9uSWQ/OiBzdHJpbmc7IGxpbWl0OiBzdHJpbmc7IG9mZnNldDogc3RyaW5nOyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgaWYgKHByb2Nlc3MuZW52LkdFTklfVEVOQU5UX0lEKSBwYXJhbXMuc2V0KCd0ZW5hbnRJZCcsIHByb2Nlc3MuZW52LkdFTklfVEVOQU5UX0lEKVxuICAgIGlkcy5mb3JFYWNoKGlkID0+IHBhcmFtcy5hcHBlbmQoJ2lkJywgaWQpKVxuICAgIGlmIChvcHRzLnN1Ym1pc3Npb25JZCkgcGFyYW1zLnNldCgnc3VibWlzc2lvbklkJywgb3B0cy5zdWJtaXNzaW9uSWQpXG4gICAgcGFyYW1zLnNldCgnbGltaXQnLCBvcHRzLmxpbWl0KVxuICAgIHBhcmFtcy5zZXQoJ29mZnNldCcsIG9wdHMub2Zmc2V0KVxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvY29zdHMvdGFzayR7cXMocGFyYW1zKX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgY29zdHNCeVRhc2tDb2x1bW5zKVxuICB9KVxuXG5hZGRDb21tb25PcHRpb25zKFxuICBjb3N0c0NvbW1hbmRcbiAgICAuY29tbWFuZCgnaW5zdGFuY2UnKVxuICAgIC5kZXNjcmlwdGlvbignUGVyLWluc3RhbmNlIGNvc3QgYnJlYWtkb3duJylcbiAgICAub3B0aW9uKCctLWVudmlyb25tZW50LWlkIDxpZD4nLCAgICdGaWx0ZXIgYnkgZW52aXJvbm1lbnQgSUQnKVxuICAgIC5vcHRpb24oJy0tZW5naW5lLWlkIDxpZD4nLCAgICAgICAgJ0ZpbHRlciBieSBlbmdpbmUgSUQnKVxuICAgIC5vcHRpb24oJy0tcXVldWUtaWQgPGlkPicsICAgICAgICAgJ0ZpbHRlciBieSBxdWV1ZSBJRCcpXG4gICAgLm9wdGlvbignLS1pbnN0YW5jZS10eXBlIDx0eXBlPicsICAnRmlsdGVyIGJ5IEVDMiBpbnN0YW5jZSB0eXBlIChlLmcuIG01LnhsYXJnZSknKVxuICAgIC5vcHRpb24oJy0tZXhlY3V0aW9uLW1vZGUgPG1vZGU+JywgJ0ZpbHRlciBieSBleGVjdXRpb24gbW9kZSAoZS5nLiBTUE9ULCBPTl9ERU1BTkQpJylcbiAgICAub3B0aW9uKCctLWxpbWl0IDxuPicsICAnTWF4IHJlc3VsdHMgKDHigJMyMDApJywgJzUwJylcbiAgICAub3B0aW9uKCctLW9mZnNldCA8bj4nLCAnUGFnaW5hdGlvbiBvZmZzZXQnLCAnMCcpXG4gICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4pLmFjdGlvbihhc3luYyAob3B0czogQmFzZU9wdHMgJiB7XG4gIGVudmlyb25tZW50SWQ/OiBzdHJpbmc7IGVuZ2luZUlkPzogc3RyaW5nOyBxdWV1ZUlkPzogc3RyaW5nO1xuICBpbnN0YW5jZVR5cGU/OiBzdHJpbmc7IGV4ZWN1dGlvbk1vZGU/OiBzdHJpbmc7XG4gIGxpbWl0OiBzdHJpbmc7IG9mZnNldDogc3RyaW5nOyBmb3JtYXQ6IE91dHB1dEZvcm1hdFxufSkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBidWlsZFBhcmFtcyhvcHRzKVxuICBpZiAob3B0cy5lbnZpcm9ubWVudElkKSBwYXJhbXMuc2V0KCdlbnZpcm9ubWVudElkJywgb3B0cy5lbnZpcm9ubWVudElkKVxuICBpZiAob3B0cy5lbmdpbmVJZCkgICAgICBwYXJhbXMuc2V0KCdlbmdpbmVJZCcsIG9wdHMuZW5naW5lSWQpXG4gIGlmIChvcHRzLnF1ZXVlSWQpICAgICAgIHBhcmFtcy5zZXQoJ3F1ZXVlSWQnLCBvcHRzLnF1ZXVlSWQpXG4gIGlmIChvcHRzLmluc3RhbmNlVHlwZSkgIHBhcmFtcy5zZXQoJ2luc3RhbmNlVHlwZScsIG9wdHMuaW5zdGFuY2VUeXBlKVxuICBpZiAob3B0cy5leGVjdXRpb25Nb2RlKSBwYXJhbXMuc2V0KCdleGVjdXRpb25Nb2RlJywgb3B0cy5leGVjdXRpb25Nb2RlKVxuICBwYXJhbXMuc2V0KCdsaW1pdCcsIG9wdHMubGltaXQpXG4gIHBhcmFtcy5zZXQoJ29mZnNldCcsIG9wdHMub2Zmc2V0KVxuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL2Nvc3RzL2luc3RhbmNlJHtxcyhwYXJhbXMpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgY29zdHNCeUluc3RhbmNlQ29sdW1ucylcbn0pXG5cbmFkZENvbW1vbk9wdGlvbnMoXG4gIGNvc3RzQ29tbWFuZFxuICAgIC5jb21tYW5kKCdlbmdpbmUnKVxuICAgIC5kZXNjcmlwdGlvbignQ29zdCBncm91cGVkIGJ5IGVuZ2luZScpXG4gICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4pLmFjdGlvbihhc3luYyAob3B0czogQmFzZU9wdHMgJiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9jb3N0cy9lbmdpbmUke3FzKGJ1aWxkUGFyYW1zKG9wdHMpKX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIGNvc3RzQnlFbmdpbmVDb2x1bW5zKVxufSlcblxuYWRkQ29tbW9uT3B0aW9ucyhcbiAgY29zdHNDb21tYW5kXG4gICAgLmNvbW1hbmQoJ2V4ZWN1dGlvbi1tb2RlJylcbiAgICAuZGVzY3JpcHRpb24oJ0Nvc3QgZ3JvdXBlZCBieSBleGVjdXRpb24gbW9kZSAoc3BvdCAvIG9uLWRlbWFuZCknKVxuICAgIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuKS5hY3Rpb24oYXN5bmMgKG9wdHM6IEJhc2VPcHRzICYgeyBmb3JtYXQ6IE91dHB1dEZvcm1hdCB9KSA9PiB7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvY29zdHMvZXhlY3V0aW9uLW1vZGUke3FzKGJ1aWxkUGFyYW1zKG9wdHMpKX1gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIGNvc3RzQnlFeGVjdXRpb25Nb2RlQ29sdW1ucylcbn0pXG5cbmFkZENvbW1vbk9wdGlvbnMoXG4gIGNvc3RzQ29tbWFuZFxuICAgIC5jb21tYW5kKCdvdmVyLXRpbWUnKVxuICAgIC5kZXNjcmlwdGlvbignQ29zdCBidWNrZXRlZCBieSB0aW1lIHBlcmlvZCcpXG4gICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWludGVydmFsIDxpbnRlcnZhbD4nLCAnVGltZSBidWNrZXQgc2l6ZScpLmNob2ljZXMoWydkYXknLCAnd2VlaycsICdtb250aCddKS5kZWZhdWx0KCdkYXknKSlcbiAgICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbikuYWN0aW9uKGFzeW5jIChvcHRzOiBCYXNlT3B0cyAmIHsgaW50ZXJ2YWw6IHN0cmluZzsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICBjb25zdCBwYXJhbXMgPSBidWlsZFBhcmFtcyhvcHRzKVxuICBwYXJhbXMuc2V0KCdpbnRlcnZhbCcsIG9wdHMuaW50ZXJ2YWwpXG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvY29zdHMvb3Zlci10aW1lJHtxcyhwYXJhbXMpfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgYW5hbHl0aWNzT3ZlclRpbWVDb2x1bW5zKVxufSlcblxuYWRkQ29tbW9uT3B0aW9ucyhcbiAgY29zdHNDb21tYW5kXG4gICAgLmNvbW1hbmQoJ3RhZyA8bmFtZT4nKVxuICAgIC5kZXNjcmlwdGlvbignQ29zdCBncm91cGVkIGJ5IHRhZyB2YWx1ZScpXG4gICAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4pLmFjdGlvbihhc3luYyAobmFtZTogc3RyaW5nLCBvcHRzOiBCYXNlT3B0cyAmIHsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL2Nvc3RzL3RhZy8ke2VuY29kZVVSSUNvbXBvbmVudChuYW1lKX0ke3FzKGJ1aWxkUGFyYW1zKG9wdHMpKX1gKSkgYXMgeyB0YWdOYW1lOiBzdHJpbmc7IGl0ZW1zOiB1bmtub3duW10gfVxuICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgY29zdHNCeVRhZ0NvbHVtbnMpXG59KVxuXG5jb3N0c0NvbW1hbmRcbiAgLmNvbW1hbmQoJ3N5bmMnKVxuICAuZGVzY3JpcHRpb24oJ1RyaWdnZXIgYSBDVVIgYWN0dWFsLWNvc3Qgc3luYycpXG4gIC5vcHRpb24oJy0tcmVzZXQnLCAnQ2xlYXIgYWxsIGFjdHVhbCBjb3N0IGRhdGEgYmVmb3JlIHN5bmNpbmcsIGZvcmNpbmcgYSBmdWxsIHJlY2FsY3VsYXRpb24gZnJvbSBDVVInKVxuICAuYWN0aW9uKGFzeW5jIChvcHRzOiB7IHJlc2V0PzogYm9vbGVhbiB9KSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoJy9jb3N0cy9zeW5jJyksIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHJlc2V0OiBvcHRzLnJlc2V0ID8/IGZhbHNlLFxuICAgICAgICAuLi4ocHJvY2Vzcy5lbnYuR0VOSV9URU5BTlRfSUQgPyB7IHRlbmFudElkOiBwcm9jZXNzLmVudi5HRU5JX1RFTkFOVF9JRCB9IDoge30pLFxuICAgICAgfSksXG4gICAgfSkgYXMgeyBqb2JJZDogc3RyaW5nIH1cbiAgICBjb25zb2xlLmxvZyhgU3luYyBqb2IgZW5xdWV1ZWQ6ICR7ZGF0YS5qb2JJZH1gKVxuICB9KVxuIl19
|
|
@@ -11,6 +11,28 @@ const auth_1 = require("../auth");
|
|
|
11
11
|
const errors_1 = require("../errors");
|
|
12
12
|
const format_js_1 = require("../format.js");
|
|
13
13
|
const log_js_1 = require("./log.js");
|
|
14
|
+
const TAG_REGEX = /^[a-z0-9][a-z0-9._-]*$/i;
|
|
15
|
+
function collectKeyValue(raw, prev) {
|
|
16
|
+
const eqIdx = raw.indexOf('=');
|
|
17
|
+
if (eqIdx < 1)
|
|
18
|
+
throw (0, errors_1.invalidArgument)(`Tag "${raw}" must be in key=value format`);
|
|
19
|
+
const key = raw.slice(0, eqIdx).toLowerCase();
|
|
20
|
+
const value = raw.slice(eqIdx + 1).toLowerCase();
|
|
21
|
+
if (!TAG_REGEX.test(key))
|
|
22
|
+
throw (0, errors_1.invalidArgument)(`Tag key "${key}" contains invalid characters`);
|
|
23
|
+
if (!value || !TAG_REGEX.test(value))
|
|
24
|
+
throw (0, errors_1.invalidArgument)(`Tag value "${value}" is empty or contains invalid characters`);
|
|
25
|
+
return [...prev, { key, value }];
|
|
26
|
+
}
|
|
27
|
+
function collectKey(raw, prev) {
|
|
28
|
+
const key = raw.split('=')[0].toLowerCase();
|
|
29
|
+
if (!TAG_REGEX.test(key))
|
|
30
|
+
throw (0, errors_1.invalidArgument)(`Tag key "${key}" contains invalid characters`);
|
|
31
|
+
return [...prev, key];
|
|
32
|
+
}
|
|
33
|
+
function collectStr(val, prev) {
|
|
34
|
+
return [...prev, val];
|
|
35
|
+
}
|
|
14
36
|
function parseTimeToSeconds(value) {
|
|
15
37
|
const parts = value.split(':').map(Number);
|
|
16
38
|
if (parts.length !== 3 || parts.some(isNaN)) {
|
|
@@ -26,8 +48,10 @@ exports.submissionCommand
|
|
|
26
48
|
.description('List submissions')
|
|
27
49
|
.option('--status <status>', 'Filter by status (SUBMITTED, SUCCEEDED, FAILED)')
|
|
28
50
|
.option('--limit <n>', 'Maximum number of results to return', '10')
|
|
51
|
+
.option('--tag <key=value>', 'Filter by tag (repeatable)', collectKeyValue, [])
|
|
52
|
+
.option('--show-tag <key>', 'Show tag as a column (repeatable)', collectStr, [])
|
|
29
53
|
.addOption(new commander_1.Option('--sort <field>', 'Sort field').choices(['started', 'stopped', 'updated']).default('updated'))
|
|
30
|
-
.addOption(new commander_1.Option('--sort-order <order>', 'Sort order').choices(['
|
|
54
|
+
.addOption(new commander_1.Option('--sort-order <order>', 'Sort order').choices(['asc', 'desc']).default('desc'))
|
|
31
55
|
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
32
56
|
.action(async (opts) => {
|
|
33
57
|
const params = new URLSearchParams();
|
|
@@ -35,9 +59,11 @@ exports.submissionCommand
|
|
|
35
59
|
params.set('status', opts.status);
|
|
36
60
|
params.set('limit', opts.limit);
|
|
37
61
|
params.set('sort', opts.sort);
|
|
38
|
-
params.set('sortOrder', opts.sortOrder
|
|
62
|
+
params.set('sortOrder', opts.sortOrder);
|
|
63
|
+
opts.tag.forEach(t => params.append('tag', `${t.key}=${t.value}`));
|
|
39
64
|
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/submissions?${params}`));
|
|
40
|
-
(0, format_js_1.
|
|
65
|
+
const columns = (0, format_js_1.submissionColumnsWithTags)(opts.showTag);
|
|
66
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, columns);
|
|
41
67
|
});
|
|
42
68
|
exports.submissionCommand
|
|
43
69
|
.command('get <id>')
|
|
@@ -58,6 +84,7 @@ exports.submissionCommand
|
|
|
58
84
|
.requiredOption('--output-folder <s3-uri>', 'S3 URI prefix for workflow output files (e.g. s3://my-bucket/outputs/)')
|
|
59
85
|
.option('--alert-time <DD:HH:MM>', 'Alert time override (DD:HH:MM)')
|
|
60
86
|
.option('--cancel-time <DD:HH:MM>', 'Cancel time override (DD:HH:MM)')
|
|
87
|
+
.option('--tag <key=value>', 'Tag to attach (repeatable, e.g. --tag client=hiae)', collectKeyValue, [])
|
|
61
88
|
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
62
89
|
.action(async (opts) => {
|
|
63
90
|
const form = new FormData();
|
|
@@ -71,6 +98,7 @@ exports.submissionCommand
|
|
|
71
98
|
form.append('alertTimeSeconds', String(parseTimeToSeconds(opts.alertTime)));
|
|
72
99
|
if (opts.cancelTime)
|
|
73
100
|
form.append('cancelTimeSeconds', String(parseTimeToSeconds(opts.cancelTime)));
|
|
101
|
+
opts.tag.forEach(t => form.append('tag', `${t.key}=${t.value}`));
|
|
74
102
|
const paramsBuffer = await fs_1.default.promises.readFile(opts.paramsFile);
|
|
75
103
|
form.append('params', new Blob([paramsBuffer]), path_1.default.basename(opts.paramsFile));
|
|
76
104
|
const res = await fetch((0, auth_1.apiUrl)('/submissions'), {
|
|
@@ -113,5 +141,31 @@ exports.submissionCommand
|
|
|
113
141
|
const data = await (0, auth_1.readJsonResponse)(res, { method: 'POST', url });
|
|
114
142
|
console.log(`${data.message} (${data.submissionId})`);
|
|
115
143
|
});
|
|
144
|
+
exports.submissionCommand
|
|
145
|
+
.command('update <id>')
|
|
146
|
+
.description('Update tags on an existing submission')
|
|
147
|
+
.option('--add-tag <key=value>', 'Add a tag (repeatable)', collectKeyValue, [])
|
|
148
|
+
.option('--edit-tag <key=value>', 'Change a tag value (repeatable)', collectKeyValue, [])
|
|
149
|
+
.option('--remove-tag <key>', 'Remove a tag by key (repeatable)', collectKey, [])
|
|
150
|
+
.action(async (id, opts) => {
|
|
151
|
+
const url = (0, auth_1.apiUrl)(`/submissions/${id}`);
|
|
152
|
+
const body = {};
|
|
153
|
+
if (opts.addTag.length)
|
|
154
|
+
body.addTags = opts.addTag;
|
|
155
|
+
if (opts.editTag.length)
|
|
156
|
+
body.editTags = opts.editTag;
|
|
157
|
+
if (opts.removeTag.length)
|
|
158
|
+
body.removeTags = opts.removeTag;
|
|
159
|
+
const res = await fetch(url, {
|
|
160
|
+
method: 'PATCH',
|
|
161
|
+
headers: { ...(0, auth_1.getAuthHeaders)(), 'Content-Type': 'application/json' },
|
|
162
|
+
body: JSON.stringify(body),
|
|
163
|
+
});
|
|
164
|
+
if (res.status === 204) {
|
|
165
|
+
console.log('Submission tags updated');
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
await (0, auth_1.readJsonResponse)(res, { method: 'PATCH', url });
|
|
169
|
+
});
|
|
116
170
|
exports.submissionCommand.addCommand(log_js_1.logsSubcommand);
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWlzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9zdWJtaXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlDQUEyQztBQUMzQyw0Q0FBbUI7QUFDbkIsZ0RBQXVCO0FBQ3ZCLGtDQUE2RTtBQUM3RSxzQ0FBMkM7QUFDM0MsNENBQStGO0FBQy9GLHFDQUF5QztBQUV6QyxTQUFTLGtCQUFrQixDQUFDLEtBQWE7SUFDdkMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDMUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxJQUFBLHdCQUFlLEVBQ25CLHVEQUF1RCxFQUN2RCxtQkFBbUIsQ0FDcEIsQ0FBQTtJQUNILENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUE7SUFDcEMsT0FBTyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQTtBQUN6RCxDQUFDO0FBR1ksUUFBQSxpQkFBaUIsR0FBRyxJQUFJLG1CQUFPLENBQUMsWUFBWSxDQUFDO0tBQ3ZELFdBQVcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO0FBRTdDLHlCQUFpQjtLQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUM7S0FDZixXQUFXLENBQUMsa0JBQWtCLENBQUM7S0FDL0IsTUFBTSxDQUFDLG1CQUFtQixFQUFFLGlEQUFpRCxDQUFDO0tBQzlFLE1BQU0sQ0FBQyxhQUFhLEVBQUUscUNBQXFDLEVBQUUsSUFBSSxDQUFDO0tBQ2xFLFNBQVMsQ0FBQyxJ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QUFZLEdBQUcsQ0FBQyxDQUFBO0FBQ3ZELENBQUMsQ0FBQyxDQUFBO0FBRUoseUJBQWlCLENBQUMsVUFBVSxDQUFDLHVCQUFjLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmQsIE9wdGlvbiB9IGZyb20gJ2NvbW1hbmRlcidcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBhcGlVcmwsIGZldGNoSnNvbiwgZ2V0QXV0aEhlYWRlcnMsIHJlYWRKc29uUmVzcG9uc2UgfSBmcm9tICcuLi9hdXRoJ1xuaW1wb3J0IHsgaW52YWxpZEFyZ3VtZW50IH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IHsgZm9ybWF0RGV0YWlsLCBmb3JtYXRPdXRwdXQsIHN1Ym1pc3Npb25Db2x1bW5zLCB0eXBlIE91dHB1dEZvcm1hdCB9IGZyb20gJy4uL2Zvcm1hdC5qcydcbmltcG9ydCB7IGxvZ3NTdWJjb21tYW5kIH0gZnJvbSAnLi9sb2cuanMnXG5cbmZ1bmN0aW9uIHBhcnNlVGltZVRvU2Vjb25kcyh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgY29uc3QgcGFydHMgPSB2YWx1ZS5zcGxpdCgnOicpLm1hcChOdW1iZXIpXG4gIGlmIChwYXJ0cy5sZW5ndGggIT09IDMgfHwgcGFydHMuc29tZShpc05hTikpIHtcbiAgICB0aHJvdyBpbnZhbGlkQXJndW1lbnQoXG4gICAgICAnVGltZSBtdXN0IGJlIGluIEREOkhIOk1NIGZvcm1hdCAoZGF5czpob3VyczptaW51dGVzKS4nLFxuICAgICAgJ0V4YW1wbGU6IDAwOjEyOjMwJyxcbiAgICApXG4gIH1cbiAgY29uc3QgW2RheXMsIGhvdXJzLCBtaW51dGVzXSA9IHBhcnRzXG4gIHJldHVybiAoZGF5cyAqIDg2NDAwKSArIChob3VycyAqIDM2MDApICsgKG1pbnV0ZXMgKiA2MClcbn1cblxuXG5leHBvcnQgY29uc3Qgc3VibWlzc2lvbkNvbW1hbmQgPSBuZXcgQ29tbWFuZCgnc3VibWlzc2lvbicpXG4gIC5kZXNjcmlwdGlvbignTWFuYWdlIHdvcmtmbG93IHN1Ym1pc3Npb25zJylcblxuc3VibWlzc2lvbkNvbW1hbmRcbiAgLmNvbW1hbmQoJ2xpc3QnKVxuICAuZGVzY3JpcHRpb24oJ0xpc3Qgc3VibWlzc2lvbnMnKVxuICAub3B0aW9uKCctLXN0YXR1cyA8c3RhdHVzPicsICdGaWx0ZXIgYnkgc3RhdHVzIChTVUJNSVRURUQsIFNVQ0NFRURFRCwgRkFJTEVEKScpXG4gIC5vcHRpb24oJy0tbGltaXQgPG4+JywgJ01heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuJywgJzEwJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLXNvcnQgPGZpZWxkPicsICdTb3J0IGZpZWxkJykuY2hvaWNlcyhbJ3N0YXJ0ZWQnLCAnc3RvcHBlZCcsICd1cGRhdGVkJ10pLmRlZmF1bHQoJ3VwZGF0ZWQnKSlcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLXNvcnQtb3JkZXIgPG9yZGVyPicsICdTb3J0IG9yZGVyJykuY2hvaWNlcyhbJ2FzY2VuZGluZycsICdkZXNjZW5kaW5nJ10pLmRlZmF1bHQoJ2FzY2VuZGluZycpKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbiAgLmFjdGlvbihhc3luYyAob3B0czogeyBzdGF0dXM/OiBzdHJpbmc7IGxpbWl0OiBzdHJpbmc7IHNvcnQ6IHN0cmluZzsgc29ydE9yZGVyOiBzdHJpbmc7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICBpZiAob3B0cy5zdGF0dXMpIHBhcmFtcy5zZXQoJ3N0YXR1cycsIG9wdHMuc3RhdHVzKVxuICAgIHBhcmFtcy5zZXQoJ2xpbWl0Jywgb3B0cy5saW1pdClcbiAgICBwYXJhbXMuc2V0KCdzb3J0Jywgb3B0cy5zb3J0KVxuICAgIHBhcmFtcy5zZXQoJ3NvcnRPcmRlcicsIG9wdHMuc29ydE9yZGVyID09PSAnZGVzY2VuZGluZycgPyAnZGVzYycgOiAnYXNjJylcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL3N1Ym1pc3Npb25zPyR7cGFyYW1zfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICAgIGZvcm1hdE91dHB1dChvcHRzLmZvcm1hdCA9PT0gJ2pzb24nID8gZGF0YSA6IGRhdGEuaXRlbXMsIG9wdHMuZm9ybWF0LCBzdWJtaXNzaW9uQ29sdW1ucylcbiAgfSlcblxuc3VibWlzc2lvbkNvbW1hbmRcbiAgLmNvbW1hbmQoJ2dldCA8aWQ+JylcbiAgLmRlc2NyaXB0aW9uKCdHZXQgYSBzdWJtaXNzaW9uIGJ5IElEJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4gIC5hY3Rpb24oYXN5bmMgKGlkOiBzdHJpbmcsIG9wdHM6IHsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvc3VibWlzc2lvbnMvJHtpZH1gKSlcbiAgICBmb3JtYXREZXRhaWwoZGF0YSwgb3B0cy5mb3JtYXQsIHN1Ym1pc3Npb25Db2x1bW5zKVxuICB9KVxuXG5zdWJtaXNzaW9uQ29tbWFuZFxuICAuY29tbWFuZCgnY3JlYXRlJylcbiAgLmRlc2NyaXB0aW9uKCdTdWJtaXQgYSB3b3JrZmxvdyBydW4nKVxuICAucmVxdWlyZWRPcHRpb24oJy0td29ya2Zsb3ctbmFtZSA8bmFtZT4nLCAnV29ya2Zsb3cgbmFtZScpXG4gIC5vcHRpb24oJy0td29ya2Zsb3ctdmVyc2lvbiA8dmVyc2lvbj4nLCAnV29ya2Zsb3cgdmVyc2lvbicpXG4gIC5yZXF1aXJlZE9wdGlvbignLS1wYXJhbXMtZmlsZSA8ZmlsZT4nLCAnUGF0aCB0byBwYXJhbXMgZmlsZSAoLmpzb24vLnlhbWwvLnltbCknKVxuICAucmVxdWlyZWRPcHRpb24oJy0tZW5naW5lLWlkIDxpZD4nLCAnRW5naW5lIElEJylcbiAgLnJlcXVpcmVkT3B0aW9uKCctLXF1ZXVlLWlkIDxpZD4nLCAnUXVldWUgSUQnKVxuICAucmVxdWlyZWRPcHRpb24oJy0tb3V0cHV0LWZvbGRlciA8czMtdXJpPicsICdTMyBVUkkgcHJlZml4IGZvciB3b3JrZmxvdyBvdXRwdXQgZmlsZXMgKGUuZy4gczM6Ly9teS1idWNrZXQvb3V0cHV0cy8pJylcbiAgLm9wdGlvbignLS1hbGVydC10aW1lIDxERDpISDpNTT4nLCAnQWxlcnQgdGltZSBvdmVycmlkZSAoREQ6SEg6TU0pJylcbiAgLm9wdGlvbignLS1jYW5jZWwtdGltZSA8REQ6SEg6TU0+JywgJ0NhbmNlbCB0aW1lIG92ZXJyaWRlIChERDpISDpNTSknKVxuICAuYWRkT3B0aW9uKG5ldyBPcHRpb24oJy0tZm9ybWF0IDxmb3JtYXQ+JywgJ091dHB1dCBmb3JtYXQnKS5jaG9pY2VzKFsndGFibGUnLCAnanNvbicsICdjc3YnXSkuZGVmYXVsdCgndGFibGUnKSlcbiAgLmFjdGlvbihhc3luYyAob3B0czoge1xuICAgIHdvcmtmbG93TmFtZTogc3RyaW5nXG4gICAgd29ya2Zsb3dWZXJzaW9uPzogc3RyaW5nXG4gICAgcGFyYW1zRmlsZTogc3RyaW5nXG4gICAgZW5naW5lSWQ6IHN0cmluZ1xuICAgIHF1ZXVlSWQ6IHN0cmluZ1xuICAgIG91dHB1dEZvbGRlcjogc3RyaW5nXG4gICAgYWxlcnRUaW1lPzogc3RyaW5nXG4gICAgY2FuY2VsVGltZT86IHN0cmluZ1xuICAgIGZvcm1hdDogT3V0cHV0Rm9ybWF0XG4gIH0pID0+IHtcbiAgICBjb25zdCBmb3JtID0gbmV3IEZvcm1EYXRhKClcbiAgICBmb3JtLmFwcGVuZCgnd29ya2Zsb3dOYW1lJywgb3B0cy53b3JrZmxvd05hbWUpXG4gICAgaWYgKG9wdHMud29ya2Zsb3dWZXJzaW9uKSBmb3JtLmFwcGVuZCgnd29ya2Zsb3dWZXJzaW9uJywgb3B0cy53b3JrZmxvd1ZlcnNpb24pXG4gICAgZm9ybS5hcHBlbmQoJ2VuZ2luZUlkJywgb3B0cy5lbmdpbmVJZClcbiAgICBmb3JtLmFwcGVuZCgncXVldWVJZCcsIG9wdHMucXVldWVJZClcbiAgICBmb3JtLmFwcGVuZCgnb3V0cHV0Jywgb3B0cy5vdXRwdXRGb2xkZXIpXG4gICAgaWYgKG9wdHMuYWxlcnRUaW1lKSBmb3JtLmFwcGVuZCgnYWxlcnRUaW1lU2Vjb25kcycsIFN0cmluZyhwYXJzZVRpbWVUb1NlY29uZHMob3B0cy5hbGVydFRpbWUpKSlcbiAgICBpZiAob3B0cy5jYW5jZWxUaW1lKSBmb3JtLmFwcGVuZCgnY2FuY2VsVGltZVNlY29uZHMnLCBTdHJpbmcocGFyc2VUaW1lVG9TZWNvbmRzKG9wdHMuY2FuY2VsVGltZSkpKVxuICAgIGNvbnN0IHBhcmFtc0J1ZmZlciA9IGF3YWl0IGZzLnByb21pc2VzLnJlYWRGaWxlKG9wdHMucGFyYW1zRmlsZSlcbiAgICBmb3JtLmFwcGVuZCgncGFyYW1zJywgbmV3IEJsb2IoW3BhcmFtc0J1ZmZlcl0pLCBwYXRoLmJhc2VuYW1lKG9wdHMucGFyYW1zRmlsZSkpXG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChhcGlVcmwoJy9zdWJtaXNzaW9ucycpLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IGdldEF1dGhIZWFkZXJzKCksXG4gICAgICBib2R5OiBmb3JtLFxuICAgIH0pXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlYWRKc29uUmVzcG9uc2UocmVzLCB7IG1ldGhvZDogJ1BPU1QnLCB1cmw6IGFwaVVybCgnL3N1Ym1pc3Npb25zJykgfSlcbiAgICBmb3JtYXRPdXRwdXQoZGF0YSwgb3B0cy5mb3JtYXQsIHN1Ym1pc3Npb25Db2x1bW5zKVxuICB9KVxuXG5zdWJtaXNzaW9uQ29tbWFuZFxuICAuY29tbWFuZCgnY2FuY2VsIDxpZD4nKVxuICAuZGVzY3JpcHRpb24oJ0NhbmNlbCBhIHJ1bm5pbmcgc3VibWlzc2lvbicpXG4gIC5hY3Rpb24oYXN5bmMgKGlkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB1cmwgPSBhcGlVcmwoYC9zdWJtaXNzaW9ucy8ke2lkfS9jYW5jZWxgKVxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiBnZXRBdXRoSGVhZGVycygpLFxuICAgIH0pXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlYWRKc29uUmVzcG9uc2UocmVzLCB7IG1ldGhvZDogJ1BPU1QnLCB1cmwgfSkgYXMgeyBzdWJtaXNzaW9uSWQ6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1cbiAgICBjb25zb2xlLmxvZyhgJHtkYXRhLm1lc3NhZ2V9ICgke2RhdGEuc3VibWlzc2lvbklkfSlgKVxuICB9KVxuXG5zdWJtaXNzaW9uQ29tbWFuZFxuICAuY29tbWFuZCgncmV0cnkgPGlkPicpXG4gIC5kZXNjcmlwdGlvbignUmV0cnkgYSBmYWlsZWQgc3VibWlzc2lvbicpXG4gIC5vcHRpb24oJy0tZW5naW5lLWlkIDxpZD4nLCAnVXNlIGEgZGlmZmVyZW50IGVuZ2luZScpXG4gIC5vcHRpb24oJy0tcXVldWUtaWQgPGlkPicsICdVc2UgYSBkaWZmZXJlbnQgcXVldWUnKVxuICAuYWN0aW9uKGFzeW5jIChpZDogc3RyaW5nLCBvcHRzOiB7IGVuZ2luZUlkPzogc3RyaW5nOyBxdWV1ZUlkPzogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCB1cmwgPSBhcGlVcmwoYC9zdWJtaXNzaW9ucy8ke2lkfS9yZXRyeWApXG4gICAgY29uc3QgYm9keTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9XG4gICAgaWYgKG9wdHMuZW5naW5lSWQpIGJvZHkuZW5naW5lSWQgPSBvcHRzLmVuZ2luZUlkXG4gICAgaWYgKG9wdHMucXVldWVJZCkgYm9keS5xdWV1ZUlkID0gb3B0cy5xdWV1ZUlkXG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHsgLi4uZ2V0QXV0aEhlYWRlcnMoKSwgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgfSlcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVhZEpzb25SZXNwb25zZShyZXMsIHsgbWV0aG9kOiAnUE9TVCcsIHVybCB9KSBhcyB7IHN1Ym1pc3Npb25JZDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVxuICAgIGNvbnNvbGUubG9nKGAke2RhdGEubWVzc2FnZX0gKCR7ZGF0YS5zdWJtaXNzaW9uSWR9KWApXG4gIH0pXG5cbnN1Ym1pc3Npb25Db21tYW5kLmFkZENvbW1hbmQobG9nc1N1YmNvbW1hbmQpXG4iXX0=
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWlzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9zdWJtaXNzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlDQUEyQztBQUMzQyw0Q0FBbUI7QUFDbkIsZ0RBQXVCO0FBQ3ZCLGtDQUE2RTtBQUM3RSxzQ0FBMkM7QUFDM0MsNENBQTBIO0FBQzFILHFDQUF5QztBQUV6QyxNQUFNLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQTtBQUUzQyxTQUFTLGVBQWUsQ0FBQyxHQUFXLEVBQUUsSUFBMkM7SUFDL0UsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM5QixJQUFJLEtBQUssR0FBRyxDQUFDO1FBQUUsTUFBTSxJQUFBLHdCQUFlLEVBQUMsUUFBUSxHQUFHLCtCQUErQixDQUFDLENBQUE7SUFDaEYsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDN0MsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQUUsTUFBTSxJQUFBLHdCQUFlLEVBQUMsWUFBWSxHQUFHLCtCQUErQixDQUFDLENBQUE7SUFDL0YsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQUUsTUFBTSxJQUFBLHdCQUFlLEVBQUMsY0FBYyxLQUFLLDJDQUEyQyxDQUFDLENBQUE7SUFDM0gsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7QUFDbEMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVcs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cidcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBhcGlVcmwsIGZldGNoSnNvbiwgZ2V0QXV0aEhlYWRlcnMsIHJlYWRKc29uUmVzcG9uc2UgfSBmcm9tICcuLi9hdXRoJ1xuaW1wb3J0IHsgaW52YWxpZEFyZ3VtZW50IH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IHsgZm9ybWF0RGV0YWlsLCBmb3JtYXRPdXRwdXQsIHN1Ym1pc3Npb25Db2x1bW5zLCBzdWJtaXNzaW9uQ29sdW1uc1dpdGhUYWdzLCB0eXBlIE91dHB1dEZvcm1hdCB9IGZyb20gJy4uL2Zvcm1hdC5qcydcbmltcG9ydCB7IGxvZ3NTdWJjb21tYW5kIH0gZnJvbSAnLi9sb2cuanMnXG5cbmNvbnN0IFRBR19SRUdFWCA9IC9eW2EtejAtOV1bYS16MC05Ll8tXSokL2lcblxuZnVuY3Rpb24gY29sbGVjdEtleVZhbHVlKHJhdzogc3RyaW5nLCBwcmV2OiBBcnJheTx7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+KTogQXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PiB7XG4gIGNvbnN0IGVxSWR4ID0gcmF3LmluZGV4T2YoJz0nKVxuICBpZiAoZXFJZHggPCAxKSB0aHJvdyBpbnZhbGlkQXJndW1lbnQoYFRhZyBcIiR7cmF3fVwiIG11c3QgYmUgaW4ga2V5PXZhbHVlIGZvcm1hdGApXG4gIGNvbnN0IGtleSA9IHJhdy5zbGljZSgwLCBlcUlkeCkudG9Mb3dlckNhc2UoKVxuICBjb25zdCB2YWx1ZSA9IHJhdy5zbGljZShlcUlkeCArIDEpLnRvTG93ZXJDYXNlKClcbiAgaWYgKCFUQUdfUkVHRVgudGVzdChrZXkpKSB0aHJvdyBpbnZhbGlkQXJndW1lbnQoYFRhZyBrZXkgXCIke2tleX1cIiBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnNgKVxuICBpZiAoIXZhbHVlIHx8ICFUQUdfUkVHRVgudGVzdCh2YWx1ZSkpIHRocm93IGludmFsaWRBcmd1bWVudChgVGFnIHZhbHVlIFwiJHt2YWx1ZX1cIiBpcyBlbXB0eSBvciBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnNgKVxuICByZXR1cm4gWy4uLnByZXYsIHsga2V5LCB2YWx1ZSB9XVxufVxuXG5mdW5jdGlvbiBjb2xsZWN0S2V5KHJhdzogc3RyaW5nLCBwcmV2OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgY29uc3Qga2V5ID0gcmF3LnNwbGl0KCc9JylbMF0udG9Mb3dlckNhc2UoKVxuICBpZiAoIVRBR19SRUdFWC50ZXN0KGtleSkpIHRocm93IGludmFsaWRBcmd1bWVudChgVGFnIGtleSBcIiR7a2V5fVwiIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVyc2ApXG4gIHJldHVybiBbLi4ucHJldiwga2V5XVxufVxuXG5mdW5jdGlvbiBjb2xsZWN0U3RyKHZhbDogc3RyaW5nLCBwcmV2OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIFsuLi5wcmV2LCB2YWxdXG59XG5cbmZ1bmN0aW9uIHBhcnNlVGltZVRvU2Vjb25kcyh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgY29uc3QgcGFydHMgPSB2YWx1ZS5zcGxpdCgnOicpLm1hcChOdW1iZXIpXG4gIGlmIChwYXJ0cy5sZW5ndGggIT09IDMgfHwgcGFydHMuc29tZShpc05hTikpIHtcbiAgICB0aHJvdyBpbnZhbGlkQXJndW1lbnQoXG4gICAgICAnVGltZSBtdXN0IGJlIGluIEREOkhIOk1NIGZvcm1hdCAoZGF5czpob3VyczptaW51dGVzKS4nLFxuICAgICAgJ0V4YW1wbGU6IDAwOjEyOjMwJyxcbiAgICApXG4gIH1cbiAgY29uc3QgW2RheXMsIGhvdXJzLCBtaW51dGVzXSA9IHBhcnRzXG4gIHJldHVybiAoZGF5cyAqIDg2NDAwKSArIChob3VycyAqIDM2MDApICsgKG1pbnV0ZXMgKiA2MClcbn1cblxuXG5leHBvcnQgY29uc3Qgc3VibWlzc2lvbkNvbW1hbmQgPSBuZXcgQ29tbWFuZCgnc3VibWlzc2lvbicpXG4gIC5kZXNjcmlwdGlvbignTWFuYWdlIHdvcmtmbG93IHN1Ym1pc3Npb25zJylcblxuc3VibWlzc2lvbkNvbW1hbmRcbiAgLmNvbW1hbmQoJ2xpc3QnKVxuICAuZGVzY3JpcHRpb24oJ0xpc3Qgc3VibWlzc2lvbnMnKVxuICAub3B0aW9uKCctLXN0YXR1cyA8c3RhdHVzPicsICdGaWx0ZXIgYnkgc3RhdHVzIChTVUJNSVRURUQsIFNVQ0NFRURFRCwgRkFJTEVEKScpXG4gIC5vcHRpb24oJy0tbGltaXQgPG4+JywgJ01heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuJywgJzEwJylcbiAgLm9wdGlvbignLS10YWcgPGtleT12YWx1ZT4nLCAnRmlsdGVyIGJ5IHRhZyAocmVwZWF0YWJsZSknLCBjb2xsZWN0S2V5VmFsdWUsIFtdIGFzIEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4pXG4gIC5vcHRpb24oJy0tc2hvdy10YWcgPGtleT4nLCAnU2hvdyB0YWcgYXMgYSBjb2x1bW4gKHJlcGVhdGFibGUpJywgY29sbGVjdFN0ciwgW10gYXMgc3RyaW5nW10pXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1zb3J0IDxmaWVsZD4nLCAnU29ydCBmaWVsZCcpLmNob2ljZXMoWydzdGFydGVkJywgJ3N0b3BwZWQnLCAndXBkYXRlZCddKS5kZWZhdWx0KCd1cGRhdGVkJykpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1zb3J0LW9yZGVyIDxvcmRlcj4nLCAnU29ydCBvcmRlcicpLmNob2ljZXMoWydhc2MnLCAnZGVzYyddKS5kZWZhdWx0KCdkZXNjJykpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuICAuYWN0aW9uKGFzeW5jIChvcHRzOiB7IHN0YXR1cz86IHN0cmluZzsgbGltaXQ6IHN0cmluZzsgdGFnOiBBcnJheTx7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+OyBzaG93VGFnOiBzdHJpbmdbXTsgc29ydDogc3RyaW5nOyBzb3J0T3JkZXI6IHN0cmluZzsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgIGlmIChvcHRzLnN0YXR1cykgcGFyYW1zLnNldCgnc3RhdHVzJywgb3B0cy5zdGF0dXMpXG4gICAgcGFyYW1zLnNldCgnbGltaXQnLCBvcHRzLmxpbWl0KVxuICAgIHBhcmFtcy5zZXQoJ3NvcnQnLCBvcHRzLnNvcnQpXG4gICAgcGFyYW1zLnNldCgnc29ydE9yZGVyJywgb3B0cy5zb3J0T3JkZXIpXG4gICAgb3B0cy50YWcuZm9yRWFjaCh0ID0+IHBhcmFtcy5hcHBlbmQoJ3RhZycsIGAke3Qua2V5fT0ke3QudmFsdWV9YCkpXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoSnNvbihhcGlVcmwoYC9zdWJtaXNzaW9ucz8ke3BhcmFtc31gKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgICBjb25zdCBjb2x1bW5zID0gc3VibWlzc2lvbkNvbHVtbnNXaXRoVGFncyhvcHRzLnNob3dUYWcpXG4gICAgZm9ybWF0T3V0cHV0KG9wdHMuZm9ybWF0ID09PSAnanNvbicgPyBkYXRhIDogZGF0YS5pdGVtcywgb3B0cy5mb3JtYXQsIGNvbHVtbnMpXG4gIH0pXG5cbnN1Ym1pc3Npb25Db21tYW5kXG4gIC5jb21tYW5kKCdnZXQgPGlkPicpXG4gIC5kZXNjcmlwdGlvbignR2V0IGEgc3VibWlzc2lvbiBieSBJRCcpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuICAuYWN0aW9uKGFzeW5jIChpZDogc3RyaW5nLCBvcHRzOiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL3N1Ym1pc3Npb25zLyR7aWR9YCkpXG4gICAgZm9ybWF0RGV0YWlsKGRhdGEsIG9wdHMuZm9ybWF0LCBzdWJtaXNzaW9uQ29sdW1ucylcbiAgfSlcblxuc3VibWlzc2lvbkNvbW1hbmRcbiAgLmNvbW1hbmQoJ2NyZWF0ZScpXG4gIC5kZXNjcmlwdGlvbignU3VibWl0IGEgd29ya2Zsb3cgcnVuJylcbiAgLnJlcXVpcmVkT3B0aW9uKCctLXdvcmtmbG93LW5hbWUgPG5hbWU+JywgJ1dvcmtmbG93IG5hbWUnKVxuICAub3B0aW9uKCctLXdvcmtmbG93LXZlcnNpb24gPHZlcnNpb24+JywgJ1dvcmtmbG93IHZlcnNpb24nKVxuICAucmVxdWlyZWRPcHRpb24oJy0tcGFyYW1zLWZpbGUgPGZpbGU+JywgJ1BhdGggdG8gcGFyYW1zIGZpbGUgKC5qc29uLy55YW1sLy55bWwpJylcbiAgLnJlcXVpcmVkT3B0aW9uKCctLWVuZ2luZS1pZCA8aWQ+JywgJ0VuZ2luZSBJRCcpXG4gIC5yZXF1aXJlZE9wdGlvbignLS1xdWV1ZS1pZCA8aWQ+JywgJ1F1ZXVlIElEJylcbiAgLnJlcXVpcmVkT3B0aW9uKCctLW91dHB1dC1mb2xkZXIgPHMzLXVyaT4nLCAnUzMgVVJJIHByZWZpeCBmb3Igd29ya2Zsb3cgb3V0cHV0IGZpbGVzIChlLmcuIHMzOi8vbXktYnVja2V0L291dHB1dHMvKScpXG4gIC5vcHRpb24oJy0tYWxlcnQtdGltZSA8REQ6SEg6TU0+JywgJ0FsZXJ0IHRpbWUgb3ZlcnJpZGUgKEREOkhIOk1NKScpXG4gIC5vcHRpb24oJy0tY2FuY2VsLXRpbWUgPEREOkhIOk1NPicsICdDYW5jZWwgdGltZSBvdmVycmlkZSAoREQ6SEg6TU0pJylcbiAgLm9wdGlvbignLS10YWcgPGtleT12YWx1ZT4nLCAnVGFnIHRvIGF0dGFjaCAocmVwZWF0YWJsZSwgZS5nLiAtLXRhZyBjbGllbnQ9aGlhZSknLCBjb2xsZWN0S2V5VmFsdWUsIFtdIGFzIEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4pXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuICAuYWN0aW9uKGFzeW5jIChvcHRzOiB7XG4gICAgd29ya2Zsb3dOYW1lOiBzdHJpbmdcbiAgICB3b3JrZmxvd1ZlcnNpb24/OiBzdHJpbmdcbiAgICBwYXJhbXNGaWxlOiBzdHJpbmdcbiAgICBlbmdpbmVJZDogc3RyaW5nXG4gICAgcXVldWVJZDogc3RyaW5nXG4gICAgb3V0cHV0Rm9sZGVyOiBzdHJpbmdcbiAgICBhbGVydFRpbWU/OiBzdHJpbmdcbiAgICBjYW5jZWxUaW1lPzogc3RyaW5nXG4gICAgdGFnOiBBcnJheTx7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+XG4gICAgZm9ybWF0OiBPdXRwdXRGb3JtYXRcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKVxuICAgIGZvcm0uYXBwZW5kKCd3b3JrZmxvd05hbWUnLCBvcHRzLndvcmtmbG93TmFtZSlcbiAgICBpZiAob3B0cy53b3JrZmxvd1ZlcnNpb24pIGZvcm0uYXBwZW5kKCd3b3JrZmxvd1ZlcnNpb24nLCBvcHRzLndvcmtmbG93VmVyc2lvbilcbiAgICBmb3JtLmFwcGVuZCgnZW5naW5lSWQnLCBvcHRzLmVuZ2luZUlkKVxuICAgIGZvcm0uYXBwZW5kKCdxdWV1ZUlkJywgb3B0cy5xdWV1ZUlkKVxuICAgIGZvcm0uYXBwZW5kKCdvdXRwdXQnLCBvcHRzLm91dHB1dEZvbGRlcilcbiAgICBpZiAob3B0cy5hbGVydFRpbWUpIGZvcm0uYXBwZW5kKCdhbGVydFRpbWVTZWNvbmRzJywgU3RyaW5nKHBhcnNlVGltZVRvU2Vjb25kcyhvcHRzLmFsZXJ0VGltZSkpKVxuICAgIGlmIChvcHRzLmNhbmNlbFRpbWUpIGZvcm0uYXBwZW5kKCdjYW5jZWxUaW1lU2Vjb25kcycsIFN0cmluZyhwYXJzZVRpbWVUb1NlY29uZHMob3B0cy5jYW5jZWxUaW1lKSkpXG4gICAgb3B0cy50YWcuZm9yRWFjaCh0ID0+IGZvcm0uYXBwZW5kKCd0YWcnLCBgJHt0LmtleX09JHt0LnZhbHVlfWApKVxuICAgIGNvbnN0IHBhcmFtc0J1ZmZlciA9IGF3YWl0IGZzLnByb21pc2VzLnJlYWRGaWxlKG9wdHMucGFyYW1zRmlsZSlcbiAgICBmb3JtLmFwcGVuZCgncGFyYW1zJywgbmV3IEJsb2IoW3BhcmFtc0J1ZmZlcl0pLCBwYXRoLmJhc2VuYW1lKG9wdHMucGFyYW1zRmlsZSkpXG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChhcGlVcmwoJy9zdWJtaXNzaW9ucycpLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IGdldEF1dGhIZWFkZXJzKCksXG4gICAgICBib2R5OiBmb3JtLFxuICAgIH0pXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlYWRKc29uUmVzcG9uc2UocmVzLCB7IG1ldGhvZDogJ1BPU1QnLCB1cmw6IGFwaVVybCgnL3N1Ym1pc3Npb25zJykgfSlcbiAgICBmb3JtYXRPdXRwdXQoZGF0YSwgb3B0cy5mb3JtYXQsIHN1Ym1pc3Npb25Db2x1bW5zKVxuICB9KVxuXG5zdWJtaXNzaW9uQ29tbWFuZFxuICAuY29tbWFuZCgnY2FuY2VsIDxpZD4nKVxuICAuZGVzY3JpcHRpb24oJ0NhbmNlbCBhIHJ1bm5pbmcgc3VibWlzc2lvbicpXG4gIC5hY3Rpb24oYXN5bmMgKGlkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB1cmwgPSBhcGlVcmwoYC9zdWJtaXNzaW9ucy8ke2lkfS9jYW5jZWxgKVxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiBnZXRBdXRoSGVhZGVycygpLFxuICAgIH0pXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlYWRKc29uUmVzcG9uc2UocmVzLCB7IG1ldGhvZDogJ1BPU1QnLCB1cmwgfSkgYXMgeyBzdWJtaXNzaW9uSWQ6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1cbiAgICBjb25zb2xlLmxvZyhgJHtkYXRhLm1lc3NhZ2V9ICgke2RhdGEuc3VibWlzc2lvbklkfSlgKVxuICB9KVxuXG5zdWJtaXNzaW9uQ29tbWFuZFxuICAuY29tbWFuZCgncmV0cnkgPGlkPicpXG4gIC5kZXNjcmlwdGlvbignUmV0cnkgYSBmYWlsZWQgc3VibWlzc2lvbicpXG4gIC5vcHRpb24oJy0tZW5naW5lLWlkIDxpZD4nLCAnVXNlIGEgZGlmZmVyZW50IGVuZ2luZScpXG4gIC5vcHRpb24oJy0tcXVldWUtaWQgPGlkPicsICdVc2UgYSBkaWZmZXJlbnQgcXVldWUnKVxuICAuYWN0aW9uKGFzeW5jIChpZDogc3RyaW5nLCBvcHRzOiB7IGVuZ2luZUlkPzogc3RyaW5nOyBxdWV1ZUlkPzogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCB1cmwgPSBhcGlVcmwoYC9zdWJtaXNzaW9ucy8ke2lkfS9yZXRyeWApXG4gICAgY29uc3QgYm9keTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9XG4gICAgaWYgKG9wdHMuZW5naW5lSWQpIGJvZHkuZW5naW5lSWQgPSBvcHRzLmVuZ2luZUlkXG4gICAgaWYgKG9wdHMucXVldWVJZCkgYm9keS5xdWV1ZUlkID0gb3B0cy5xdWV1ZUlkXG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHsgLi4uZ2V0QXV0aEhlYWRlcnMoKSwgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgfSlcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgcmVhZEpzb25SZXNwb25zZShyZXMsIHsgbWV0aG9kOiAnUE9TVCcsIHVybCB9KSBhcyB7IHN1Ym1pc3Npb25JZDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVxuICAgIGNvbnNvbGUubG9nKGAke2RhdGEubWVzc2FnZX0gKCR7ZGF0YS5zdWJtaXNzaW9uSWR9KWApXG4gIH0pXG5cbnN1Ym1pc3Npb25Db21tYW5kXG4gIC5jb21tYW5kKCd1cGRhdGUgPGlkPicpXG4gIC5kZXNjcmlwdGlvbignVXBkYXRlIHRhZ3Mgb24gYW4gZXhpc3Rpbmcgc3VibWlzc2lvbicpXG4gIC5vcHRpb24oJy0tYWRkLXRhZyA8a2V5PXZhbHVlPicsICdBZGQgYSB0YWcgKHJlcGVhdGFibGUpJywgY29sbGVjdEtleVZhbHVlLCBbXSBhcyBBcnJheTx7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+KVxuICAub3B0aW9uKCctLWVkaXQtdGFnIDxrZXk9dmFsdWU+JywgJ0NoYW5nZSBhIHRhZyB2YWx1ZSAocmVwZWF0YWJsZSknLCBjb2xsZWN0S2V5VmFsdWUsIFtdIGFzIEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4pXG4gIC5vcHRpb24oJy0tcmVtb3ZlLXRhZyA8a2V5PicsICdSZW1vdmUgYSB0YWcgYnkga2V5IChyZXBlYXRhYmxlKScsIGNvbGxlY3RLZXksIFtdIGFzIHN0cmluZ1tdKVxuICAuYWN0aW9uKGFzeW5jIChpZDogc3RyaW5nLCBvcHRzOiB7IGFkZFRhZzogQXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PjsgZWRpdFRhZzogQXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PjsgcmVtb3ZlVGFnOiBzdHJpbmdbXSB9KSA9PiB7XG4gICAgY29uc3QgdXJsID0gYXBpVXJsKGAvc3VibWlzc2lvbnMvJHtpZH1gKVxuICAgIGNvbnN0IGJvZHk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge31cbiAgICBpZiAob3B0cy5hZGRUYWcubGVuZ3RoKSBib2R5LmFkZFRhZ3MgPSBvcHRzLmFkZFRhZ1xuICAgIGlmIChvcHRzLmVkaXRUYWcubGVuZ3RoKSBib2R5LmVkaXRUYWdzID0gb3B0cy5lZGl0VGFnXG4gICAgaWYgKG9wdHMucmVtb3ZlVGFnLmxlbmd0aCkgYm9keS5yZW1vdmVUYWdzID0gb3B0cy5yZW1vdmVUYWdcbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIGhlYWRlcnM6IHsgLi4uZ2V0QXV0aEhlYWRlcnMoKSwgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgfSlcbiAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICBjb25zb2xlLmxvZygnU3VibWlzc2lvbiB0YWdzIHVwZGF0ZWQnKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGF3YWl0IHJlYWRKc29uUmVzcG9uc2UocmVzLCB7IG1ldGhvZDogJ1BBVENIJywgdXJsIH0pXG4gIH0pXG5cbnN1Ym1pc3Npb25Db21tYW5kLmFkZENvbW1hbmQobG9nc1N1YmNvbW1hbmQpXG4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tagCommand = void 0;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const auth_1 = require("../auth");
|
|
6
|
+
const format_js_1 = require("../format.js");
|
|
7
|
+
exports.tagCommand = new commander_1.Command('tag')
|
|
8
|
+
.description('Manage submission tags');
|
|
9
|
+
exports.tagCommand
|
|
10
|
+
.command('create <name>')
|
|
11
|
+
.description('Register a new tag key')
|
|
12
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
13
|
+
.action(async (name, opts) => {
|
|
14
|
+
const url = (0, auth_1.apiUrl)('/tags');
|
|
15
|
+
const res = await fetch(url, {
|
|
16
|
+
method: 'POST',
|
|
17
|
+
headers: { ...(0, auth_1.getAuthHeaders)(), 'Content-Type': 'application/json' },
|
|
18
|
+
body: JSON.stringify({ name }),
|
|
19
|
+
});
|
|
20
|
+
const data = await (0, auth_1.readJsonResponse)(res, { method: 'POST', url });
|
|
21
|
+
(0, format_js_1.formatOutput)(data, opts.format, format_js_1.tagColumns);
|
|
22
|
+
});
|
|
23
|
+
exports.tagCommand
|
|
24
|
+
.command('list')
|
|
25
|
+
.description('List registered tags')
|
|
26
|
+
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
27
|
+
.action(async (opts) => {
|
|
28
|
+
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)('/tags'));
|
|
29
|
+
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.tagColumns);
|
|
30
|
+
});
|
|
31
|
+
exports.tagCommand
|
|
32
|
+
.command('delete <name>')
|
|
33
|
+
.description('Delete a tag key (removes it from all submissions)')
|
|
34
|
+
.action(async (name) => {
|
|
35
|
+
const url = (0, auth_1.apiUrl)(`/tags/${encodeURIComponent(name)}`);
|
|
36
|
+
const res = await fetch(url, { method: 'DELETE', headers: (0, auth_1.getAuthHeaders)() });
|
|
37
|
+
if (res.status === 204) {
|
|
38
|
+
console.log(`Tag "${name}" deleted`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
await (0, auth_1.readJsonResponse)(res, { method: 'DELETE', url });
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3RhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBMkM7QUFDM0Msa0NBQTZFO0FBQzdFLDRDQUEwRTtBQUU3RCxRQUFBLFVBQVUsR0FBRyxJQUFJLG1CQUFPLENBQUMsS0FBSyxDQUFDO0tBQ3pDLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO0FBRXhDLGtCQUFVO0tBQ1AsT0FBTyxDQUFDLGVBQWUsQ0FBQztLQUN4QixXQUFXLENBQUMsd0JBQXdCLENBQUM7S0FDckMsU0FBUyxDQUFDLElBQUksa0JBQU0sQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzlHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBWSxFQUFFLElBQThCLEVBQUUsRUFBRTtJQUM3RCxNQUFNLEdBQUcsR0FBRyxJQUFBLGFBQU0sRUFBQyxPQUFPLENBQUMsQ0FBQTtJQUMzQixNQUFNLEdBQUcsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDM0IsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUEscUJBQWMsR0FBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRTtRQUNwRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO0tBQy9CLENBQUMsQ0FBQTtJQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSx1QkFBZ0IsRUFBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7SUFDakUsSUFBQSx3QkFBWSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLHNCQUFVLENBQUMsQ0FBQTtBQUM3QyxDQUFDLENBQUMsQ0FBQTtBQUVKLGtCQUFVO0tBQ1AsT0FBTyxDQUFDLE1BQU0sQ0FBQztLQUNmLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQztLQUNuQyxTQUFTLENBQUMsSUFBSSxrQkFBTSxDQUFDLG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDOUcsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUE4QixFQUFFLEVBQUU7SUFDL0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLGdCQUFTLEVBQUMsSUFBQSxhQUFNLEVBQUMsT0FBTyxDQUFDLENBQXlCLENBQUE7SUFDckUsSUFBQSx3QkFBWSxFQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxzQkFBVSxDQUFDLENBQUE7QUFDbkYsQ0FBQyxDQUFDLENBQUE7QUFFSixrQkFBVTtLQUNQLE9BQU8sQ0FBQyxlQUFlLENBQUM7S0FDeEIsV0FBVyxDQUFDLG9EQUFvRCxDQUFDO0tBQ2pFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBQSxhQUFNLEVBQUMsU0FBUyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDdkQsTUFBTSxHQUFHLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBQSxxQkFBYyxHQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzdFLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxXQUFXLENBQUMsQ0FBQTtRQUNwQyxPQUFNO0lBQ1IsQ0FBQztJQUNELE1BQU0sSUFBQSx1QkFBZ0IsRUFBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7QUFDeEQsQ0FBQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kLCBPcHRpb24gfSBmcm9tICdjb21tYW5kZXInXG5pbXBvcnQgeyBhcGlVcmwsIGZldGNoSnNvbiwgZ2V0QXV0aEhlYWRlcnMsIHJlYWRKc29uUmVzcG9uc2UgfSBmcm9tICcuLi9hdXRoJ1xuaW1wb3J0IHsgZm9ybWF0T3V0cHV0LCB0YWdDb2x1bW5zLCB0eXBlIE91dHB1dEZvcm1hdCB9IGZyb20gJy4uL2Zvcm1hdC5qcydcblxuZXhwb3J0IGNvbnN0IHRhZ0NvbW1hbmQgPSBuZXcgQ29tbWFuZCgndGFnJylcbiAgLmRlc2NyaXB0aW9uKCdNYW5hZ2Ugc3VibWlzc2lvbiB0YWdzJylcblxudGFnQ29tbWFuZFxuICAuY29tbWFuZCgnY3JlYXRlIDxuYW1lPicpXG4gIC5kZXNjcmlwdGlvbignUmVnaXN0ZXIgYSBuZXcgdGFnIGtleScpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuICAuYWN0aW9uKGFzeW5jIChuYW1lOiBzdHJpbmcsIG9wdHM6IHsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICAgIGNvbnN0IHVybCA9IGFwaVVybCgnL3RhZ3MnKVxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7IC4uLmdldEF1dGhIZWFkZXJzKCksICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgbmFtZSB9KSxcbiAgICB9KVxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZWFkSnNvblJlc3BvbnNlKHJlcywgeyBtZXRob2Q6ICdQT1NUJywgdXJsIH0pXG4gICAgZm9ybWF0T3V0cHV0KGRhdGEsIG9wdHMuZm9ybWF0LCB0YWdDb2x1bW5zKVxuICB9KVxuXG50YWdDb21tYW5kXG4gIC5jb21tYW5kKCdsaXN0JylcbiAgLmRlc2NyaXB0aW9uKCdMaXN0IHJlZ2lzdGVyZWQgdGFncycpXG4gIC5hZGRPcHRpb24obmV3IE9wdGlvbignLS1mb3JtYXQgPGZvcm1hdD4nLCAnT3V0cHV0IGZvcm1hdCcpLmNob2ljZXMoWyd0YWJsZScsICdqc29uJywgJ2NzdiddKS5kZWZhdWx0KCd0YWJsZScpKVxuICAuYWN0aW9uKGFzeW5jIChvcHRzOiB7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybCgnL3RhZ3MnKSkgYXMgeyBpdGVtczogdW5rbm93bltdIH1cbiAgICBmb3JtYXRPdXRwdXQob3B0cy5mb3JtYXQgPT09ICdqc29uJyA/IGRhdGEgOiBkYXRhLml0ZW1zLCBvcHRzLmZvcm1hdCwgdGFnQ29sdW1ucylcbiAgfSlcblxudGFnQ29tbWFuZFxuICAuY29tbWFuZCgnZGVsZXRlIDxuYW1lPicpXG4gIC5kZXNjcmlwdGlvbignRGVsZXRlIGEgdGFnIGtleSAocmVtb3ZlcyBpdCBmcm9tIGFsbCBzdWJtaXNzaW9ucyknKVxuICAuYWN0aW9uKGFzeW5jIChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCB1cmwgPSBhcGlVcmwoYC90YWdzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfWApXG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2godXJsLCB7IG1ldGhvZDogJ0RFTEVURScsIGhlYWRlcnM6IGdldEF1dGhIZWFkZXJzKCkgfSlcbiAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICBjb25zb2xlLmxvZyhgVGFnIFwiJHtuYW1lfVwiIGRlbGV0ZWRgKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGF3YWl0IHJlYWRKc29uUmVzcG9uc2UocmVzLCB7IG1ldGhvZDogJ0RFTEVURScsIHVybCB9KVxuICB9KVxuIl19
|
package/dist/commands/task.js
CHANGED
|
@@ -14,7 +14,7 @@ exports.taskCommand
|
|
|
14
14
|
.option('--status <status>', 'Filter by status (SUBMITTED, RUNNING, SUCCEEDED, FAILED, CANCELLED)')
|
|
15
15
|
.option('--limit <n>', 'Maximum number of results to return', '10')
|
|
16
16
|
.addOption(new commander_1.Option('--sort <field>', 'Sort field').choices(['started', 'stopped', 'updated']).default('updated'))
|
|
17
|
-
.addOption(new commander_1.Option('--sort-order <order>', 'Sort order').choices(['
|
|
17
|
+
.addOption(new commander_1.Option('--sort-order <order>', 'Sort order').choices(['asc', 'desc']).default('desc'))
|
|
18
18
|
.addOption(new commander_1.Option('--format <format>', 'Output format').choices(['table', 'json', 'csv']).default('table'))
|
|
19
19
|
.action(async (opts) => {
|
|
20
20
|
const params = new URLSearchParams();
|
|
@@ -24,7 +24,7 @@ exports.taskCommand
|
|
|
24
24
|
params.set('status', opts.status.toUpperCase());
|
|
25
25
|
params.set('limit', opts.limit);
|
|
26
26
|
params.set('sort', opts.sort);
|
|
27
|
-
params.set('sortOrder', opts.sortOrder
|
|
27
|
+
params.set('sortOrder', opts.sortOrder);
|
|
28
28
|
const data = await (0, auth_1.fetchJson)((0, auth_1.apiUrl)(`/tasks?${params}`));
|
|
29
29
|
(0, format_js_1.formatOutput)(opts.format === 'json' ? data : data.items, opts.format, format_js_1.taskColumns);
|
|
30
30
|
});
|
|
@@ -37,4 +37,4 @@ exports.taskCommand
|
|
|
37
37
|
(0, format_js_1.formatDetail)(data, opts.format, format_js_1.taskColumns);
|
|
38
38
|
});
|
|
39
39
|
exports.taskCommand.addCommand(log_js_1.taskLogsSubcommand);
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy90YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUEyQztBQUMzQyxrQ0FBMkM7QUFDM0MsNENBQXlGO0FBQ3pGLHFDQUE2QztBQUVoQyxRQUFBLFdBQVcsR0FBRyxJQUFJLG1CQUFPLENBQUMsTUFBTSxDQUFDO0tBQzNDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQTtBQUU5QixtQkFBVztLQUNSLE9BQU8sQ0FBQyxNQUFNLENBQUM7S0FDZixXQUFXLENBQUMsWUFBWSxDQUFDO0tBQ3pCLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSx5QkFBeUIsQ0FBQztLQUN6RCxNQUFNLENBQUMsbUJBQW1CLEVBQUUscUVBQXFFLENBQUM7S0FDbEcsTUFBTSxDQUFDLGFBQWEsRUFBRSxxQ0FBcUMsRUFBRSxJQUFJLENBQUM7S0FDbEUsU0FBUyxDQUFDLElBQUksa0JBQU0sQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ25ILFNBQVMsQ0FBQyxJQUFJLGtCQUFNLENBQUMsc0JBQXNCLEVBQUUsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3BHLFNBQVMsQ0FBQyxJQUFJLGtCQUFNLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM5RyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQXNILEVBQUUsRUFBRTtJQUN2SSxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBO0lBQ3BDLElBQUksSUFBSSxDQUFDLFlBQVk7UUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDcEUsSUFBSSxJQUFJLENBQUMsTUFBTTtRQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUNoRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzdCLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN2QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsZ0JBQVMsRUFBQyxJQUFBLGFBQU0sRUFBQyxVQUFVLE1BQU0sRUFBRSxDQUFDLENBQXlCLENBQUE7SUFDaEYsSUFBQSx3QkFBWSxFQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSx1QkFBVyxDQUFDLENBQUE7QUFDcEYsQ0FBQyxDQUFDLENBQUE7QUFFSixtQkFBVztLQUNSLE9BQU8sQ0FBQyxVQUFVLENBQUM7S0FDbkIsV0FBVyxDQUFDLGtCQUFrQixDQUFDO0tBQy9CLFNBQVMsQ0FBQyxJQUFJLGtCQUFNLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM5RyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQVUsRUFBRSxJQUE4QixFQUFFLEVBQUU7SUFDM0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLGdCQUFTLEVBQUMsSUFBQSxhQUFNLEVBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDcEQsSUFBQSx3QkFBWSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLHVCQUFXLENBQUMsQ0FBQTtBQUM5QyxDQUFDLENBQUMsQ0FBQTtBQUVKLG1CQUFXLENBQUMsVUFBVSxDQUFDLDJCQUFrQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kLCBPcHRpb24gfSBmcm9tICdjb21tYW5kZXInXG5pbXBvcnQgeyBhcGlVcmwsIGZldGNoSnNvbiB9IGZyb20gJy4uL2F1dGgnXG5pbXBvcnQgeyBmb3JtYXREZXRhaWwsIGZvcm1hdE91dHB1dCwgdGFza0NvbHVtbnMsIHR5cGUgT3V0cHV0Rm9ybWF0IH0gZnJvbSAnLi4vZm9ybWF0LmpzJ1xuaW1wb3J0IHsgdGFza0xvZ3NTdWJjb21tYW5kIH0gZnJvbSAnLi9sb2cuanMnXG5cbmV4cG9ydCBjb25zdCB0YXNrQ29tbWFuZCA9IG5ldyBDb21tYW5kKCd0YXNrJylcbiAgLmRlc2NyaXB0aW9uKCdNYW5hZ2UgdGFza3MnKVxuXG50YXNrQ29tbWFuZFxuICAuY29tbWFuZCgnbGlzdCcpXG4gIC5kZXNjcmlwdGlvbignTGlzdCB0YXNrcycpXG4gIC5vcHRpb24oJy0tc3VibWlzc2lvbi1pZCA8aWQ+JywgJ0ZpbHRlciBieSBzdWJtaXNzaW9uIElEJylcbiAgLm9wdGlvbignLS1zdGF0dXMgPHN0YXR1cz4nLCAnRmlsdGVyIGJ5IHN0YXR1cyAoU1VCTUlUVEVELCBSVU5OSU5HLCBTVUNDRUVERUQsIEZBSUxFRCwgQ0FOQ0VMTEVEKScpXG4gIC5vcHRpb24oJy0tbGltaXQgPG4+JywgJ01heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuJywgJzEwJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLXNvcnQgPGZpZWxkPicsICdTb3J0IGZpZWxkJykuY2hvaWNlcyhbJ3N0YXJ0ZWQnLCAnc3RvcHBlZCcsICd1cGRhdGVkJ10pLmRlZmF1bHQoJ3VwZGF0ZWQnKSlcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLXNvcnQtb3JkZXIgPG9yZGVyPicsICdTb3J0IG9yZGVyJykuY2hvaWNlcyhbJ2FzYycsICdkZXNjJ10pLmRlZmF1bHQoJ2Rlc2MnKSlcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4gIC5hY3Rpb24oYXN5bmMgKG9wdHM6IHsgc3VibWlzc2lvbklkPzogc3RyaW5nOyBzdGF0dXM/OiBzdHJpbmc7IGxpbWl0OiBzdHJpbmc7IHNvcnQ6IHN0cmluZzsgc29ydE9yZGVyOiBzdHJpbmc7IGZvcm1hdDogT3V0cHV0Rm9ybWF0IH0pID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICBpZiAob3B0cy5zdWJtaXNzaW9uSWQpIHBhcmFtcy5zZXQoJ3N1Ym1pc3Npb25JZCcsIG9wdHMuc3VibWlzc2lvbklkKVxuICAgIGlmIChvcHRzLnN0YXR1cykgcGFyYW1zLnNldCgnc3RhdHVzJywgb3B0cy5zdGF0dXMudG9VcHBlckNhc2UoKSlcbiAgICBwYXJhbXMuc2V0KCdsaW1pdCcsIG9wdHMubGltaXQpXG4gICAgcGFyYW1zLnNldCgnc29ydCcsIG9wdHMuc29ydClcbiAgICBwYXJhbXMuc2V0KCdzb3J0T3JkZXInLCBvcHRzLnNvcnRPcmRlcilcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hKc29uKGFwaVVybChgL3Rhc2tzPyR7cGFyYW1zfWApKSBhcyB7IGl0ZW1zOiB1bmtub3duW10gfVxuICAgIGZvcm1hdE91dHB1dChvcHRzLmZvcm1hdCA9PT0gJ2pzb24nID8gZGF0YSA6IGRhdGEuaXRlbXMsIG9wdHMuZm9ybWF0LCB0YXNrQ29sdW1ucylcbiAgfSlcblxudGFza0NvbW1hbmRcbiAgLmNvbW1hbmQoJ2dldCA8aWQ+JylcbiAgLmRlc2NyaXB0aW9uKCdHZXQgYSB0YXNrIGJ5IElEJylcbiAgLmFkZE9wdGlvbihuZXcgT3B0aW9uKCctLWZvcm1hdCA8Zm9ybWF0PicsICdPdXRwdXQgZm9ybWF0JykuY2hvaWNlcyhbJ3RhYmxlJywgJ2pzb24nLCAnY3N2J10pLmRlZmF1bHQoJ3RhYmxlJykpXG4gIC5hY3Rpb24oYXN5bmMgKGlkOiBzdHJpbmcsIG9wdHM6IHsgZm9ybWF0OiBPdXRwdXRGb3JtYXQgfSkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEpzb24oYXBpVXJsKGAvdGFza3MvJHtpZH1gKSlcbiAgICBmb3JtYXREZXRhaWwoZGF0YSwgb3B0cy5mb3JtYXQsIHRhc2tDb2x1bW5zKVxuICB9KVxuXG50YXNrQ29tbWFuZC5hZGRDb21tYW5kKHRhc2tMb2dzU3ViY29tbWFuZClcbiJdfQ==
|
package/dist/format.d.ts
CHANGED
|
@@ -10,6 +10,9 @@ export declare function formatOutput(data: unknown, format: OutputFormat, column
|
|
|
10
10
|
export declare const workflowColumns: ColumnDef[];
|
|
11
11
|
export declare const workflowVersionColumns: ColumnDef[];
|
|
12
12
|
export declare const submissionColumns: ColumnDef[];
|
|
13
|
+
export declare function submissionColumnsWithTags(showTags: string[]): ColumnDef[];
|
|
14
|
+
export declare const tagColumns: ColumnDef[];
|
|
15
|
+
export declare const costsByTagColumns: ColumnDef[];
|
|
13
16
|
export declare const environmentColumns: ColumnDef[];
|
|
14
17
|
export declare const queueColumns: ColumnDef[];
|
|
15
18
|
export declare const engineColumns: ColumnDef[];
|
package/dist/format.js
CHANGED
|
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.costsByInstanceColumns = exports.costsByTaskColumns = exports.costsByExecutionModeColumns = exports.costsByEngineColumns = exports.analyticsOverTimeColumns = exports.analyticsByInstanceTypeColumns = exports.analyticsByQueueColumns = exports.analyticsByEnvironmentColumns = exports.analyticsBySubmissionColumns = exports.analyticsSummaryColumns = exports.tenantColumns = exports.pluginColumns = exports.imageColumns = exports.activityLogColumns = exports.instanceColumns = exports.registryColumns = exports.taskLogColumns = exports.submissionLogColumns = exports.taskColumns = exports.storageColumns = exports.engineColumns = exports.queueColumns = exports.environmentColumns = exports.submissionColumns = exports.workflowVersionColumns = exports.workflowColumns = void 0;
|
|
6
|
+
exports.costsByInstanceColumns = exports.costsByTaskColumns = exports.costsByExecutionModeColumns = exports.costsByEngineColumns = exports.analyticsOverTimeColumns = exports.analyticsByInstanceTypeColumns = exports.analyticsByQueueColumns = exports.analyticsByEnvironmentColumns = exports.analyticsBySubmissionColumns = exports.analyticsSummaryColumns = exports.tenantColumns = exports.pluginColumns = exports.imageColumns = exports.activityLogColumns = exports.instanceColumns = exports.registryColumns = exports.taskLogColumns = exports.submissionLogColumns = exports.taskColumns = exports.storageColumns = exports.engineColumns = exports.queueColumns = exports.environmentColumns = exports.costsByTagColumns = exports.tagColumns = exports.submissionColumns = exports.workflowVersionColumns = exports.workflowColumns = void 0;
|
|
7
7
|
exports.formatDateTime = formatDateTime;
|
|
8
8
|
exports.formatDetail = formatDetail;
|
|
9
9
|
exports.formatOutput = formatOutput;
|
|
10
|
+
exports.submissionColumnsWithTags = submissionColumnsWithTags;
|
|
10
11
|
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
11
12
|
function formatDateTime(value) {
|
|
12
13
|
if (value === null || value === undefined || value === '')
|
|
@@ -100,6 +101,30 @@ exports.submissionColumns = [
|
|
|
100
101
|
{ header: 'Created At', value: r => formatDateTime(r.createdAt) },
|
|
101
102
|
{ header: 'Duration', value: r => formatDuration(r.durationMs) },
|
|
102
103
|
];
|
|
104
|
+
function submissionColumnsWithTags(showTags) {
|
|
105
|
+
if (showTags.length === 0)
|
|
106
|
+
return exports.submissionColumns;
|
|
107
|
+
return [
|
|
108
|
+
...exports.submissionColumns,
|
|
109
|
+
...showTags.map(key => ({
|
|
110
|
+
header: key,
|
|
111
|
+
value: (r) => {
|
|
112
|
+
const tags = r.tags;
|
|
113
|
+
return tags?.find(t => t.key === key.toLowerCase())?.value ?? '';
|
|
114
|
+
},
|
|
115
|
+
})),
|
|
116
|
+
];
|
|
117
|
+
}
|
|
118
|
+
exports.tagColumns = [
|
|
119
|
+
{ header: 'Name', value: r => r.name },
|
|
120
|
+
{ header: 'Created At', value: r => formatDateTime(r.createdAt) },
|
|
121
|
+
];
|
|
122
|
+
exports.costsByTagColumns = [
|
|
123
|
+
{ header: 'Value', value: r => r.tagValue },
|
|
124
|
+
{ header: 'Submissions', value: r => r.submissionCount },
|
|
125
|
+
{ header: 'Est. Total ($)', value: r => formatCurrency(r.totalEstimatedCost) },
|
|
126
|
+
{ header: 'Actual Total ($)', value: r => formatCurrency(r.totalActualCost) },
|
|
127
|
+
];
|
|
103
128
|
exports.environmentColumns = [
|
|
104
129
|
{ header: 'ID', value: r => r.id },
|
|
105
130
|
{ header: 'Name', value: r => r.name },
|
|
@@ -224,9 +249,10 @@ exports.analyticsSummaryColumns = [
|
|
|
224
249
|
exports.analyticsBySubmissionColumns = [
|
|
225
250
|
{ header: 'Submission ID', value: r => r.submissionId },
|
|
226
251
|
{ header: 'Status', value: r => r.submissionStatus },
|
|
252
|
+
{ header: 'Est. Task ($)', value: r => formatCurrency(r.estimatedTaskCost) },
|
|
253
|
+
{ header: 'Est. ECS ($)', value: r => formatCurrency(r.estimatedEcsCost) },
|
|
227
254
|
{ header: 'Est. Total ($)', value: r => formatCurrency(r.estimatedTotalCost) },
|
|
228
|
-
{ header: '
|
|
229
|
-
{ header: 'Instances', value: r => r.instanceCount },
|
|
255
|
+
{ header: 'Act. Total ($)', value: r => formatCurrency(r.actualTotalCost) },
|
|
230
256
|
];
|
|
231
257
|
exports.analyticsByEnvironmentColumns = [
|
|
232
258
|
{ header: 'Environment ID', value: r => r.environmentId },
|
|
@@ -288,4 +314,4 @@ exports.costsByInstanceColumns = [
|
|
|
288
314
|
{ header: 'Actual Total ($)', value: r => formatCurrency(r.actualTotalCost) },
|
|
289
315
|
{ header: 'Terminated At', value: r => formatDateTime(r.terminationTime) },
|
|
290
316
|
];
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSx3Q0FNQztBQStCRCxvQ0FZQztBQUVELG9DQTBCQztBQS9FRCw0REFBOEI7QUFFOUIsU0FBZ0IsY0FBYyxDQUFDLEtBQWM7SUFDM0MsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUU7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNyRSxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsT0FBTyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQzlJLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxLQUFjO0lBQ3BDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxFQUFFO1FBQUUsT0FBTyxFQUFFLENBQUM7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Q0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO0lBQy9DLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQzFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO0NBQ2xFLENBQUE7QUFFWSxRQUFBLFlBQVksR0FBZ0I7SUFDdkMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDbEMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7SUFDdEMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFFLENBQUMsQ0FBQyxXQUE4QyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFO0lBQ2pILEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFO0lBQy9DLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9DLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFO0lBQ3JELEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQzFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVB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QzFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ2xDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO0lBQ3RDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7SUFDMUQsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRTtJQUN6RCxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMxQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRTtDQUNsRSxDQUFBO0FBRVksUUFBQSxlQUFlLEdBQWdCO0lBQzFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ2xDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFO0lBQ3ZELEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFO0lBQzlDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQzlDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUs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QyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7SUFDL0UsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO0lBQzlFLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUU7SUFDN0UsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUU7SUFDcEQsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUU7Q0FDekQsQ0FBQTtBQUVZLFFBQUEsNEJBQTRCLEdBQWdCO0lBQ3ZELEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFO0lBQ3ZELEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUU7SUFDcEQsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO0lBQzlFLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUU7SUFDN0UsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUU7Q0FDckQsQ0FBQTtBQUVZLFFBQUEsNkJBQTZCLEdBQWdCO0lBQ3hE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QU0sRUFBRSxTQUFTLEVBQVMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNsRCxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFO0lBQ3pGLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFO0lBQ3hELEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBVSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2xELEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBVyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO0lBQ2pELEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBUSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQ3RFLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFO0lBQ3pFLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUU7Q0FDeEUsQ0FBQTtBQUVZLFFBQUEsc0JBQXNCLEdBQWdCO0lBQ2pELEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQ3hELEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFO0lBQzFELEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBWSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQ3hELEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFO0lBQzdELEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBYSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO0lBQ3ZELEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsRUFBRTtJQUNoRixFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFO0lBQzdFLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFO0NBQzdFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGFibGUgZnJvbSAnY2xpLXRhYmxlMydcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGVUaW1lKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gJyc7XG4gIGNvbnN0IGQgPSBuZXcgRGF0ZShTdHJpbmcodmFsdWUpKTtcbiAgaWYgKGlzTmFOKGQuZ2V0VGltZSgpKSkgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gIGNvbnN0IHBhZCA9IChuOiBudW1iZXIpID0+IFN0cmluZyhuKS5wYWRTdGFydCgyLCAnMCcpO1xuICByZXR1cm4gYCR7ZC5nZXRGdWxsWWVhcigpfS0ke3BhZChkLmdldE1vbnRoKCkgKyAxKX0tJHtwYWQoZC5nZXREYXRlKCkpfSAke3BhZChkLmdldEhvdXJzKCkpfToke3BhZChkLmdldE1pbnV0ZXMoKSl9OiR7cGFkKGQuZ2V0U2Vjb25kcygpKX1gO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRDdXJyZW5jeSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykgcmV0dXJuICcnO1xuICBjb25zdCBuID0gTnVtYmVyKHZhbHVlKTtcbiAgaWYgKGlzTmFOKG4pKSByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgcmV0dXJuIG4udG9GaXhlZCgyKTtcbn1cblxuZnVuY3Rpb24gdHJ1bmNhdGUodmFsdWU6IHVua25vd24sIG1heCA9IDMwKTogc3RyaW5nIHtcbiAgY29uc3QgcyA9IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWx1ZSlcbiAgcmV0dXJuIHMubGVuZ3RoIDw9IG1heCA/IHMgOiBgJHtzLnNsaWNlKDAsIG1heCAtIDMpfS4uLmBcbn1cblxuZnVuY3Rpb24gZm9ybWF0RHVyYXRpb24obXM6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAobXMgPT09IG51bGwgfHwgbXMgPT09IHVuZGVmaW5lZCB8fCBtcyA9PT0gJycpIHJldHVybiAnJztcbiAgY29uc3QgdG90YWxTZWMgPSBNYXRoLmZsb29yKE51bWJlcihtcykgLyAxMDAwKTtcbiAgY29uc3QgaCA9IE1hdGguZmxvb3IodG90YWxTZWMgLyAzNjAwKTtcbiAgY29uc3QgbSA9IE1hdGguZmxvb3IoKHRvdGFsU2VjICUgMzYwMCkgLyA2MCk7XG4gIGNvbnN0IHMgPSB0b3RhbFNlYyAlIDYwO1xuICByZXR1cm4gYCR7U3RyaW5nKGgpLnBhZFN0YXJ0KDIsICcwJyl9OiR7U3RyaW5nKG0pLnBhZFN0YXJ0KDIsICcwJyl9OiR7U3RyaW5nKHMpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbn1cblxuZXhwb3J0IHR5cGUgT3V0cHV0Rm9ybWF0ID0gJ3RhYmxlJyB8ICdqc29uJyB8ICdjc3YnXG5cbmludGVyZmFjZSBDb2x1bW5EZWYge1xuICBoZWFkZXI6IHN0cmluZ1xuICB2YWx1ZTogKGl0ZW06IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB1bmtub3duXG4gIHRhYmxlVmFsdWU/OiAoaXRlbTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHVua25vd25cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERldGFpbChkYXRhOiB1bmtub3duLCBmb3JtYXQ6IE91dHB1dEZvcm1hdCwgY29sdW1uczogQ29sdW1uRGVmW10pOiB2b2lkIHtcbiAgaWYgKGZvcm1hdCAhPT0gJ3RhYmxlJykge1xuICAgIGZvcm1hdE91dHB1dChkYXRhLCBmb3JtYXQsIGNvbHVtbnMpXG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3QgaXRlbSA9IChBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YVswXSA6IGRhdGEpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlKClcbiAgY29sdW1ucy5mb3JFYWNoKGMgPT4ge1xuICAgIGNvbnN0IHZhbCA9IChjLnRhYmxlVmFsdWUgPz8gYy52YWx1ZSkoaXRlbSlcbiAgICB0YWJsZS5wdXNoKHsgW2MuaGVhZGVyXTogdmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkID8gJycgOiBTdHJpbmcodmFsKSB9KVxuICB9KVxuICBjb25zb2xlLmxvZyh0YWJsZS50b1N0cmluZygpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0T3V0cHV0KGRhdGE6IHVua25vd24sIGZvcm1hdDogT3V0cHV0Rm9ybWF0LCBjb2x1bW5zOiBDb2x1bW5EZWZbXSk6IHZvaWQge1xuICBjb25zdCBpdGVtcyA9IEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW2RhdGFdXG4gIGNvbnN0IGhlYWRlcnMgPSBjb2x1bW5zLm1hcChjID0+IGMuaGVhZGVyKVxuICBjb25zdCByb3dzID0gaXRlbXMubWFwKGl0ZW0gPT5cbiAgICBjb2x1bW5zLm1hcChjID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9IGMudmFsdWUoaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilcbiAgICAgIHJldHVybiB2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWwpXG4gICAgfSlcbiAgKVxuXG4gIGlmIChmb3JtYXQgPT09ICdqc29uJykge1xuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpKVxuICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2NzdicpIHtcbiAgICBjb25zb2xlLmxvZyhoZWFkZXJzLmpvaW4oJywnKSlcbiAgICByb3dzLmZvckVhY2gocm93ID0+IGNvbnNvbGUubG9nKHJvdy5tYXAodiA9PiBgXCIke3YucmVwbGFjZSgvXCIvZywgJ1wiXCInKX1cImApLmpvaW4oJywnKSkpXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdGFibGVSb3dzID0gaXRlbXMubWFwKGl0ZW0gPT5cbiAgICAgIGNvbHVtbnMubWFwKGMgPT4ge1xuICAgICAgICBjb25zdCB2YWwgPSAoYy50YWJsZVZhbHVlID8/IGMudmFsdWUpKGl0ZW0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pXG4gICAgICAgIHJldHVybiB2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWwpXG4gICAgICB9KVxuICAgIClcbiAgICBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSh7IGhlYWQ6IGhlYWRlcnMgfSlcbiAgICB0YWJsZVJvd3MuZm9yRWFjaChyb3cgPT4gdGFibGUucHVzaChyb3cpKVxuICAgIGNvbnNvbGUubG9nKHRhYmxlLnRvU3RyaW5nKCkpXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHdvcmtmbG93Q29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIubmFtZSB9LFxuICB7IGhlYWRlcjogJ1ZlcnNpb24nLCB2YWx1ZTogciA9PiByLnZlcnNpb24gfSxcbiAgeyBoZWFkZXI6ICdFbmdpbmUnLCB2YWx1ZTogciA9PiByLmVuZ2luZSB9LFxuICB7IGhlYWRlcjogJ0ZpbGUgVHlwZScsIHZhbHVlOiByID0+IHIuZmlsZVR5cGUgfSxcbiAgeyBoZWFkZXI6ICdMYXRlc3QnLCB2YWx1ZTogciA9PiByLmxhdGVzdCB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHdvcmtmbG93VmVyc2lvbkNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ1ZlcnNpb24nLCB2YWx1ZTogciA9PiByLnZlcnNpb24gfSxcbiAgeyBoZWFkZXI6ICdGaWxlIFR5cGUnLCB2YWx1ZTogciA9PiByLmZpbGVUeXBlIH0sXG4gIHsgaGVhZGVyOiAnTGF0ZXN0JywgdmFsdWU6IHIgPT4gci5sYXRlc3QgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBzdWJtaXNzaW9uQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLnN1Ym1pc3Npb25JZCB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnV29ya2Zsb3cnLCB2YWx1ZTogciA9PiByLndvcmtmbG93TmFtZSB9LFxuICB7IGhlYWRlcjogJ1ZlcnNpb24nLCB2YWx1ZTogciA9PiByLndvcmtmbG93VmVyc2lvbiB9LFxuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50JywgdmFsdWU6IHIgPT4gKHIuZW52aXJvbm1lbnQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8ubmFtZSA/PyByLmVudmlyb25tZW50SWQgfSxcbiAgeyBoZWFkZXI6ICdFbmdpbmUnLCB2YWx1ZTogciA9PiAoci5lbmdpbmUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8ubmFtZSA/PyByLmVuZ2luZUlkIH0sXG4gIHsgaGVhZGVyOiAnUXVldWUnLCB2YWx1ZTogciA9PiAoci5xdWV1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lID8/IHIucXVldWVJZCB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbiAgeyBoZWFkZXI6ICdEdXJhdGlvbicsIHZhbHVlOiByID0+IGZvcm1hdER1cmF0aW9uKHIuZHVyYXRpb25NcykgfSxcbl1cblxuZXhwb3J0IGNvbnN0IGVudmlyb25tZW50Q29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIubmFtZSB9LFxuICB7IGhlYWRlcjogJ0Nsb3VkIElEJywgdmFsdWU6IHIgPT4gci5jbG91ZElkIH0sXG4gIHsgaGVhZGVyOiAnUmVnaW9uJywgdmFsdWU6IHIgPT4gci5jbG91ZFJlZ2lvbiB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgcXVldWVDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnRW52aXJvbm1lbnQnLCB2YWx1ZTogciA9PiAoci5lbnZpcm9ubWVudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lID8/IHIuZW52aXJvbm1lbnRJZCB9LFxuICB7IGhlYWRlcjogJ01vZGUnLCB2YWx1ZTogciA9PiByLmV4ZWN1dGlvbk1vZGUgfSxcbiAgeyBoZWFkZXI6ICdNYXggdkNQVXMnLCB2YWx1ZTogciA9PiByLm1heHZDcHVzIH0sXG4gIHsgaGVhZGVyOiAnU3RvcmFnZSBHQicsIHZhbHVlOiByID0+IHIuc3RvcmFnZVNpemVHYiB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgZW5naW5lQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIubmFtZSB9LFxuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50JywgdmFsdWU6IHIgPT4gKHIuZW52aXJvbm1lbnQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8ubmFtZSA/PyByLmVudmlyb25tZW50SWQgfSxcbiAgeyBoZWFkZXI6ICdFbmdpbmUnLCB2YWx1ZTogciA9PiByLmVuZ2luZSB9LFxuICB7IGhlYWRlcjogJ0VuZ2luZSBWZXJzaW9uJywgdmFsdWU6IHIgPT4gci5lbmdpbmVWZXJzaW9uIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBzdG9yYWdlQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIubmFtZSB9LFxuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50JywgdmFsdWU6IHIgPT4gKHIuZW52aXJvbm1lbnQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8ubmFtZSA/PyByLmVudmlyb25tZW50SWQgfSxcbiAgeyBoZWFkZXI6ICdQZXJtaXNzaW9uIE1vZGUnLCB2YWx1ZTogciA9PiByLnBlcm1pc3Npb25Nb2RlIH0sXG4gIHsgaGVhZGVyOiAnQnVja2V0IE5hbWUnLCB2YWx1ZTogciA9PiByLmJ1Y2tldE5hbWUgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHRhc2tDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdUYXNrIE5hbWUnLCB2YWx1ZTogciA9PiByLmpvYk5hbWUsIHRhYmxlVmFsdWU6IHIgPT4gdHJ1bmNhdGUoci5qb2JOYW1lKSB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnRW52aXJvbm1lbnQnLCB2YWx1ZTogciA9PiAoci5lbnZpcm9ubWVudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lID8/IHIuZW52aXJvbm1lbnRJZCB9LFxuICB7IGhlYWRlcjogJ0VuZ2luZScsIHZhbHVlOiByID0+IChyLmVuZ2luZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnUXVldWUnLCB2YWx1ZTogciA9PiAoci5xdWV1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnU3RhcnRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuc3RhcnRlZEF0KSB9LFxuICB7IGhlYWRlcjogJ0R1cmF0aW9uJywgdmFsdWU6IHIgPT4gZm9ybWF0RHVyYXRpb24oci5kdXJhdGlvbk1zKSB9LFxuXVxuXG5leHBvcnQgY29uc3Qgc3VibWlzc2lvbkxvZ0NvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ1RpbWVzdGFtcCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIudGltZXN0YW1wKSB9LFxuICB7IGhlYWRlcjogJ01lc3NhZ2UnLCB2YWx1ZTogciA9PiByLm1lc3NhZ2UgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHRhc2tMb2dDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdKb2IgTmFtZScsIHZhbHVlOiByID0+IHIuam9iTmFtZSB9LFxuICB7IGhlYWRlcjogJ1RpbWVzdGFtcCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIudGltZXN0YW1wKSB9LFxuICB7IGhlYWRlcjogJ01lc3NhZ2UnLCB2YWx1ZTogciA9PiByLm1lc3NhZ2UgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHJlZ2lzdHJ5Q29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIubmFtZSB9LFxuICB7IGhlYWRlcjogJ011dGFiaWxpdHknLCB2YWx1ZTogciA9PiByLmltYWdlVGFnTXV0YWJpbGl0eSB9LFxuICB7IGhlYWRlcjogJ1JlcG9zaXRvcnkgVVJJJywgdmFsdWU6IHIgPT4gci5yZXBvc2l0b3J5VXJpIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBpbnN0YW5jZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ0VDMiBJbnN0YW5jZScsIHZhbHVlOiByID0+IHIuZWMySW5zdGFuY2VJZCB9LFxuICB7IGhlYWRlcjogJ1R5cGUnLCB2YWx1ZTogciA9PiByLmluc3RhbmNlVHlwZSB9LFxuICB7IGhlYWRlcjogJ01hcmtldCcsIHZhbHVlOiByID0+IHIubWFya2V0VHlwZSB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnRHVyYXRpb24nLCB2YWx1ZTogciA9PiBmb3JtYXREdXJhdGlvbihyLmR1cmF0aW9uTXMpIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBFQzIgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koKHIuY29zdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5lc3RpbWF0ZWRFYzJDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVm9sdW1lICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KChyLmNvc3QgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8uZXN0aW1hdGVkVm9sdW1lQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KChyLmNvc3QgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8uZXN0aW1hdGVkVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBFQzIgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koKHIuY29zdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5hY3R1YWxFYzJDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBWb2x1bWUgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koKHIuY29zdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5hY3R1YWxWb2x1bWVDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeSgoci5jb3N0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/LmFjdHVhbFRvdGFsQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdMYXVuY2ggVGltZScsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIubGF1bmNoVGltZSkgfSxcbiAgeyBoZWFkZXI6ICdFbnZpcm9ubWVudCBJRCcsIHZhbHVlOiByID0+IHIuZW52aXJvbm1lbnRJZCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYWN0aXZpdHlMb2dDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdVc2VyJywgdmFsdWU6IHIgPT4gKChyLnByaW5jaXBhbCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik/LnVzZXIgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5lbWFpbCA/PyAoci5wcmluY2lwYWwgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5pZCA/PyByLnByaW5jaXBhbElkIH0sXG4gIHsgaGVhZGVyOiAnQWN0aW9uJywgdmFsdWU6IHIgPT4gci5hY3Rpb24gfSxcbiAgeyBoZWFkZXI6ICdFbnRpdHkgVHlwZScsIHZhbHVlOiByID0+IHIuZW50aXR5VHlwZSB9LFxuICB7IGhlYWRlcjogJ0VudGl0eSBJRCcsIHZhbHVlOiByID0+IHIuZW50aXR5SWQgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBpbWFnZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ1RhZycsIHZhbHVlOiByID0+IHIudGFnIH0sXG4gIHsgaGVhZGVyOiAnRGlnZXN0JywgdmFsdWU6IHIgPT4gci5kaWdlc3QgfSxcbiAgeyBoZWFkZXI6ICdTaXplIChieXRlcyknLCB2YWx1ZTogciA9PiByLnNpemVCeXRlcyB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnSW1hZ2UgVVJJJywgdmFsdWU6IHIgPT4gci5pbWFnZVVyaSB9LFxuICB7IGhlYWRlcjogJ1B1c2hlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIucHVzaGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBwbHVnaW5Db2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnVHlwZScsIHZhbHVlOiByID0+IHIudHlwZSB9LFxuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50JywgdmFsdWU6IHIgPT4gKHIuZW52aXJvbm1lbnQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8ubmFtZSA/PyByLmVudmlyb25tZW50SWQgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0xCIEROUycsIHZhbHVlOiByID0+IHIubG9hZEJhbGFuY2VyRG5zIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgdGVuYW50Q29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIubmFtZSB9LFxuICB7IGhlYWRlcjogJ0NvbnRhY3QgRW1haWwnLCB2YWx1ZTogciA9PiByLmNvbnRhY3RFbWFpbCB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzU3VtbWFyeUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0VzdC4gSW5zdGFuY2UgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci50b3RhbEVzdGltYXRlZEluc3RhbmNlQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIEVCUyAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLnRvdGFsRXN0aW1hdGVkRWJzQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIEVDUyAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLnRvdGFsRXN0aW1hdGVkRWNzQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIudG90YWxFc3RpbWF0ZWRDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLnRvdGFsQWN0dWFsQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdJbnN0YW5jZXMnLCB2YWx1ZTogciA9PiByLmluc3RhbmNlQ291bnQgfSxcbiAgeyBoZWFkZXI6ICdTdWJtaXNzaW9ucycsIHZhbHVlOiByID0+IHIuc3VibWlzc2lvbkNvdW50IH0sXG5dXG5cbmV4cG9ydCBjb25zdCBhbmFseXRpY3NCeVN1Ym1pc3Npb25Db2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdTdWJtaXNzaW9uIElEJywgdmFsdWU6IHIgPT4gci5zdWJtaXNzaW9uSWQgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN1Ym1pc3Npb25TdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuZXN0aW1hdGVkVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLmFjdHVhbFRvdGFsQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdJbnN0YW5jZXMnLCB2YWx1ZTogciA9PiByLmluc3RhbmNlQ291bnQgfSxcbl1cblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc0J5RW52aXJvbm1lbnRDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdFbnZpcm9ubWVudCBJRCcsIHZhbHVlOiByID0+IHIuZW52aXJvbm1lbnRJZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLmVudmlyb25tZW50TmFtZSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5lc3RpbWF0ZWRUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuYWN0dWFsVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnlRdWV1ZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ1F1ZXVlIElEJywgdmFsdWU6IHIgPT4gci5xdWV1ZUlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIucXVldWVOYW1lIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLmVzdGltYXRlZFRvdGFsQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdBY3R1YWwgVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5hY3R1YWxUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnSW5zdGFuY2VzJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZUNvdW50IH0sXG5dXG5cbmV4cG9ydCBjb25zdCBhbmFseXRpY3NCeUluc3RhbmNlVHlwZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0luc3RhbmNlIFR5cGUnLCB2YWx1ZTogciA9PiByLmluc3RhbmNlVHlwZSB9LFxuICB7IGhlYWRlcjogJ01hcmtldCcsIHZhbHVlOiByID0+IHIubWFya2V0VHlwZSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5lc3RpbWF0ZWRUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuYWN0dWFsVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzT3ZlclRpbWVDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdQZXJpb2QnLCB2YWx1ZTogciA9PiByLnBlcmlvZCB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5lc3RpbWF0ZWRUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuYWN0dWFsVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgY29zdHNCeUVuZ2luZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0VuZ2luZSBJRCcsIHZhbHVlOiByID0+IHIuZW5naW5lSWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5lbmdpbmVOYW1lIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLmVzdGltYXRlZFRvdGFsQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdBY3R1YWwgVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5hY3R1YWxUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnSW5zdGFuY2VzJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZUNvdW50IH0sXG5dXG5cbmV4cG9ydCBjb25zdCBjb3N0c0J5RXhlY3V0aW9uTW9kZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0V4ZWN1dGlvbiBNb2RlJywgdmFsdWU6IHIgPT4gci5leGVjdXRpb25Nb2RlIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLmVzdGltYXRlZFRvdGFsQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdBY3R1YWwgVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5hY3R1YWxUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnSW5zdGFuY2VzJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZUNvdW50IH0sXG5dXG5cbmV4cG9ydCBjb25zdCBjb3N0c0J5VGFza0NvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ1Rhc2sgSUQnLCAgICAgICAgdmFsdWU6IHIgPT4gci50YXNrSWQgfSxcbiAgeyBoZWFkZXI6ICdKb2IgTmFtZScsICAgICAgIHZhbHVlOiByID0+IHIuam9iTmFtZSwgdGFibGVWYWx1ZTogciA9PiB0cnVuY2F0ZShyLmpvYk5hbWUpIH0sXG4gIHsgaGVhZGVyOiAnU3VibWlzc2lvbiBJRCcsICB2YWx1ZTogciA9PiByLnN1Ym1pc3Npb25JZCB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsICAgICAgICAgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICd2Q1BVcycsICAgICAgICAgIHZhbHVlOiByID0+IHIudmNwdXMgfSxcbiAgeyBoZWFkZXI6ICdEdXJhdGlvbicsICAgICAgIHZhbHVlOiByID0+IGZvcm1hdER1cmF0aW9uKHIuZHVyYXRpb25NcykgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIENvc3QgKCQpJywgIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuZXN0aW1hdGVkQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdBY3R1YWwgQ29zdCAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLmFjdHVhbENvc3QpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBjb3N0c0J5SW5zdGFuY2VDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJbnN0YW5jZSBJRCcsICAgICAgdmFsdWU6IHIgPT4gci5pbnN0YW5jZUlkIH0sXG4gIHsgaGVhZGVyOiAnSW5zdGFuY2UgVHlwZScsICAgIHZhbHVlOiByID0+IHIuaW5zdGFuY2VUeXBlIH0sXG4gIHsgaGVhZGVyOiAnTWFya2V0JywgICAgICAgICAgIHZhbHVlOiByID0+IHIubWFya2V0VHlwZSB9LFxuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50JywgICAgICB2YWx1ZTogciA9PiByLmVudmlyb25tZW50TmFtZSB9LFxuICB7IGhlYWRlcjogJ1F1ZXVlJywgICAgICAgICAgICB2YWx1ZTogciA9PiByLnF1ZXVlTmFtZSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVG90YWwgKCQpJywgICB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLmVzdGltYXRlZFRvdGFsQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdBY3R1YWwgVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5hY3R1YWxUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnVGVybWluYXRlZCBBdCcsICAgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci50ZXJtaW5hdGlvblRpbWUpIH0sXG5dXG4iXX0=
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSx3Q0FNQztBQStCRCxvQ0FZQztBQUVELG9DQTBCQztBQThCRCw4REFZQztBQXpIRCw0REFBOEI7QUFFOUIsU0FBZ0IsY0FBYyxDQUFDLEtBQWM7SUFDM0MsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUU7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNyRSxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsT0FBTyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQzlJLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxLQUFjO0lBQ3BDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxFQUFFO1FBQUUsT0FB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QyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtJQUN0QyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUM3QyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtJQUMvQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMxQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRTtDQUNsRSxDQUFBO0FBRVksUUFBQSxZQUFZLEdBQWdCO0lBQ3ZDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ2xDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO0lBQ3RDLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFDLENBQUMsV0FBOEMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRTtJQUNqSCxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRTtJQUMvQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMvQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMs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S0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNsQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtJQUNwQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMxQyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRTtJQUNuRCxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMxQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMvQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTtDQUNoRSxDQUFBO0FBRVksUUFBQSxhQUFhLEdBQWdCO0lBQ3hDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO0lBQ2xDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO0lBQ3RDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO0lBQ3RDLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFDLENBQUMsV0FB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bGktdGFibGUzJ1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0ZVRpbWUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHJldHVybiAnJztcbiAgY29uc3QgZCA9IG5ldyBEYXRlKFN0cmluZyh2YWx1ZSkpO1xuICBpZiAoaXNOYU4oZC5nZXRUaW1lKCkpKSByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgY29uc3QgcGFkID0gKG46IG51bWJlcikgPT4gU3RyaW5nKG4pLnBhZFN0YXJ0KDIsICcwJyk7XG4gIHJldHVybiBgJHtkLmdldEZ1bGxZZWFyKCl9LSR7cGFkKGQuZ2V0TW9udGgoKSArIDEpfS0ke3BhZChkLmdldERhdGUoKSl9ICR7cGFkKGQuZ2V0SG91cnMoKSl9OiR7cGFkKGQuZ2V0TWludXRlcygpKX06JHtwYWQoZC5nZXRTZWNvbmRzKCkpfWA7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEN1cnJlbmN5KHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gJyc7XG4gIGNvbnN0IG4gPSBOdW1iZXIodmFsdWUpO1xuICBpZiAoaXNOYU4obikpIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICByZXR1cm4gbi50b0ZpeGVkKDIpO1xufVxuXG5mdW5jdGlvbiB0cnVuY2F0ZSh2YWx1ZTogdW5rbm93biwgbWF4ID0gMzApOiBzdHJpbmcge1xuICBjb25zdCBzID0gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbHVlKVxuICByZXR1cm4gcy5sZW5ndGggPD0gbWF4ID8gcyA6IGAke3Muc2xpY2UoMCwgbWF4IC0gMyl9Li4uYFxufVxuXG5mdW5jdGlvbiBmb3JtYXREdXJhdGlvbihtczogdW5rbm93bik6IHN0cmluZyB7XG4gIGlmIChtcyA9PT0gbnVsbCB8fCBtcyA9PT0gdW5kZWZpbmVkIHx8IG1zID09PSAnJykgcmV0dXJuICcnO1xuICBjb25zdCB0b3RhbFNlYyA9IE1hdGguZmxvb3IoTnVtYmVyKG1zKSAvIDEwMDApO1xuICBjb25zdCBoID0gTWF0aC5mbG9vcih0b3RhbFNlYyAvIDM2MDApO1xuICBjb25zdCBtID0gTWF0aC5mbG9vcigodG90YWxTZWMgJSAzNjAwKSAvIDYwKTtcbiAgY29uc3QgcyA9IHRvdGFsU2VjICUgNjA7XG4gIHJldHVybiBgJHtTdHJpbmcoaCkucGFkU3RhcnQoMiwgJzAnKX06JHtTdHJpbmcobSkucGFkU3RhcnQoMiwgJzAnKX06JHtTdHJpbmcocykucGFkU3RhcnQoMiwgJzAnKX1gO1xufVxuXG5leHBvcnQgdHlwZSBPdXRwdXRGb3JtYXQgPSAndGFibGUnIHwgJ2pzb24nIHwgJ2NzdidcblxuaW50ZXJmYWNlIENvbHVtbkRlZiB7XG4gIGhlYWRlcjogc3RyaW5nXG4gIHZhbHVlOiAoaXRlbTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHVua25vd25cbiAgdGFibGVWYWx1ZT86IChpdGVtOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdW5rbm93blxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGV0YWlsKGRhdGE6IHVua25vd24sIGZvcm1hdDogT3V0cHV0Rm9ybWF0LCBjb2x1bW5zOiBDb2x1bW5EZWZbXSk6IHZvaWQge1xuICBpZiAoZm9ybWF0ICE9PSAndGFibGUnKSB7XG4gICAgZm9ybWF0T3V0cHV0KGRhdGEsIGZvcm1hdCwgY29sdW1ucylcbiAgICByZXR1cm5cbiAgfVxuICBjb25zdCBpdGVtID0gKEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhWzBdIDogZGF0YSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgY29uc3QgdGFibGUgPSBuZXcgVGFibGUoKVxuICBjb2x1bW5zLmZvckVhY2goYyA9PiB7XG4gICAgY29uc3QgdmFsID0gKGMudGFibGVWYWx1ZSA/PyBjLnZhbHVlKShpdGVtKVxuICAgIHRhYmxlLnB1c2goeyBbYy5oZWFkZXJdOiB2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyh2YWwpIH0pXG4gIH0pXG4gIGNvbnNvbGUubG9nKHRhYmxlLnRvU3RyaW5nKCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRPdXRwdXQoZGF0YTogdW5rbm93biwgZm9ybWF0OiBPdXRwdXRGb3JtYXQsIGNvbHVtbnM6IENvbHVtbkRlZltdKTogdm9pZCB7XG4gIGNvbnN0IGl0ZW1zID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV1cbiAgY29uc3QgaGVhZGVycyA9IGNvbHVtbnMubWFwKGMgPT4gYy5oZWFkZXIpXG4gIGNvbnN0IHJvd3MgPSBpdGVtcy5tYXAoaXRlbSA9PlxuICAgIGNvbHVtbnMubWFwKGMgPT4ge1xuICAgICAgY29uc3QgdmFsID0gYy52YWx1ZShpdGVtIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVxuICAgICAgcmV0dXJuIHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbClcbiAgICB9KVxuICApXG5cbiAgaWYgKGZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMikpXG4gIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnY3N2Jykge1xuICAgIGNvbnNvbGUubG9nKGhlYWRlcnMuam9pbignLCcpKVxuICAgIHJvd3MuZm9yRWFjaChyb3cgPT4gY29uc29sZS5sb2cocm93Lm1hcCh2ID0+IGBcIiR7di5yZXBsYWNlKC9cIi9nLCAnXCJcIicpfVwiYCkuam9pbignLCcpKSlcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0YWJsZVJvd3MgPSBpdGVtcy5tYXAoaXRlbSA9PlxuICAgICAgY29sdW1ucy5tYXAoYyA9PiB7XG4gICAgICAgIGNvbnN0IHZhbCA9IChjLnRhYmxlVmFsdWUgPz8gYy52YWx1ZSkoaXRlbSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilcbiAgICAgICAgcmV0dXJuIHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCA/ICcnIDogU3RyaW5nKHZhbClcbiAgICAgIH0pXG4gICAgKVxuICAgIGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlKHsgaGVhZDogaGVhZGVycyB9KVxuICAgIHRhYmxlUm93cy5mb3JFYWNoKHJvdyA9PiB0YWJsZS5wdXNoKHJvdykpXG4gICAgY29uc29sZS5sb2codGFibGUudG9TdHJpbmcoKSlcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgd29ya2Zsb3dDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnVmVyc2lvbicsIHZhbHVlOiByID0+IHIudmVyc2lvbiB9LFxuICB7IGhlYWRlcjogJ0VuZ2luZScsIHZhbHVlOiByID0+IHIuZW5naW5lIH0sXG4gIHsgaGVhZGVyOiAnRmlsZSBUeXBlJywgdmFsdWU6IHIgPT4gci5maWxlVHlwZSB9LFxuICB7IGhlYWRlcjogJ0xhdGVzdCcsIHZhbHVlOiByID0+IHIubGF0ZXN0IH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3Qgd29ya2Zsb3dWZXJzaW9uQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnVmVyc2lvbicsIHZhbHVlOiByID0+IHIudmVyc2lvbiB9LFxuICB7IGhlYWRlcjogJ0ZpbGUgVHlwZScsIHZhbHVlOiByID0+IHIuZmlsZVR5cGUgfSxcbiAgeyBoZWFkZXI6ICdMYXRlc3QnLCB2YWx1ZTogciA9PiByLmxhdGVzdCB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHN1Ym1pc3Npb25Db2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuc3VibWlzc2lvbklkIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdXb3JrZmxvdycsIHZhbHVlOiByID0+IHIud29ya2Zsb3dOYW1lIH0sXG4gIHsgaGVhZGVyOiAnVmVyc2lvbicsIHZhbHVlOiByID0+IHIud29ya2Zsb3dWZXJzaW9uIH0sXG4gIHsgaGVhZGVyOiAnRW52aXJvbm1lbnQnLCB2YWx1ZTogciA9PiAoci5lbnZpcm9ubWVudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lID8/IHIuZW52aXJvbm1lbnRJZCB9LFxuICB7IGhlYWRlcjogJ0VuZ2luZScsIHZhbHVlOiByID0+IChyLmVuZ2luZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lID8/IHIuZW5naW5lSWQgfSxcbiAgeyBoZWFkZXI6ICdRdWV1ZScsIHZhbHVlOiByID0+IChyLnF1ZXVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lm5hbWUgPz8gci5xdWV1ZUlkIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuICB7IGhlYWRlcjogJ0R1cmF0aW9uJywgdmFsdWU6IHIgPT4gZm9ybWF0RHVyYXRpb24oci5kdXJhdGlvbk1zKSB9LFxuXVxuXG5leHBvcnQgZnVuY3Rpb24gc3VibWlzc2lvbkNvbHVtbnNXaXRoVGFncyhzaG93VGFnczogc3RyaW5nW10pOiBDb2x1bW5EZWZbXSB7XG4gIGlmIChzaG93VGFncy5sZW5ndGggPT09IDApIHJldHVybiBzdWJtaXNzaW9uQ29sdW1uc1xuICByZXR1cm4gW1xuICAgIC4uLnN1Ym1pc3Npb25Db2x1bW5zLFxuICAgIC4uLnNob3dUYWdzLm1hcChrZXkgPT4gKHtcbiAgICAgIGhlYWRlcjoga2V5LFxuICAgICAgdmFsdWU6IChyOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4ge1xuICAgICAgICBjb25zdCB0YWdzID0gci50YWdzIGFzIEFycmF5PHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4gfCB1bmRlZmluZWRcbiAgICAgICAgcmV0dXJuIHRhZ3M/LmZpbmQodCA9PiB0LmtleSA9PT0ga2V5LnRvTG93ZXJDYXNlKCkpPy52YWx1ZSA/PyAnJ1xuICAgICAgfSxcbiAgICB9KSksXG4gIF1cbn1cblxuZXhwb3J0IGNvbnN0IHRhZ0NvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBjb3N0c0J5VGFnQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnVmFsdWUnLCB2YWx1ZTogciA9PiByLnRhZ1ZhbHVlIH0sXG4gIHsgaGVhZGVyOiAnU3VibWlzc2lvbnMnLCB2YWx1ZTogciA9PiByLnN1Ym1pc3Npb25Db3VudCB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci50b3RhbEVzdGltYXRlZENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIudG90YWxBY3R1YWxDb3N0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnRDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnQ2xvdWQgSUQnLCB2YWx1ZTogciA9PiByLmNsb3VkSWQgfSxcbiAgeyBoZWFkZXI6ICdSZWdpb24nLCB2YWx1ZTogciA9PiByLmNsb3VkUmVnaW9uIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBxdWV1ZUNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdFbnZpcm9ubWVudCcsIHZhbHVlOiByID0+IChyLmVudmlyb25tZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lm5hbWUgPz8gci5lbnZpcm9ubWVudElkIH0sXG4gIHsgaGVhZGVyOiAnTW9kZScsIHZhbHVlOiByID0+IHIuZXhlY3V0aW9uTW9kZSB9LFxuICB7IGhlYWRlcjogJ01heCB2Q1BVcycsIHZhbHVlOiByID0+IHIubWF4dkNwdXMgfSxcbiAgeyBoZWFkZXI6ICdTdG9yYWdlIEdCJywgdmFsdWU6IHIgPT4gci5zdG9yYWdlU2l6ZUdiIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBlbmdpbmVDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnRW52aXJvbm1lbnQnLCB2YWx1ZTogciA9PiAoci5lbnZpcm9ubWVudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lID8/IHIuZW52aXJvbm1lbnRJZCB9LFxuICB7IGhlYWRlcjogJ0VuZ2luZScsIHZhbHVlOiByID0+IHIuZW5naW5lIH0sXG4gIHsgaGVhZGVyOiAnRW5naW5lIFZlcnNpb24nLCB2YWx1ZTogciA9PiByLmVuZ2luZVZlcnNpb24gfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHN0b3JhZ2VDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnRW52aXJvbm1lbnQnLCB2YWx1ZTogciA9PiAoci5lbnZpcm9ubWVudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lID8/IHIuZW52aXJvbm1lbnRJZCB9LFxuICB7IGhlYWRlcjogJ1Blcm1pc3Npb24gTW9kZScsIHZhbHVlOiByID0+IHIucGVybWlzc2lvbk1vZGUgfSxcbiAgeyBoZWFkZXI6ICdCdWNrZXQgTmFtZScsIHZhbHVlOiByID0+IHIuYnVja2V0TmFtZSB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnQ3JlYXRlZCBBdCcsIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIuY3JlYXRlZEF0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgdGFza0NvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ1Rhc2sgTmFtZScsIHZhbHVlOiByID0+IHIuam9iTmFtZSwgdGFibGVWYWx1ZTogciA9PiB0cnVuY2F0ZShyLmpvYk5hbWUpIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdFbnZpcm9ubWVudCcsIHZhbHVlOiByID0+IChyLmVudmlyb25tZW50IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lm5hbWUgPz8gci5lbnZpcm9ubWVudElkIH0sXG4gIHsgaGVhZGVyOiAnRW5naW5lJywgdmFsdWU6IHIgPT4gKHIuZW5naW5lIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdRdWV1ZScsIHZhbHVlOiByID0+IChyLnF1ZXVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/Lm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdTdGFydGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5zdGFydGVkQXQpIH0sXG4gIHsgaGVhZGVyOiAnRHVyYXRpb24nLCB2YWx1ZTogciA9PiBmb3JtYXREdXJhdGlvbihyLmR1cmF0aW9uTXMpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBzdWJtaXNzaW9uTG9nQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnVGltZXN0YW1wJywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci50aW1lc3RhbXApIH0sXG4gIHsgaGVhZGVyOiAnTWVzc2FnZScsIHZhbHVlOiByID0+IHIubWVzc2FnZSB9LFxuXVxuXG5leHBvcnQgY29uc3QgdGFza0xvZ0NvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0pvYiBOYW1lJywgdmFsdWU6IHIgPT4gci5qb2JOYW1lIH0sXG4gIHsgaGVhZGVyOiAnVGltZXN0YW1wJywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci50aW1lc3RhbXApIH0sXG4gIHsgaGVhZGVyOiAnTWVzc2FnZScsIHZhbHVlOiByID0+IHIubWVzc2FnZSB9LFxuXVxuXG5leHBvcnQgY29uc3QgcmVnaXN0cnlDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnTXV0YWJpbGl0eScsIHZhbHVlOiByID0+IHIuaW1hZ2VUYWdNdXRhYmlsaXR5IH0sXG4gIHsgaGVhZGVyOiAnUmVwb3NpdG9yeSBVUkknLCB2YWx1ZTogciA9PiByLnJlcG9zaXRvcnlVcmkgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCB2YWx1ZTogciA9PiByLnN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IGluc3RhbmNlQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnRUMyIEluc3RhbmNlJywgdmFsdWU6IHIgPT4gci5lYzJJbnN0YW5jZUlkIH0sXG4gIHsgaGVhZGVyOiAnVHlwZScsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VUeXBlIH0sXG4gIHsgaGVhZGVyOiAnTWFya2V0JywgdmFsdWU6IHIgPT4gci5tYXJrZXRUeXBlIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdEdXJhdGlvbicsIHZhbHVlOiByID0+IGZvcm1hdER1cmF0aW9uKHIuZHVyYXRpb25NcykgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIEVDMiAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeSgoci5jb3N0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/LmVzdGltYXRlZEVjMkNvc3QpIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBWb2x1bWUgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koKHIuY29zdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5lc3RpbWF0ZWRWb2x1bWVDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koKHIuY29zdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5lc3RpbWF0ZWRUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIEVDMiAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeSgoci5jb3N0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/LmFjdHVhbEVjMkNvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFZvbHVtZSAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeSgoci5jb3N0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCk/LmFjdHVhbFZvbHVtZUNvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KChyLmNvc3QgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsKT8uYWN0dWFsVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0xhdW5jaCBUaW1lJywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5sYXVuY2hUaW1lKSB9LFxuICB7IGhlYWRlcjogJ0Vudmlyb25tZW50IElEJywgdmFsdWU6IHIgPT4gci5lbnZpcm9ubWVudElkIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBhY3Rpdml0eUxvZ0NvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ1VzZXInLCB2YWx1ZTogciA9PiAoKHIucHJpbmNpcGFsIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KT8udXNlciBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik/LmVtYWlsID8/IChyLnByaW5jaXBhbCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik/LmlkID8/IHIucHJpbmNpcGFsSWQgfSxcbiAgeyBoZWFkZXI6ICdBY3Rpb24nLCB2YWx1ZTogciA9PiByLmFjdGlvbiB9LFxuICB7IGhlYWRlcjogJ0VudGl0eSBUeXBlJywgdmFsdWU6IHIgPT4gci5lbnRpdHlUeXBlIH0sXG4gIHsgaGVhZGVyOiAnRW50aXR5IElEJywgdmFsdWU6IHIgPT4gci5lbnRpdHlJZCB9LFxuICB7IGhlYWRlcjogJ0NyZWF0ZWQgQXQnLCB2YWx1ZTogciA9PiBmb3JtYXREYXRlVGltZShyLmNyZWF0ZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IGltYWdlQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSUQnLCB2YWx1ZTogciA9PiByLmlkIH0sXG4gIHsgaGVhZGVyOiAnVGFnJywgdmFsdWU6IHIgPT4gci50YWcgfSxcbiAgeyBoZWFkZXI6ICdEaWdlc3QnLCB2YWx1ZTogciA9PiByLmRpZ2VzdCB9LFxuICB7IGhlYWRlcjogJ1NpemUgKGJ5dGVzKScsIHZhbHVlOiByID0+IHIuc2l6ZUJ5dGVzIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdJbWFnZSBVUkknLCB2YWx1ZTogciA9PiByLmltYWdlVXJpIH0sXG4gIHsgaGVhZGVyOiAnUHVzaGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5wdXNoZWRBdCkgfSxcbl1cblxuZXhwb3J0IGNvbnN0IHBsdWdpbkNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ0lEJywgdmFsdWU6IHIgPT4gci5pZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLm5hbWUgfSxcbiAgeyBoZWFkZXI6ICdUeXBlJywgdmFsdWU6IHIgPT4gci50eXBlIH0sXG4gIHsgaGVhZGVyOiAnRW52aXJvbm1lbnQnLCB2YWx1ZTogciA9PiAoci5lbnZpcm9ubWVudCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwpPy5uYW1lID8/IHIuZW52aXJvbm1lbnRJZCB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAnTEIgRE5TJywgdmFsdWU6IHIgPT4gci5sb2FkQmFsYW5jZXJEbnMgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCB0ZW5hbnRDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJRCcsIHZhbHVlOiByID0+IHIuaWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5uYW1lIH0sXG4gIHsgaGVhZGVyOiAnQ29udGFjdCBFbWFpbCcsIHZhbHVlOiByID0+IHIuY29udGFjdEVtYWlsIH0sXG4gIHsgaGVhZGVyOiAnU3RhdHVzJywgdmFsdWU6IHIgPT4gci5zdGF0dXMgfSxcbiAgeyBoZWFkZXI6ICdDcmVhdGVkIEF0JywgdmFsdWU6IHIgPT4gZm9ybWF0RGF0ZVRpbWUoci5jcmVhdGVkQXQpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBhbmFseXRpY3NTdW1tYXJ5Q29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnRXN0LiBJbnN0YW5jZSAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLnRvdGFsRXN0aW1hdGVkSW5zdGFuY2VDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gRUJTICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIudG90YWxFc3RpbWF0ZWRFYnNDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gRUNTICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIudG90YWxFc3RpbWF0ZWRFY3NDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci50b3RhbEVzdGltYXRlZENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIudG90YWxBY3R1YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuICB7IGhlYWRlcjogJ1N1Ym1pc3Npb25zJywgdmFsdWU6IHIgPT4gci5zdWJtaXNzaW9uQ291bnQgfSxcbl1cblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc0J5U3VibWlzc2lvbkNvbHVtbnM6IENvbHVtbkRlZltdID0gW1xuICB7IGhlYWRlcjogJ1N1Ym1pc3Npb24gSUQnLCB2YWx1ZTogciA9PiByLnN1Ym1pc3Npb25JZCB9LFxuICB7IGhlYWRlcjogJ1N0YXR1cycsIHZhbHVlOiByID0+IHIuc3VibWlzc2lvblN0YXR1cyB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVGFzayAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLmVzdGltYXRlZFRhc2tDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gRUNTICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuZXN0aW1hdGVkRWNzQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuZXN0aW1hdGVkVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0FjdC4gVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5hY3R1YWxUb3RhbENvc3QpIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBhbmFseXRpY3NCeUVudmlyb25tZW50Q29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnRW52aXJvbm1lbnQgSUQnLCB2YWx1ZTogciA9PiByLmVudmlyb25tZW50SWQgfSxcbiAgeyBoZWFkZXI6ICdOYW1lJywgdmFsdWU6IHIgPT4gci5lbnZpcm9ubWVudE5hbWUgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuZXN0aW1hdGVkVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLmFjdHVhbFRvdGFsQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdJbnN0YW5jZXMnLCB2YWx1ZTogciA9PiByLmluc3RhbmNlQ291bnQgfSxcbl1cblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc0J5UXVldWVDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdRdWV1ZSBJRCcsIHZhbHVlOiByID0+IHIucXVldWVJZCB9LFxuICB7IGhlYWRlcjogJ05hbWUnLCB2YWx1ZTogciA9PiByLnF1ZXVlTmFtZSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5lc3RpbWF0ZWRUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuYWN0dWFsVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgYW5hbHl0aWNzQnlJbnN0YW5jZVR5cGVDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdJbnN0YW5jZSBUeXBlJywgdmFsdWU6IHIgPT4gci5pbnN0YW5jZVR5cGUgfSxcbiAgeyBoZWFkZXI6ICdNYXJrZXQnLCB2YWx1ZTogciA9PiByLm1hcmtldFR5cGUgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuZXN0aW1hdGVkVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLmFjdHVhbFRvdGFsQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdJbnN0YW5jZXMnLCB2YWx1ZTogciA9PiByLmluc3RhbmNlQ291bnQgfSxcbl1cblxuZXhwb3J0IGNvbnN0IGFuYWx5dGljc092ZXJUaW1lQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnUGVyaW9kJywgdmFsdWU6IHIgPT4gci5wZXJpb2QgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuZXN0aW1hdGVkVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0FjdHVhbCBUb3RhbCAoJCknLCB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLmFjdHVhbFRvdGFsQ29zdCkgfSxcbiAgeyBoZWFkZXI6ICdJbnN0YW5jZXMnLCB2YWx1ZTogciA9PiByLmluc3RhbmNlQ291bnQgfSxcbl1cblxuZXhwb3J0IGNvbnN0IGNvc3RzQnlFbmdpbmVDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdFbmdpbmUgSUQnLCB2YWx1ZTogciA9PiByLmVuZ2luZUlkIH0sXG4gIHsgaGVhZGVyOiAnTmFtZScsIHZhbHVlOiByID0+IHIuZW5naW5lTmFtZSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5lc3RpbWF0ZWRUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuYWN0dWFsVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgY29zdHNCeUV4ZWN1dGlvbk1vZGVDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdFeGVjdXRpb24gTW9kZScsIHZhbHVlOiByID0+IHIuZXhlY3V0aW9uTW9kZSB9LFxuICB7IGhlYWRlcjogJ0VzdC4gVG90YWwgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5lc3RpbWF0ZWRUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuYWN0dWFsVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlcycsIHZhbHVlOiByID0+IHIuaW5zdGFuY2VDb3VudCB9LFxuXVxuXG5leHBvcnQgY29uc3QgY29zdHNCeVRhc2tDb2x1bW5zOiBDb2x1bW5EZWZbXSA9IFtcbiAgeyBoZWFkZXI6ICdUYXNrIElEJywgICAgICAgIHZhbHVlOiByID0+IHIudGFza0lkIH0sXG4gIHsgaGVhZGVyOiAnSm9iIE5hbWUnLCAgICAgICB2YWx1ZTogciA9PiByLmpvYk5hbWUsIHRhYmxlVmFsdWU6IHIgPT4gdHJ1bmNhdGUoci5qb2JOYW1lKSB9LFxuICB7IGhlYWRlcjogJ1N1Ym1pc3Npb24gSUQnLCAgdmFsdWU6IHIgPT4gci5zdWJtaXNzaW9uSWQgfSxcbiAgeyBoZWFkZXI6ICdTdGF0dXMnLCAgICAgICAgIHZhbHVlOiByID0+IHIuc3RhdHVzIH0sXG4gIHsgaGVhZGVyOiAndkNQVXMnLCAgICAgICAgICB2YWx1ZTogciA9PiByLnZjcHVzIH0sXG4gIHsgaGVhZGVyOiAnRHVyYXRpb24nLCAgICAgICB2YWx1ZTogciA9PiBmb3JtYXREdXJhdGlvbihyLmR1cmF0aW9uTXMpIH0sXG4gIHsgaGVhZGVyOiAnRXN0LiBDb3N0ICgkKScsICB2YWx1ZTogciA9PiBmb3JtYXRDdXJyZW5jeShyLmVzdGltYXRlZENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIENvc3QgKCQpJywgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5hY3R1YWxDb3N0KSB9LFxuXVxuXG5leHBvcnQgY29uc3QgY29zdHNCeUluc3RhbmNlQ29sdW1uczogQ29sdW1uRGVmW10gPSBbXG4gIHsgaGVhZGVyOiAnSW5zdGFuY2UgSUQnLCAgICAgIHZhbHVlOiByID0+IHIuaW5zdGFuY2VJZCB9LFxuICB7IGhlYWRlcjogJ0luc3RhbmNlIFR5cGUnLCAgICB2YWx1ZTogciA9PiByLmluc3RhbmNlVHlwZSB9LFxuICB7IGhlYWRlcjogJ01hcmtldCcsICAgICAgICAgICB2YWx1ZTogciA9PiByLm1hcmtldFR5cGUgfSxcbiAgeyBoZWFkZXI6ICdFbnZpcm9ubWVudCcsICAgICAgdmFsdWU6IHIgPT4gci5lbnZpcm9ubWVudE5hbWUgfSxcbiAgeyBoZWFkZXI6ICdRdWV1ZScsICAgICAgICAgICAgdmFsdWU6IHIgPT4gci5xdWV1ZU5hbWUgfSxcbiAgeyBoZWFkZXI6ICdFc3QuIFRvdGFsICgkKScsICAgdmFsdWU6IHIgPT4gZm9ybWF0Q3VycmVuY3koci5lc3RpbWF0ZWRUb3RhbENvc3QpIH0sXG4gIHsgaGVhZGVyOiAnQWN0dWFsIFRvdGFsICgkKScsIHZhbHVlOiByID0+IGZvcm1hdEN1cnJlbmN5KHIuYWN0dWFsVG90YWxDb3N0KSB9LFxuICB7IGhlYWRlcjogJ1Rlcm1pbmF0ZWQgQXQnLCAgIHZhbHVlOiByID0+IGZvcm1hdERhdGVUaW1lKHIudGVybWluYXRpb25UaW1lKSB9LFxuXVxuIl19
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,7 @@ const api_token_1 = require("./commands/api-token");
|
|
|
20
20
|
const tenant_1 = require("./commands/tenant");
|
|
21
21
|
const plugin_1 = require("./commands/plugin");
|
|
22
22
|
const costs_1 = require("./commands/costs");
|
|
23
|
+
const tag_1 = require("./commands/tag");
|
|
23
24
|
const errors_1 = require("./errors");
|
|
24
25
|
const program = new commander_1.Command();
|
|
25
26
|
program
|
|
@@ -53,6 +54,7 @@ program.addCommand(api_token_1.apiTokenCommand);
|
|
|
53
54
|
program.addCommand(tenant_1.tenantCommand);
|
|
54
55
|
program.addCommand(plugin_1.pluginCommand);
|
|
55
56
|
program.addCommand(costs_1.costsCommand);
|
|
57
|
+
program.addCommand(tag_1.tagCommand);
|
|
56
58
|
applyHelpOnNoArgs(program);
|
|
57
59
|
applyExitOverride(program);
|
|
58
60
|
async function main() {
|
|
@@ -87,4 +89,4 @@ function applyExitOverride(command) {
|
|
|
87
89
|
command.exitOverride();
|
|
88
90
|
command.commands.forEach(applyExitOverride);
|
|
89
91
|
}
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQW1DO0FBQ25DLDBDQUE2QztBQUM3QywwQ0FBNkM7QUFDN0Msa0RBQXFEO0FBQ3JELHNEQUF5RDtBQUN6RCw0Q0FBK0M7QUFDL0Msd0RBQTJEO0FBQzNELDhDQUFpRDtBQUNqRCw0Q0FBK0M7QUFDL0MsZ0RBQW1EO0FBQ25ELDBDQUE2QztBQUM3QyxrREFBcUQ7QUFDckQsNENBQStDO0FBQy9DLGtEQUFxRDtBQUNyRCwwREFBNEQ7QUFDNUQsb0RBQXNEO0FBQ3RELDhDQUFpRDtBQUNqRCw4Q0FBaUQ7QUFDakQsNENBQStDO0FBQy9DLHdDQUEyQztBQUMzQyxxQ0FBb0Y7QUFFcEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBTyxFQUFFLENBQUE7QUFFN0IsT0FBTztLQUNKLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDWixXQUFXLENBQUMsaUNBQWlDLENBQUM7S0FDOUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztLQUNoQixNQUFNLENBQUMsU0FBUyxFQUFFLDBCQUEwQixDQUFDO0tBQzdDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSx3REFBd0QsQ0FBQztLQUN2RixlQUFlLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUUzQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7SUFDN0IsTUFBTSxLQUFLLEdBQUksT0FBTyxDQUFDLElBQUksRUFBNEIsQ0FBQyxRQUFRLENBQUE7SUFDaEUsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtJQUNwQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUE7QUFFRixPQUFPLENBQUMsVUFBVSxDQUFDLGtCQUFXLENBQUMsQ0FBQTtBQUMvQixPQUFPLENBQUMsVUFBVSxDQUFDLGtCQUFXLENBQUMsQ0FBQTtBQUMvQixPQUFPLENBQUMsVUFBVSxDQUFDLDBCQUFlLENBQUMsQ0FBQTtBQUNuQyxPQUFPLENBQUMsVUFBVSxDQUFDLDhCQUFpQixDQUFDLENBQUE7QUFDckMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxvQkFBWSxDQUFDLENBQUE7QUFDaEMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxnQ0FBa0IsQ0FBQyxDQUFBO0FBQ3RDLE9BQU8sQ0FBQyxVQUFVLENBQUMsc0JBQWEsQ0FBQyxDQUFBO0FBQ2pDLE9BQU8sQ0FBQyxVQUFVLENBQUMsb0JBQVksQ0FBQyxDQUFBO0FBQ2hDLE9BQU8sQ0FBQyxVQUFVLENBQUMsd0JBQWMsQ0FBQyxDQUFBO0FBQ2xDLE9BQU8sQ0FBQyxVQUFVLENBQUMsa0JBQVcsQ0FBQyxDQUFBO0FBQy9CLE9BQU8sQ0FBQyxVQUFVLENBQUMsMEJBQWUsQ0FBQyxDQUFBO0FBQ25DLE9BQU8sQ0FBQyxVQUFVLENBQUMsb0JBQVksQ0FBQyxDQUFBO0FBQ2hDLE9BQU8sQ0FBQyxVQUFVLENBQUMsMEJBQWUsQ0FBQyxDQUFBO0FBQ25DLE9BQU8sQ0FBQyxVQUFVLENBQUMsaUNBQWtCLENBQUMsQ0FBQTtBQUN0QyxPQUFPLENBQUMsVUFBVSxDQUFDLDJCQUFlLENBQUMsQ0FBQTtBQUNuQyxPQUFPLENBQUMsVUFBVSxDQUFDLHNCQUFhLENBQUMsQ0FBQTtBQUNqQyxPQUFPLENBQUMsVUFBVSxDQUFDLHNCQUFhLENBQUMsQ0FBQTtBQUNqQyxPQUFPLENBQUMsVUFBVSxDQUFDLG9CQUFZLENBQUMsQ0FBQTtBQUNoQyxPQUFPLENBQUMsVUFBVSxDQUFDLGdCQUFVLENBQUMsQ0FBQTtBQUU5QixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUMxQixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUUxQixLQUFLLFVBQVUsSUFBSTtJQUNqQixJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFBQyxPQUFPLEdBQVksRUFBRSxDQUFDO1FBQ3RCLE1BQU0sY0FBYyxHQUFHLEdBQTJDLENBQUE7UUFDbEUsTUFBTSxvQkFBb0IsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFBO1FBQ2hELElBQ0Usb0JBQW9CLEtBQUssZ0JBQWdCO1lBQ3pDLG9CQUFvQixLQUFLLHlCQUF5QjtZQUNsRCxvQkFBb0IsS0FBSyxtQkFBbUIsRUFDNUMsQ0FBQztZQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakIsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUEsbUJBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQTtRQUNoQyxJQUFBLHNCQUFhLEVBQUMsUUFBUSxFQUFFO1lBQ3RCLElBQUksRUFBRSxJQUFBLHVCQUFjLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNsQyxLQUFLLEVBQUUsSUFBQSx1QkFBYyxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDcEMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDakMsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLElBQUksRUFBRSxDQUFBO0FBRVgsU0FBUyxpQkFBaUIsQ0FBQyxPQUFnQjtJQUN6QyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFFLE9BQWtELENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUM3QyxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxPQUFnQjtJQUN6QyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDaEQsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ3RCLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInXG5pbXBvcnQgeyBhdXRoQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvYXV0aCdcbmltcG9ydCB7IHVzZXJDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy91c2VyJ1xuaW1wb3J0IHsgd29ya2Zsb3dDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy93b3JrZmxvdydcbmltcG9ydCB7IHN1Ym1pc3Npb25Db21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9zdWJtaXNzaW9uJ1xuaW1wb3J0IHsgcXVldWVDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9xdWV1ZSdcbmltcG9ydCB7IGVudmlyb25tZW50Q29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvZW52aXJvbm1lbnQnXG5pbXBvcnQgeyBlbmdpbmVDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9lbmdpbmUnXG5pbXBvcnQgeyBzZXR1cENvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL3NldHVwJ1xuaW1wb3J0IHsgc3RvcmFnZUNvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL3N0b3JhZ2UnXG5pbXBvcnQgeyB0YXNrQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvdGFzaydcbmltcG9ydCB7IHJlZ2lzdHJ5Q29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvcmVnaXN0cnknXG5pbXBvcnQgeyBpbWFnZUNvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL2ltYWdlJ1xuaW1wb3J0IHsgaW5zdGFuY2VDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9pbnN0YW5jZSdcbmltcG9ydCB7IGFjdGl2aXR5TG9nQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvYWN0aXZpdHktbG9nJ1xuaW1wb3J0IHsgYXBpVG9rZW5Db21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9hcGktdG9rZW4nXG5pbXBvcnQgeyB0ZW5hbnRDb21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy90ZW5hbnQnXG5pbXBvcnQgeyBwbHVnaW5Db21tYW5kIH0gZnJvbSAnLi9jb21tYW5kcy9wbHVnaW4nXG5pbXBvcnQgeyBjb3N0c0NvbW1hbmQgfSBmcm9tICcuL2NvbW1hbmRzL2Nvc3RzJ1xuaW1wb3J0IHsgdGFnQ29tbWFuZCB9IGZyb20gJy4vY29tbWFuZHMvdGFnJ1xuaW1wb3J0IHsgaXNEZWJ1Z0VuYWJsZWQsIHByaW50Q2xpRXJyb3IsIHRvQ2xpRXJyb3IsIHdhbnRzSnNvbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnXG5cbmNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpXG5cbnByb2dyYW1cbiAgLm5hbWUoJ2dlbmknKVxuICAuZGVzY3JpcHRpb24oJ0dlbmkgV29ya2Zsb3dzIOKAlCBCaW9pbmZvcm1hdGljcycpXG4gIC52ZXJzaW9uKCcwLjEuMycpXG4gIC5vcHRpb24oJy0tZGVidWcnLCAnU2hvdyBkZWJ1ZyBlcnJvciBkZXRhaWxzJylcbiAgLm9wdGlvbignLS1hcGktdG9rZW4gPHRva2VuPicsICdBdXRoZW50aWNhdGUgd2l0aCBhbiBBUEkgdG9rZW4gKHNldHMgWC1BUEktS2V5IGhlYWRlciknKVxuICAuY29uZmlndXJlT3V0cHV0KHsgd3JpdGVFcnI6ICgpID0+IHsgfSB9KVxuXG5wcm9ncmFtLmhvb2soJ3ByZUFjdGlvbicsICgpID0+IHtcbiAgY29uc3QgdG9rZW4gPSAocHJvZ3JhbS5vcHRzKCkgYXMgeyBhcGlUb2tlbj86IHN0cmluZyB9KS5hcGlUb2tlblxuICBpZiAodG9rZW4pIHtcbiAgICBwcm9jZXNzLmVudi5HRU5JX0FQSV9UT0tFTiA9IHRva2VuXG4gIH1cbn0pXG5cbnByb2dyYW0uYWRkQ29tbWFuZChhdXRoQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZCh1c2VyQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZCh3b3JrZmxvd0NvbW1hbmQpXG5wcm9ncmFtLmFkZENvbW1hbmQoc3VibWlzc2lvbkNvbW1hbmQpXG5wcm9ncmFtLmFkZENvbW1hbmQocXVldWVDb21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKGVudmlyb25tZW50Q29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZChlbmdpbmVDb21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKHNldHVwQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZChzdG9yYWdlQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZCh0YXNrQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZChyZWdpc3RyeUNvbW1hbmQpXG5wcm9ncmFtLmFkZENvbW1hbmQoaW1hZ2VDb21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKGluc3RhbmNlQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZChhY3Rpdml0eUxvZ0NvbW1hbmQpXG5wcm9ncmFtLmFkZENvbW1hbmQoYXBpVG9rZW5Db21tYW5kKVxucHJvZ3JhbS5hZGRDb21tYW5kKHRlbmFudENvbW1hbmQpXG5wcm9ncmFtLmFkZENvbW1hbmQocGx1Z2luQ29tbWFuZClcbnByb2dyYW0uYWRkQ29tbWFuZChjb3N0c0NvbW1hbmQpXG5wcm9ncmFtLmFkZENvbW1hbmQodGFnQ29tbWFuZClcblxuYXBwbHlIZWxwT25Ob0FyZ3MocHJvZ3JhbSlcbmFwcGx5RXhpdE92ZXJyaWRlKHByb2dyYW0pXG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgcHJvZ3JhbS5wYXJzZUFzeW5jKHByb2Nlc3MuYXJndilcbiAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgY29uc3QgbWF5YmVDb21tYW5kZXIgPSBlcnIgYXMgeyBjb2RlPzogc3RyaW5nOyBleGl0Q29kZT86IG51bWJlciB9XG4gICAgY29uc3QgY29tbWFuZGVyRGlzcGxheUNvZGUgPSBtYXliZUNvbW1hbmRlci5jb2RlXG4gICAgaWYgKFxuICAgICAgY29tbWFuZGVyRGlzcGxheUNvZGUgPT09ICdjb21tYW5kZXIuaGVscCcgfHxcbiAgICAgIGNvbW1hbmRlckRpc3BsYXlDb2RlID09PSAnY29tbWFuZGVyLmhlbHBEaXNwbGF5ZWQnIHx8XG4gICAgICBjb21tYW5kZXJEaXNwbGF5Q29kZSA9PT0gJ2NvbW1hbmRlci52ZXJzaW9uJ1xuICAgICkge1xuICAgICAgcHJvY2Vzcy5leGl0KDApXG4gICAgfVxuICAgIGNvbnN0IGNsaUVycm9yID0gdG9DbGlFcnJvcihlcnIpXG4gICAgcHJpbnRDbGlFcnJvcihjbGlFcnJvciwge1xuICAgICAganNvbjogd2FudHNKc29uRXJyb3IocHJvY2Vzcy5hcmd2KSxcbiAgICAgIGRlYnVnOiBpc0RlYnVnRW5hYmxlZChwcm9jZXNzLmFyZ3YpLFxuICAgIH0pXG4gICAgcHJvY2Vzcy5leGl0KGNsaUVycm9yLmV4aXRDb2RlKVxuICB9XG59XG5cbnZvaWQgbWFpbigpXG5cbmZ1bmN0aW9uIGFwcGx5SGVscE9uTm9BcmdzKGNvbW1hbmQ6IENvbW1hbmQpOiB2b2lkIHtcbiAgaWYgKGNvbW1hbmQuY29tbWFuZHMubGVuZ3RoID4gMCAmJiAhKGNvbW1hbmQgYXMgdW5rbm93biBhcyB7IF9hY3Rpb25IYW5kbGVyOiB1bmtub3duIH0pLl9hY3Rpb25IYW5kbGVyKSB7XG4gICAgY29tbWFuZC5hY3Rpb24oKCkgPT4gY29tbWFuZC5oZWxwKCkpXG4gIH1cbiAgY29tbWFuZC5jb21tYW5kcy5mb3JFYWNoKGFwcGx5SGVscE9uTm9BcmdzKVxufVxuXG5mdW5jdGlvbiBhcHBseUV4aXRPdmVycmlkZShjb21tYW5kOiBDb21tYW5kKTogdm9pZCB7XG4gIGNvbW1hbmQuY29uZmlndXJlT3V0cHV0KHsgd3JpdGVFcnI6ICgpID0+IHsgfSB9KVxuICBjb21tYW5kLmV4aXRPdmVycmlkZSgpXG4gIGNvbW1hbmQuY29tbWFuZHMuZm9yRWFjaChhcHBseUV4aXRPdmVycmlkZSlcbn1cbiJdfQ==
|