@git.zone/cli 5.0.0 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/templates/ci_default/.gitea/workflows/default_tags.yaml +0 -21
- package/assets/templates/ci_default_gitlab/.gitlab-ci.yml +0 -13
- package/assets/templates/ci_default_private/.gitea/workflows/default_tags.yaml +0 -21
- package/assets/templates/ci_default_private_gitlab/.gitlab-ci.yml +0 -13
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/helpers.climode.js +31 -2
- package/dist_ts/helpers.workflow.d.ts +10 -0
- package/dist_ts/helpers.workflow.js +80 -8
- package/dist_ts/mod_release/classes.releasejournal.d.ts +78 -0
- package/dist_ts/mod_release/classes.releasejournal.js +511 -0
- package/dist_ts/mod_release/helpers.npmartifact.d.ts +32 -0
- package/dist_ts/mod_release/helpers.npmartifact.js +360 -0
- package/dist_ts/mod_release/helpers.releasebranch.d.ts +1 -0
- package/dist_ts/mod_release/helpers.releasebranch.js +54 -6
- package/dist_ts/mod_release/helpers.releasepublication.d.ts +24 -0
- package/dist_ts/mod_release/helpers.releasepublication.js +293 -0
- package/dist_ts/mod_release/index.d.ts +1 -11
- package/dist_ts/mod_release/index.js +410 -288
- package/package.json +1 -1
- package/readme.hints.md +47 -1
- package/readme.md +61 -26
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/helpers.climode.ts +34 -1
- package/ts/helpers.workflow.ts +114 -7
- package/ts/mod_release/classes.releasejournal.ts +740 -0
- package/ts/mod_release/helpers.npmartifact.ts +555 -0
- package/ts/mod_release/helpers.releasebranch.ts +67 -5
- package/ts/mod_release/helpers.releasepublication.ts +641 -0
- package/ts/mod_release/index.ts +576 -411
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
import * as plugins from "./mod.plugins.js";
|
|
2
|
+
import { releaseArtifactFileName, } from "./classes.releasejournal.js";
|
|
3
|
+
import { assertCredentialFreeGitPushDestination } from "./helpers.releasebranch.js";
|
|
4
|
+
const supportedPnpmVersion = "11.21.0";
|
|
5
|
+
const maximumMetadataResponseBytes = 8 * 1024 * 1024;
|
|
6
|
+
const capabilityCommandTimeoutMs = 30_000;
|
|
7
|
+
const packCommandTimeoutMs = 10 * 60_000;
|
|
8
|
+
const publishCommandTimeoutMs = 5 * 60_000;
|
|
9
|
+
const packageNameRegex = /^(?:@[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*|[a-z0-9][a-z0-9._-]*)$/;
|
|
10
|
+
const readPackageIdentity = async (cwdArg) => {
|
|
11
|
+
let packageJson;
|
|
12
|
+
try {
|
|
13
|
+
packageJson = JSON.parse(await plugins.fs.readFile(plugins.path.join(cwdArg, "package.json"), "utf8"));
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
throw new Error("Unable to read package.json for npm release packaging.", {
|
|
17
|
+
cause: error,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
if (typeof packageJson !== "object" ||
|
|
21
|
+
packageJson === null ||
|
|
22
|
+
Array.isArray(packageJson) ||
|
|
23
|
+
typeof packageJson.name !== "string" ||
|
|
24
|
+
!packageNameRegex.test(packageJson.name) ||
|
|
25
|
+
typeof packageJson.version !== "string") {
|
|
26
|
+
throw new Error("package.json requires a canonical npm name and version.");
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
packageName: packageJson.name,
|
|
30
|
+
version: packageJson.version,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
const requireHelpFragments = (outputArg, fragmentsArg, commandArg) => {
|
|
34
|
+
const missing = fragmentsArg.filter((fragmentArg) => !outputArg.includes(fragmentArg));
|
|
35
|
+
if (missing.length > 0) {
|
|
36
|
+
throw new Error(`pnpm ${commandArg} is missing required exact-release capabilities: ${missing.join(", ")}.`);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
export const assertPnpmReleaseCapability = async (smartshellArg, cwdArg) => {
|
|
40
|
+
const versionResult = await smartshellArg.execSpawn("pnpm", ["--version"], {
|
|
41
|
+
cwd: cwdArg,
|
|
42
|
+
silent: true,
|
|
43
|
+
timeout: capabilityCommandTimeoutMs,
|
|
44
|
+
timeoutKillGraceMs: 5_000,
|
|
45
|
+
});
|
|
46
|
+
const version = versionResult.stdout.trim();
|
|
47
|
+
if (versionResult.exitCode !== 0 || version !== supportedPnpmVersion) {
|
|
48
|
+
throw new Error(`Exact release packaging requires the verified pnpm ${supportedPnpmVersion}; resolved ${version || "unknown"}.`);
|
|
49
|
+
}
|
|
50
|
+
const packHelp = await smartshellArg.execSpawn("pnpm", ["pack", "--help"], {
|
|
51
|
+
cwd: cwdArg,
|
|
52
|
+
silent: true,
|
|
53
|
+
timeout: capabilityCommandTimeoutMs,
|
|
54
|
+
timeoutKillGraceMs: 5_000,
|
|
55
|
+
});
|
|
56
|
+
if (packHelp.exitCode !== 0) {
|
|
57
|
+
throw new Error("Unable to inspect pnpm pack capabilities.");
|
|
58
|
+
}
|
|
59
|
+
requireHelpFragments(packHelp.combinedOutput, ["--out <path>", "--json"], "pack");
|
|
60
|
+
const publishHelp = await smartshellArg.execSpawn("pnpm", ["publish", "--help"], {
|
|
61
|
+
cwd: cwdArg,
|
|
62
|
+
silent: true,
|
|
63
|
+
timeout: capabilityCommandTimeoutMs,
|
|
64
|
+
timeoutKillGraceMs: 5_000,
|
|
65
|
+
});
|
|
66
|
+
if (publishHelp.exitCode !== 0) {
|
|
67
|
+
throw new Error("Unable to inspect pnpm publish capabilities.");
|
|
68
|
+
}
|
|
69
|
+
requireHelpFragments(publishHelp.combinedOutput, [
|
|
70
|
+
"publish [<tarball>|<dir>]",
|
|
71
|
+
"--no-git-checks",
|
|
72
|
+
"--ignore-scripts",
|
|
73
|
+
"--json",
|
|
74
|
+
"--tag <tag>",
|
|
75
|
+
"--access <public|restricted>",
|
|
76
|
+
], "publish");
|
|
77
|
+
return { version: supportedPnpmVersion };
|
|
78
|
+
};
|
|
79
|
+
const legacyPublishWorkflowPaths = [
|
|
80
|
+
".gitea/workflows/default_tags.yaml",
|
|
81
|
+
".gitlab-ci.yml",
|
|
82
|
+
];
|
|
83
|
+
export const assertNoLegacyNpmPublisher = async (cwdArg) => {
|
|
84
|
+
for (const relativePath of legacyPublishWorkflowPaths) {
|
|
85
|
+
const filePath = plugins.path.join(cwdArg, relativePath);
|
|
86
|
+
let content;
|
|
87
|
+
try {
|
|
88
|
+
content = await plugins.fs.readFile(filePath, "utf8");
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (error.code === "ENOENT") {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
throw new Error(`Unable to inspect ${relativePath} for legacy npm publication.`, {
|
|
95
|
+
cause: error,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
const activeContent = content
|
|
99
|
+
.split("\n")
|
|
100
|
+
.filter((lineArg) => !/^\s*#/.test(lineArg))
|
|
101
|
+
.join("\n");
|
|
102
|
+
if (/\bnpmci\s+npm\s+publish\b/.test(activeContent)) {
|
|
103
|
+
throw new Error(`${relativePath} still contains the legacy independent npm publisher. ` +
|
|
104
|
+
"Remove it or apply the Gitzone v6 Gitea workflow template, then commit the workflow change before releasing.");
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
export const normalizeNpmRegistryUrl = (valueArg) => {
|
|
109
|
+
if (typeof valueArg !== "string" || !valueArg.trim()) {
|
|
110
|
+
throw new Error("npm registry URLs must be non-empty strings.");
|
|
111
|
+
}
|
|
112
|
+
let url;
|
|
113
|
+
try {
|
|
114
|
+
url = new URL(valueArg.trim());
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
throw new Error("Invalid npm registry URL.", { cause: error });
|
|
118
|
+
}
|
|
119
|
+
if ((url.protocol !== "https:" && url.protocol !== "http:") ||
|
|
120
|
+
url.username ||
|
|
121
|
+
url.password ||
|
|
122
|
+
url.search ||
|
|
123
|
+
url.hash) {
|
|
124
|
+
throw new Error("npm registry URLs must use credential-free http(s) without query strings or fragments.");
|
|
125
|
+
}
|
|
126
|
+
const pathname = url.pathname.replace(/\/+$/, "");
|
|
127
|
+
return `${url.origin}${pathname}`;
|
|
128
|
+
};
|
|
129
|
+
export const hashReleaseDestination = (valueArg) => {
|
|
130
|
+
assertCredentialFreeGitPushDestination(valueArg);
|
|
131
|
+
return plugins.crypto.createHash("sha256").update(valueArg).digest("hex");
|
|
132
|
+
};
|
|
133
|
+
export const calculateNpmArtifact = async (artifactPathArg, packageNameArg, versionArg) => {
|
|
134
|
+
const stat = await plugins.fs.lstat(artifactPathArg);
|
|
135
|
+
if (!stat.isFile() || stat.isSymbolicLink() || stat.size <= 0) {
|
|
136
|
+
throw new Error("Release npm artifact must be a non-empty regular file.");
|
|
137
|
+
}
|
|
138
|
+
const bytes = await plugins.fs.readFile(artifactPathArg);
|
|
139
|
+
return {
|
|
140
|
+
kind: "npm-tarball",
|
|
141
|
+
file: releaseArtifactFileName,
|
|
142
|
+
packageName: packageNameArg,
|
|
143
|
+
version: versionArg,
|
|
144
|
+
size: bytes.byteLength,
|
|
145
|
+
sha1: plugins.crypto.createHash("sha1").update(bytes).digest("hex"),
|
|
146
|
+
sha256: plugins.crypto.createHash("sha256").update(bytes).digest("hex"),
|
|
147
|
+
integrity: `sha512-${plugins.crypto.createHash("sha512").update(bytes).digest("base64")}`,
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
const syncFile = async (filePathArg) => {
|
|
151
|
+
const handle = await plugins.fs.open(filePathArg, "r");
|
|
152
|
+
try {
|
|
153
|
+
await handle.sync();
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
await handle.close();
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
export const packNpmArtifact = async (smartshellArg, cwdArg, destinationDirectoryArg, expectedVersionArg) => {
|
|
160
|
+
const identity = await readPackageIdentity(cwdArg);
|
|
161
|
+
if (identity.version !== expectedVersionArg) {
|
|
162
|
+
throw new Error(`package.json version ${identity.version} does not match release ${expectedVersionArg}.`);
|
|
163
|
+
}
|
|
164
|
+
const artifactPath = plugins.path.join(destinationDirectoryArg, releaseArtifactFileName);
|
|
165
|
+
const result = await smartshellArg.execSpawn("pnpm", ["pack", "--out", artifactPath, "--json"], {
|
|
166
|
+
cwd: cwdArg,
|
|
167
|
+
timeout: packCommandTimeoutMs,
|
|
168
|
+
timeoutKillGraceMs: 5_000,
|
|
169
|
+
});
|
|
170
|
+
if (result.exitCode !== 0) {
|
|
171
|
+
throw new Error("pnpm pack failed while creating the exact release artifact.");
|
|
172
|
+
}
|
|
173
|
+
let report;
|
|
174
|
+
try {
|
|
175
|
+
const stdout = result.stdout.trim();
|
|
176
|
+
const reportStart = stdout.lastIndexOf("\n{");
|
|
177
|
+
report = JSON.parse(reportStart === -1 ? stdout : stdout.slice(reportStart + 1));
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
throw new Error("pnpm pack did not return its required JSON report.", {
|
|
181
|
+
cause: error,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
if (typeof report !== "object" ||
|
|
185
|
+
report === null ||
|
|
186
|
+
Array.isArray(report) ||
|
|
187
|
+
report.name !== identity.packageName ||
|
|
188
|
+
report.version !== identity.version) {
|
|
189
|
+
throw new Error("pnpm pack reported a different package identity.");
|
|
190
|
+
}
|
|
191
|
+
await syncFile(artifactPath);
|
|
192
|
+
return calculateNpmArtifact(artifactPath, identity.packageName, identity.version);
|
|
193
|
+
};
|
|
194
|
+
export const verifyStoredNpmArtifact = async (artifactPathArg, expectedArtifactArg) => {
|
|
195
|
+
const actual = await calculateNpmArtifact(artifactPathArg, expectedArtifactArg.packageName, expectedArtifactArg.version);
|
|
196
|
+
if (actual.size !== expectedArtifactArg.size ||
|
|
197
|
+
actual.sha1 !== expectedArtifactArg.sha1 ||
|
|
198
|
+
actual.sha256 !== expectedArtifactArg.sha256 ||
|
|
199
|
+
actual.integrity !== expectedArtifactArg.integrity) {
|
|
200
|
+
throw new Error("Stored npm artifact no longer matches its release journal identity.");
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
export const buildPnpmPublishArgs = (artifactPathArg, registryArg) => [
|
|
204
|
+
"publish",
|
|
205
|
+
artifactPathArg,
|
|
206
|
+
`--registry=${normalizeNpmRegistryUrl(registryArg)}`,
|
|
207
|
+
"--access=public",
|
|
208
|
+
"--tag=latest",
|
|
209
|
+
"--no-git-checks",
|
|
210
|
+
"--ignore-scripts",
|
|
211
|
+
"--json",
|
|
212
|
+
];
|
|
213
|
+
export const publishNpmArtifact = async (smartshellArg, cwdArg, artifactPathArg, registryArg) => {
|
|
214
|
+
const result = await smartshellArg.execSpawn("pnpm", buildPnpmPublishArgs(artifactPathArg, registryArg), {
|
|
215
|
+
cwd: cwdArg,
|
|
216
|
+
timeout: publishCommandTimeoutMs,
|
|
217
|
+
timeoutKillGraceMs: 5_000,
|
|
218
|
+
});
|
|
219
|
+
return { exitCode: result.exitCode, output: result.combinedOutput };
|
|
220
|
+
};
|
|
221
|
+
const getFetch = (optionsArg) => optionsArg.fetchImplementation || globalThis.fetch;
|
|
222
|
+
const fetchWithoutRedirects = async (urlArg, acceptArg, optionsArg) => {
|
|
223
|
+
const timeoutMs = optionsArg.timeoutMs ?? 10_000;
|
|
224
|
+
return getFetch(optionsArg)(urlArg, {
|
|
225
|
+
method: "GET",
|
|
226
|
+
headers: { accept: acceptArg },
|
|
227
|
+
redirect: "manual",
|
|
228
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
229
|
+
});
|
|
230
|
+
};
|
|
231
|
+
const cancelResponseBody = (responseArg) => {
|
|
232
|
+
if (responseArg.body && !responseArg.body.locked) {
|
|
233
|
+
void responseArg.body.cancel().catch(() => { });
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
const readBoundedResponse = async (responseArg, maximumSizeArg, contextArg) => {
|
|
237
|
+
const contentLength = responseArg.headers.get("content-length");
|
|
238
|
+
if (contentLength &&
|
|
239
|
+
(!/^\d+$/.test(contentLength) || Number(contentLength) > maximumSizeArg)) {
|
|
240
|
+
cancelResponseBody(responseArg);
|
|
241
|
+
throw new Error(`${contextArg} exceeds its maximum response size.`);
|
|
242
|
+
}
|
|
243
|
+
if (!responseArg.body) {
|
|
244
|
+
throw new Error(`${contextArg} response has no body.`);
|
|
245
|
+
}
|
|
246
|
+
const chunks = [];
|
|
247
|
+
let size = 0;
|
|
248
|
+
const reader = responseArg.body.getReader();
|
|
249
|
+
let complete = false;
|
|
250
|
+
try {
|
|
251
|
+
while (true) {
|
|
252
|
+
const item = await reader.read();
|
|
253
|
+
if (item.done) {
|
|
254
|
+
complete = true;
|
|
255
|
+
break;
|
|
256
|
+
}
|
|
257
|
+
size += item.value.byteLength;
|
|
258
|
+
if (size > maximumSizeArg) {
|
|
259
|
+
throw new Error(`${contextArg} exceeds its maximum response size.`);
|
|
260
|
+
}
|
|
261
|
+
chunks.push(item.value);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
finally {
|
|
265
|
+
if (!complete) {
|
|
266
|
+
void reader.cancel().catch(() => { });
|
|
267
|
+
}
|
|
268
|
+
reader.releaseLock();
|
|
269
|
+
}
|
|
270
|
+
return Buffer.concat(chunks.map((chunkArg) => Buffer.from(chunkArg)), size);
|
|
271
|
+
};
|
|
272
|
+
const readBoundedJsonResponse = async (responseArg) => JSON.parse((await readBoundedResponse(responseArg, maximumMetadataResponseBytes, "Registry metadata")).toString("utf8"));
|
|
273
|
+
const getMetadataUrl = (registryArg, packageNameArg, versionArg) => {
|
|
274
|
+
const encodedPackage = encodeURIComponent(packageNameArg);
|
|
275
|
+
return new URL(versionArg
|
|
276
|
+
? `${normalizeNpmRegistryUrl(registryArg)}/${encodedPackage}/${encodeURIComponent(versionArg)}`
|
|
277
|
+
: `${normalizeNpmRegistryUrl(registryArg)}/${encodedPackage}`);
|
|
278
|
+
};
|
|
279
|
+
export const probeAnonymousNpmArtifact = async (registryArg, artifactArg, tagArg = "latest", optionsArg = {}) => {
|
|
280
|
+
const registry = normalizeNpmRegistryUrl(registryArg);
|
|
281
|
+
try {
|
|
282
|
+
const versionResponse = await fetchWithoutRedirects(getMetadataUrl(registry, artifactArg.packageName, artifactArg.version), "application/json", optionsArg);
|
|
283
|
+
if (versionResponse.status === 404) {
|
|
284
|
+
cancelResponseBody(versionResponse);
|
|
285
|
+
return { status: "absent", code: "absent" };
|
|
286
|
+
}
|
|
287
|
+
if (versionResponse.status !== 200) {
|
|
288
|
+
cancelResponseBody(versionResponse);
|
|
289
|
+
return { status: "inconclusive", code: "registry-response" };
|
|
290
|
+
}
|
|
291
|
+
const metadata = (await readBoundedJsonResponse(versionResponse));
|
|
292
|
+
if (metadata.name !== artifactArg.packageName ||
|
|
293
|
+
metadata.version !== artifactArg.version ||
|
|
294
|
+
metadata.dist?.integrity !== artifactArg.integrity ||
|
|
295
|
+
metadata.dist?.shasum !== artifactArg.sha1 ||
|
|
296
|
+
typeof metadata.dist?.tarball !== "string") {
|
|
297
|
+
return { status: "conflict", code: "metadata-conflict" };
|
|
298
|
+
}
|
|
299
|
+
const tarballUrl = new URL(metadata.dist.tarball);
|
|
300
|
+
const registryUrl = new URL(registry);
|
|
301
|
+
if (tarballUrl.origin !== registryUrl.origin ||
|
|
302
|
+
(tarballUrl.protocol !== "https:" && tarballUrl.protocol !== "http:") ||
|
|
303
|
+
tarballUrl.username ||
|
|
304
|
+
tarballUrl.password ||
|
|
305
|
+
tarballUrl.search ||
|
|
306
|
+
tarballUrl.hash) {
|
|
307
|
+
return { status: "conflict", code: "metadata-conflict" };
|
|
308
|
+
}
|
|
309
|
+
const tarballResponse = await fetchWithoutRedirects(tarballUrl, "application/octet-stream", optionsArg);
|
|
310
|
+
if (tarballResponse.status !== 200) {
|
|
311
|
+
cancelResponseBody(tarballResponse);
|
|
312
|
+
return { status: "inconclusive", code: "registry-response" };
|
|
313
|
+
}
|
|
314
|
+
const bytes = await readBoundedResponse(tarballResponse, artifactArg.size, "Registry tarball");
|
|
315
|
+
if (bytes.byteLength !== artifactArg.size ||
|
|
316
|
+
plugins.crypto.createHash("sha1").update(bytes).digest("hex") !==
|
|
317
|
+
artifactArg.sha1 ||
|
|
318
|
+
plugins.crypto.createHash("sha256").update(bytes).digest("hex") !==
|
|
319
|
+
artifactArg.sha256 ||
|
|
320
|
+
`sha512-${plugins.crypto.createHash("sha512").update(bytes).digest("base64")}` !==
|
|
321
|
+
artifactArg.integrity) {
|
|
322
|
+
return { status: "conflict", code: "tarball-conflict" };
|
|
323
|
+
}
|
|
324
|
+
const packageResponse = await fetchWithoutRedirects(getMetadataUrl(registry, artifactArg.packageName), "application/json", optionsArg);
|
|
325
|
+
if (packageResponse.status !== 200) {
|
|
326
|
+
cancelResponseBody(packageResponse);
|
|
327
|
+
return { status: "inconclusive", code: "registry-response" };
|
|
328
|
+
}
|
|
329
|
+
const packageMetadata = (await readBoundedJsonResponse(packageResponse));
|
|
330
|
+
if (packageMetadata["dist-tags"]?.[tagArg] !== artifactArg.version) {
|
|
331
|
+
return { status: "inconclusive", code: "tag-conflict" };
|
|
332
|
+
}
|
|
333
|
+
return { status: "exact", code: "exact" };
|
|
334
|
+
}
|
|
335
|
+
catch {
|
|
336
|
+
return { status: "inconclusive", code: "network-error" };
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
export const waitForAnonymousNpmArtifact = async (registryArg, artifactArg, tagArg = "latest", optionsArg = {}) => {
|
|
340
|
+
const attempts = optionsArg.attempts ?? 10;
|
|
341
|
+
const delayMs = optionsArg.delayMs ?? 1_000;
|
|
342
|
+
if (!Number.isSafeInteger(attempts) || attempts < 1) {
|
|
343
|
+
throw new Error("npm verification attempts must be a positive safe integer.");
|
|
344
|
+
}
|
|
345
|
+
let lastResult = {
|
|
346
|
+
status: "inconclusive",
|
|
347
|
+
code: "network-error",
|
|
348
|
+
};
|
|
349
|
+
for (let attempt = 0; attempt < attempts; attempt += 1) {
|
|
350
|
+
lastResult = await probeAnonymousNpmArtifact(registryArg, artifactArg, tagArg, optionsArg);
|
|
351
|
+
if (lastResult.status === "exact" || lastResult.status === "conflict") {
|
|
352
|
+
return lastResult;
|
|
353
|
+
}
|
|
354
|
+
if (attempt + 1 < attempts) {
|
|
355
|
+
await plugins.smartdelay.delayFor(delayMs);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
return lastResult;
|
|
359
|
+
};
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5ucG1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL21vZF9yZWxlYXNlL2hlbHBlcnMubnBtYXJ0aWZhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQ0wsdUJBQXVCLEdBRXhCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEYsTUFBTSxvQkFBb0IsR0FBRyxTQUFTLENBQUM7QUFDdkMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUNyRCxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQztBQUMxQyxNQUFNLG9CQUFvQixHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUM7QUFDekMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO0FBQzNDLE1BQU0sZ0JBQWdCLEdBQUcsd0VBQXdFLENBQUM7QUErQmxHLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxFQUMvQixNQUFjLEVBQ3FDLEVBQUU7SUFDckQsSUFBSSxXQUFvQixDQUFDO0lBQ3pCLElBQUksQ0FBQztRQUNILFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN0QixNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FDN0UsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsRUFBRTtZQUN4RSxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUNFLE9BQU8sV0FBVyxLQUFLLFFBQVE7UUFD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
|
|
@@ -36,6 +36,7 @@ export interface IInspectReleaseBranchOptions {
|
|
|
36
36
|
}
|
|
37
37
|
type TSmartshell = plugins.smartshell.Smartshell;
|
|
38
38
|
export declare const releaseGitEnv: NodeJS.ProcessEnv;
|
|
39
|
+
export declare const assertCredentialFreeGitPushDestination: (valueArg: string) => void;
|
|
39
40
|
export declare function resolveReleaseMergeFlag(argvArg: Record<string, unknown>): boolean;
|
|
40
41
|
export declare function parseGitWorktreePorcelain(outputArg: string): IGitWorktree[];
|
|
41
42
|
export declare function inspectReleaseBranch(optionsArg: IInspectReleaseBranchOptions): Promise<IReleaseBranchContext>;
|
|
@@ -5,6 +5,51 @@ export const releaseGitEnv = {
|
|
|
5
5
|
...process.env,
|
|
6
6
|
GIT_NO_REPLACE_OBJECTS: "1",
|
|
7
7
|
};
|
|
8
|
+
export const assertCredentialFreeGitPushDestination = (valueArg) => {
|
|
9
|
+
if (!valueArg ||
|
|
10
|
+
valueArg.trim() !== valueArg ||
|
|
11
|
+
/[\u0000-\u001f\u007f]/.test(valueArg)) {
|
|
12
|
+
throw new Error("Git push destinations must be non-empty canonical strings.");
|
|
13
|
+
}
|
|
14
|
+
if (plugins.path.isAbsolute(valueArg) ||
|
|
15
|
+
/^[A-Za-z]:[\\/]/.test(valueArg) ||
|
|
16
|
+
valueArg.startsWith("./") ||
|
|
17
|
+
valueArg.startsWith("../") ||
|
|
18
|
+
valueArg.startsWith("~/")) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (/^[A-Za-z0-9._-]+@[A-Za-z0-9.-]+:.+$/.test(valueArg)) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
let url;
|
|
25
|
+
try {
|
|
26
|
+
url = new URL(valueArg);
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
if (/^[A-Za-z0-9._/-]+$/.test(valueArg)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
throw new Error("Git push destination syntax is unsupported.", {
|
|
33
|
+
cause: error,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const sshProtocol = url.protocol === "ssh:" ||
|
|
37
|
+
url.protocol === "git+ssh:" ||
|
|
38
|
+
url.protocol === "ssh+git:";
|
|
39
|
+
if (!sshProtocol &&
|
|
40
|
+
url.protocol !== "https:" &&
|
|
41
|
+
url.protocol !== "http:" &&
|
|
42
|
+
url.protocol !== "git:" &&
|
|
43
|
+
url.protocol !== "file:") {
|
|
44
|
+
throw new Error("Git push destination protocol is unsupported.");
|
|
45
|
+
}
|
|
46
|
+
if (url.password ||
|
|
47
|
+
url.search ||
|
|
48
|
+
url.hash ||
|
|
49
|
+
(!sshProtocol && url.username)) {
|
|
50
|
+
throw new Error("Git push destinations must not contain embedded credentials or parameters.");
|
|
51
|
+
}
|
|
52
|
+
};
|
|
8
53
|
const readOnlyGitEnv = {
|
|
9
54
|
...releaseGitEnv,
|
|
10
55
|
GIT_NO_LAZY_FETCH: "1",
|
|
@@ -62,6 +107,8 @@ const runGit = async (smartshellArg, cwdArg, argsArg, readOnlyArg = false) => sm
|
|
|
62
107
|
cwd: cwdArg,
|
|
63
108
|
env: readOnlyArg ? readOnlyGitEnv : releaseGitEnv,
|
|
64
109
|
silent: true,
|
|
110
|
+
timeout: argsArg[0] === "fetch" || argsArg[0] === "push" ? 5 * 60_000 : 60_000,
|
|
111
|
+
timeoutKillGraceMs: 5_000,
|
|
65
112
|
});
|
|
66
113
|
const requireGitSuccess = (resultArg, messageArg) => {
|
|
67
114
|
if (resultArg.exitCode !== 0) {
|
|
@@ -174,13 +221,14 @@ const resolvePushUrl = async (smartshellArg, cwdArg, remoteArg, readOnlyArg = fa
|
|
|
174
221
|
const hasUrlScheme = /^[a-z][a-z0-9+.-]*:\/\//i.test(pushUrl);
|
|
175
222
|
const isScpStyle = /^(?:[^@/\\:]+@)?[^/\\:]+:.+/.test(pushUrl);
|
|
176
223
|
const isWindowsAbsolutePath = /^[a-z]:[\\/]/i.test(pushUrl);
|
|
177
|
-
|
|
224
|
+
const resolvedPushUrl = !hasUrlScheme &&
|
|
178
225
|
!isScpStyle &&
|
|
179
226
|
!plugins.path.isAbsolute(pushUrl) &&
|
|
180
|
-
!isWindowsAbsolutePath
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
227
|
+
!isWindowsAbsolutePath
|
|
228
|
+
? plugins.path.resolve(cwdArg, pushUrl)
|
|
229
|
+
: pushUrl;
|
|
230
|
+
assertCredentialFreeGitPushDestination(resolvedPushUrl);
|
|
231
|
+
return resolvedPushUrl;
|
|
184
232
|
};
|
|
185
233
|
const resolveRemoteMainOid = async (smartshellArg, cwdArg, pushUrlArg, readOnlyArg = false) => {
|
|
186
234
|
const result = requireGitSuccess(await runGit(smartshellArg, cwdArg, ["ls-remote", "--exit-code", pushUrlArg, mainBranchRef], readOnlyArg), "The configured Git push destination does not expose refs/heads/main.");
|
|
@@ -576,4 +624,4 @@ export async function integrateReleaseBranch(smartshellArg, contextArg) {
|
|
|
576
624
|
expectedRemoteMainOid: contextArg.sourceOid,
|
|
577
625
|
};
|
|
578
626
|
}
|
|
579
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5yZWxlYXNlYnJhbmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX3JlbGVhc2UvaGVscGVycy5yZWxlYXNlYnJhbmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBQzFCLE1BQU0sYUFBYSxHQUFHLGNBQWMsVUFBVSxFQUFFLENBQUM7QUEyQ2pELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBc0I7SUFDOUMsR0FBRyxPQUFPLENBQUMsR0FBRztJQUNkLHNCQUFzQixFQUFFLEdBQUc7Q0FDNUIsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFzQjtJQUN4QyxHQUFHLGFBQWE7SUFDaEIsaUJBQWlCLEVBQUUsR0FBRztJQUN0QixrQkFBa0IsRUFBRSxHQUFHO0NBQ3hCLENBQUM7QUFFRixNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLE9BQWdDO0lBRWhDLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUMzRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsU0FBaUI7SUFDekQsTUFBTSxTQUFTLEdBQW1CLEVBQUUsQ0FBQztJQUNyQyxJQUFJLE9BQU8sR0FBMEIsRUFBRSxDQUFDO0lBRXhDLE1BQU0sS0FBSyxHQUFHLEdBQUcsRUFBRTtRQUNqQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixTQUFTLENBQUMsSUFBSSxD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
|
|
627
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5yZWxlYXNlYnJhbmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvbW9kX3JlbGVhc2UvaGVscGVycy5yZWxlYXNlYnJhbmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFFNUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO0FBQzFCLE1BQU0sYUFBYSxHQUFHLGNBQWMsVUFBVSxFQUFFLENBQUM7QUEyQ2pELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBc0I7SUFDOUMsR0FBRyxPQUFPLENBQUMsR0FBRztJQUNkLHNCQUFzQixFQUFFLEdBQUc7Q0FDNUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLENBQ3BELFFBQWdCLEVBQ1YsRUFBRTtJQUNSLElBQ0UsQ0FBQyxRQUFRO1FBQ1QsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLFFBQVE7UUFDNUIsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUN0QyxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxJQUNFLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNqQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzFCLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQ3pCLENBQUM7UUFDRCxPQUFPO0lBQ1QsQ0FBQztJQUNELElBQUkscUNBQXFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDekQsT0FBTztJQUNULENBQUM7SUFFRCxJQUFJLEdBQVEsQ0FBQztJQUNiLElBQUksQ0FBQztRQUNILEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDeEMsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxFQUFFO1lBQzdELEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUNmLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTTtRQUN2QixHQUFHLENBQUMsUUFBUSxLQUFLLFVBQVU7UUFDM0IsR0FBRyxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUM7SUFDOUIsSUFDRSxDQUFDLFdBQVc7UUFDWixHQUFHLENBQUMsUUFBUSxLQUFLLFFBQVE7UUFDekIsR0FBRyxDQUFDLFFBQVEsS0FBSyxPQUFPO1FBQ3hCLEdBQUcsQ0FBQyxRQUFRLEtBQUssTUFBTTtRQUN2QixHQUFHLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFDeEIsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsSUFDRSxHQUFHLENBQUMsUUFBUTtRQUNaLEdBQUcsQ0FBQyxNQUFNO1FBQ1YsR0FBRyxDQUFDLElBQUk7UUFDUixDQUFDLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFDOUIsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsNEVBQTRFLENBQzdFLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQXNCO0lBQ3hDLEdBQUcsYUFBYTtJQUNoQixpQkFBaUIsRUFBRSxHQUFHO0lBQ3RCLGtCQUFrQixFQUFFLEdBQUc7Q0FDeEIsQ0FBQztBQUVGLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsT0FBZ0M7SUFFaEMsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQzNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxTQUFpQjtJQUN6RCxNQUFNLFNBQVMsR0FBbUIsRUFBRSxDQUFDO0lBQ3JDLElBQUksT0FBTyxHQUEwQixFQUFFLENBQUM7SUFFeEMsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFO1FBQ2pCLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO2dCQUNsQixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7Z0JBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSzthQUNwQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGLEtBQUssTUFBTSxLQUFLLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLEtBQUssRUFBRSxDQUFDO1lBQ1IsU0FBUztRQUNYLENBQUM7UUFDRCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sR0FBRyxHQUFHLGNBQWMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUMzRSxNQUFNLEtBQUssR0FBRyxjQUFjLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0UsSUFBSSxHQUFHLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdkIsS0FBSyxFQUFFLENBQUM7WUFDUixPQUFPLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDMUIsT0FBTyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUM7YUFBTSxJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUNELEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDbEIsYUFBMEIsRUFDMUIsTUFBYyxFQUNkLE9BQWlCLEVBQ2pCLFdBQVcsR0FBRyxLQUFLLEVBQ25CLEVBQUUsQ0FDRixhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUU7SUFDdEMsR0FBRyxFQUFFLE1BQU07SUFDWCxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGFBQWE7SUFDakQsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQ0wsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNO0lBQ3ZFLGtCQUFrQixFQUFFLEtBQUs7Q0FDMUIsQ0FBQyxDQUFDO0FBRUwsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixTQUF5QyxFQUN6QyxVQUFrQixFQUNjLEVBQUU7SUFDbEMsSUFBSSxTQUFTLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxFQUNqQyxhQUEwQixFQUMxQixNQUFjLEVBQ2QsV0FBVyxHQUFHLEtBQUssRUFDdUIsRUFBRTtJQUM1QyxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FDekIsYUFBYSxFQUNiLE1BQU0sRUFDTixDQUFDLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQ25DLFdBQVcsQ0FDWixDQUFDO0lBQ0YsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzVELE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0ZBQWdGLENBQ2pGLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTztRQUNMLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDdkMsR0FBRztLQUNKLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQ3pCLGFBQTBCLEVBQzFCLE1BQWMsRUFDZCxXQUFtQixFQUNuQixVQUFrQixFQUNsQixXQUFXLEdBQUcsS0FBSyxFQUNGLEVBQUU7SUFDbkIsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQzlCLE1BQU0sTUFBTSxDQUNWLGFBQWEsRUFDYixNQUFNLEVBQ04sQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLEdBQUcsV0FBVyxXQUFXLENBQUMsRUFDcEQsV0FBVyxDQUNaLEVBQ0QsVUFBVSxDQUNYLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDOUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUMzQixhQUEwQixFQUMxQixNQUFjLEVBQ2QsUUFBZ0IsRUFDaEIsV0FBVyxHQUFHLEtBQUssRUFDSixFQUFFO0lBQ2pCLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUM5QixNQUFNLE1BQU0sQ0FDVixhQUFhLEVBQ2IsTUFBTSxFQUNOO1FBQ0UsUUFBUTtRQUNSLGdCQUFnQjtRQUNoQix1QkFBdUI7UUFDdkIsMEJBQTBCO0tBQzNCLEVBQ0QsV0FBVyxDQUNaLEVBQ0QseUJBQXlCLFFBQVEsWUFBWSxDQUM5QyxDQUFDO0lBQ0YsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FDYixPQUFPLFFBQVEsbUVBQW1FLENBQ25GLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLE9BQWUsRUFBb0IsRUFBRTtJQUM3RCxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUNFLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFDekIsS0FBSyxLQUFLLElBQUk7WUFDZCxNQUFNLElBQUksS0FBSztZQUNmLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUN2QixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsT0FBTyxHQUFHLEVBQUU7WUFDcEUsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLEVBQ2hDLGFBQTBCLEVBQzFCLE1BQWMsRUFDZCxRQUFnQixFQUNoQixXQUFXLEdBQUcsS0FBSyxFQUNKLEVBQUU7SUFDakIsTUFBTSxPQUFPLEdBQUc7UUFDZCxZQUFZO1FBQ1osa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixjQUFjO1FBQ2QsY0FBYztRQUNkLFdBQVc7UUFDWCxjQUFjO1FBQ2QsWUFBWTtLQUNiLENBQUM7SUFDRixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUNsQyxNQUFNLE1BQU0sQ0FDVixhQUFhLEVBQ2IsTUFBTSxFQUNOLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsRUFDbkMsV0FBVyxDQUNaLEVBQ0QsZ0RBQWdELFFBQVEsWUFBWSxDQUNyRSxDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxRSxJQUFJLE1BQU0sVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FDYixPQUFPLFFBQVEsb0ZBQW9GLENBQ3BHLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sd0JBQXdCLEdBQUcsS0FBSyxFQUNwQyxhQUEwQixFQUMxQixNQUFjLEVBQ2QsV0FBVyxHQUFHLEtBQUssRUFDSixFQUFFO0lBQ2pCLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUNuQyxNQUFNLE1BQU0sQ0FDVixhQUFhLEVBQ2IsTUFBTSxFQUNOLENBQUMsY0FBYyxFQUFFLHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxFQUN4RCxXQUFXLENBQ1osRUFDRCwrQ0FBK0MsQ0FDaEQsQ0FBQztJQUNGLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsK0dBQStHLENBQ2hILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FDeEMsTUFBTSxNQUFNLENBQ1YsYUFBYSxFQUNiLE1BQU0sRUFDTixDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLEVBQzFDLFdBQVcsQ0FDWixFQUNELDZDQUE2QyxDQUM5QyxDQUFDO0lBQ0YsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQ3JDLE1BQU0sRUFDTixnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQy9CLENBQUM7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQ2IsOEdBQThHLENBQy9HLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUNFLEtBQUssWUFBWSxLQUFLO1lBQ3RCLE1BQU0sSUFBSSxLQUFLO1lBQ2YsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxFQUNyRCxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxLQUFLLEVBQ3pCLGFBQTBCLEVBQzFCLE1BQWMsRUFDZCxXQUFXLEdBQUcsS0FBSyxFQUNNLEVBQUU7SUFDM0IsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQzlCLE1BQU0sTUFBTSxDQUNWLGFBQWEsRUFDYixNQUFNLEVBQ04sQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFDekMsV0FBVyxDQUNaLEVBQ0Qsa0NBQWtDLENBQ25DLENBQUM7SUFDRixPQUFPLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFHLEtBQUssRUFDakMsYUFBMEIsRUFDMUIsTUFBYyxFQUNkLFdBQVcsR0FBRyxLQUFLLEVBQ0YsRUFBRTtJQUNuQixNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FDOUIsTUFBTSxNQUFNLENBQ1YsYUFBYSxFQUNiLE1BQU0sRUFDTixDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxFQUNuQyxXQUFXLENBQ1osRUFDRCxrREFBa0QsQ0FDbkQsQ0FBQztJQUNGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQzFCLGFBQTBCLEVBQzFCLE1BQWMsRUFDZCxTQUFpQixFQUNqQixXQUFXLEdBQUcsS0FBSyxFQUNGLEVBQUU7SUFDbkIsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQzlCLE1BQU0sTUFBTSxDQUNWLGFBQWEsRUFDYixNQUFNLEVBQ04sQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQ25ELFdBQVcsQ0FDWixFQUNELGlEQUFpRCxTQUFTLEdBQUcsQ0FDOUQsQ0FBQztJQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNO1NBQ3ZCLEtBQUssQ0FBQyxJQUFJLENBQUM7U0FDWCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN4QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUVBQW1FLFNBQVMsR0FBRyxDQUNoRixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixNQUFNLFlBQVksR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsTUFBTSxVQUFVLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELE1BQU0scUJBQXFCLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1RCxNQUFNLGVBQWUsR0FDbkIsQ0FBQyxZQUFZO1FBQ2IsQ0FBQyxVQUFVO1FBQ1gsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDakMsQ0FBQyxxQkFBcUI7UUFDcEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUM7UUFDdkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUNkLHNDQUFzQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3hELE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxFQUNoQyxhQUEwQixFQUMxQixNQUFjLEVBQ2QsVUFBa0IsRUFDbEIsV0FBVyxHQUFHLEtBQUssRUFDRixFQUFFO0lBQ25CLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUM5QixNQUFNLE1BQU0sQ0FDVixhQUFhLEVBQ2IsTUFBTSxFQUNOLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLEVBQ3ZELFdBQVcsQ0FDWixFQUNELHNFQUFzRSxDQUN2RSxDQUFDO0lBQ0YsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxLQUFLLENBQ2IseUVBQXlFLENBQzFFLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQzNCLGFBQTBCLEVBQzFCLE1BQWMsRUFDZCxNQUFjLEVBQ2QsV0FBVyxHQUFHLEtBQUssRUFDRCxFQUFFO0lBQ3BCLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUN6QixhQUFhLEVBQ2IsTUFBTSxFQUNOLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLEVBQ3hDLFdBQVcsQ0FDWixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLEtBQUssRUFDL0IsYUFBMEIsRUFDMUIsTUFBYyxFQUNkLFdBQVcsR0FBRyxLQUFLLEVBQ0QsRUFBRTtJQUNwQixNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FDOUIsTUFBTSxNQUFNLENBQ1YsYUFBYSxFQUNiLE1BQU0sRUFDTixDQUFDLFdBQVcsRUFBRSx5QkFBeUIsQ0FBQyxFQUN4QyxXQUFXLENBQ1osRUFDRCx3REFBd0QsQ0FDekQsQ0FBQztJQUNGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxNQUFNLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLEVBQ2hDLGFBQTBCLEVBQzFCLE1BQWMsRUFDZCxVQUFrQixFQUNsQixZQUFvQixFQUNwQixXQUFXLEdBQUcsS0FBSyxFQUNKLEVBQUU7SUFDakIsTUFBTSxjQUFjLEdBQUcsTUFBTSxNQUFNLENBQ2pDLGFBQWEsRUFDYixNQUFNLEVBQ04sQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsRUFDekQsV0FBVyxDQUNaLENBQUM7SUFDRixJQUFJLGNBQWMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEMsSUFBSSxNQUFNLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNsRSxNQUFNLElBQUksS0FBSyxDQUNiLHVIQUF1SCxDQUN4SCxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsaUhBQWlILENBQ2xILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQ25DLE1BQU0sTUFBTSxDQUNWLGFBQWEsRUFDYixNQUFNLEVBQ04sQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsVUFBVSxLQUFLLFlBQVksRUFBRSxDQUFDLEVBQzFELFdBQVcsQ0FDWixFQUNELGlEQUFpRCxDQUNsRCxDQUFDO0lBQ0YsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FDYixnR0FBZ0csQ0FDakcsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFDOUIsYUFBMEIsRUFDMUIsT0FBZSxFQUNmLGNBQXNCLEVBQ3RCLGlCQUEwQixFQUMxQixXQUFXLEdBQUcsS0FBSyxFQUNGLEVBQUU7SUFDbkIsTUFBTSxRQUFRLEdBQUcsTUFBTSxxQkFBcUIsQ0FDMUMsYUFBYSxFQUNiLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztJQUNGLElBQUksUUFBUSxDQUFDLEdBQUcsS0FBSyxhQUFhLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUNiLHlHQUF5RyxDQUMxRyxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sYUFBYSxDQUM5QixhQUFhLEVBQ2IsT0FBTyxFQUNQLE1BQU0sRUFDTixnREFBZ0QsRUFDaEQsV0FBVyxDQUNaLENBQUM7SUFDRixJQUFJLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksS0FBSyxDQUNiLHVHQUF1RyxDQUN4RyxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0scUJBQXFCLENBQ3hDLGFBQWEsRUFDYixPQUFPLEVBQ1AsV0FBVyxDQUNaLENBQUM7SUFDRixJQUFJLGlCQUFpQixJQUFJLE1BQU0sS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RELE1BQU0sSUFBSSxLQUFLLENBQ2IsMEdBQTBHLENBQzNHLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxlQUFlLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbkUsTUFBTSxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN4RSxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLEtBQUssRUFDL0IsYUFBMEIsRUFDMUIsTUFBYyxFQUNkLGVBQXVCLEVBQ3ZCLFdBQVcsR0FBRyxLQUFLLEVBQ3dCLEVBQUU7SUFDN0MsTUFBTSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN4RSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUNoQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxhQUFhLENBQzVDLENBQUM7SUFDRixJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FDYixtRkFBbUYsQ0FDcEYsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0ZBQWdGLENBQ2pGLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwrRUFBK0UsQ0FDaEYsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGtCQUFrQixDQUNyQyxhQUFhLEVBQ2IsVUFBVSxDQUFDLElBQUksRUFDZixlQUFlLEVBQ2YsU0FBUyxFQUNULFdBQVcsQ0FDWixDQUFDO0lBQ0YsT0FBTztRQUNMLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtRQUNyQixNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUM3QixhQUEwQixFQUMxQixVQUFpQyxFQUNqQyxXQUFXLEdBQUcsS0FBSyxFQUNKLEVBQUU7SUFDakIsTUFBTSx3QkFBd0IsQ0FDNUIsYUFBYSxFQUNiLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLFdBQVcsQ0FDWixDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxxQkFBcUIsQ0FDMUMsYUFBYSxFQUNiLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLFdBQVcsQ0FDWixDQUFDO0lBQ0YsSUFBSSxRQUFRLENBQUMsR0FBRyxLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMxQyxNQUFNLElBQUksS0FBSyxDQUNiLDBHQUEwRyxDQUMzRyxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLE1BQU0sYUFBYSxDQUNwQyxhQUFhLEVBQ2IsVUFBVSxDQUFDLFNBQVMsRUFDcEIsTUFBTSxFQUNOLDhDQUE4QyxFQUM5QyxXQUFXLENBQ1osQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUFHLE1BQU0sYUFBYSxDQUN0QyxhQUFhLEVBQ2IsVUFBVSxDQUFDLFNBQVMsRUFDcEIsVUFBVSxDQUFDLFNBQVMsRUFDcEIsOENBQThDLEVBQzlDLFdBQVcsQ0FDWixDQUFDO0lBQ0YsSUFDRSxVQUFVLEtBQUssVUFBVSxDQUFDLFNBQVM7UUFDbkMsWUFBWSxLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQ3JDLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLDZGQUE2RixDQUM5RixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sZUFBZSxDQUNuQixhQUFhLEVBQ2IsVUFBVSxDQUFDLFNBQVMsRUFDcEIsZ0JBQWdCLEVBQ2hCLFdBQVcsQ0FDWixDQUFDO0lBQ0YsTUFBTSxvQkFBb0IsQ0FDeEIsYUFBYSxFQUNiLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLGdCQUFnQixFQUNoQixXQUFXLENBQ1osQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsb0JBQW9CLENBQ3hDLFVBQXdDO0lBRXhDLE1BQU0sUUFBUSxHQUFHLE1BQU0scUJBQXFCLENBQzFDLFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQ2QsVUFBVSxDQUFDLFFBQVEsQ0FDcEIsQ0FBQztJQUNGLE1BQU0sd0JBQXdCLENBQzVCLFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQ2QsVUFBVSxDQUFDLFFBQVEsQ0FDcEIsQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLE1BQU0sYUFBYSxDQUNuQyxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsR0FBRyxFQUNkLE1BQU0sRUFDTiw4Q0FBOEMsRUFDOUMsVUFBVSxDQUFDLFFBQVEsQ0FDcEIsQ0FBQztJQUNGLE1BQU0sT0FBTyxHQUEwQjtRQUNyQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEdBQUc7UUFDekIsWUFBWSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1FBQzdCLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRztRQUN2QixTQUFTO1FBQ1QsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTO1FBQy9CLGNBQWMsRUFBRSxVQUFVLENBQUMsY0FBYztRQUN6QyxvQkFBb0IsRUFBRSxLQUFLO0tBQzVCLENBQUM7SUFFRixNQUFNLG9CQUFvQixDQUN4QixVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsR0FBRyxFQUNkLGdCQUFnQixFQUNoQixVQUFVLENBQUMsUUFBUSxDQUNwQixDQUFDO0lBRUYsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLFVBQVUsSUFBSSxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDaEUsTUFBTSxJQUFJLEtBQUssQ0FDYixnRkFBZ0YsQ0FDakYsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssVUFBVSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0RBQWdELFFBQVEsQ0FBQyxNQUFNLDZFQUE2RSxDQUM3SSxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDbEUsTUFBTSxJQUFJLEtBQUssQ0FDYiwyREFBMkQsQ0FDNUQsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUNFLFVBQVUsQ0FBQyxlQUFlO1FBQzFCLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLEVBQ3pELENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLHdHQUF3RyxDQUN6RyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sZUFBZSxDQUNuQixVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsR0FBRyxFQUNkLGdCQUFnQixFQUNoQixVQUFVLENBQUMsUUFBUSxDQUNwQixDQUFDO0lBQ0YsT0FBTyxDQUFDLFlBQVksR0FBRyxNQUFNLGFBQWEsQ0FDeEMsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLEdBQUcsRUFDZCxhQUFhLEVBQ2IseURBQXlELEVBQ3pELFVBQVUsQ0FBQyxRQUFRLENBQ3BCLENBQUM7SUFDRixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDbkMsTUFBTSxvQkFBb0IsQ0FDeEIsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLEdBQUcsRUFDZCxPQUFPLENBQUMsWUFBWSxFQUNwQixPQUFPLENBQUMsU0FBUyxFQUNqQixVQUFVLENBQUMsUUFBUSxDQUNwQixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sbUJBQW1CLENBQzVDLFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQ2QsT0FBTyxDQUFDLFlBQVksRUFDcEIsVUFBVSxDQUFDLFFBQVEsQ0FDcEIsQ0FBQztJQUNGLE9BQU8sQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQzdDLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2pELElBQ0UsUUFBUSxDQUFDLE1BQU0sS0FBSyxVQUFVO1FBQzlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUN0QyxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixrRUFBa0UsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sY0FBYyxDQUNwQyxVQUFVLENBQUMsVUFBVSxFQUNyQixVQUFVLENBQUMsR0FBRyxFQUNkLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLFVBQVUsQ0FBQyxRQUFRLENBQ3BCLENBQUM7UUFDRixPQUFPLENBQUMsYUFBYSxHQUFHLE1BQU0sb0JBQW9CLENBQ2hELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQ2QsT0FBTyxDQUFDLE9BQU8sRUFDZixJQUFJLENBQ0wsQ0FBQztRQUNGLElBQ0UsTUFBTSxlQUFlLENBQ25CLFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQ2QsT0FBTyxDQUFDLGFBQWEsRUFDckIsVUFBVSxDQUFDLFFBQVEsQ0FDcEIsRUFDRCxDQUFDO1lBQ0QsTUFBTSxvQkFBb0IsQ0FDeEIsVUFBVSxDQUFDLFVBQVUsRUFDckIsVUFBVSxDQUFDLEdBQUcsRUFDZCxPQUFPLENBQUMsYUFBYSxFQUNyQixPQUFPLENBQUMsU0FBUyxFQUNqQixVQUFVLENBQUMsUUFBUSxDQUNwQixDQUFDO1lBQ0YsT0FBTyxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLHlCQUF5QixDQUM3QyxhQUEwQixFQUMxQixVQUFpQztJQUVqQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdELE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTRELENBQzdELENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbkQsTUFBTSxrQkFBa0IsQ0FDdEIsYUFBYSxFQUNiLFVBQVUsQ0FBQyxnQkFBZ0IsRUFDM0IsVUFBVSxDQUFDLFlBQVksRUFDdkIsVUFBVSxDQUFDLGtCQUFrQixDQUM5QixDQUFDO0lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsTUFBTSxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQ3pDLGFBQWEsRUFDYixVQUFVLENBQUMsU0FBUyxFQUNwQixVQUFVLENBQUMsU0FBUyxDQUNyQixDQUFDO0lBQ0YsSUFBSSxjQUFjLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxLQUFLLENBQ2IsNEhBQTRILENBQzdILENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxvQkFBb0IsQ0FDOUMsYUFBYSxFQUNiLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLFVBQVUsQ0FBQyxPQUFPLENBQ25CLENBQUM7SUFDRixJQUFJLFVBQVUsQ0FBQyxhQUFhLElBQUksYUFBYSxLQUFLLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzRSxNQUFNLElBQUksS0FBSyxDQUNiLG1GQUFtRixDQUNwRixDQUFDO0lBQ0osQ0FBQztJQUNELGlCQUFpQixDQUNmLE1BQU0sTUFBTSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsU0FBUyxFQUFFO1FBQ2hELE9BQU87UUFDUCxXQUFXO1FBQ1gseUJBQXlCO1FBQ3pCLHVCQUF1QjtRQUN2QixVQUFVLENBQUMsT0FBTztRQUNsQixhQUFhO0tBQ2QsQ0FBQyxFQUNGLHdFQUF3RSxDQUN6RSxDQUFDO0lBQ0YsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLG9CQUFvQixDQUN0RCxhQUFhLEVBQ2IsVUFBVSxDQUFDLFNBQVMsRUFDcEIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztJQUNGLElBQUkscUJBQXFCLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FDYixzR0FBc0csQ0FDdkcsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUNFLENBQUMsQ0FBQyxNQUFNLGVBQWUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQyxFQUM1RSxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixvRkFBb0YsQ0FDckYsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLG9CQUFvQixDQUN4QixhQUFhLEVBQ2IsVUFBVSxDQUFDLFNBQVMsRUFDcEIsYUFBYSxFQUNiLFVBQVUsQ0FBQyxTQUFTLENBQ3JCLENBQUM7SUFDRixNQUFNLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNuRCxNQUFNLGtCQUFrQixDQUN0QixhQUFhLEVBQ2IsVUFBVSxDQUFDLGdCQUFnQixFQUMzQixVQUFVLENBQUMsWUFBWSxFQUN2QixVQUFVLENBQUMsa0JBQWtCLENBQzlCLENBQUM7SUFDRixPQUFPO1FBQ0wsR0FBRyxVQUFVO1FBQ2IsYUFBYTtRQUNiLG9CQUFvQixFQUFFLElBQUk7S0FDM0IsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLCtCQUErQixDQUNuRCxhQUEwQixFQUMxQixVQUFpQztJQUVqQyxJQUNFLENBQUMsVUFBVSxDQUFDLFlBQVk7UUFDeEIsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO1FBQzVCLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUM5QixDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQsQ0FDN0QsQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNuRCxNQUFNLGtCQUFrQixDQUN0QixhQUFhLEVBQ2IsVUFBVSxDQUFDLGdCQUFnQixFQUMzQixVQUFVLENBQUMsWUFBWSxFQUN2QixVQUFVLENBQUMsa0JBQWtCLENBQzlCLENBQUM7SUFDRixJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2QixNQUFNLGNBQWMsR0FBRyxNQUFNLGNBQWMsQ0FDekMsYUFBYSxFQUNiLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLFVBQVUsQ0FBQyxTQUFTLENBQ3JCLENBQUM7UUFDRixJQUFJLGNBQWMsS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FDYiw2R0FBNkcsQ0FDOUcsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLG9CQUFvQixHQUFHLE1BQU0sb0JBQW9CLENBQ3JELGFBQWEsRUFDYixVQUFVLENBQUMsU0FBUyxFQUNwQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO1FBQ0YsSUFBSSxvQkFBb0IsS0FBSyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLEtBQUssQ0FDYixnRkFBZ0YsQ0FDakYsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUNBQWlDLENBQ3JELGFBQTBCLEVBQzFCLFVBQWlDLEVBQ2pDLGtCQUEwQixFQUMxQix3QkFBaUM7SUFFakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ25FLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTRELENBQzdELENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxtQkFBbUIsQ0FDbkQsYUFBYSxFQUNiLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLGtCQUFrQixDQUNuQixDQUFDO0lBQ0YsSUFDRSxtQkFBbUIsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLGdCQUFnQjtRQUN4RCxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLGtCQUFrQixFQUM1RCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwwR0FBMEcsQ0FDM0csQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDM0MsTUFBTSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUVBQWlFLENBQ2xFLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQ3pDLGFBQWEsRUFDYixVQUFVLENBQUMsU0FBUyxFQUNwQixVQUFVLENBQUMsU0FBUyxDQUNyQixDQUFDO1FBQ0YsSUFBSSxjQUFjLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0hBQWdILENBQ2pILENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLG9CQUFvQixDQUNyRCxhQUFhLEVBQ2IsVUFBVSxDQUFDLFNBQVMsRUFDcEIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztRQUNGLElBQUksb0JBQW9CLEtBQUssd0JBQXdCLEVBQUUsQ0FBQztZQUN0RCxNQUFNLElBQUksS0FBSyxDQUNiLDJGQUEyRixDQUM1RixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLEVBQ2xDLGFBQTBCLEVBQzFCLFVBQWlDLEVBQ2pDLGFBQXFCLEVBQ3JCLG9CQUE0QixFQUNYLEVBQUU7SUFDbkIsSUFBSSxPQUFlLENBQUM7SUFDcEIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUMzQixhQUFhLEVBQ2IsYUFBYSxFQUNiLGFBQWEsRUFDYix1REFBdUQsQ0FDeEQsQ0FBQztJQUNKLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLCtFQUErRSxDQUFDO0lBQ3pGLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxNQUFNLGtCQUFrQixDQUN0QixhQUFhLEVBQ2IsYUFBYSxFQUNiLE9BQU8sRUFDUCxvQkFBb0IsQ0FDckIsQ0FBQztRQUNGLE9BQU8sMEJBQTBCLE9BQU8sa0NBQWtDLENBQUM7SUFDN0UsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8seUJBQXlCLE9BQU8sZ0ZBQWdGLENBQUM7SUFDMUgsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sbUNBQW1DLEdBQUcsS0FBSyxFQUMvQyxhQUEwQixFQUMxQixVQUFpQyxFQUNqQyxhQUFxQixFQUNyQixvQkFBNEIsRUFDWCxFQUFFO0lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0IsT0FBTywyREFBMkQsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxNQUFNLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRTtRQUMvRCxZQUFZO1FBQ1osSUFBSTtRQUNKLHNDQUFzQztRQUN0QyxhQUFhO1FBQ2IsVUFBVSxDQUFDLFlBQVk7UUFDdkIsVUFBVSxDQUFDLFNBQVM7S0FDckIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxVQUFVLEdBQUcsTUFBTSxzQkFBc0IsQ0FDN0MsYUFBYSxFQUNiLFVBQVUsRUFDVixhQUFhLEVBQ2Isb0JBQW9CLENBQ3JCLENBQUM7SUFDRixJQUFJLGFBQWEsQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakMsT0FBTyxpRUFBaUUsVUFBVSxFQUFFLENBQUM7SUFDdkYsQ0FBQztJQUNELE9BQU8sd0RBQXdELFVBQVUsRUFBRSxDQUFDO0FBQzlFLENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUM3QixhQUEwQixFQUMxQixVQUFpQyxFQUNqQyxhQUFxQixFQUNyQixvQkFBNEIsRUFDWCxFQUFFO0lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0IsT0FBTywyREFBMkQsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLElBQUksQ0FBQztRQUNILE1BQU0sa0JBQWtCLENBQ3RCLGFBQWEsRUFDYixhQUFhLEVBQ2IsVUFBVSxDQUFDLFNBQVMsRUFDcEIsb0JBQW9CLENBQ3JCLENBQUM7UUFDRixpQkFBaUIsQ0FDZixNQUFNLE1BQU0sQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFO1lBQ3pDLFlBQVk7WUFDWixhQUFhO1lBQ2IsVUFBVSxDQUFDLFlBQVk7WUFDdkIsVUFBVSxDQUFDLFNBQVM7U0FDckIsQ0FBQyxFQUNGLGdFQUFnRSxDQUNqRSxDQUFDO1FBQ0YsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNuQixpQkFBaUIsQ0FDZixNQUFNLE1BQU0sQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFO1lBQ3pDLFdBQVc7WUFDWCxJQUFJO1lBQ0osSUFBSTtZQUNKLFVBQVUsQ0FBQyxTQUFTO1lBQ3BCLFVBQVUsQ0FBQyxZQUFZO1NBQ3hCLENBQUMsRUFDRiw2RUFBNkUsQ0FDOUUsQ0FBQztRQUNGLE1BQU0sa0JBQWtCLENBQ3RCLGFBQWEsRUFDYixhQUFhLEVBQ2IsVUFBVSxDQUFDLFlBQVksRUFDdkIsb0JBQW9CLENBQ3JCLENBQUM7UUFDRixPQUFPLDJCQUEyQixDQUFDO0lBQ3JDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sTUFBTSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUU7Z0JBQ3pDLFlBQVk7Z0JBQ1osYUFBYTtnQkFDYixVQUFVLENBQUMsU0FBUztnQkFDcEIsVUFBVSxDQUFDLFlBQVk7YUFDeEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sc0JBQXNCLENBQzNCLGFBQWEsRUFDYixVQUFVLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixDQUNyQixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsc0JBQXNCLENBQzFDLGFBQTBCLEVBQzFCLFVBQWlDO0lBRWpDLElBQUksVUFBVSxDQUFDLFlBQVksS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMzQyxNQUFNLElBQUksS0FBSyxDQUNiLHNFQUFzRSxDQUN2RSxDQUFDO0lBQ0osQ0FBQztJQUNELElBQ0UsQ0FBQyxVQUFVLENBQUMsT0FBTztRQUNuQixDQUFDLFVBQVUsQ0FBQyxZQUFZO1FBQ3hCLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDekIsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsK0RBQStELENBQ2hFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbkQsTUFBTSxjQUFjLEdBQUcsTUFBTSxjQUFjLENBQ3pDLGFBQWEsRUFDYixVQUFVLENBQUMsU0FBUyxFQUNwQixVQUFVLENBQUMsU0FBUyxDQUNyQixDQUFDO0lBQ0YsSUFBSSxjQUFjLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUZBQW1GLENBQ3BGLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLG9CQUFvQixDQUNyRCxhQUFhLEVBQ2IsVUFBVSxDQUFDLFNBQVMsRUFDcEIsVUFBVSxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztJQUNGLElBQUksb0JBQW9CLEtBQUssVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RELE1BQU0sSUFBSSxLQUFLLENBQ2IsOEZBQThGLENBQy9GLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLGFBQWEsQ0FDN0MsYUFBYSxFQUNiLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLGFBQWEsRUFDYixvREFBb0QsQ0FDckQsQ0FBQztJQUNGLElBQUksbUJBQW1CLEtBQUssVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BELE1BQU0sSUFBSSxLQUFLLENBQ2IscUZBQXFGLENBQ3RGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLG1CQUFtQixDQUNuRCxhQUFhLEVBQ2IsVUFBVSxDQUFDLFNBQVMsRUFDcEIsVUFBVSxDQUFDLFlBQVksQ0FDeEIsQ0FBQztJQUNGLElBQ0UsbUJBQW1CLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxnQkFBZ0I7UUFDeEQsbUJBQW1CLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxrQkFBa0IsRUFDNUQsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQ2Isa0dBQWtHLENBQ25HLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDO0lBQy9DLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUNiLHlGQUF5RixDQUMxRixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxrQkFBa0IsQ0FDaEQsYUFBYSxFQUNiLFVBQVUsRUFDVixVQUFVLENBQUMsWUFBWSxFQUN2QixVQUFVLENBQUMsa0JBQWtCLENBQzlCLENBQUM7SUFFRixNQUFNLGdCQUFnQixHQUFHLE1BQU0sTUFBTSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUU7UUFDL0QsWUFBWTtRQUNaLElBQUk7UUFDSiw2QkFBNkI7UUFDN0IsYUFBYTtRQUNiLFVBQVUsQ0FBQyxTQUFTO1FBQ3BCLFVBQVUsQ0FBQyxZQUFZO0tBQ3hCLENBQUMsQ0FBQztJQUNILElBQUksZ0JBQWdCLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ2IseUZBQXlGLENBQzFGLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLE1BQU0sQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFO1FBQ3BFLFdBQVc7UUFDWCxJQUFJO1FBQ0osSUFBSTtRQUNKLFVBQVUsQ0FBQyxZQUFZO1FBQ3ZCLFVBQVUsQ0FBQyxTQUFTO0tBQ3JCLENBQUMsQ0FBQztJQUNILElBQUkscUJBQXFCLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sYUFBYSxHQUFHLE1BQU0sbUNBQW1DLENBQzdELGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxFQUNWLGlCQUFpQixDQUNsQixDQUFDO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FDYix1SEFBdUgsYUFBYSxFQUFFLENBQ3ZJLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxrQkFBa0IsQ0FDdEIsYUFBYSxFQUNiLFVBQVUsRUFDVixVQUFVLENBQUMsU0FBUyxFQUNwQixpQkFBaUIsQ0FDbEIsQ0FBQztJQUNKLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxNQUFNLGFBQWEsR0FBRyxNQUFNLGlCQUFpQixDQUMzQyxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixpQkFBaUIsQ0FDbEIsQ0FBQztRQUNGLE1BQU0sSUFBSSxLQUFLLENBQ2IscUdBQXFHLGFBQWEsRUFBRSxDQUNySCxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sWUFBWSxHQUFHLE1BQU0sYUFBYSxDQUN0QyxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLDJEQUEyRCxDQUM1RCxDQUFDO0lBQ0YsSUFBSSxZQUFZLEtBQUssVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFHLE1BQU0saUJBQWlCLENBQzNDLGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxFQUNWLGlCQUFpQixDQUNsQixDQUFDO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FDYiwwRkFBMEYsYUFBYSxFQUFFLENBQzFHLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxNQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRTtRQUN6RCxNQUFNO1FBQ04sa0JBQWtCO1FBQ2xCLHNCQUFzQixhQUFhLElBQUksVUFBVSxDQUFDLGFBQWEsRUFBRTtRQUNqRSxVQUFVLENBQUMsT0FBTztRQUNsQixHQUFHLFVBQVUsQ0FBQyxTQUFTLElBQUksYUFBYSxFQUFFO0tBQzNDLENBQUMsQ0FBQztJQUNILElBQUksVUFBVSxDQUFDLFFBQVEsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM5QixJQUFJLGVBQW1DLENBQUM7UUFDeEMsSUFBSSxDQUFDO1lBQ0gsZUFBZSxHQUFHLE1BQU0sb0JBQW9CLENBQzFDLGFBQWEsRUFDYixVQUFVLENBQUMsU0FBUyxFQUNwQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO1FBQ0osQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLGVBQWUsR0FBRyxTQUFTLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksZUFBZSxLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3QyxNQUFNLGFBQWEsR0FBRyxNQUFNLGlCQUFpQixDQUMzQyxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixpQkFBaUIsQ0FDbEIsQ0FBQztZQUNGLE1BQU0sSUFBSSxLQUFLLENBQ2IseUZBQXlGLGFBQWEsR0FDcEcsZUFBZTtnQkFDYixDQUFDLENBQUMsRUFBRTtnQkFDSixDQUFDLENBQUMsMEVBQ04sRUFBRSxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sa0JBQWtCLENBQ3RCLGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxDQUFDLFNBQVMsRUFDcEIsaUJBQWlCLENBQ2xCLENBQUM7SUFDRixJQUFJLG1CQUEyQixDQUFDO0lBQ2hDLElBQUksQ0FBQztRQUNILG1CQUFtQixHQUFHLE1BQU0sb0JBQW9CLENBQzlDLGFBQWEsRUFDYixVQUFVLENBQUMsU0FBUyxFQUNwQixVQUFVLENBQUMsT0FBTyxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sYUFBYSxHQUFHLE1BQU0saUJBQWlCLENBQzNDLGFBQWEsRUFDYixVQUFVLEVBQ1YsVUFBVSxFQUNWLGlCQUFpQixDQUNsQixDQUFDO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FDYix1RkFBdUYsYUFBYSxrREFBa0QsQ0FDdkosQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLG1CQUFtQixLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqRCxNQUFNLGFBQWEsR0FBRyxNQUFNLGlCQUFpQixDQUMzQyxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixpQkFBaUIsQ0FDbEIsQ0FBQztRQUNGLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkZBQTZGLGFBQWEsRUFBRSxDQUM3RyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU87UUFDTCxVQUFVO1FBQ1YsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO1FBQzNCLHFCQUFxQixFQUFFLFVBQVUsQ0FBQyxTQUFTO0tBQzVDLENBQUM7QUFDSixDQUFDIn0=
|